wince下的驱动中,如何获取一个usb设备的serial number

wince下的驱动中,如何获取一个usb设备的serial number
我现在搞的一个usb驱动,要求能获得该usb设备的serial number,请注意:是根据USB_DEVICE_DESCRIPTOR中的iSerialNumber来获取的设备的序列号,而不是iSerialNumber本身,因为iSerialNumber只是代表设备序列号的索引,这个我已经能得到,现在的问题是,如何通过该索引来获取真正的设备序列号字符串,

通过该索引来获取真正的设备序列号字符串,是否有这个东东呢?

如果有,根据硬件手册来获取。

这个设备序列号应该是与具体的硬件无关的,因为在windows平台上,用WDK开发USB驱动时,可以用:
WdfUsbTargetDeviceAllocAndQueryString(wdf_target_device(),

                                          WDF_NO_OBJECT_ATTRIBUTES,

                                          &serial_number_handle_,//这是个内存缓冲

                                          &serial_number_char_len_,//内存缓冲长度

                                          usb_device_descriptor_.iSerialNumber,//序列号索引

                                          0x0409);//语言ID
这个函数来获取USB设备的序列号,因此,USB设备的序列号应该是一个标准化的东西,可以有标准的方法来获取,但是在wince下,目前还是没有发现这个类似的方法,是不是wince本身没有提供这样的接口呢?

通过索引,请求对应的字符串描述符。USB协议里有描述的。具体参考USB开发大全和圈圈教你玩转USB。

来wince里有个专门的函数:typedef USB_TRANSFER (* LPGET_DESCRIPTOR)(
  USB_HANDLE hDevice,
  LPTRANSFER_NOTIFY_ROUTINE lpStartAddress,
  LPVOID lpvNotifyParameter,
  DWORD dwFlags,
  UCHAR bType,
  UCHAR bIndex,
  WORD wLanguage,
  WORD wLength,
  LPVOID lpvBuffer
);
可以获取指定的字符串描述符的。。

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有