chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
阅读:3172回复:4

NtWriteFile的困惑 ?

楼主#
更多 发布于:2007-11-06 18:31
我在使用 NtWriteFile总是出现c0000005的错误 ,但有时又会成功
我用同样的参数 调用ZwWriteFile又总是正确的 ,这个是怎么回事呢 ?
写一个 磁盘文件除了 调用NtWriteFile和 ZwWriteFile还有什么呢 ?
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-11-06 19:04
上代码
驱动开发者 呵呵
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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);  
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
地板#
发布于:2007-11-07 13:45
ZwWriteFile只是比NtWriteFile多走了个KiXXXXX,并不影响结果,你看看是不是你createfile时没设同步标志的原因~
驱动开发者 呵呵
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-11-07 15:58
同步标志是做什么用的啊
游客

返回顶部