zh822
驱动牛犊
驱动牛犊
  • 注册日期2007-06-04
  • 最后登录2009-07-17
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望75点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
阅读:1288回复:1

哪位大侠帮我看看下面这段关于读取USB设备程序的意思?谢谢了!

楼主#
更多 发布于:2007-07-25 18:45
BOOL CUSBDlg::ReadDataFromUsb()
{
    BULK_TRANSFER_CONTROL bulkcontrol;
    bulkcontrol.pipeNum=0;
    
    if (!DeviceIoControl
        (hDevice,
        IOCTL_EZUSB_BULK_READ,
        (LPVOID)&bulkcontrol,
        sizeof(BULK_TRANSFER_CONTROL),
        (LPVOID)BulkReadData1,
        1000,
        &BytesReturned,
        NULL)
       )
    {    //AfxMessageBox("错误");
        CloseHandle(hDevice);

        Sleep(20);


    if(!bOpenDriver(&hDevice,m_strName.GetBuffer(m_strName.GetLength())))
        {
        m_strOutput+="重新打开设备失败,请检查设备名是正确\r\n";
        CloseHandle(hDevice);
    if(bOpenDriver(&hDevice,m_strName11.GetBuffer(m_strName11.GetLength())))
        m_strOutput+="重新打开设备"+m_strName11+"\r\n";

        //    return FALSE;
        }
        else
        {            
        m_strOutput+="重新打开设备"+m_strName+"\r\n";
        

        }
        UpdateData(FALSE);
        DeviceIoControl(hDevice,
                                                IOCTL_EZUSB_BULK_READ,
            (LPVOID)&bulkcontrol,
            sizeof(BULK_TRANSFER_CONTROL),
            (LPVOID)BulkReadData1,
            1000,
            &BytesReturned,
            NULL);
      
//        return FALSE;
    }
Sleep(20);
    if (!DeviceIoControl
        (hDevice,
        IOCTL_EZUSB_BULK_READ,
        (LPVOID)&bulkcontrol,
        sizeof(BULK_TRANSFER_CONTROL),
        (LPVOID)BulkReadData2,
        1000,
        &BytesReturned,
        NULL)
       )
    {
        CloseHandle(hDevice);
        return FALSE;
    }
    Sleep(20);
if (!DeviceIoControl
    (hDevice,
    IOCTL_EZUSB_BULK_READ,
    (LPVOID)&bulkcontrol,
    sizeof(BULK_TRANSFER_CONTROL),
    (LPVOID)BulkReadData3,
    1000,
    &BytesReturned,
    NULL)
       )
{
    CloseHandle(hDevice);
    return FALSE;
}

    return TRUE;

}
oushengfen
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分747分
  • 威望124点
  • 贡献值1点
  • 好评度82点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-26 13:14
这就是打开设备,然后利用DeviceIoControl,也就是驱动程序对应的控IRP_MJ_DEVICE_CONTROL中进行响应.
游客

返回顶部