123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793 |
- #pragma once
- #define _HUBBUSIF_
- #include "usbdi.h"
- #if (NTDDI_VERSION >= NTDDI_WINXP)
- #if !defined(_USBBUSIF_)
- typedef PVOID PUSB_DEVICE_HANDLE;
- #endif
- typedef struct _ROOTHUB_PDO_EXTENSION {
- ULONG Signature;
- } ROOTHUB_PDO_EXTENSION, *PROOTHUB_PDO_EXTENSION;
- #define USBD_DEVHACK_SLOW_ENUMERATION 0x00000001
- #define USBD_DEVHACK_DISABLE_SN 0x00000002
- #define USBD_DEVHACK_SET_DIAG_ID 0x00000004
- #ifndef USB_BUSIFFN
- #if defined(_ARM_)
- #define USB_BUSIFFN
- #else
- #define USB_BUSIFFN __stdcall
- #endif
- #endif
- #define CD_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
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_CREATE_USB_DEVICE (
- IN PVOID BusContext,
- OUT PUSB_DEVICE_HANDLE *NewDeviceHandle,
- 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 {
- CreateDevErrNotSet = 0,
- CreateDevBadHubDevHandle,
- CreateDevFailedAllocDevHandle,
- CreateDevFailedOpenEndpoint,
- CreateDevFailedAllocDsBuff,
- CreateDevFailedGetDs,
- CreateDevTtNotFound,
- CreateDevBadDevHandlePtr
- } USBPORT_CREATEDEV_ERROR;
- typedef struct _USB_CD_ERROR_INFORMATION {
- 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 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];
- } 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);
- typedef USB_BUSIFFN_CREATE_USB_DEVICE_V7 *PUSB_BUSIFFN_CREATE_USB_DEVICE_V7;
- typedef enum _USBPORT_INITDEV_ERROR {
- InitDevErrNotSet = 0,
- InitDevFailedSetAddress,
- InitDevFailedPokeEndpoint,
- InitDevBadDeviceDescriptor
- } USBPORT_INITDEV_ERROR;
- typedef struct _USB_ID_ERROR_INFORMATION {
- ULONG Version;
- USBPORT_INITDEV_ERROR PathError;
- ULONG Arg1;
- ULONG UsbAddress;
- NTSTATUS NtStatus;
- USBD_STATUS UsbdStatus;
- UCHAR XtraInfo[64];
- } USB_ID_ERROR_INFORMATION, *PUSB_ID_ERROR_INFORMATION;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_INITIALIZE_USB_DEVICE (
- 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);
- 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);
- typedef USB_BUSIFFN_REMOVE_USB_DEVICE *PUSB_BUSIFFN_REMOVE_USB_DEVICE;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_USB_DESCRIPTORS (
- IN PVOID BusContext,
- IN OUT PUSB_DEVICE_HANDLE DeviceHandle,
- OUT PUCHAR DeviceDescriptorBuffer,
- IN OUT PULONG DeviceDescriptorBufferLength,
- OUT PUCHAR ConfigDescriptorBuffer,
- IN OUT PULONG ConfigDescriptorBufferLength);
- typedef USB_BUSIFFN_GET_USB_DESCRIPTORS *PUSB_BUSIFFN_GET_USB_DESCRIPTORS;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_RESTORE_DEVICE (
- 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
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_POTRTHACK_FLAGS (
- IN PVOID BusContext,
- IN OUT PULONG Flags);
- typedef USB_BUSIFFN_GET_POTRTHACK_FLAGS *PUSB_BUSIFFN_GET_POTRTHACK_FLAGS;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_DEVICE_INFORMATION (
- IN PVOID BusContext,
- IN PUSB_DEVICE_HANDLE DeviceHandle,
- OUT PVOID DeviceInformationBuffer,
- IN ULONG DeviceInformationBufferLength,
- IN OUT PULONG LengthOfDataCopied);
- typedef USB_BUSIFFN_GET_DEVICE_INFORMATION *PUSB_BUSIFFN_GET_DEVICE_INFORMATION;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_CONTROLLER_INFORMATION (
- IN PVOID BusContext,
- IN OUT PVOID ControllerInformationBuffer,
- IN ULONG ControllerInformationBufferLength,
- IN OUT PULONG LengthOfDataCopied);
- typedef USB_BUSIFFN_GET_CONTROLLER_INFORMATION *PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND (
- IN PVOID BusContext,
- IN BOOLEAN Enable);
- typedef USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND *PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_EXTENDED_HUB_INFO (
- IN PVOID BusContext,
- IN PDEVICE_OBJECT HubPhysicalDeviceObject,
- IN PVOID HubInformationBuffer,
- IN ULONG HubInformationBufferLength,
- OUT PULONG LengthOfDataCopied);
- typedef USB_BUSIFFN_GET_EXTENDED_HUB_INFO *PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_ROOTHUB_SYM_NAME (
- IN PVOID BusContext,
- IN PVOID HubSymNameBuffer,
- IN ULONG HubSymNameBufferLength,
- OUT PULONG HubSymNameActualLength);
- typedef USB_BUSIFFN_GET_ROOTHUB_SYM_NAME *PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME;
- typedef
- PVOID
- USB_BUSIFFN
- USB_BUSIFFN_GET_DEVICE_BUSCONTEXT (
- IN PVOID HubBusContext,
- IN PVOID DeviceHandle);
- typedef USB_BUSIFFN_GET_DEVICE_BUSCONTEXT *PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_INITIALIZE_20HUB (
- IN PVOID BusContext,
- IN PUSB_DEVICE_HANDLE HubDeviceHandle,
- IN ULONG TtCount);
- typedef USB_BUSIFFN_INITIALIZE_20HUB *PUSB_BUSIFFN_INITIALIZE_20HUB;
- typedef
- BOOLEAN
- USB_BUSIFFN
- USB_BUSIFFN_IS_ROOT (
- IN PVOID BusContext,
- IN PVOID DeviceObject);
- typedef USB_BUSIFFN_IS_ROOT *PUSB_BUSIFFN_IS_ROOT;
- typedef
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_ACQUIRE_SEMAPHORE (
- IN PVOID BusContext);
- typedef USB_BUSIFFN_ACQUIRE_SEMAPHORE *PUSB_BUSIFFN_ACQUIRE_SEMAPHORE;
- typedef
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_RELEASE_SEMAPHORE (
- IN PVOID BusContext);
- typedef USB_BUSIFFN_RELEASE_SEMAPHORE *PUSB_BUSIFFN_RELEASE_SEMAPHORE;
- typedef
- VOID
- __stdcall
- RH_INIT_CALLBACK (
- IN PVOID CallBackContext);
- typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_ROOTHUB_INIT_NOTIFY (
- IN PVOID BusContext,
- IN PVOID CallbackContext,
- IN PRH_INIT_CALLBACK CallbackRoutine);
- typedef USB_BUSIFFN_ROOTHUB_INIT_NOTIFY *PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY;
- typedef
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_FLUSH_TRANSFERS (
- IN PVOID BusContext,
- IN PVOID DeviceHandle);
- typedef USB_BUSIFFN_FLUSH_TRANSFERS *PUSB_BUSIFFN_FLUSH_TRANSFERS;
- typedef
- ULONG
- USB_BUSIFFN
- USB_BUSIFFN_CALC_PIPE_BANDWIDTH (
- 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
- VOID
- USB_BUSIFFN
- 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
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_SET_DEVICE_FLAG (
- IN PVOID BusContext,
- IN GUID *DeviceFlagGuid,
- IN PVOID ValueData,
- IN ULONG ValueLength);
- typedef USB_BUSIFFN_SET_DEVICE_FLAG *PUSB_BUSIFFN_SET_DEVICE_FLAG;
- typedef
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_SET_DEVHANDLE_DATA (
- IN PVOID BusContext,
- IN PVOID DeviceHandle,
- IN PDEVICE_OBJECT UsbDevicePdo);
- typedef USB_BUSIFFN_SET_DEVHANDLE_DATA *PUSB_BUSIFFN_SET_DEVHANDLE_DATA;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_TEST_POINT (
- IN PVOID BusContext,
- IN PVOID DeviceHandle,
- IN ULONG Opcode,
- IN PVOID TestData);
- typedef USB_BUSIFFN_TEST_POINT *PUSB_BUSIFFN_TEST_POINT;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO (
- IN PVOID BusContext,
- IN PUSB_DEVICE_HANDLE DeviceHandle,
- OUT PVOID DeviceInformationBuffer,
- IN ULONG DeviceInformationBufferLength,
- IN OUT PULONG LengthOfDataCopied);
- typedef USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO *PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_WAIT_ASYNC_POWERUP (
- IN PVOID BusContext);
- typedef USB_BUSIFFN_WAIT_ASYNC_POWERUP *PUSB_BUSIFFN_WAIT_ASYNC_POWERUP;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_DEVICE_ADDRESS (
- IN PVOID BusContext,
- IN PUSB_DEVICE_HANDLE DeviceHandle,
- OUT PUSHORT DeviceAddress);
- typedef USB_BUSIFFN_GET_DEVICE_ADDRESS *PUSB_BUSIFFN_GET_DEVICE_ADDRESS;
- typedef
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_DEREF_DEVICE_HANDLE (
- IN PVOID BusContext,
- IN PUSB_DEVICE_HANDLE DeviceHandle,
- IN PVOID Object,
- IN ULONG Tag);
- typedef USB_BUSIFFN_DEREF_DEVICE_HANDLE *PUSB_BUSIFFN_DEREF_DEVICE_HANDLE;
- typedef
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_REF_DEVICE_HANDLE (
- IN PVOID BusContext,
- IN PUSB_DEVICE_HANDLE DeviceHandle,
- IN PVOID Object,
- IN ULONG Tag);
- typedef USB_BUSIFFN_REF_DEVICE_HANDLE *PUSB_BUSIFFN_REF_DEVICE_HANDLE;
- typedef
- ULONG
- USB_BUSIFFN
- USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE (
- 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
- NTSTATUS
- USB_BUSIFFN
- USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT (
- 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
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT (
- 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
- NTSTATUS
- USB_BUSIFFN
- 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
- #define ERRATA_FLAG_NO_CLEAR_TT_BUFFER_ON_CANCEL 2
- #define USB_BUSIF_HUB_VERSION_0 0x0000
- #define USB_BUSIF_HUB_VERSION_1 0x0001
- #define USB_BUSIF_HUB_VERSION_2 0x0002
- #define USB_BUSIF_HUB_VERSION_3 0x0003
- #define USB_BUSIF_HUB_VERSION_4 0x0004
- #define USB_BUSIF_HUB_VERSION_5 0x0005
- #define USB_BUSIF_HUB_VERSION_6 0x0006
- #define USB_BUSIF_HUB_VERSION_7 0x0007
- #define USB_BUSIF_HUB_MIDUMP_VERSION_0 0x0000
- #define USB_BUSIF_HUB_SS_VERSION_0 0x0000
- typedef
- VOID
- USB_BUSIFFN
- USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG (
- 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);
- typedef struct _USB_BUS_INTERFACE_HUB_V0 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- } USB_BUS_INTERFACE_HUB_V0, *PUSB_BUS_INTERFACE_HUB_V0;
- typedef struct _USB_BUS_INTERFACE_HUB_V1 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
- PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
- PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
- PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
- PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
- PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
- PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
- } USB_BUS_INTERFACE_HUB_V1, *PUSB_BUS_INTERFACE_HUB_V1;
- typedef struct _USB_BUS_INTERFACE_HUB_V2 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
- PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
- PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
- PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
- PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
- PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
- PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
- PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
- PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
- PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
- PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
- PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
- PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
- } USB_BUS_INTERFACE_HUB_V2, *PUSB_BUS_INTERFACE_HUB_V2;
- typedef struct _USB_BUS_INTERFACE_HUB_V3 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
- PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
- PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
- PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
- PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
- PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
- PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
- PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
- PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
- PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
- PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
- PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
- PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
- PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
- } USB_BUS_INTERFACE_HUB_V3, *PUSB_BUS_INTERFACE_HUB_V3;
- typedef struct _USB_BUS_INTERFACE_HUB_V4 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
- PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
- PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
- PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
- PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
- PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
- PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
- PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
- PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
- PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
- PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
- PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
- PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
- PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
- PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
- } USB_BUS_INTERFACE_HUB_V4, *PUSB_BUS_INTERFACE_HUB_V4;
- typedef struct _USB_BUS_INTERFACE_HUB_V5 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
- PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
- PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
- PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
- PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
- PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
- PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
- PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
- PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
- PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
- PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
- PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
- PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
- PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
- PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
- PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
- } USB_BUS_INTERFACE_HUB_V5, *PUSB_BUS_INTERFACE_HUB_V5;
- typedef struct _USB_BUS_INTERFACE_HUB_V6 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice;
- PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice;
- PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
- PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
- PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
- PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
- PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
- PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
- PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
- PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
- PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
- PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
- PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
- PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
- PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
- PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
- PUSB_BUSIFFN_IS_ROOT HubIsRoot;
- PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore;
- PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore;
- PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth;
- PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode;
- PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag;
- PUSB_BUSIFFN_TEST_POINT HubTestPoint;
- PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo;
- PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp;
- PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress;
- PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle;
- PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle;
- PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState;
- } USB_BUS_INTERFACE_HUB_V6, *PUSB_BUS_INTERFACE_HUB_V6;
- typedef struct _USB_BUS_INTERFACE_HUB_V7 {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice;
- PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice;
- PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
- PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
- PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
- PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
- PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
- PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
- PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
- PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
- PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
- PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
- PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
- PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
- PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
- PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
- PUSB_BUSIFFN_IS_ROOT HubIsRoot;
- PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore;
- PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore;
- PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth;
- PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode;
- PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag;
- PUSB_BUSIFFN_TEST_POINT HubTestPoint;
- PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo;
- PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp;
- PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress;
- PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle;
- PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle;
- PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState;
- PUSB_BUSIFFN_CREATE_USB_DEVICE_V7 CreateUsbDeviceV7;
- PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT GetContainerIdForPort;
- PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT SetContainerIdForPort;
- PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES AbortAllDevicePipes;
- PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG SetDeviceErrataFlag;
- } 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);
- typedef VOID
- (USB_BUSIFFN *PUSB_BUSIFFN_SET_MINIDUMP_FLAGS) (
- IN PVOID);
- typedef struct _USB_BUS_INTERFACE_HUB_MINIDUMP {
- USHORT Size;
- USHORT Version;
- PVOID BusContext;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PUSB_BUSIFFN_SET_MINIDUMP_FLAGS SetUsbPortMiniDumpFlags;
- } 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);
- typedef NTSTATUS
- (USB_BUSIFFN *PUSB_BUSIFFN_SUSPEND_HUB) (
- PDEVICE_OBJECT Pdo);
- typedef NTSTATUS
- (USB_BUSIFFN *PUSB_BUSIFFN_RESUME_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;
- } 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_PIPE_INFORMATION_0, *PUSB_PIPE_INFORMATION_0;
- typedef struct _USB_LEVEL_INFORMATION {
- 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];
- } USB_DEVICE_INFORMATION_0, *PUSB_DEVICE_INFORMATION_0;
- typedef struct _USB_CONTROLLER_INFORMATION_0 {
- 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;
- } USB_CONTROLLER_INFORMATION_1, *PUSB_CONTROLLER_INFORMATION_1;
- typedef struct _USB_EXTPORT_INFORMATION_0 {
- 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];
- } 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;
- } USB_DEVICE_PERFORMANCE_INFO_0, *PUSB_DEVICE_PERFORMANCE_INFO_0;
- #include <poppack.h>
- #endif /* NTDDI_VERSION >= NTDDI_WINXP */
|