ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

usbbusif.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.