/*++ 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 #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 // @@END_DDKSPLIT