satanli1982
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1890回复:1

请问应该怎么使用ZwCreateFile函数?

楼主#
更多 发布于:2004-05-25 11:52
我在filter driver中调用ZwCreateFile文件以获得文件句柄得到被读写文件的相关信息,可是总是返回错误请问应该怎么调用?先谢了

char Buffer[73];
HANDLE FileHandle;
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatusBlock;
PIO_STACK_LOCATION pIrpStack;
LARGE_INTEGER FileOffset;
FILE_BASIC_INFORMATION FileInformation;

pIrpStack = IoGetCurrentIrpStackLocation(Irp);
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
ObjectAttributes.ObjectName = &(pIrpStack->FileObject->FileName);
ObjectAttributes.RootDirectory = NULL;
ObjectAttributes.SecurityDescriptor = NULL;
ObjectAttributes.SecurityQualityOfService = NULL;
ObjectAttributes.Attributes = OBJ_INHERIT|OBJ_KERNEL_HANDLE;
FileOffset.u.LowPart = 1024;
FileOffset.u.HighPart = 0;
if(STATUS_SUCCESS ==
ZwCreateFile(&FileHandle, FILE_READ_ATTRIBUTES|FILE_WRITE_ATTRIBUTES, &ObjectAttributes,
         &IoStatusBlock, &FileOffset, FILE_ATTRIBUTE_NORMAL, 0, FILE_OPEN ,
 FILE_NON_DIRECTORY_FILE|FILE_NO_INTERMEDIATE_BUFFERING,
 NULL, 0))
{
DbgPrint((\"ZwCreateFile Sucess!\\n\"));
ZwClose(FileHandle);
}
else
{
DbgPrint((\"ZwCreateFile Failed %ud!\\n\"),IoStatusBlock.Information);
}
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-25 15:06
IO_STATUS_BLOCK IoStatusBlock;
    OBJECT_ATTRIBUTES ObjectAttributes;
    NTSTATUS status;
    HANDLE FileHandle;
      
 //PUNICODE_STRING pFileName    
       //初始化对象属性
    InitializeObjectAttributes (
                                        &ObjectAttributes,
                                        pFileName,
                                        OBJ_CASE_INSENSITIVE,
                                        NULL,
                                        NULL
                                        );
    
    //打开文件
    status = ZwCreateFile (
                                        &FileHandle,
                                        GENERIC_READ,
                                        &ObjectAttributes,
                                        &IoStatusBlock,
                                        NULL,
                                        FILE_ATTRIBUTE_NORMAL,
                                        FILE_SHARE_READ,
                                        FILE_OPEN,
                                        FILE_SYNCHRONOUS_IO_NONALERT,
                                        NULL,
                                        0
                                        );
游客

返回顶部