Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenusbbusif.h
Go to the documentation of this file.
00001 #pragma once 00002 00003 #define _USBBUSIF_ 00004 00005 #ifndef USB_BUSIFFN 00006 #define USB_BUSIFFN __stdcall 00007 #endif 00008 00009 #if (NTDDI_VERSION >= NTDDI_WINXP) 00010 00011 #if !defined(_HUBBUSIF_) 00012 typedef PVOID PUSB_DEVICE_HANDLE; 00013 #endif 00014 00015 _Must_inspect_result_ 00016 typedef NTSTATUS 00017 (USB_BUSIFFN *PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB) ( 00018 _In_ PVOID, 00019 _In_ PURB); 00020 00021 #define USB_HCD_CAPS_SUPPORTS_RT_THREADS 0x00000001 00022 00023 typedef VOID 00024 (USB_BUSIFFN *PUSB_BUSIFFN_GETUSBDI_VERSION) ( 00025 _In_ PVOID, 00026 _Out_opt_ PUSBD_VERSION_INFORMATION, 00027 _Out_opt_ PULONG); 00028 00029 _Must_inspect_result_ 00030 typedef NTSTATUS 00031 (USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME) ( 00032 _In_ PVOID, 00033 _Out_opt_ PULONG); 00034 00035 typedef NTSTATUS 00036 (USB_BUSIFFN *PUSB_BUSIFFN_ENUM_LOG_ENTRY) ( 00037 _In_ PVOID, 00038 _In_ ULONG, 00039 _In_ ULONG, 00040 _In_ ULONG, 00041 _In_ ULONG); 00042 00043 typedef struct _USB_BUS_INFORMATION_LEVEL_0 { 00044 ULONG TotalBandwidth; 00045 ULONG ConsumedBandwidth; 00046 } USB_BUS_INFORMATION_LEVEL_0, *PUSB_BUS_INFORMATION_LEVEL_0; 00047 00048 typedef struct _USB_BUS_INFORMATION_LEVEL_1 { 00049 ULONG TotalBandwidth; 00050 ULONG ConsumedBandwidth; 00051 ULONG ControllerNameLength; 00052 WCHAR ControllerNameUnicodeString[1]; 00053 } USB_BUS_INFORMATION_LEVEL_1, *PUSB_BUS_INFORMATION_LEVEL_1; 00054 00055 _Must_inspect_result_ 00056 typedef NTSTATUS 00057 (USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_INFORMATION) ( 00058 _In_ PVOID, 00059 _In_ ULONG, 00060 _Inout_ PVOID, 00061 _Out_ PULONG, 00062 _Out_opt_ PULONG); 00063 00064 _Must_inspect_result_ 00065 typedef BOOLEAN 00066 (USB_BUSIFFN *PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED) ( 00067 _In_opt_ PVOID); 00068 00069 #define USB_BUSIF_USBDI_VERSION_0 0x0000 00070 #define USB_BUSIF_USBDI_VERSION_1 0x0001 00071 #define USB_BUSIF_USBDI_VERSION_2 0x0002 00072 #define USB_BUSIF_USBDI_VERSION_3 0x0003 00073 00074 DEFINE_GUID(USB_BUS_INTERFACE_USBDI_GUID, 00075 0xb1a96a13, 0x3de0, 0x4574, 0x9b, 0x1, 0xc0, 0x8f, 0xea, 0xb3, 0x18, 0xd6); 00076 00077 typedef struct _USB_BUS_INTERFACE_USBDI_V0 { 00078 USHORT Size; 00079 USHORT Version; 00080 PVOID BusContext; 00081 PINTERFACE_REFERENCE InterfaceReference; 00082 PINTERFACE_DEREFERENCE InterfaceDereference; 00083 PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; 00084 PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; 00085 PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; 00086 PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; 00087 } USB_BUS_INTERFACE_USBDI_V0, *PUSB_BUS_INTERFACE_USBDI_V0; 00088 00089 typedef struct _USB_BUS_INTERFACE_USBDI_V1 { 00090 USHORT Size; 00091 USHORT Version; 00092 PVOID BusContext; 00093 PINTERFACE_REFERENCE InterfaceReference; 00094 PINTERFACE_DEREFERENCE InterfaceDereference; 00095 PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; 00096 PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; 00097 PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; 00098 PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; 00099 PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed; 00100 } USB_BUS_INTERFACE_USBDI_V1, *PUSB_BUS_INTERFACE_USBDI_V1; 00101 00102 typedef struct _USB_BUS_INTERFACE_USBDI_V2 { 00103 USHORT Size; 00104 USHORT Version; 00105 PVOID BusContext; 00106 PINTERFACE_REFERENCE InterfaceReference; 00107 PINTERFACE_DEREFERENCE InterfaceDereference; 00108 PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; 00109 PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; 00110 PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; 00111 PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; 00112 PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed; 00113 PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry; 00114 } USB_BUS_INTERFACE_USBDI_V2, *PUSB_BUS_INTERFACE_USBDI_V2; 00115 00116 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */ 00117 00118 #if (NTDDI_VERSION >= NTDDI_VISTA) 00119 00120 _Must_inspect_result_ 00121 typedef NTSTATUS 00122 (USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME_EX) ( 00123 _In_opt_ PVOID, 00124 _Out_opt_ PULONG); 00125 00126 _Must_inspect_result_ 00127 typedef NTSTATUS 00128 (USB_BUSIFFN *PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE) ( 00129 _In_opt_ PVOID, 00130 _Out_opt_ PULONG, 00131 _Out_opt_ PUSHORT, 00132 _Out_opt_ PUSHORT, 00133 _Out_opt_ PUCHAR, 00134 _Out_opt_ PUCHAR, 00135 _Out_opt_ PUCHAR, 00136 _Out_opt_ PUCHAR); 00137 00138 typedef struct _USB_BUS_INTERFACE_USBDI_V3 { 00139 USHORT Size; 00140 USHORT Version; 00141 PVOID BusContext; 00142 PINTERFACE_REFERENCE InterfaceReference; 00143 PINTERFACE_DEREFERENCE InterfaceDereference; 00144 PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; 00145 PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; 00146 PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; 00147 PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; 00148 PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed; 00149 PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry; 00150 PUSB_BUSIFFN_QUERY_BUS_TIME_EX QueryBusTimeEx; 00151 PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE QueryControllerType; 00152 } USB_BUS_INTERFACE_USBDI_V3, *PUSB_BUS_INTERFACE_USBDI_V3; 00153 00154 DEFINE_GUID(USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID, 00155 0x893b6a96, 0xb7f, 0x4d4d, 0xbd, 0xb4, 0xbb, 0xd4, 0xce, 0xeb, 0xb3, 0x1c); 00156 00157 #define USBC_FUNCTION_FLAG_APPEND_ID 0x1 00158 00159 typedef struct _USBC_FUNCTION_DESCRIPTOR{ 00160 UCHAR FunctionNumber; 00161 UCHAR NumberOfInterfaces; 00162 PUSB_INTERFACE_DESCRIPTOR *InterfaceDescriptorList; 00163 UNICODE_STRING HardwareId; 00164 UNICODE_STRING CompatibleId; 00165 UNICODE_STRING FunctionDescription; 00166 ULONG FunctionFlags; 00167 PVOID Reserved; 00168 } USBC_FUNCTION_DESCRIPTOR, *PUSBC_FUNCTION_DESCRIPTOR; 00169 00170 _Must_inspect_result_ 00171 typedef NTSTATUS 00172 (USB_BUSIFFN *USBC_START_DEVICE_CALLBACK)( 00173 _In_ PUSB_DEVICE_DESCRIPTOR DeviceDescriptor, 00174 _In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, 00175 _Outptr_result_bytebuffer_maybenull_(*FunctionDescriptorBufferLength) 00176 PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer, 00177 _Out_ PULONG FunctionDescriptorBufferLength, 00178 _In_ PDEVICE_OBJECT FdoDeviceObject, 00179 _In_ PDEVICE_OBJECT PdoDeviceObject); 00180 00181 _Must_inspect_result_ 00182 typedef BOOLEAN 00183 (USB_BUSIFFN *USBC_PDO_ENABLE_CALLBACK)( 00184 _In_ PVOID Context, 00185 _In_ USHORT FirstInterfaceNumber, 00186 _In_ USHORT NumberOfInterfaces, 00187 _In_ UCHAR FunctionClass, 00188 _In_ UCHAR FunctionSubClass, 00189 _In_ UCHAR FunctionProtocol); 00190 00191 #define USBC_DEVICE_CONFIGURATION_INTERFACE_VERSION_1 0x0001 00192 00193 typedef struct _USBC_DEVICE_CONFIGURATION_INTERFACE_V1 { 00194 USHORT Size; 00195 USHORT Version; 00196 PVOID Context; 00197 PINTERFACE_REFERENCE InterfaceReference; 00198 PINTERFACE_DEREFERENCE InterfaceDereference; 00199 USBC_START_DEVICE_CALLBACK StartDeviceCallback; 00200 USBC_PDO_ENABLE_CALLBACK PdoEnableCallback; 00201 PVOID Reserved[7]; 00202 } USBC_DEVICE_CONFIGURATION_INTERFACE_V1, *PUSBC_DEVICE_CONFIGURATION_INTERFACE_V1; 00203 00204 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ 00205 Generated on Sun May 27 2012 04:30:16 for ReactOS by
1.7.6.1
|