⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slusb.h

📁 包括EZ811和SL811的文档
💻 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 + -