📄 ioctl.h
字号:
/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
ioctl.h
Abstract:
Environment:
Kernel & user mode
Revision History:
5-10-96 : created
--*/
#define D12_IOCTL_INDEX 0x0000
#define IOCTL_1581_GET_CONFIG_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, \
D12_IOCTL_INDEX,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_1581_RESET_DEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, \
D12_IOCTL_INDEX+1,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_1581_RESET_PIPE CTL_CODE(FILE_DEVICE_UNKNOWN, \
D12_IOCTL_INDEX+2,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_1581_GET_DEVICE_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, \
D12_IOCTL_INDEX+4,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define FILE_DEVICE_USB_SCAN 0x8000
#define IOCTL_INDEX 0x0800
#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_FIRMWARE_DESCRIPTOR CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+5,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_SET_TRANSFER_PARAMETER CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+6,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_SET_FIRMWARE_STATUS CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+7,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_SET_ISOC_IN CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+8,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define IOCTL_SET_ISOC_OUT CTL_CODE(FILE_DEVICE_USB_SCAN,IOCTL_INDEX+9,METHOD_BUFFERED,FILE_ANY_ACCESS)
#include <PSHPACK1.H>
#define DIR_IN 1
#define DIR_OUT 0
typedef struct _IO_BLOCK {
IN unsigned uOffset;
IN unsigned uLength;
IN OUT PUCHAR pbyData;
IN unsigned uIndex;
} IO_BLOCK, *PIO_BLOCK;
typedef struct _IO_REQUEST {
unsigned short uAddressL;
unsigned char bAddressH;
unsigned short uSize;
unsigned char bCommand;
} IO_REQUEST, *PIO_REQUEST;
typedef struct _ERROR_INDEX {
unsigned long Err_Index;
unsigned short uReserved;
} ERROR_INDEX, *PERROR_INDEX;
typedef struct _FW_REQUEST {
ULONG dwOffset;
ULONG dwLength;
UCHAR cOutCmd;
UCHAR cInCmd;
USHORT wloopIndex;
} FW_REQUEST, *PFW_REQUEST;
typedef struct _FW_DESC {
UCHAR bLength;
UCHAR bDescType;
USHORT wTotallength;
UCHAR bNoofConfig;
UCHAR bDescValue;
UCHAR bReserved;
UCHAR bIDescriptor;
} FW_DESC, *PFW_DESC;
typedef struct _FW_CONF_DESC {
UCHAR bLength;
UCHAR bConfigNo;
ULONG dwTotalMemSize;
UCHAR bNoofLoop;
UCHAR bConfigType;
} FW_CONF_DESC, *PFW_CONF_DESC;
typedef struct _FW_LOOP_DESC {
UCHAR bLength;
UCHAR bLoopIndex;
ULONG dwMemorySize;
ULONG dwMemoryOffset;
UCHAR bLoopType;
UCHAR bEndpNo;
UCHAR bTransferConfigParam;
UCHAR bEndpConfigParam;
} FW_LOOP_DESC, *PFW_LOOP_DESC;
typedef struct _FW_COMPLETE_DESC {
FW_DESC fwDesc;
FW_CONF_DESC fwConfig;
FW_LOOP_DESC fwLoopDesc;
} FW_COMPLETE_DESC, *PFW_COMPLETE_DESC;
#define SETUP_DMA_REQUEST 0x471
#define GET_FIRMWARE_VERSION 0x472
#define SETUP_E2PROM_REQUEST 0x474
// Get the details from Firmware
#define GET_FIRMWARE_DESCRIPTOR 0x01
// Set the Transfer Parameter
#define SET_TRANSFER_PARAMETER 0x02
// Set the Status of the firmware
#include <POPPACK.H>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -