rainysky1224
驱动牛犊
驱动牛犊
  • 注册日期2003-02-16
  • 最后登录2004-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3333回复:4

找到了GUID,成功得到设备句柄。还无法访问u盘??斑竹救命

楼主#
更多 发布于:2003-02-27 19:58
在一个简单c++程序main里面用4个SetupDi*****得到了设备路径。
DevicePath.


h = SetupDiGetClassDevs(&my_guid,// LPGUID ClassGuid,
        NULL,    // PCTSTR Enumerator,
        NULL,         // HWND hwndParent,
        DIGCF_DEVICEINTERFACE | DIGCF_PRESENT // DWORD Flags
         );

SetupDiEnumDeviceInterfaces(h, NULL, &my_guid, 0, &DevData );

 SetupDiGetDeviceInterfaceDetail(h, &DevData, NULL, 0, &ReqLen, NULL);
  
SetupDiGetDeviceInterfaceDetail(h, &DevData, mDevDetail, ReqLen, &ReqLen, NULL);  

Name = mDevDetail->DevicePath;
fprintf(stdout,\"\\nmDevDetail->DevicePath:\\n%s\",Name);
再用下面函数成功找到了设备句柄
hf = ::CreateFile(
            Name,
            GENERIC_READ | GENERIC_WRITE,       // access mode
            FILE_SHARE_WRITE | FILE_SHARE_READ, // share mode
            NULL,                               // security desc.
            OPEN_EXISTING,                      // how to create
            FILE_FLAG_OVERLAPPED,               // file attributes
            NULL                                // template file
            );
但是用下面这个函数进行设备访问的时候,只有IOCTL_STORAGE_MEDIA_REMOVAL这个控制码能成功返回。
其他标准控制码IOCTL_STORAGE_****都返回错误。system code error.这是怎么回事??救命呀!!
succ = DeviceIoControl(
            hf,         // driver handle
            IOCTL_STORAGE_MEDIA_REMOVAL,     // IOCTL code
            &mdia,//input buffer
            sizeof(mdia),//sizeof(req), // input buffer size
            NULL,       // output buffer
            0,
            &BytesRet,          // number of bytes returned
           fault  );

最新喜欢:

jinghuirenjinghu...
just do it
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-02 04:00
没有用过这些IOCTLS
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
rainysky1224
驱动牛犊
驱动牛犊
  • 注册日期2003-02-16
  • 最后登录2004-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-02 20:02
那请问什么控制码曾经成功获取设备信息。
我发现我现在找不到合适的控制码了。
IOCTL_SCSI_****....还是别的?
just do it
bbczhx
驱动牛犊
驱动牛犊
  • 注册日期2008-10-01
  • 最后登录2009-04-01
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望27点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-03-29 21:17
myguid是什么呢
lhylhy
驱动牛犊
驱动牛犊
  • 注册日期2009-03-05
  • 最后登录2009-04-30
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-04-02 16:04
我找到了GUID和设备句柄,访问别人的设备,有的输入读到了,有的没读到,什么原因啊?
游客

返回顶部