darkplayer
驱动牛犊
驱动牛犊
  • 注册日期2003-10-21
  • 最后登录2006-08-24
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1496回复:2

控制台程序用DeviceIoContro实现Vendor请求求助!!]

楼主#
更多 发布于:2005-03-21 10:28
我用DeviceIoControl实现获得描述符,配置等都没有问题,但是
用它实现Vendor请求就不行,返回false;下面是我的代码,各位大虾
帮帮忙,小弟vc不行,谢谢!
如果有原码提供给我吧!感谢!

void VendorRequest()
{
    VENDOR_OR_CLASS_REQUEST_CONTROL myRequest;
    char *buffer;
    HANDLE hDevice;
    ULONG bufferSize = 0;  
    BOOLEAN bResult                         = FALSE;
    int     nBytes                          = 0;
    // Open the driver
    hDevice = CreateFile(\"\\\\\\\\.\\\\Ezusb-0\",
    GENERIC_WRITE,
    FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    0,
    0);
    if(hDevice==INVALID_HANDLE_VALUE)
        printf(\"Open usb: is Error!\\n\");
    else
        printf(\"Open usb: is Ok!\\n\");
myRequest.request = (UCHAR) 0xB3;
    myRequest.value = (USHORT) 0x0000;
    myRequest.index = (USHORT) 0xBEFF;
    myRequest.direction = 0x0;
    bufferSize = 0x07;
    buffer = (char *)0x0;
     myRequest.requestType=2;
    myRequest.recepient=0;
    if (hDevice != INVALID_HANDLE_VALUE)
    {
         bResult = DeviceIoControl (hDevice,
      IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,
&myRequest,
sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),
buffer,
bufferSize,
(unsigned long *)&nBytes,
NULL);
    }/* if valid driver handle */
    if (bResult==TRUE)
    {
printf(\"all right  \\n\");

     }
CloseHandle (hDevice);
}
junki
驱动牛犊
驱动牛犊
  • 注册日期2004-09-02
  • 最后登录2007-11-30
  • 粉丝0
  • 关注0
  • 积分124分
  • 威望13点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-21 14:52
如何得到myRequest?
可以看以下源代码?
darkplayer
驱动牛犊
驱动牛犊
  • 注册日期2003-10-21
  • 最后登录2006-08-24
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-22 17:27
myRequest.request = (UCHAR) 0xB3;
myRequest.value = (USHORT) 0x0000;
myRequest.index = (USHORT) 0xBEFF;
myRequest.direction = 0x0;

就是这几句了,上面有,因为它提供的例子比较复杂,没太看懂
感觉这一段好像差不多完成相应功能,就试验,可惜不行,
希望能指点一下,我qq:57525159,非常感谢
游客

返回顶部