/usr/x86_64-w64-mingw32/include/ddk/usbbusif.h is in mingw-w64-x86-64-dev 2.0.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | #pragma once
#define _USBBUSIF_
#ifndef USB_BUSIFFN
#define USB_BUSIFFN __stdcall
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP)
#if !defined(_HUBBUSIF_)
typedef PVOID PUSB_DEVICE_HANDLE;
#endif
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB) (
IN PVOID,
IN PURB);
#define USB_HCD_CAPS_SUPPORTS_RT_THREADS 0x00000001
typedef VOID
(USB_BUSIFFN *PUSB_BUSIFFN_GETUSBDI_VERSION) (
IN PVOID,
OUT PUSBD_VERSION_INFORMATION OPTIONAL,
OUT PULONG OPTIONAL);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME) (
IN PVOID,
OUT PULONG OPTIONAL);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_ENUM_LOG_ENTRY) (
IN PVOID,
IN ULONG,
IN ULONG,
IN ULONG,
IN ULONG);
typedef struct _USB_BUS_INFORMATION_LEVEL_0 {
ULONG TotalBandwidth;
ULONG ConsumedBandwidth;
} USB_BUS_INFORMATION_LEVEL_0, *PUSB_BUS_INFORMATION_LEVEL_0;
typedef struct _USB_BUS_INFORMATION_LEVEL_1 {
ULONG TotalBandwidth;
ULONG ConsumedBandwidth;
ULONG ControllerNameLength;
WCHAR ControllerNameUnicodeString[1];
} USB_BUS_INFORMATION_LEVEL_1, *PUSB_BUS_INFORMATION_LEVEL_1;
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_INFORMATION) (
IN PVOID,
IN ULONG,
IN OUT PVOID,
OUT PULONG,
OUT PULONG OPTIONAL);
typedef BOOLEAN
(USB_BUSIFFN *PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED) (
IN PVOID OPTIONAL);
#define USB_BUSIF_USBDI_VERSION_0 0x0000
#define USB_BUSIF_USBDI_VERSION_1 0x0001
#define USB_BUSIF_USBDI_VERSION_2 0x0002
#define USB_BUSIF_USBDI_VERSION_3 0x0003
DEFINE_GUID(USB_BUS_INTERFACE_USBDI_GUID,
0xb1a96a13, 0x3de0, 0x4574, 0x9b, 0x1, 0xc0, 0x8f, 0xea, 0xb3, 0x18, 0xd6);
typedef struct _USB_BUS_INTERFACE_USBDI_V0 {
USHORT Size;
USHORT Version;
PVOID BusContext;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion;
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime;
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb;
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation;
} USB_BUS_INTERFACE_USBDI_V0, *PUSB_BUS_INTERFACE_USBDI_V0;
typedef struct _USB_BUS_INTERFACE_USBDI_V1 {
USHORT Size;
USHORT Version;
PVOID BusContext;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion;
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime;
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb;
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation;
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed;
} USB_BUS_INTERFACE_USBDI_V1, *PUSB_BUS_INTERFACE_USBDI_V1;
typedef struct _USB_BUS_INTERFACE_USBDI_V2 {
USHORT Size;
USHORT Version;
PVOID BusContext;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion;
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime;
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb;
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation;
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed;
PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry;
} USB_BUS_INTERFACE_USBDI_V2, *PUSB_BUS_INTERFACE_USBDI_V2;
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME_EX) (
IN PVOID OPTIONAL,
OUT PULONG OPTIONAL);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE) (
IN PVOID OPTIONAL,
OUT PULONG OPTIONAL,
OUT PUSHORT OPTIONAL,
OUT PUSHORT OPTIONAL,
OUT PUCHAR OPTIONAL,
OUT PUCHAR OPTIONAL,
OUT PUCHAR OPTIONAL,
OUT PUCHAR OPTIONAL);
typedef struct _USB_BUS_INTERFACE_USBDI_V3 {
USHORT Size;
USHORT Version;
PVOID BusContext;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion;
PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime;
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb;
PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation;
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed;
PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry;
PUSB_BUSIFFN_QUERY_BUS_TIME_EX QueryBusTimeEx;
PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE QueryControllerType;
} USB_BUS_INTERFACE_USBDI_V3, *PUSB_BUS_INTERFACE_USBDI_V3;
DEFINE_GUID(USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID,
0x893b6a96, 0xb7f, 0x4d4d, 0xbd, 0xb4, 0xbb, 0xd4, 0xce, 0xeb, 0xb3, 0x1c);
#define USBC_FUNCTION_FLAG_APPEND_ID 0x1
typedef struct _USBC_FUNCTION_DESCRIPTOR{
UCHAR FunctionNumber;
UCHAR NumberOfInterfaces;
PUSB_INTERFACE_DESCRIPTOR *InterfaceDescriptorList;
UNICODE_STRING HardwareId;
UNICODE_STRING CompatibleId;
UNICODE_STRING FunctionDescription;
ULONG FunctionFlags;
PVOID Reserved;
} USBC_FUNCTION_DESCRIPTOR, *PUSBC_FUNCTION_DESCRIPTOR;
typedef
NTSTATUS
(USB_BUSIFFN *USBC_START_DEVICE_CALLBACK)(
IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor,
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
OUT PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer,
OUT PULONG FunctionDescriptorBufferLength,
IN PDEVICE_OBJECT FdoDeviceObject,
IN PDEVICE_OBJECT PdoDeviceObject);
typedef
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);
#define USBC_DEVICE_CONFIGURATION_INTERFACE_VERSION_1 0x0001
typedef struct _USBC_DEVICE_CONFIGURATION_INTERFACE_V1 {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
USBC_START_DEVICE_CALLBACK StartDeviceCallback;
USBC_PDO_ENABLE_CALLBACK PdoEnableCallback;
PVOID Reserved[7];
} USBC_DEVICE_CONFIGURATION_INTERFACE_V1, *PUSBC_DEVICE_CONFIGURATION_INTERFACE_V1;
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|