Synchronize with trunk revision 59636 (just before Alex's CreateProcess revamp).
[reactos.git] / drivers / hid / hidusb / hidusb.h
index e991861..9209362 100644 (file)
@@ -2,9 +2,17 @@
 
 #define _HIDPI_
 #define _HIDPI_NO_FUNCTION_MACROS_
+#define NDEBUG
 #include <ntddk.h>
 #include <hidport.h>
 #include <debug.h>
+#include <hubbusif.h>
+#include <usbbusif.h>
+#include <usbioctl.h>
+#include <usb.h>
+#include <usbdlib.h>
+
+#include <hidport.h>
 
 typedef struct
 {
@@ -14,9 +22,70 @@ typedef struct
     KEVENT Event;
 
     //
-    // list for pending requests
+    // device descriptor
+    //
+    PUSB_DEVICE_DESCRIPTOR DeviceDescriptor;
+
+    //
+    // configuration descriptor
+    //
+    PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
+
+    //
+    // interface information
+    //
+    PUSBD_INTERFACE_INFORMATION InterfaceInfo;
+
+    //
+    // configuration handle
+    //
+    USBD_CONFIGURATION_HANDLE ConfigurationHandle;
+
+    //
+    // hid descriptor
+    //
+    PHID_DESCRIPTOR HidDescriptor;
+
+} HID_USB_DEVICE_EXTENSION, *PHID_USB_DEVICE_EXTENSION;
+
+typedef struct
+{
+    //
+    // request irp
+    //
+    PIRP Irp;
+
+    //
+    // work item
     //
-    LIST_ENTRY PendingRequests;
+    PIO_WORKITEM WorkItem;
+
+    //
+    // device object
+    //
+    PDEVICE_OBJECT DeviceObject;
+
+} HID_USB_RESET_CONTEXT, *PHID_USB_RESET_CONTEXT;
+
+
+NTSTATUS
+Hid_GetDescriptor(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN USHORT UrbFunction,
+    IN USHORT UrbLength,
+    IN OUT PVOID *UrbBuffer,
+    IN OUT PULONG UrbBufferLength,
+    IN UCHAR DescriptorType,
+    IN UCHAR Index,
+    IN USHORT LanguageIndex);
+
+NTSTATUS
+Hid_DispatchUrb(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN PURB Urb);
 
-}HID_USB_DEVICE_EXTENSION, *PHID_USB_DEVICE_EXTENSION;
+#define USB_SET_IDLE_REQUEST 0xA
+#define USB_GET_PROTOCOL_REQUEST 0x3
 
+#define HIDUSB_TAG 'UdiH'
+#define HIDUSB_URB_TAG 'rUiH'