windows-nt/Source/XPSP1/NT/public/ddk/inc/wdm/usbprint.h
2020-09-26 16:20:57 +08:00

153 lines
6.8 KiB
C

/*++
Copyright (c) 1998 - 2000 Microsoft Corporation
Module Name:
ioctl.h
Abstract:
Environment:
Kernel & user mode
Revision History:
--*/
#define USBPRINT_IOCTL_INDEX 0x0000
// @@BEGIN_DDKSPLIT
#define IOCTL_USBPRINT_GET_PIPE_INFO CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_GET_CONFIG_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+1,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_SET_PIPE_PARAMETER CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+2,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_STOP_ISO_STREAM CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+3,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_START_ISO_STREAM CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+4,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_REGISTER_NOTIFY_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+5,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_START_PERF_TIMER CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+6,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_STOP_PERF_TIMER CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+7,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_RETURN_PERF_DATA CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+8,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_RESET_DEVICE CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+9,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_CLOCK_MASTER_TEST CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+10,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_RESET_PIPE CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+11,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
// @@END_DDKSPLIT
#define IOCTL_USBPRINT_GET_LPT_STATUS CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+12,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_GET_1284_ID CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+13,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_VENDOR_SET_COMMAND CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+14,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_VENDOR_GET_COMMAND CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+15,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IOCTL_USBPRINT_SOFT_RESET CTL_CODE(FILE_DEVICE_UNKNOWN, \
USBPRINT_IOCTL_INDEX+16,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
// @@BEGIN_DDKSPLIT
#include <PSHPACK1.H>
#define BULK 0
#define INTERRUPT 1
#define CONTROL 2
#define ISO 3
typedef struct _USBPRINT_PIPE_PERF_INFO {
ULONG BytesPerSecond;
ULONG ClockCyclesPerByte;
} USBPRINT_PIPE_PERF_INFO, *PUSBPRINT_PIPE_PERF_INFO;
typedef struct _USBPRINT_PIPE_INFO {
BOOLEAN In;
UCHAR PipeType;
UCHAR EndpointAddress;
UCHAR Interval;
ULONG MaximumPacketSize;
ULONG MaximumTransferSize;
UCHAR Name[32];
USBPRINT_PIPE_PERF_INFO PerfInfo;
} USBPRINT_PIPE_INFO, *PUSBPRINT_PIPE_INFO;
typedef struct _USBPRINT_INTERFACE_INFO {
ULONG PipeCount;
USBPRINT_PIPE_INFO Pipes[0];
} USBPRINT_INTERFACE_INFO, *PUSBPRINT_INTERFACE_INFO;
#include <POPPACK.H>
// @@END_DDKSPLIT