#define USB_BUSIFFN __stdcall
#endif
-#define CD_ERR_V1 0x00000001
+#define CD_ERR_V1 0x00000001
-#define ID_ERR_V1 0x00000001
+#define ID_ERR_V1 0x00000001
#define USBD_KEEP_DEVICE_DATA 0x00000001
#define USBD_MARK_DEVICE_BUSY 0x00000002
-#define USB_IDLE_NOT_READY 0
-#define USB_IDLE_READY 1
+#define USB_IDLE_NOT_READY 0
+#define USB_IDLE_READY 1
typedef
NTSTATUS
IN PUSB_DEVICE_HANDLE HubDeviceHandle,
IN USHORT PortStatus,
IN USHORT PortNumber);
-
typedef USB_BUSIFFN_CREATE_USB_DEVICE *PUSB_BUSIFFN_CREATE_USB_DEVICE;
typedef enum _USBPORT_CREATEDEV_ERROR {
} USBPORT_CREATEDEV_ERROR;
typedef struct _USB_CD_ERROR_INFORMATION {
- ULONG Version;
- USBPORT_CREATEDEV_ERROR PathError;
- ULONG UlongArg1;
- ULONG UlongArg2;
- NTSTATUS NtStatus;
- UCHAR XtraInfo[64];
+ ULONG Version;
+ USBPORT_CREATEDEV_ERROR PathError;
+ ULONG UlongArg1;
+ ULONG UlongArg2;
+ NTSTATUS NtStatus;
+ UCHAR XtraInfo[64];
} USB_CD_ERROR_INFORMATION, *PUSB_CD_ERROR_INFORMATION;
typedef
NTSTATUS
USB_BUSIFFN
USB_BUSIFFN_CREATE_USB_DEVICE_EX (
- IN PVOID BusContext,
- OUT PUSB_DEVICE_HANDLE *NewDeviceHandle,
- IN PUSB_DEVICE_HANDLE HsHubDeviceHandle,
- IN USHORT PortStatus,
- IN USHORT PortNumber,
- OUT PUSB_CD_ERROR_INFORMATION CdErrorInfo,
+ IN PVOID BusContext,
+ OUT PUSB_DEVICE_HANDLE *NewDeviceHandle,
+ IN PUSB_DEVICE_HANDLE HsHubDeviceHandle,
+ IN USHORT PortStatus,
+ IN USHORT PortNumber,
+ OUT PUSB_CD_ERROR_INFORMATION CdErrorInfo,
IN USHORT TtPortNumber);
-
typedef USB_BUSIFFN_CREATE_USB_DEVICE_EX *PUSB_BUSIFFN_CREATE_USB_DEVICE_EX;
typedef struct _USB_PORT_PATH {
- ULONG PortPathDepth;
- ULONG PortPath[6];
+ ULONG PortPathDepth;
+ ULONG PortPath[6];
} USB_PORT_PATH, *PUSB_PORT_PATH;
typedef
NTSTATUS
USB_BUSIFFN
USB_BUSIFFN_CREATE_USB_DEVICE_V7 (
- IN PVOID BusContext,
- OUT PUSB_DEVICE_HANDLE *NewDeviceHandle,
- IN PUSB_DEVICE_HANDLE HsHubDeviceHandle,
- IN USHORT PortStatus,
- IN PUSB_PORT_PATH PortPath,
- OUT PUSB_CD_ERROR_INFORMATION CdErrorInfo,
- IN USHORT TtPortNumber,
- IN PDEVICE_OBJECT PdoDeviceObject,
- IN PUNICODE_STRING PhysicalDeviceObjectName);
-
+ IN PVOID BusContext,
+ OUT PUSB_DEVICE_HANDLE *NewDeviceHandle,
+ IN PUSB_DEVICE_HANDLE HsHubDeviceHandle,
+ IN USHORT PortStatus,
+ IN PUSB_PORT_PATH PortPath,
+ OUT PUSB_CD_ERROR_INFORMATION CdErrorInfo,
+ IN USHORT TtPortNumber,
+ IN PDEVICE_OBJECT PdoDeviceObject,
+ IN PUNICODE_STRING PhysicalDeviceObjectName);
typedef USB_BUSIFFN_CREATE_USB_DEVICE_V7 *PUSB_BUSIFFN_CREATE_USB_DEVICE_V7;
typedef enum _USBPORT_INITDEV_ERROR {
NTSTATUS
USB_BUSIFFN
USB_BUSIFFN_INITIALIZE_USB_DEVICE (
- IN PVOID BusContext,
- IN OUT PUSB_DEVICE_HANDLE DeviceHandle);
-
+ IN PVOID BusContext,
+ IN OUT PUSB_DEVICE_HANDLE DeviceHandle);
typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE;
typedef
NTSTATUS
USB_BUSIFFN
USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX (
- IN PVOID BusContext,
- IN OUT PUSB_DEVICE_HANDLE DeviceHandle,
- OUT PUSB_ID_ERROR_INFORMATION IdErrInfo);
-
+ IN PVOID BusContext,
+ IN OUT PUSB_DEVICE_HANDLE DeviceHandle,
+ OUT PUSB_ID_ERROR_INFORMATION IdErrInfo);
typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX;
typedef
NTSTATUS
USB_BUSIFFN
USB_BUSIFFN_REMOVE_USB_DEVICE (
- IN PVOID BusContext,
- IN OUT PUSB_DEVICE_HANDLE DeviceHandle,
- IN ULONG Flags);
-
+ IN PVOID BusContext,
+ IN OUT PUSB_DEVICE_HANDLE DeviceHandle,
+ IN ULONG Flags);
typedef USB_BUSIFFN_REMOVE_USB_DEVICE *PUSB_BUSIFFN_REMOVE_USB_DEVICE;
typedef
IN OUT PULONG DeviceDescriptorBufferLength,
OUT PUCHAR ConfigDescriptorBuffer,
IN OUT PULONG ConfigDescriptorBufferLength);
-
typedef USB_BUSIFFN_GET_USB_DESCRIPTORS *PUSB_BUSIFFN_GET_USB_DESCRIPTORS;
typedef
IN PVOID BusContext,
IN OUT PUSB_DEVICE_HANDLE OldDeviceHandle,
IN OUT PUSB_DEVICE_HANDLE NewDeviceHandle);
-
typedef USB_BUSIFFN_RESTORE_DEVICE *PUSB_BUSIFFN_RESTORE_DEVICE;
typedef
USB_BUSIFFN_GET_POTRTHACK_FLAGS (
IN PVOID BusContext,
IN OUT PULONG Flags);
-
typedef USB_BUSIFFN_GET_POTRTHACK_FLAGS *PUSB_BUSIFFN_GET_POTRTHACK_FLAGS;
typedef
OUT PVOID DeviceInformationBuffer,
IN ULONG DeviceInformationBufferLength,
IN OUT PULONG LengthOfDataCopied);
-
typedef USB_BUSIFFN_GET_DEVICE_INFORMATION *PUSB_BUSIFFN_GET_DEVICE_INFORMATION;
typedef
IN OUT PVOID ControllerInformationBuffer,
IN ULONG ControllerInformationBufferLength,
IN OUT PULONG LengthOfDataCopied);
-
typedef USB_BUSIFFN_GET_CONTROLLER_INFORMATION *PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION;
typedef
USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND (
IN PVOID BusContext,
IN BOOLEAN Enable);
-
typedef USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND *PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND;
typedef
IN PVOID HubInformationBuffer,
IN ULONG HubInformationBufferLength,
OUT PULONG LengthOfDataCopied);
-
typedef USB_BUSIFFN_GET_EXTENDED_HUB_INFO *PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO;
typedef
IN PVOID HubSymNameBuffer,
IN ULONG HubSymNameBufferLength,
OUT PULONG HubSymNameActualLength);
-
typedef USB_BUSIFFN_GET_ROOTHUB_SYM_NAME *PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME;
typedef
USB_BUSIFFN_GET_DEVICE_BUSCONTEXT (
IN PVOID HubBusContext,
IN PVOID DeviceHandle);
-
typedef USB_BUSIFFN_GET_DEVICE_BUSCONTEXT *PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT;
typedef
IN PVOID BusContext,
IN PUSB_DEVICE_HANDLE HubDeviceHandle,
IN ULONG TtCount);
-
typedef USB_BUSIFFN_INITIALIZE_20HUB *PUSB_BUSIFFN_INITIALIZE_20HUB;
typedef
USB_BUSIFFN_IS_ROOT (
IN PVOID BusContext,
IN PVOID DeviceObject);
-
typedef USB_BUSIFFN_IS_ROOT *PUSB_BUSIFFN_IS_ROOT;
typedef
USB_BUSIFFN
USB_BUSIFFN_ACQUIRE_SEMAPHORE (
IN PVOID BusContext);
-
typedef USB_BUSIFFN_ACQUIRE_SEMAPHORE *PUSB_BUSIFFN_ACQUIRE_SEMAPHORE;
typedef
USB_BUSIFFN
USB_BUSIFFN_RELEASE_SEMAPHORE (
IN PVOID BusContext);
-
typedef USB_BUSIFFN_RELEASE_SEMAPHORE *PUSB_BUSIFFN_RELEASE_SEMAPHORE;
typedef
__stdcall
RH_INIT_CALLBACK (
IN PVOID CallBackContext);
-
typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK;
typedef
IN PVOID BusContext,
IN PVOID CallbackContext,
IN PRH_INIT_CALLBACK CallbackRoutine);
-
typedef USB_BUSIFFN_ROOTHUB_INIT_NOTIFY *PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY;
typedef
USB_BUSIFFN_FLUSH_TRANSFERS (
IN PVOID BusContext,
IN PVOID DeviceHandle);
-
typedef USB_BUSIFFN_FLUSH_TRANSFERS *PUSB_BUSIFFN_FLUSH_TRANSFERS;
typedef
IN PVOID BusContext,
IN PUSBD_PIPE_INFORMATION PipeInfo,
IN USB_DEVICE_SPEED DeviceSpeed);
-
typedef USB_BUSIFFN_CALC_PIPE_BANDWIDTH *PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH;
typedef
USB_BUSIFFN_SET_BUS_WAKE_MODE (
IN PVOID BusContext,
IN ULONG Mode);
-
typedef USB_BUSIFFN_SET_BUS_WAKE_MODE *PUSB_BUSIFFN_SET_BUS_WAKE_MODE;
typedef
IN GUID *DeviceFlagGuid,
IN PVOID ValueData,
IN ULONG ValueLength);
-
typedef USB_BUSIFFN_SET_DEVICE_FLAG *PUSB_BUSIFFN_SET_DEVICE_FLAG;
typedef
IN PVOID BusContext,
IN PVOID DeviceHandle,
IN PDEVICE_OBJECT UsbDevicePdo);
-
typedef USB_BUSIFFN_SET_DEVHANDLE_DATA *PUSB_BUSIFFN_SET_DEVHANDLE_DATA;
typedef
IN PVOID DeviceHandle,
IN ULONG Opcode,
IN PVOID TestData);
-
typedef USB_BUSIFFN_TEST_POINT *PUSB_BUSIFFN_TEST_POINT;
typedef
OUT PVOID DeviceInformationBuffer,
IN ULONG DeviceInformationBufferLength,
IN OUT PULONG LengthOfDataCopied);
-
typedef USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO *PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO;
typedef
USB_BUSIFFN
USB_BUSIFFN_WAIT_ASYNC_POWERUP (
IN PVOID BusContext);
-
typedef USB_BUSIFFN_WAIT_ASYNC_POWERUP *PUSB_BUSIFFN_WAIT_ASYNC_POWERUP;
typedef
IN PVOID BusContext,
IN PUSB_DEVICE_HANDLE DeviceHandle,
OUT PUSHORT DeviceAddress);
-
typedef USB_BUSIFFN_GET_DEVICE_ADDRESS *PUSB_BUSIFFN_GET_DEVICE_ADDRESS;
typedef
IN PUSB_DEVICE_HANDLE DeviceHandle,
IN PVOID Object,
IN ULONG Tag);
-
typedef USB_BUSIFFN_DEREF_DEVICE_HANDLE *PUSB_BUSIFFN_DEREF_DEVICE_HANDLE;
typedef
IN PUSB_DEVICE_HANDLE DeviceHandle,
IN PVOID Object,
IN ULONG Tag);
-
typedef USB_BUSIFFN_REF_DEVICE_HANDLE *PUSB_BUSIFFN_REF_DEVICE_HANDLE;
typedef
IN PVOID BusContext,
IN PUSB_DEVICE_HANDLE DeviceHandle,
IN ULONG NewIdleReadyState);
-
typedef USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE *PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE;
typedef
IN PVOID BusContext,
IN USHORT PortNumber,
OUT LPGUID ContainerId);
-
typedef USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT;
typedef
IN PVOID BusContext,
IN USHORT PortNumber,
IN LPGUID ContainerId);
-
typedef USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT;
typedef
USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES (
IN PVOID BusContext,
IN PUSB_DEVICE_HANDLE DeviceHandle);
-
typedef USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES *PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES;
#define ERRATA_FLAG_RESET_TT_ON_CANCEL 1
IN PVOID BusContext,
IN PUSB_DEVICE_HANDLE DeviceHandle,
IN ULONG DeviceErrataFlag);
-
typedef USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG *PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG;
DEFINE_GUID(USB_BUS_INTERFACE_HUB_GUID,
-0xb2bb8c0a, 0x5ab4, 0x11d3, 0xa8, 0xcd, 0x0, 0xc0, 0x4f, 0x68, 0x74, 0x7a);
+ 0xb2bb8c0a, 0x5ab4, 0x11d3, 0xa8, 0xcd, 0x0, 0xc0, 0x4f, 0x68, 0x74, 0x7a);
typedef struct _USB_BUS_INTERFACE_HUB_V0 {
USHORT Size;
} USB_BUS_INTERFACE_HUB_V7, *PUSB_BUS_INTERFACE_HUB_V7;
DEFINE_GUID(USB_BUS_INTERFACE_HUB_MINIDUMP_GUID,
-0xc5485f21, 0x4e81, 0x4a23, 0xa8, 0xf9, 0xd8, 0x51, 0x8a, 0xf4, 0x5c, 0x38);
+ 0xc5485f21, 0x4e81, 0x4a23, 0xa8, 0xf9, 0xd8, 0x51, 0x8a, 0xf4, 0x5c, 0x38);
typedef VOID
(USB_BUSIFFN *PUSB_BUSIFFN_SET_MINIDUMP_FLAGS) (
} USB_BUS_INTERFACE_HUB_MINIDUMP, *PUSB_BUS_INTERFACE_HUB_MINIDUMP;
DEFINE_GUID(USB_BUS_INTERFACE_HUB_SS_GUID,
-0xbfc3f363, 0x8ba1, 0x4c7b, 0x97, 0xba, 0x9b, 0x12, 0xb1, 0xca, 0x13, 0x2f);
+ 0xbfc3f363, 0x8ba1, 0x4c7b, 0x97, 0xba, 0x9b, 0x12, 0xb1, 0xca, 0x13, 0x2f);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_SUSPEND_HUB) (
PDEVICE_OBJECT Pdo);
typedef struct _USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_SUSPEND_HUB SuspendHub;
- PUSB_BUSIFFN_RESUME_HUB ResumeHub;
+ USHORT Size;
+ USHORT Version;
+ PVOID BusContext;
+ PINTERFACE_REFERENCE InterfaceReference;
+ PINTERFACE_DEREFERENCE InterfaceDereference;
+ PUSB_BUSIFFN_SUSPEND_HUB SuspendHub;
+ PUSB_BUSIFFN_RESUME_HUB ResumeHub;
} USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND, *PUSB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND;
#include <pshpack1.h>
typedef struct _USB_PIPE_INFORMATION_0 {
- USB_ENDPOINT_DESCRIPTOR EndpointDescriptor;
- UCHAR ED_Pad[1];
- ULONG ScheduleOffset;
+ USB_ENDPOINT_DESCRIPTOR EndpointDescriptor;
+ UCHAR ED_Pad[1];
+ ULONG ScheduleOffset;
} USB_PIPE_INFORMATION_0, *PUSB_PIPE_INFORMATION_0;
typedef struct _USB_LEVEL_INFORMATION {
- ULONG InformationLevel;
- ULONG ActualLength;
+ ULONG InformationLevel;
+ ULONG ActualLength;
} USB_LEVEL_INFORMATION, *PUSB_LEVEL_INFORMATION;
typedef struct _USB_DEVICE_INFORMATION_0 {
- ULONG InformationLevel;
- ULONG ActualLength;
- ULONG PortNumber;
- USB_DEVICE_DESCRIPTOR DeviceDescriptor;
- UCHAR DD_pad[2];
- UCHAR CurrentConfigurationValue;
- UCHAR ReservedMBZ;
- USHORT DeviceAddress;
- ULONG HubAddress;
- USB_DEVICE_SPEED DeviceSpeed;
- USB_DEVICE_TYPE DeviceType;
- ULONG NumberOfOpenPipes;
- USB_PIPE_INFORMATION_0 PipeList[1];
+ ULONG InformationLevel;
+ ULONG ActualLength;
+ ULONG PortNumber;
+ USB_DEVICE_DESCRIPTOR DeviceDescriptor;
+ UCHAR DD_pad[2];
+ UCHAR CurrentConfigurationValue;
+ UCHAR ReservedMBZ;
+ USHORT DeviceAddress;
+ ULONG HubAddress;
+ USB_DEVICE_SPEED DeviceSpeed;
+ USB_DEVICE_TYPE DeviceType;
+ ULONG NumberOfOpenPipes;
+ USB_PIPE_INFORMATION_0 PipeList[1];
} USB_DEVICE_INFORMATION_0, *PUSB_DEVICE_INFORMATION_0;
typedef struct _USB_CONTROLLER_INFORMATION_0 {
- ULONG InformationLevel;
- ULONG ActualLength;
- BOOLEAN SelectiveSuspendEnabled;
- BOOLEAN IsHighSpeedController;
+ ULONG InformationLevel;
+ ULONG ActualLength;
+ BOOLEAN SelectiveSuspendEnabled;
+ BOOLEAN IsHighSpeedController;
} USB_CONTROLLER_INFORMATION_0, *PUSB_CONTROLLER_INFORMATION_0;
typedef struct _USB_CONTROLLER_INFORMATION_1 {
- ULONG InformationLevel;
- ULONG ActualLength;
- BOOLEAN SelectiveSuspendEnabled;
- BOOLEAN IsHighSpeedController;
- ULONG HcBusNumber;
- ULONG HcBusDevice;
- ULONG HcBusFunction;
+ ULONG InformationLevel;
+ ULONG ActualLength;
+ BOOLEAN SelectiveSuspendEnabled;
+ BOOLEAN IsHighSpeedController;
+ ULONG HcBusNumber;
+ ULONG HcBusDevice;
+ ULONG HcBusFunction;
} USB_CONTROLLER_INFORMATION_1, *PUSB_CONTROLLER_INFORMATION_1;
typedef struct _USB_EXTPORT_INFORMATION_0 {
- ULONG PhysicalPortNumber;
- ULONG PortLabelNumber;
- USHORT VidOverride;
- USHORT PidOverride;
- ULONG PortAttributes;
+ ULONG PhysicalPortNumber;
+ ULONG PortLabelNumber;
+ USHORT VidOverride;
+ USHORT PidOverride;
+ ULONG PortAttributes;
} USB_EXTPORT_INFORMATION_0, *PUSB_EXTPORT_INFORMATION;
typedef struct _USB_EXTHUB_INFORMATION_0 {
- ULONG InformationLevel;
- ULONG NumberOfPorts;
- USB_EXTPORT_INFORMATION_0 Port[255];
+ ULONG InformationLevel;
+ ULONG NumberOfPorts;
+ USB_EXTPORT_INFORMATION_0 Port[255];
} USB_EXTHUB_INFORMATION_0, *PUSB_EXTHUB_INFORMATION_0;
typedef struct _USB_DEVICE_PERFORMANCE_INFO_0 {
- ULONG InformationLevel;
- ULONG ActualLength;
- ULONG BulkBytes;
- ULONG BulkUrbCount;
- ULONG ControlDataBytes;
- ULONG ControlUrbCount;
- ULONG IsoBytes;
- ULONG IsoUrbCount;
- ULONG InterruptBytes;
- ULONG InterruptUrbCount;
- ULONG AllocedInterrupt[6];
- ULONG AllocedIso;
- ULONG Total32secBandwidth;
- ULONG TotalTtBandwidth;
- ULONG TotalIsoLatency;
- ULONG DroppedIsoPackets;
- ULONG TransferErrors;
+ ULONG InformationLevel;
+ ULONG ActualLength;
+ ULONG BulkBytes;
+ ULONG BulkUrbCount;
+ ULONG ControlDataBytes;
+ ULONG ControlUrbCount;
+ ULONG IsoBytes;
+ ULONG IsoUrbCount;
+ ULONG InterruptBytes;
+ ULONG InterruptUrbCount;
+ ULONG AllocedInterrupt[6];
+ ULONG AllocedIso;
+ ULONG Total32secBandwidth;
+ ULONG TotalTtBandwidth;
+ ULONG TotalIsoLatency;
+ ULONG DroppedIsoPackets;
+ ULONG TransferErrors;
} USB_DEVICE_PERFORMANCE_INFO_0, *PUSB_DEVICE_PERFORMANCE_INFO_0;
#include <poppack.h>
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */