USB的读写函数及获取USB设备字符串

Posted on 2014-05-14 10:34  NoNoCare  阅读(1540)  评论(0)    收藏  举报

一、USB读

SI_STATUS SI_Read (HANDLE Handle, LPVOID Buffer, DWORD NumBytesToRead,
DWORD *NumBytesReturned, OVERLAPPED* o = NULL)

(NOTE:If any data is available when SI_Read is called it will return so check NumBytesReturned to determine if all
requested data was returned. To make sure that SI_Read returns the requested number of bytes)

1、HANDLE Handle-句柄

2、LPVOID Buffer-数据读出到的位置

3、DWORD NumBytesToRead-申请读出的数量

4、DWORD *NumBytesReturned-实际读出的数量

5、OVERLAPPED* o = NULL-异步读,默认为0

 二、USB写

SI_STATUS SI_Write (HANDLE Handle, LPVOID Buffer, DWORD NumBytesToWrite,
DWORD *NumBytesWritten, OVERLAPPED* o = NULL)

1、HANDLE Handle-句柄

2、LPVOID Buffer-写入的数据

3、DWORD NumBytesToRead-申请写入字节的数量

4、DWORD *NumBytesReturned-实际写入字节的数量

5、OVERLAPPED* o = NULL-异写,默认为0

 

三、获取USB设备的字符串

  SI_STATUS SI_GetProductString (DWORD DeviceNum, LPVOID DeviceString,
DWORD Options)

1、DWORD DeviceNum 设备索引号

2、LPVOID DeviceString 设备字符串的ASCII码

3、DWORD Options 选择返回的字符串中包含USB的SN,VN,PN等信息的ASCII码,要用chr$()转换和val()相互转换,如下所示:

0表示返回的字符串为usb的SN(如:返回1234);

1表示返回的字符串为USB的驱动程序的名称(如:返回USBXpress Device);

2表示返回的字符串为USB的全部信息包括VID,PID,SN,注册序列号(如:返回\\?\usb#vid_10c4&pid_ea61#1234#{3c5e1462-5695-4e18-876b-f3f3d08aaf18});

3表示返回USB的VID(如:返回10C4);

4表示返回USB的PID(如:EA61)

 

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3