📄 ezusbdeviceioctl.h
字号:
// EzUsbDeviceIoctl.h
//=============================================================================
//
// Compuware Corporation
// NuMega Lab
// 9 Townsend West
// Nashua, NH 03060 USA
//
// Copyright (c) 1999 Compuware Corporation. All Rights Reserved.
// Unpublished - rights reserved under the Copyright laws of the
// United States.
//
//=============================================================================
#ifndef __EzUsbDeviceIoctl__h_
#define __EzUsbDeviceIoctl__h_
//====================================================================================================================
// The following are the I/O control codes that this driver supports
//
#define IOCTL_EZUSB_GET_PIPE_INFO CTL_CODE( FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_GET_DEVICE_DESCRIPTOR CTL_CODE( FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_GET_CONFIG_DESCRIPTOR CTL_CODE( FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_VENDOR_REQUEST CTL_CODE( FILE_DEVICE_UNKNOWN, 0x805, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_ANCHOR_DOWNLOAD2 CTL_CODE( FILE_DEVICE_UNKNOWN, 0x807, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_RESET CTL_CODE( FILE_DEVICE_UNKNOWN, 0x80C, METHOD_IN_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_RESETPIPE CTL_CODE( FILE_DEVICE_UNKNOWN, 0x80D, METHOD_IN_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_ABORTPIPE CTL_CODE( FILE_DEVICE_UNKNOWN, 0x80F, METHOD_IN_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_SETINTERFACE CTL_CODE( FILE_DEVICE_UNKNOWN, 0x810, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_GET_STRING_DESCRIPTOR CTL_CODE( FILE_DEVICE_UNKNOWN, 0x811, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_BULK_READ CTL_CODE( FILE_DEVICE_UNKNOWN, 0x813, METHOD_OUT_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_BULK_WRITE CTL_CODE( FILE_DEVICE_UNKNOWN, 0x814, METHOD_IN_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_GET_CURRENT_FRAME_NUM CTL_CODE( FILE_DEVICE_UNKNOWN, 0x815, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST CTL_CODE( FILE_DEVICE_UNKNOWN, 0x816, METHOD_IN_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_GET_LAST_ERROR CTL_CODE( FILE_DEVICE_UNKNOWN, 0x817, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_ISO_READ CTL_CODE( FILE_DEVICE_UNKNOWN, 0x819, METHOD_OUT_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_ISO_WRITE CTL_CODE( FILE_DEVICE_UNKNOWN, 0x81A, METHOD_IN_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_ANCHOR_DOWNLOAD CTL_CODE( FILE_DEVICE_UNKNOWN, 0x81B, METHOD_IN_DIRECT, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_GET_DRIVER_VERSION CTL_CODE( FILE_DEVICE_UNKNOWN, 0x81D, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_START_ISO_STREAM CTL_CODE( FILE_DEVICE_UNKNOWN, 0x81E, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_STOP_ISO_STREAM CTL_CODE( FILE_DEVICE_UNKNOWN, 0x81F, METHOD_BUFFERED, FILE_ANY_ACCESS )
#define IOCTL_EZUSB_READ_ISO_BUFFER CTL_CODE( FILE_DEVICE_UNKNOWN, 0x820, METHOD_OUT_DIRECT, FILE_ANY_ACCESS )
// The following are unsupported I/O control codes (for future)
//#define IOCTL_EZUSB_BULK_OR_INTERRUPT_WRITE CTL_CODE( FILE_DEVICE_UNKNOWN, 0x803, METHOD_BUFFERED, FILE_ANY_ACCESS )
//#define IOCTL_EZUSB_BULK_OR_INTERRUPT_READ CTL_CODE( FILE_DEVICE_UNKNOWN, 0x804, METHOD_BUFFERED, FILE_ANY_ACCESS )
//#define IOCTL_EZUSB_GET_CURRENT_CONFIG CTL_CODE( FILE_DEVICE_UNKNOWN, 0x806, METHOD_BUFFERED, FILE_ANY_ACCESS )
//=============================================================================
// The following are required data structures used for DeviceIoControl.
// Applications will pass data to the driver using these data structures
// This data structure is used for IOCTL_EZUSB_VENDOR_REQUEST
typedef struct _VENDOR_REQUEST_IN
{
UCHAR bRequest;
USHORT wValue;
USHORT wIndex;
USHORT wLength;
UCHAR direction;
UCHAR bData;
} VENDOR_REQUEST_IN, *PVENDOR_REQUEST_IN;
// This data structure is used for IOCTL_EZUSB_SETINTERFACE
typedef struct _SET_INTERFACE_IN
{
UCHAR interfaceNum;
UCHAR alternateSetting;
} SET_INTERFACE_IN, *PSET_INTERFACE_IN;
// This data structure is used for IOCTL_EZUSB_GET_STRING_DESCRIPTOR
typedef struct _GET_STRING_DESCRIPTOR_IN
{
UCHAR Index;
USHORT LanguageId;
} GET_STRING_DESCRIPTOR_IN, *PGET_STRING_DESCRIPTOR_IN;
// This data structure is used for IOCTL_EZUSB_BULK_READ and IOCTL_EZUSB_BULK_WRITE
typedef struct _BULK_TRANSFER_CONTROL
{
ULONG pipeNum;
} BULK_TRANSFER_CONTROL, *PBULK_TRANSFER_CONTROL;
// This data structure is used for IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST
typedef struct _VENDOR_OR_CLASS_REQUEST_CONTROL
{
UCHAR direction;
UCHAR requestType;
UCHAR recepient;
UCHAR requestTypeReservedBits;
UCHAR request;
USHORT value;
USHORT index;
} VENDOR_OR_CLASS_REQUEST_CONTROL, *PVENDOR_OR_CLASS_REQUEST_CONTROL;
// This data structure is used for IOCTL_EZUSB_READ_ISO_BUFFER, IOCTL_EZUSB_ISO_READ,
// IOCTL_EZUSB_ISO_WRITE, and IOCTL_EZUSB_START_ISO_STREAM
typedef struct _ISO_TRANSFER_CONTROL
{
ULONG PipeNum;
ULONG PacketSize;
ULONG PacketCount;
ULONG FramesPerBuffer;
ULONG BufferCount;
} ISO_TRANSFER_CONTROL, *PISO_TRANSFER_CONTROL;
// This data structure is used for IOCTL_EZUSB_ANCHOR_DOWNLOAD
typedef struct _ANCHOR_DOWNLOAD_CONTROL
{
USHORT Offset;
} ANCHOR_DOWNLOAD_CONTROL, *PANCHOR_DOWNLOAD_CONTROL;
// This data structure is used for IOCTL_EZUSB_GET_DRIVER_VERSION
typedef struct _EZUSB_DRIVER_VERSION
{
USHORT MajorVersion;
USHORT MinorVersion;
USHORT BuildVersion;
} EZUSB_DRIVER_VERSION, *PEZUSB_DRIVER_VERSION;
#define EZUSB_MAJOR_VERSION 01
#define EZUSB_MINOR_VERSION 01
#define EZUSB_BUILD_VERSION 0000
#endif // __EzUsbDeviceIoctl__h_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -