一、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)
浙公网安备 33010602011771号