Sync with trunk (r48545)
[reactos.git] / include / ddk / usbbusif.h
index 77b22ee..04297e9 100644 (file)
@@ -1,12 +1,16 @@
 #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) (
@@ -18,13 +22,13 @@ typedef NTSTATUS
 typedef VOID
 (USB_BUSIFFN *PUSB_BUSIFFN_GETUSBDI_VERSION) (
   IN PVOID,
-  OUT PUSBD_VERSION_INFORMATION,
-  OUT PULONG);
+  OUT PUSBD_VERSION_INFORMATION OPTIONAL,
+  OUT PULONG OPTIONAL);
 
 typedef NTSTATUS
 (USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME) (
   IN PVOID,
-  OUT PULONG);    
+  OUT PULONG OPTIONAL);
 
 typedef NTSTATUS
 (USB_BUSIFFN *PUSB_BUSIFFN_ENUM_LOG_ENTRY) (
@@ -32,39 +36,39 @@ typedef NTSTATUS
   IN ULONG,
   IN ULONG,
   IN ULONG,
-  IN ULONG);    
+  IN ULONG);
 
 typedef struct _USB_BUS_INFORMATION_LEVEL_0 {
   ULONG TotalBandwidth;
-  ULONG ConsumedBandwidth;  
+  ULONG ConsumedBandwidth;
 } USB_BUS_INFORMATION_LEVEL_0, *PUSB_BUS_INFORMATION_LEVEL_0;
 
 typedef struct _USB_BUS_INFORMATION_LEVEL_1 {
   ULONG TotalBandwidth;
-  ULONG ConsumedBandwidth;  
+  ULONG ConsumedBandwidth;
   ULONG ControllerNameLength;
-  WCHAR ControllerNameUnicodeString[1];   
+  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,
-  INout PVOID,
+  IN OUT PVOID,
   OUT PULONG,
-  OUT PULONG);        
+  OUT PULONG OPTIONAL);
 
 typedef BOOLEAN
 (USB_BUSIFFN *PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED) (
-  IN PVOID);         
+  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);
+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;
@@ -105,25 +109,25 @@ typedef struct _USB_BUS_INTERFACE_USBDI_V2 {
   PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry;
 } USB_BUS_INTERFACE_USBDI_V2, *PUSB_BUS_INTERFACE_USBDI_V2;
 
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 
 typedef NTSTATUS
 (USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME_EX) (
-  IN PVOID,
-  OUT PULONG);     
+  IN PVOID OPTIONAL,
+  OUT PULONG OPTIONAL);
 
 typedef NTSTATUS
 (USB_BUSIFFN *PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE) (
-  IN PVOID,
-  OUT PULONG,
-  OUT PUSHORT,
-  OUT PUSHORT,
-  OUT PUCHAR,
-  OUT PUCHAR,
-  OUT PUCHAR,
-  OUT PUCHAR); 
+  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;
@@ -141,8 +145,8 @@ typedef struct _USB_BUS_INTERFACE_USBDI_V3 {
   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_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
 
@@ -162,7 +166,7 @@ NTSTATUS
 (USB_BUSIFFN *USBC_START_DEVICE_CALLBACK)(
   IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor,
   IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
-  PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer,
+  OUT PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer,
   OUT PULONG FunctionDescriptorBufferLength,
   IN PDEVICE_OBJECT FdoDeviceObject,
   IN PDEVICE_OBJECT PdoDeviceObject);
@@ -190,4 +194,5 @@ typedef struct _USBC_DEVICE_CONFIGURATION_INTERFACE_V1 {
   PVOID Reserved[7];
 } USBC_DEVICE_CONFIGURATION_INTERFACE_V1, *PUSBC_DEVICE_CONFIGURATION_INTERFACE_V1;
 
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+