Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
阅读:1669回复:4

我用CreateFile打开SFilter的设备为什么出错?

楼主#
更多 发布于:2007-06-15 17:12
我已经在DriverEntry函数里面为它创建了一个符号链接,我用WinObj工具,在Global里面也能够看到SFilter了,但我的应用程序里面用CreateFile打开L"\\\\.\\SFilter"时,为什么老是报出1号错误呢?????

我创建符号链接的代码应该没有问题的,是在CDO创建好之后调的,如下:
#define ICFSF_DOSDEVICE_NAME L"\\DosDevices\\SFilter"
        UNICODE_STRING linkString;
        RtlInitUnicodeString(&linkString, ICFSF_DOSDEVICE_NAME);
        status = IoCreateSymbolicLink(&linkString, &nameString);

CreateFile代码是这样的:
    
    DWORD dwRet;
    HANDLE hDevice = CreateFileW(L"\\\\.\\SFilter“    GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL );
报出1号错误来。

有什么玄机吗?
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
liyunch
驱动小牛
驱动小牛
  • 注册日期2001-06-28
  • 最后登录2014-09-05
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望134点
  • 贡献值0点
  • 好评度94点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-06-15 17:56
在Sfcreate里要对cdo的Irp做个处理如:
Irp->IoStatus.Information = 0;
Irp->IoStatus.Status = STATUS_SUCCESS;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_SUCCESS;
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
板凳#
发布于:2007-06-18 09:27
很灵,谢谢你!
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
myfll
驱动牛犊
驱动牛犊
  • 注册日期2009-06-19
  • 最后登录2011-04-07
  • 粉丝0
  • 关注1
  • 积分30分
  • 威望291点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-07-23 15:17
在Sfcreate里要对cdo的Irp处理我也做了,为什么我还是打开设备错误呢
JeTus
驱动牛犊
驱动牛犊
  • 注册日期2007-09-22
  • 最后登录2010-01-17
  • 粉丝3
  • 关注0
  • 积分84分
  • 威望781点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-07-23 19:15
楼上的把sys卸载再装上试试。
游客

返回顶部