Communicating with a storage port driver
Communication between a storage miniport driver and a system-supplied storage port driver happens as follows:
A miniport calls a set of storage port driver-supplied support routines
A miniport implements a standard set of routines for its storage port driver to call, some that are required and some that are optional
The miniport driver routines called by the SCSI port driver, the Storport driver, and the ATA port driver are very similar to one another.
Storage miniport drivers should avoid calling operating system (OS) routines other than the support routines provided by the appropriate port driver support. For example:
- Storage miniport drivers should not call KeQuerySystemTime, but should instead call routines like ScsiPortQuerySystemTime or StorPortQuerySystemTime.
- Storage miniport drivers should not call MmGetPhysicalAddress, but should instead call routines like ScsiPortGetPhysicalAddress and StorPortGetPhysicalAddress.
Note
Miniport drivers that seek to be Windows HLK-certified will fail the Storage Imports Test if they call OS routines, and thus not qualify for the Windows Hardware Compatibility Program.
Do not use Hardware Abstraction Layer Routines in miniport drivers.