gzy_nj
驱动牛犊
驱动牛犊
  • 注册日期2006-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分416分
  • 威望60点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
阅读:1432回复:7

驱动中写文件,普通盘可以,usb盘却不响应,为什么?

楼主#
更多 发布于:2007-10-14 15:23
主要代码在下面,如果是c,d 等本地硬盘,操作成功;但是当我指定我的usb盘h时,操作到这里就停止响应了;但也不是死机,重新开始干别的好像也行,就是好像explorer不行了,结束任务也不行,只有重启系统。
想请教大牛们,普通本地硬盘和usb盘有什么区别?为什么同样的代码两个结果?

RtlInitUnicodeString(&uniName, L"\\DosDevices\\h:\\11.txt");
    InitializeObjectAttributes(&objAttr, &uniName,
                              OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
                              NULL, NULL);

    if(KeGetCurrentIrql() != PASSIVE_LEVEL)
        return STATUS_INVALID_DEVICE_STATE;

       ntstatus = IoCreateFileSpecifyDeviceObjectHint(&handle,
            GENERIC_WRITE|SYNCHRONIZE|GENERIC_READ,
            &objAttr,
            &ioStatusBlock,
            NULL,
            FILE_ATTRIBUTE_NORMAL,
            FILE_SHARE_READ | FILE_SHARE_WRITE,
            FILE_OVERWRITE_IF,
            FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT | FILE_NO_INTERMEDIATE_BUFFERING,
            NULL,
            0,
            CreateFileTypeNone,
            NULL,
            IO_IGNORE_SHARE_ACCESS_CHECK,
            DeviceObject
            );                
    if(NT_SUCCESS(ntstatus))
    {
        ntstatus = ZwWriteFile(handle, NULL, NULL, NULL, &ioStatusBlock,
                            TempBuffer, 100, NULL, NULL);
        ZwClose(handle);
        ExFreePool(TempBuffer);

    }
gzy_nj
驱动牛犊
驱动牛犊
  • 注册日期2006-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分416分
  • 威望60点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-14 21:33
   
gzy_nj
驱动牛犊
驱动牛犊
  • 注册日期2006-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分416分
  • 威望60点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-10-15 09:54
接着求救,大牛们帮忙指点指点,说说思路也可以阿,一个人搞真是很困难啊!
gdfyl
驱动牛犊
驱动牛犊
  • 注册日期2007-01-22
  • 最后登录2008-12-28
  • 粉丝0
  • 关注0
  • 积分39分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-10-23 21:26
Microsoft公布IoCreateFileSpecifyDeviceObjectHint的BUG
IoCreateFileSpecifyDeviceObjectHint所传入的DeviceObject不能是网络设备等对象,
否则返回STATUS_INVALID_PARAMETER(0xC000000DL)错误码

请见:
http://support.microsoft.com/kb/322726/zh-cn

所以你的行不通.QQ:118118577
gdfyl
驱动牛犊
驱动牛犊
  • 注册日期2007-01-22
  • 最后登录2008-12-28
  • 粉丝0
  • 关注0
  • 积分39分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-10-23 21:28
IoCreateFileSpecifyDeviceObjectHint function that is documented in the Windows XP Installable File System Kit (IFS Kit), the DeviceObject parameter cannot be a device object of a network file system. If this is the case, the function returns STATUS_INVALID_PARAMETER instead of STATUS_SUCCESS.
你自己看看吧!
gzy_nj
驱动牛犊
驱动牛犊
  • 注册日期2006-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分416分
  • 威望60点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-10-24 10:01
感谢回复

不过usb盘不是网络设备对象吧?
gzy_nj
驱动牛犊
驱动牛犊
  • 注册日期2006-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分416分
  • 威望60点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-10-24 10:02
应该是我程序其它地方写得有问题,单独往usb写没问题的!
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
7楼#
发布于:2007-10-24 10:20
用户被禁言,该主题自动屏蔽!
游客

返回顶部