📄 slusb.h
字号:
/***************************************************************************/
/* ScanLogic Header */
/***************************************************************************/
#ifndef __SLUSB_H__
#define __SLUSB_H__
#include "devioctl.h"
#ifndef __USBDI_H__
typedef struct _USB_DEVICE_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
USHORT bcdUSB;
UCHAR bDeviceClass;
UCHAR bDeviceSubClass;
UCHAR bDeviceProtocol;
UCHAR bMaxPacketSize0;
USHORT idVendor;
USHORT idProduct;
USHORT bcdDevice;
UCHAR iManufacturer;
UCHAR iProduct;
UCHAR iSerialNumber;
UCHAR bNumConfigurations;
} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;
#endif
#define SYSFILE "\\\\.\\USBSCAN%d"
#define MAX_USB_DEVICES 15
typedef struct _IO_BLOCK {
unsigned uOffset;
unsigned uLength;
PBYTE pbyData;
} IO_BLOCK, * PIO_BLOCK;
typedef struct _IO_SETUP_PKG
{
UCHAR bmRequest;
UCHAR bRequest;
USHORT wValue;
USHORT wIndex;
USHORT wLength;
PBYTE ioBuff;
} SETUP_PKG, *PSETUP_PKG;
#define DevReq SETUP_PKG
#define pDevReq PSETUP_PKG
typedef struct _PIPE_LIST{
OUT unsigned EventChannelSize;
OUT unsigned uReadDataAlignment;
OUT unsigned uWriteDataAlignment;
} CHANNEL_INFO, * PCHANNEL_INFO;
typedef enum {
EVENT_PIPE,
READ_DATA_PIPE,
WRITE_DATA_PIPE,
ALL
} PIPE_TYPE;
//-------------------------------------------------- definition
#define FILE_DEVICE_USB_SCAN 0x8000
#define IOCTL_INDEX 0x800
#define IOCTL_GET_VERSION \
CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_ABORT_PIPE \
CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+1,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_WAIT_ON_DEVICE_EVENT\
CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+2,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_READ_REGISTERS \
CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+3,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_WRITE_REGISTERS \
CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+4,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_GET_CHANNEL_ALIGN_RQST \
CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+5,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_VENDOR_CONTROL \
CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+6,METHOD_BUFFERED,FILE_ANY_ACCESS)
BOOL FAR PASCAL CloseUsbDev(VOID);
BOOL FAR PASCAL FindUsbDev(WORD wProd);
BOOL UsbVendorCmdRead(BYTE bCmd, WORD wValue, WORD wIndex, WORD wLen, PVOID pData);
BOOL UsbVendorCmdWrite(BYTE bCmd, WORD wValue, WORD wIndex, WORD wLen, PVOID pData);
BOOL UsbDataRead(DWORD n, PVOID pData);
BOOL UsbDataReadPipe(DWORD n, PVOID pData);
BOOL UsbDataWrite(DWORD n, PVOID pData);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -