阅读:1284回复:3
驱动中控制通道建立厂商时的索引值是UCHAR型的,但是在固件中厂商请求的索引值是2个字节的
这样在固件里怎么检测呢?类型不匹配呀?
|
|
沙发#
发布于:2005-07-19 14:43
什么意思?
看不懂 比如philips 厂商号是:0471 载固件中是这样村的 0x71。0x04 驱动中你就直接写if(dev->pid==0x0471) 就是这样 |
|
板凳#
发布于:2005-07-19 21:07
比如在一个驱程里我要用一个函数用厂商请求来传输一个复位命令:
NTSTATUS USBCounterDevice::ResetCounter() { PURB pUrb; NTSTATUS status; UCHAR buffer[8]; memset(buffer,0,8); pUrb=m_Lower.BuildVendorRequest( buffer, 8, 0, 0, TRUE, TRUE, NULL, 0, URB_FUNCTION_VENDOR_ENDPOINT ); status=m_Lower.SubmitUrb(pUrb); delete pUrb; return status; } 在m_Lower.BuildVendorRequest里是不是建立了一个厂商请求呢?我真的不明呀! |
|
地板#
发布于:2005-07-20 11:01
上面的代码就是武安河书里的usb例子,BuildVendorRequest用于分配并初始化一个用于厂商请求的URB,如果封装成功的话,用SubmitUrb发送给系统USB总线驱动程序进行处理
|
|