[USBEHCI_NEW]
[reactos.git] / drivers / usb / usbehci_new / interfaces.h
index ba289fd..db60f63 100644 (file)
@@ -103,33 +103,6 @@ DECLARE_INTERFACE_(IHCDController, IUnknown)
                                 IN PDRIVER_OBJECT DriverObject,
                                 IN PDEVICE_OBJECT PhysicalDeviceObject) = 0;
 
-//-----------------------------------------------------------------------------------------
-//
-// HandlePnp
-//
-// Description: This function handles all pnp requests
-
-    virtual NTSTATUS HandlePnp(IN PDEVICE_OBJECT DeviceObject,
-                               IN OUT PIRP Irp) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// HandlePower
-//
-// Description: This function handles all power pnp requests
-//
-    virtual NTSTATUS HandlePower(IN PDEVICE_OBJECT DeviceObject,
-                                 IN OUT PIRP Irp) = 0;
-
-//-----------------------------------------------------------------------------------------
-//
-// HandleDeviceControl
-//
-// Description: handles device io control requests
-
-    virtual NTSTATUS HandleDeviceControl(IN PDEVICE_OBJECT DeviceObject,
-                                         IN OUT PIRP Irp) = 0;
-
 };
 
 typedef IHCDController *PHCDCONTROLLER;
@@ -178,22 +151,14 @@ DECLARE_INTERFACE_(IUSBHardwareDevice, IUnknown)
 
     virtual NTSTATUS PnpStop(void) = 0;
 
-//-----------------------------------------------------------------------------------------
-//
-// HandlePower
-//
-// Description: handles power requests
-
-    virtual NTSTATUS HandlePower(PIRP Irp) = 0;
-
 //-----------------------------------------------------------------------------------------
 //
 // GetDeviceDetails
 //
 // Description: returns the device details such as vendor id, device id, number of ports and speed
 
-    virtual NTSTATUS GetDeviceDetails(OUT OPTIONAL PULONG VendorId,
-                                      OUT OPTIONAL PULONG DeviceId,
+    virtual NTSTATUS GetDeviceDetails(OUT OPTIONAL PUSHORT VendorId,
+                                      OUT OPTIONAL PUSHORT DeviceId,
                                       OUT OPTIONAL PULONG NumberOfPorts,
                                       OUT OPTIONAL PULONG Speed) = 0;
 
@@ -288,7 +253,7 @@ DECLARE_INTERFACE_(IDMAMemoryManager, IUnknown)
 
     virtual NTSTATUS Allocate(IN ULONG Size,
                               OUT PVOID *OutVirtualBase,
-                              OUT PPHYSICAL_ADDRESS *OutPhysicalAddress) = 0;
+                              OUT PPHYSICAL_ADDRESS OutPhysicalAddress) = 0;
 
 
 //-----------------------------------------------------------------------------------------
@@ -451,11 +416,35 @@ DECLARE_INTERFACE_(IHubController, IUnknown)
 //
 // Description: Initializes the hub controller
 
-    virtual NTSTATUS Initialize(IN PHCDCONTROLLER Controller,
+    virtual NTSTATUS Initialize(IN PDRIVER_OBJECT DriverObject,
+                                IN PHCDCONTROLLER Controller,
                                 IN PUSBHARDWAREDEVICE Device,
                                 IN BOOLEAN IsRootHubDevice,
                                 IN ULONG DeviceAddress) = 0;
 
+//----------------------------------------------------------------------------------------
+//
+// GetHubControllerDeviceObject
+//
+// Description: Returns the hub controller device object
+
+    virtual NTSTATUS GetHubControllerDeviceObject(PDEVICE_OBJECT * HubDeviceObject) = 0;
+
+};
+
+typedef IHubController *PHUBCONTROLLER;
+
+//=========================================================================================
+//
+// class IDispatchIrp
+//
+// Description: This class is used to handle irp dispatch requests
+// 
+
+DECLARE_INTERFACE_(IDispatchIrp, IUnknown)
+{
+    DEFINE_ABSTRACT_UNKNOWN()
+
 //-----------------------------------------------------------------------------------------
 //
 // HandlePnp
@@ -484,7 +473,6 @@ DECLARE_INTERFACE_(IHubController, IUnknown)
                                          IN OUT PIRP Irp) = 0;
 };
 
-typedef IHubController *PHUBCONTROLLER;
-
+typedef IDispatchIrp *PDISPATCHIRP;
 
 #endif