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;
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;
virtual NTSTATUS Allocate(IN ULONG Size,
OUT PVOID *OutVirtualBase,
- OUT PPHYSICAL_ADDRESS *OutPhysicalAddress) = 0;
+ OUT PPHYSICAL_ADDRESS OutPhysicalAddress) = 0;
//-----------------------------------------------------------------------------------------
//
// 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
IN OUT PIRP Irp) = 0;
};
-typedef IHubController *PHUBCONTROLLER;
-
+typedef IDispatchIrp *PDISPATCHIRP;
#endif