当前位置: 代码迷 >> 驱动开发 >> ZWReadFile有关问题。
  详细解决方案

ZWReadFile有关问题。

热度:486   发布时间:2016-04-28 11:23:28.0
ZWReadFile问题。 请指教
内核文件中打开文件后,我我自己制定文件偏移地址,从而实现比较快读的读取。
使用了如下代码
1:打开文件ZwCreateFile.打开文件成功。
2: ZwReadFIle时,由于我指定了LARGE_INTEGER. 

结果再执行read时,返回了C0000011错误,我感觉应该是我这个LARGE_INTEGER指定问题
我是如下初始化 LargInterge结构的。 请指教如何实现我的需求。

C/C++ code
     LARGE_INTEGER lrOffset       = {0};


C/C++ code
ZwCreateFile(lpFileHandle,                                                              FILE_READ_DATA,                                                              &oaName,                                                              &iosBlock,                                                              NULL,                                                              FILE_ATTRIBUTE_NORMAL,                                                              FILE_SHARE_READ,                                                              FILE_OPEN,                                                            FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT,                                                               NULL,                                                              0);  

C/C++ code
ntStatus = ZwReadFile(hFile,                                                    NULL,                                                    NULL,                                                    NULL,                                                    &iosBlock,                                                    pBuffer,                                                    ulBufferSize,                                                    ByteOffset,                                                    NULL);


------解决方案--------------------
C/C++ code
OBJECT_ATTRIBUTES objectAttributes;IO_STATUS_BLOCK iostatus;UNICODE_STRING logFileUnicodeString;HANDLE hfile;//初始化UNICODE_STRINGRtlInitUnicodeString( &logFileUnicodeString, L"\\??\\c:\\1.log" );//初始化OBJECT_ATTRIBUTES结构体InitializeObjectAttributes( &objectAttributes,    &logFileUnicodeString, OBJ_CASE_INSENSITIVE,   NULL, NULL );//创建文件NTSTATUS ntStatus = ZwCreateFile( &hfile, GENERIC_WRITE,   &objectAttributes,   &iostatus,   NULL,   FILE_ATTRIBUTE_NORMAL,   FILE_SHARE_READ,   FILE_OPEN_IF,   FILE_SYNCHRONOUS_IO_NONALERT,   NULL,   0 );if ( NT_SUCCESS( ntStatus ) ){   KdPrint( ( "Create File Success!\n" ) );}else{   KdPrint( ( "CreateFile Fail!\n" ) );}ZwClose( hfile );
------解决方案--------------------
LZ查一下返回的错误代码 看看具体是代表什么错误
  相关解决方案