gepsuixb
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2005-01-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1846回复:2

请教各位前辈,主机是怎样读取Vendor ID和Product ID的?很急,谢谢

楼主#
更多 发布于:2002-10-24 09:48
主机枚举USB设备的时候,要读取设备的Vendor ID和Product ID,那主机是怎样读取这两个值的?主机怎么知道这两个值放在设备的那个位置?急盼各个位前辈指教,谢谢。

最新喜欢:

jipeifengjipeif...
olivine
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2005-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-24 11:48
主机通过固件程序中的设备描述符来得到。设备描述符结构是USB标准所定义的数据结构之一,以下是一个例子:USB_DEVICE_DESCRIPTOR DeviceDescr =
{
    sizeof(USB_DEVICE_DESCRIPTOR),// bLength
    USB_DEVICE_DESCRIPTOR_TYPE, // bDescriptorType
    SWAP(0x0100), // bcdUSB
    USB_CLASS_CODE_TEST_CLASS_DEVICE,// bDeviceClass
           0, // bDeviceSubClass
0, // bDeviceProtocol
EP0_PACKET_SIZE, // bMaxPacketSize
SWAP(0x0471), // idVendor
SWAP(0x0666), // idProduct
SWAP(0x0100), // bcdDevice
           0, // iManufacturer
0, // iProduct
0, // iSerialNumber
25 // bNumConfigurations
};

设备上电过后,在驱动程序装入之前,主机与设备会进行若干次通信,在这个过程中,主机得到设备的描述符中的VendorID和ProductID,然后在系统驱动程序库中查找,与它们相符的.inf如果找不到,就提示用户指定.inf,装入驱动。所以在你的.inf中也要加入VendorID和ProductID,一般在驱动程序提供商字段中。格式如下:
%USB\\VID_0471&PID_0610.DeviceDesc%=XKYCD12.Dev,USB\\VID_0471&PID_0610
bbear
驱动小牛
驱动小牛
  • 注册日期2002-08-20
  • 最后登录2009-04-16
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-24 13:11
透咿 USB BUS 下命令斤 特定的 DEVICE, Get USB_DEVICE_DESCRIPTOR. 那儋料就在 STRUCT 中了,
游客

返回顶部