阅读:3172回复:4
NtWriteFile的困惑 ?
我在使用 NtWriteFile总是出现c0000005的错误 ,但有时又会成功
我用同样的参数 调用ZwWriteFile又总是正确的 ,这个是怎么回事呢 ? 写一个 磁盘文件除了 调用NtWriteFile和 ZwWriteFile还有什么呢 ? |
|
沙发#
发布于:2007-11-06 19:04
上代码
|
|
|
板凳#
发布于:2007-11-07 09:33
LARGE_INTEGER Large;
Large.HighPart=-1; Large.LowPart=FILE_WRITE_TO_END_OF_FILE; CreateFileRc=IoCreateFile(&hFile, FILE_ALL_ACCESS, &oa, &iostatus, NULL, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN_IF, FILE_NON_DIRECTORY_FILE, NULL, 0, 0, 0, IO_NO_PARAMETER_CHECKING); if (!NT_SUCCESS(CreateFileRc)) { //创建失败 } else { //创建成功 PrintBuffer=ExAllocatePool(PagedPool,2048); //后面有PrintBuffer的处理过程 ZwWriteFileRc=ZwWriteFile(hFile, NULL, NULL, NULL, &iostatus,PrintBuffer, strlen(PrintBuffer), &Large, NULL); if (!NT_SUCCESS(ZwWriteFileRc)) { //写入失败 } ExFreePool(PrintBuffer); ZwClose(hFile); |
|
地板#
发布于:2007-11-07 13:45
ZwWriteFile只是比NtWriteFile多走了个KiXXXXX,并不影响结果,你看看是不是你createfile时没设同步标志的原因~
|
|
|
地下室#
发布于:2007-11-07 15:58
同步标志是做什么用的啊
|
|