xx_qiang
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2017-02-27
  • 粉丝2
  • 关注1
  • 积分31分
  • 威望249点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1875回复:1

在驱动中调用zwdeviceiocontrol函数设置稀疏文件出错

楼主#
更多 发布于:2008-08-13 13:47
RtlInitUnicodeString(&filename,L"\\??\\e:\\temp.tmp");
InitializeObjectAttributes(&oa,&filename,OBJ_CASE_INSENSITIVE,NULL,NULL);
status = ZwCreateFile(&hHandle,GENERIC_READ | GENERIC_WRITE,&oa,&IoStatus,
                                NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ | FILE_SHARE_WRITE,FILE_SUPERSEDE,
                                FILE_NON_DIRECTORY_FILE |FILE_RANDOM_ACCESS |
                                FILE_SYNCHRONOUS_IO_NONALERT,NULL,0);
    if (NT_SUCCESS(status))
    {
        status = ZwDeviceIoControlFile(hHandle,NULL,NULL,NULL,&IoStatus,FSCTL_SET_SPARSE,NULL,0,NULL,0);
        if(NT_SUCCESS(status))
        {

               }
       }
创建文件成功,但是发送控制码设置这个文件为稀疏文件的时候返回错误代码0xc000000d,status_invalid_parameter,为什么啊?
我想通过ZwSetInformationFile中设置basicinformation来加上稀疏文件的标志位,但是设置stardandinformation中文件大小的时候失败,错误代码也是0xc000000d,或者设置end_of_file的时候也是报同样的错误。
请大家帮我看看,到底问题出在哪里呢?
xx_qiang
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2017-02-27
  • 粉丝2
  • 关注1
  • 积分31分
  • 威望249点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2008-08-14 15:07
自己顶一下
游客

返回顶部