6#define USB_BUSIFFN __stdcall
9#if (NTDDI_VERSION >= NTDDI_WINXP)
11#if !defined(_HUBBUSIF_)
22#define USB_HCD_CAPS_SUPPORTS_RT_THREADS 0x00000001
73#define USB_BUSIF_USBDI_VERSION_0 0x0000
74#define USB_BUSIF_USBDI_VERSION_1 0x0001
75#define USB_BUSIF_USBDI_VERSION_2 0x0002
76#define USB_BUSIF_USBDI_VERSION_3 0x0003
79 0xb1a96a13, 0x3de0, 0x4574, 0x9b, 0x1, 0xc0, 0x8f, 0xea, 0xb3, 0x18, 0xd6);
122#if (NTDDI_VERSION >= NTDDI_VISTA)
161 0x893b6a96, 0xb7f, 0x4d4d, 0xbd, 0xb4, 0xbb, 0xd4, 0xce, 0xeb, 0xb3, 0x1c);
163#define USBC_FUNCTION_FLAG_APPEND_ID 0x1
199#define USBC_DEVICE_CONFIGURATION_INTERFACE_VERSION_1 0x0001
VOID(WINAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
VOID(WINAPI * PINTERFACE_REFERENCE)(PVOID Context)
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ PUSB_PORT_PATH _Out_ PUSB_CD_ERROR_INFORMATION _In_ USHORT _In_ PDEVICE_OBJECT PdoDeviceObject
#define _Outptr_result_bytebuffer_maybenull_(size)
#define _Must_inspect_result_
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
const KSDEVICE_DESCRIPTOR DeviceDescriptor
PINTERFACE_REFERENCE InterfaceReference
USBC_PDO_ENABLE_CALLBACK PdoEnableCallback
USBC_START_DEVICE_CALLBACK StartDeviceCallback
PINTERFACE_DEREFERENCE InterfaceDereference
UNICODE_STRING CompatibleId
UNICODE_STRING FunctionDescription
PUSB_INTERFACE_DESCRIPTOR * InterfaceDescriptorList
UNICODE_STRING HardwareId
PINTERFACE_REFERENCE InterfaceReference
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb
PINTERFACE_DEREFERENCE InterfaceDereference
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb
PINTERFACE_REFERENCE InterfaceReference
PINTERFACE_DEREFERENCE InterfaceDereference
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed
PINTERFACE_REFERENCE InterfaceReference
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime
PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion
PINTERFACE_DEREFERENCE InterfaceDereference
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation
PINTERFACE_REFERENCE InterfaceReference
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb
PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE QueryControllerType
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime
PINTERFACE_DEREFERENCE InterfaceDereference
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed
PUSB_BUSIFFN_QUERY_BUS_TIME_EX QueryBusTimeEx
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation
PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry
struct _USBD_VERSION_INFORMATION * PUSBD_VERSION_INFORMATION
struct _USB_BUS_INTERFACE_USBDI_V2 * PUSB_BUS_INTERFACE_USBDI_V2
struct _USB_BUS_INFORMATION_LEVEL_0 * PUSB_BUS_INFORMATION_LEVEL_0
struct _USB_BUS_INTERFACE_USBDI_V3 * PUSB_BUS_INTERFACE_USBDI_V3
struct _USBC_DEVICE_CONFIGURATION_INTERFACE_V1 USBC_DEVICE_CONFIGURATION_INTERFACE_V1
_Must_inspect_result_ BOOLEAN(USB_BUSIFFN * PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED)(_In_opt_ PVOID)
struct _USB_BUS_INTERFACE_USBDI_V1 * PUSB_BUS_INTERFACE_USBDI_V1
struct _USB_BUS_INTERFACE_USBDI_V0 * PUSB_BUS_INTERFACE_USBDI_V0
VOID(USB_BUSIFFN * PUSB_BUSIFFN_GETUSBDI_VERSION)(_In_ PVOID, _Out_opt_ PUSBD_VERSION_INFORMATION, _Out_opt_ PULONG)
_Must_inspect_result_ NTSTATUS(USB_BUSIFFN * PUSB_BUSIFFN_QUERY_BUS_INFORMATION)(_In_ PVOID, _In_ ULONG, _Inout_ PVOID, _Out_ PULONG, _Out_opt_ PULONG)
struct _USB_BUS_INTERFACE_USBDI_V3 USB_BUS_INTERFACE_USBDI_V3
struct _USBC_FUNCTION_DESCRIPTOR USBC_FUNCTION_DESCRIPTOR
struct _USB_BUS_INTERFACE_USBDI_V1 USB_BUS_INTERFACE_USBDI_V1
struct _USBC_DEVICE_CONFIGURATION_INTERFACE_V1 * PUSBC_DEVICE_CONFIGURATION_INTERFACE_V1
NTSTATUS(USB_BUSIFFN * PUSB_BUSIFFN_ENUM_LOG_ENTRY)(_In_ PVOID, _In_ ULONG, _In_ ULONG, _In_ ULONG, _In_ ULONG)
_Must_inspect_result_ NTSTATUS(USB_BUSIFFN * PUSB_BUSIFFN_QUERY_BUS_TIME)(_In_ PVOID, _Out_opt_ PULONG)
struct _USB_BUS_INTERFACE_USBDI_V0 USB_BUS_INTERFACE_USBDI_V0
_Must_inspect_result_ BOOLEAN(USB_BUSIFFN * USBC_PDO_ENABLE_CALLBACK)(_In_ PVOID Context, _In_ USHORT FirstInterfaceNumber, _In_ USHORT NumberOfInterfaces, _In_ UCHAR FunctionClass, _In_ UCHAR FunctionSubClass, _In_ UCHAR FunctionProtocol)
struct _USBC_FUNCTION_DESCRIPTOR * PUSBC_FUNCTION_DESCRIPTOR
_Must_inspect_result_ NTSTATUS(USB_BUSIFFN * PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE)(_In_opt_ PVOID, _Out_opt_ PULONG, _Out_opt_ PUSHORT, _Out_opt_ PUSHORT, _Out_opt_ PUCHAR, _Out_opt_ PUCHAR, _Out_opt_ PUCHAR, _Out_opt_ PUCHAR)
_Must_inspect_result_ NTSTATUS(USB_BUSIFFN * PUSB_BUSIFFN_QUERY_BUS_TIME_EX)(_In_opt_ PVOID, _Out_opt_ PULONG)
struct _USB_BUS_INFORMATION_LEVEL_1 * PUSB_BUS_INFORMATION_LEVEL_1
_Must_inspect_result_ NTSTATUS(USB_BUSIFFN * PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB)(_In_ PVOID, _In_ PURB)
struct _USB_BUS_INFORMATION_LEVEL_0 USB_BUS_INFORMATION_LEVEL_0
struct _USB_BUS_INFORMATION_LEVEL_1 USB_BUS_INFORMATION_LEVEL_1
struct _USB_BUS_INTERFACE_USBDI_V2 USB_BUS_INTERFACE_USBDI_V2
_Must_inspect_result_ NTSTATUS(USB_BUSIFFN * USBC_START_DEVICE_CALLBACK)(_In_ PUSB_DEVICE_DESCRIPTOR DeviceDescriptor, _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, _Outptr_result_bytebuffer_maybenull_(*FunctionDescriptorBufferLength) PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer, _Out_ PULONG FunctionDescriptorBufferLength, _In_ PDEVICE_OBJECT FdoDeviceObject, _In_ PDEVICE_OBJECT PdoDeviceObject)
_Reserved_ PVOID Reserved