This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/ddk/usbuser.h

497 lines
16 KiB
C

/*
* usbuser.h USB user mode device I/O control codes
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef __USBUSER_H__
#define __USBUSER_H__
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#if (_WIN32_WINNT >= 0x0501)
#include <usbiodef.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* USB user mode version number */
#if (_WIN32_WINNT >= 0x0501)
#define USBUSER_VERSION 0x00000004L
#endif
/* USB device I/O control codes */
#if (_WIN32_WINNT >= 0x0501)
#define IOCTL_USB_USER_REQUEST USB_CTL( HCD_USER_REQUEST )
#define IOCTL_USB_HCD_GET_STATS_1 USB_CTL( HCD_GET_STATS_1 )
#define IOCTL_USB_HCD_GET_STATS_2 USB_CTL( HCD_GET_STATS_2 )
#define IOCTL_USB_HCD_DISABLE_PORT USB_CTL( HCD_DISABLE_PORT )
#define IOCTL_USB_HCD_ENABLE_PORT USB_CTL( HCD_ENABLE_PORT )
#ifndef IOCTL_USB_DIAGNOSTIC_MODE_ON
#define IOCTL_USB_DIAGNOSTIC_MODE_ON USB_CTL( HCD_DIAGNOSTIC_MODE_ON )
#endif
#ifndef IOCTL_USB_DIAGNOSTIC_MODE_OFF
#define IOCTL_USB_DIAGNOSTIC_MODE_OFF USB_CTL( HCD_DIAGNOSTIC_MODE_OFF )
#endif
#ifndef IOCTL_USB_GET_ROOT_HUB_NAME
#define IOCTL_USB_GET_ROOT_HUB_NAME USB_CTL( HCD_GET_ROOT_HUB_NAME )
#endif
#ifndef IOCTL_USB_GET_HCD_DRIVERKEY_NAME
#define IOCTL_USB_GET_HCD_DRIVERKEY_NAME USB_CTL( HCD_GET_DRIVERKEY_NAME )
#endif
#endif
/* USB user mode request codes */
#if (_WIN32_WINNT >= 0x0501)
#define USBUSER_GET_CONTROLLER_INFO_0 0x00000001L
#define USBUSER_GET_CONTROLLER_DRIVER_KEY 0x00000002L
#define USBUSER_PASS_THRU 0x00000003L
#define USBUSER_GET_POWER_STATE_MAP 0x00000004L
#define USBUSER_GET_BANDWIDTH_INFORMATION 0x00000005L
#define USBUSER_GET_BUS_STATISTICS_0 0x00000006L
#define USBUSER_GET_ROOTHUB_SYMBOLIC_NAME 0x00000007L
#define USBUSER_GET_USB_DRIVER_VERSION 0x00000008L
#define USBUSER_GET_USB2_HW_VERSION 0x00000009L
#define USBUSER_USB_REFRESH_HCT_REG 0x0000000AL
#define USBUSER_OP_SEND_ONE_PACKET 0x10000001L
#define USBUSER_OP_RAW_RESET_PORT 0x20000001L
#define USBUSER_OP_OPEN_RAW_DEVICE 0x20000002L
#define USBUSER_OP_CLOSE_RAW_DEVICE 0x20000003L
#define USBUSER_OP_SEND_RAW_COMMAND 0x20000004L
#define USBUSER_SET_ROOTPORT_FEATURE 0x20000005L
#define USBUSER_CLEAR_ROOTPORT_FEATURE 0x20000006L
#define USBUSER_GET_ROOTPORT_STATUS 0x20000007L
#define USBUSER_INVALID_REQUEST 0xFFFFFFF0L
#define USBUSER_OP_MASK_DEVONLY_API 0x10000000L
#define USBUSER_OP_MASK_HCTEST_API 0x20000000L
#endif
/* USB packet flags */
#if (_WIN32_WINNT >= 0x0501)
#define USB_PACKETFLAG_LOW_SPEED 0x00000001L
#define USB_PACKETFLAG_FULL_SPEED 0x00000002L
#define USB_PACKETFLAG_HIGH_SPEED 0x00000004L
#define USB_PACKETFLAG_ASYNC_IN 0x00000008L
#define USB_PACKETFLAG_ASYNC_OUT 0x00000010L
#define USB_PACKETFLAG_ISO_IN 0x00000020L
#define USB_PACKETFLAG_ISO_OUT 0x00000040L
#define USB_PACKETFLAG_SETUP 0x00000080L
#define USB_PACKETFLAG_TOGGLE0 0x00000100L
#define USB_PACKETFLAG_TOGGLE1 0x00000200L
#endif
/* USB hardware compatibility feature flags */
#if (_WIN32_WINNT >= 0x0501)
#define USB_HC_FEATURE_FLAG_PORT_POWER_SWITCHING 0x00000001L
#define USB_HC_FEATURE_FLAG_SEL_SUSPEND 0x00000002L
#define USB_HC_FEATURE_LEGACY_BIOS 0x00000004L
#endif
/* All structures in this file get one-byte packing. */
#include <pshpack1.h>
/* USB user mode error codes */
#if (_WIN32_WINNT >= 0x0501)
typedef enum _USB_USER_ERROR_CODE {
UsbUserSuccess = 0,
UsbUserNotSupported = 1,
UsbUserInvalidRequestCode = 2,
UsbUserFeatureDisabled = 3,
UsbUserInvalidHeaderParameter = 4,
UsbUserInvalidParameter = 5,
UsbUserMiniportError = 6,
UsbUserBufferTooSmall = 7,
UsbUserErrorNotMapped = 8,
UsbUserDeviceNotStarted = 9,
UsbUserNoDeviceConnected = 10
} USB_USER_ERROR_CODE;
#endif
/* USB user mode request header */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_REQUEST_HEADER {
ULONG UsbUserRequest;
USB_USER_ERROR_CODE UsbUserStatusCode;
ULONG RequestBufferLength;
ULONG ActualBufferLength;
} USBUSER_REQUEST_HEADER;
typedef USBUSER_REQUEST_HEADER *PUSBUSER_REQUEST_HEADER;
#endif
/* Packet parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _PACKET_PARAMETERS {
UCHAR DeviceAddress;
UCHAR EndpointAddress;
USHORT MaximumPacketSize;
ULONG Timeout;
ULONG Flags;
ULONG DataLength;
USHORT HubDeviceAddress;
USHORT PortTTNumber;
UCHAR ErrorCount;
UCHAR Pad[3];
USBD_STATUS UsbdStatusCode;
UCHAR Data[4];
} PACKET_PARAMETERS;
typedef PACKET_PARAMETERS *PPACKET_PARAMETERS;
#endif
/* USBUSER_OP_SEND_ONE_PACKET parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_SEND_ONE_PACKET {
USBUSER_REQUEST_HEADER Header;
PACKET_PARAMETERS PacketParameters;
} USBUSER_SEND_ONE_PACKET;
typedef USBUSER_SEND_ONE_PACKET *PUSBUSER_SEND_ONE_PACKET;
#endif
/* Raw reset port parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _RAW_RESET_PORT_PARAMETERS {
USHORT PortNumber;
USHORT PortStatus;
} RAW_RESET_PORT_PARAMETERS;
typedef RAW_RESET_PORT_PARAMETERS *PRAW_RESET_PORT_PARAMETERS;
#endif
/* USBUSER_OP_RAW_RESET_PORT parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_RAW_RESET_ROOT_PORT {
USBUSER_REQUEST_HEADER Header;
RAW_RESET_PORT_PARAMETERS Parameters;
} USBUSER_RAW_RESET_ROOT_PORT;
typedef USBUSER_RAW_RESET_ROOT_PORT *PUSBUSER_RAW_RESET_ROOT_PORT;
#endif
/* Raw root port feature */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _RAW_ROOTPORT_FEATURE {
USHORT PortNumber;
USHORT PortFeature;
USHORT PortStatus;
} RAW_ROOTPORT_FEATURE;
typedef RAW_ROOTPORT_FEATURE *PRAW_ROOTPORT_FEATURE;
#endif
/* USB user mode root port feature request parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_ROOTPORT_FEATURE_REQUEST {
USBUSER_REQUEST_HEADER Header;
RAW_ROOTPORT_FEATURE Parameters;
} USBUSER_ROOTPORT_FEATURE_REQUEST;
typedef USBUSER_ROOTPORT_FEATURE_REQUEST *PUSBUSER_ROOTPORT_FEATURE_REQUEST;
#endif
/* Raw root port parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _RAW_ROOTPORT_PARAMETERS {
USHORT PortNumber;
USHORT PortStatus;
} RAW_ROOTPORT_PARAMETERS;
typedef RAW_ROOTPORT_PARAMETERS *PRAW_ROOTPORT_PARAMETERS;
#endif
/* USBUSER_GET_ROOTPORT_STATUS parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_ROOTPORT_PARAMETERS {
USBUSER_REQUEST_HEADER Header;
RAW_ROOTPORT_PARAMETERS Parameters;
} USBUSER_ROOTPORT_PARAMETERS;
typedef USBUSER_ROOTPORT_PARAMETERS *PUSBUSER_ROOTPORT_PARAMETERS;
#endif
/* USB controller information */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_CONTROLLER_INFO_0 {
ULONG PciVendorId;
ULONG PciDeviceId;
ULONG PciRevision;
ULONG NumberOfRootPorts;
USB_CONTROLLER_FLAVOR ControllerFlavor;
ULONG HcFeatureFlags;
} USB_CONTROLLER_INFO_0;
typedef USB_CONTROLLER_INFO_0 *PUSB_CONTROLLER_INFO_0;
#endif
/* USBUSER_GET_CONTROLLER_INFO_0 parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_CONTROLLER_INFO_0 {
USBUSER_REQUEST_HEADER Header;
USB_CONTROLLER_INFO_0 Info0;
} USBUSER_CONTROLLER_INFO_0;
typedef USBUSER_CONTROLLER_INFO_0 *PUSBUSER_CONTROLLER_INFO_0;
#endif
/* USB Unicode name */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_UNICODE_NAME {
ULONG Length;
WCHAR String[1];
} USB_UNICODE_NAME;
typedef USB_UNICODE_NAME *PUSB_UNICODE_NAME;
#endif
/* USB user mode controller Unicode name parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_CONTROLLER_UNICODE_NAME {
USBUSER_REQUEST_HEADER Header;
USB_UNICODE_NAME UnicodeName;
} USBUSER_CONTROLLER_UNICODE_NAME;
typedef USBUSER_CONTROLLER_UNICODE_NAME *PUSBUSER_CONTROLLER_UNICODE_NAME;
#endif
/* USB pass through parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_PASS_THRU_PARAMETERS {
GUID FunctionGUID;
ULONG ParameterLength;
UCHAR Parameters[4];
} USB_PASS_THRU_PARAMETERS;
typedef USB_PASS_THRU_PARAMETERS *PUSB_PASS_THRU_PARAMETERS;
#endif
/* USBUSER_PASS_THRU parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_PASS_THRU_REQUEST {
USBUSER_REQUEST_HEADER Header;
USB_PASS_THRU_PARAMETERS PassThru;
} USBUSER_PASS_THRU_REQUEST;
typedef USBUSER_PASS_THRU_REQUEST *PUSBUSER_PASS_THRU_REQUEST;
#endif
/* WDM USB power states */
#if (_WIN32_WINNT >= 0x0501)
typedef enum _WDMUSB_POWER_STATE {
WdmUsbPowerNotMapped = 0,
WdmUsbPowerSystemUnspecified = 100,
WdmUsbPowerSystemWorking = 101,
WdmUsbPowerSystemSleeping1 = 102,
WdmUsbPowerSystemSleeping2 = 103,
WdmUsbPowerSystemSleeping3 = 104,
WdmUsbPowerSystemHibernate = 105,
WdmUsbPowerSystemShutdown = 106,
WdmUsbPowerDeviceUnspecified = 200,
WdmUsbPowerDeviceD0 = 201,
WdmUsbPowerDeviceD1 = 202,
WdmUsbPowerDeviceD2 = 203,
WdmUsbPowerDeviceD3 = 204
} WDMUSB_POWER_STATE;
#endif
/* USB power information */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_POWER_INFO {
WDMUSB_POWER_STATE SystemState;
WDMUSB_POWER_STATE HcDevicePowerState;
WDMUSB_POWER_STATE HcDeviceWake;
WDMUSB_POWER_STATE HcSystemWake;
WDMUSB_POWER_STATE RhDevicePowerState;
WDMUSB_POWER_STATE RhDeviceWake;
WDMUSB_POWER_STATE RhSystemWake;
WDMUSB_POWER_STATE LastSystemSleepState;
BOOLEAN CanWakeup;
BOOLEAN IsPowered;
} USB_POWER_INFO;
typedef USB_POWER_INFO *PUSB_POWER_INFO;
#endif
/* USBUSER_GET_POWER_STATE_MAP parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_POWER_INFO_REQUEST {
USBUSER_REQUEST_HEADER Header;
USB_POWER_INFO PowerInformation;
} USBUSER_POWER_INFO_REQUEST;
typedef USBUSER_POWER_INFO_REQUEST *PUSBUSER_POWER_INFO_REQUEST;
#endif
/* USB open raw device parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_OPEN_RAW_DEVICE_PARAMETERS {
USHORT PortStatus;
USHORT MaxPacketEp0;
} USB_OPEN_RAW_DEVICE_PARAMETERS;
typedef USB_OPEN_RAW_DEVICE_PARAMETERS *PUSB_OPEN_RAW_DEVICE_PARAMETERS;
#endif
/* USBUSER_OP_OPEN_RAW_DEVICE parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_OPEN_RAW_DEVICE {
USBUSER_REQUEST_HEADER Header;
USB_OPEN_RAW_DEVICE_PARAMETERS Parameters;
} USBUSER_OPEN_RAW_DEVICE;
typedef USBUSER_OPEN_RAW_DEVICE *PUSBUSER_OPEN_RAW_DEVICE;
#endif
/* USB close raw device parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_CLOSE_RAW_DEVICE_PARAMETERS {
ULONG xxx;
} USB_CLOSE_RAW_DEVICE_PARAMETERS;
typedef USB_CLOSE_RAW_DEVICE_PARAMETERS *PUSB_CLOSE_RAW_DEVICE_PARAMETERS;
#endif
/* USBUSER_OP_CLOSE_RAW_DEVICE parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_CLOSE_RAW_DEVICE {
USBUSER_REQUEST_HEADER Header;
USB_CLOSE_RAW_DEVICE_PARAMETERS Parameters;
} USBUSER_CLOSE_RAW_DEVICE;
typedef USBUSER_CLOSE_RAW_DEVICE *PUSBUSER_CLOSE_RAW_DEVICE;
#endif
/* USB send raw command parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_SEND_RAW_COMMAND_PARAMETERS {
UCHAR Usb_bmRequest;
UCHAR Usb_bRequest;
USHORT Usb_wVlaue;
USHORT Usb_wIndex;
USHORT Usb_wLength;
USHORT DeviceAddress;
USHORT MaximumPacketSize;
ULONG Timeout;
ULONG DataLength;
USBD_STATUS UsbdStatusCode;
UCHAR Data[4];
} USB_SEND_RAW_COMMAND_PARAMETERS;
typedef USB_SEND_RAW_COMMAND_PARAMETERS *PUSB_SEND_RAW_COMMAND_PARAMETERS;
#endif
/* USBUSER_SEND_RAW_COMMAND parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_SEND_RAW_COMMAND {
USBUSER_REQUEST_HEADER Header;
USB_SEND_RAW_COMMAND_PARAMETERS Parameters;
} USBUSER_SEND_RAW_COMMAND;
typedef USBUSER_SEND_RAW_COMMAND *PUSBUSER_SEND_RAW_COMMAND;
#endif
/* USB bandwidth information */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_BANDWIDTH_INFO {
ULONG DeviceCount;
ULONG TotalBusBandwidth;
ULONG Total32secBandwidth;
ULONG AllocedBulkAndControl;
ULONG AllocedIso;
ULONG AllocedInterrupt_1ms;
ULONG AllocedInterrupt_2ms;
ULONG AllocedInterrupt_4ms;
ULONG AllocedInterrupt_8ms;
ULONG AllocedInterrupt_16ms;
ULONG AllocedInterrupt_32ms;
} USB_BANDWIDTH_INFO;
typedef USB_BANDWIDTH_INFO *PUSB_BANDWIDTH_INFO;
#endif
/* USBUSER_GET_BANDWIDTH_INFORMATION parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_BANDWIDTH_INFO_REQUEST {
USBUSER_REQUEST_HEADER Header;
USB_BANDWIDTH_INFO BandwidthInformation;
} USBUSER_BANDWIDTH_INFO_REQUEST;
typedef USBUSER_BANDWIDTH_INFO_REQUEST *PUSBUSER_BANDWIDTH_INFO_REQUEST;
#endif
/* USB bus statistics */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_BUS_STATISTICS_0 {
ULONG DeviceCount;
LARGE_INTEGER CurrentSystemTime;
ULONG CurrentUsbFrame;
ULONG BulkBytes;
ULONG IsoBytes;
ULONG InterruptBytes;
ULONG ControlDataBytes;
ULONG PciInterruptCount;
ULONG HardResetCount;
ULONG WorkerSignalCount;
ULONG CommonBufferBytes;
ULONG WorkerIdleTimeMs;
BOOLEAN RootHubEnabled;
UCHAR RootHubDevicePowerState;
UCHAR Unused;
UCHAR NameIndex;
} USB_BUS_STATISTICS_0;
typedef USB_BUS_STATISTICS_0 *PUSB_BUS_STATISTICS_0;
#endif
/* USBUSER_BUS_STATISTICS_0 parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_BUS_STATISTICS_0_REQUEST {
USBUSER_REQUEST_HEADER Header;
USB_BUS_STATISTICS_0 BusStatistics0;
} USBUSER_BUS_STATISTICS_0_REQUEST;
typedef USBUSER_BUS_STATISTICS_0_REQUEST *PUSBUSER_BUS_STATISTICS_0_REQUEST;
#endif
/* USB driver version parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_DRIVER_VERSION_PARAMETERS {
ULONG DriverTrackingCode;
ULONG USBDI_Version;
ULONG USBUSER_Version;
BOOLEAN CheckedPortDriver;
BOOLEAN CheckedMiniportDriver;
USHORT USB_Version;
} USB_DRIVER_VERSION_PARAMETERS;
typedef USB_DRIVER_VERSION_PARAMETERS *PUSB_DRIVER_VERSION_PARAMETERS;
#endif
/* USBUSER_GET_USB_DRIVER_VERSION parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_GET_DRIVER_VERSION {
USBUSER_REQUEST_HEADER Header;
USB_DRIVER_VERSION_PARAMETERS Parameters;
} USBUSER_GET_DRIVER_VERSION;
typedef USBUSER_GET_DRIVER_VERSION *PUSBUSER_GET_DRIVER_VERSION;
#endif
/* USB 2 hardware version parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USB_USB2HW_VERSION_PARAMETERS {
UCHAR Usb2HwRevision;
} USB_USB2HW_VERSION_PARAMETERS;
typedef USB_USB2HW_VERSION_PARAMETERS *PUSB_USB2HW_VERSION_PARAMETERS;
#endif
/* USBUSER_GET_USB2HW_VERSION parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_GET_USB2HW_VERSION {
USBUSER_REQUEST_HEADER Header;
USB_USB2HW_VERSION_PARAMETERS Parameters;
} USBUSER_GET_USB2HW_VERSION;
typedef USBUSER_GET_USB2HW_VERSION *PUSBUSER_GET_USB2HW_VERSION;
#endif
/* USBUSER_REFRESH_G_REG parameters */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _USBUSER_REFRESH_HCT_REG {
USBUSER_REQUEST_HEADER Header;
ULONG Flags;
} USBUSER_REFRESH_HCT_REG;
typedef USBUSER_REFRESH_HCT_REG *PUSBUSER_REFRESH_HCT_REG;
#endif
/* Revert to default packing. */
#include <poppack.h>
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __USBUSER_H__ */