Like any other Windows NT kernel-mode higher-level driver, the DriverEntry routine of a SCSI class driver must do the following:
The class driver’s initial call to IoGetDeviceObjectPointer returns a pointer to a generic device object created by the system port driver, rather than a pointer to a device object that represents a particular HBA. The class driver uses this generic device object pointer to find its device(s) on each bus driven by one or more HBAs in the machine.