Previous Next

SCSI Miniport Drivers

This section contains the following information:

Supporting Plug and Play in a SCSI Miniport Driver

Registry Entries for Plug and Play SCSI Miniport Drivers

SCSI Miniport Initialization Under Plug and Play

Converting a Windows NT 4.0 SCSI Miniport for Plug and Play

Required and Optional SCSI Miniport Routines

SCSI Miniport Driver’s DriverEntry Routine

Calling ScsiPortInitialize

Storage Driver's Return from DriverEntry

SCSI Miniport Driver’s HwScsiFindAdapter Routine

Calling ScsiPortXxx from HwScsiFindAdapter

Port-Driver-Supplied ConfigInfo for HwScsiFindAdapter

Setting up ConfigInfo in HwScsiFindAdapter

Setting Again and Returning from HwScsiFindAdapter

Returning Control from HwScsiFindAdapter

SCSI Miniport Driver’s HwScsiInitialize Routine

SCSI Miniport Driver’s HwScsiStartIo Routine

Modifying SRBs

Handling SRB_FUNCTION_EXECUTE_SCSI

Handling SRB_FUNCTION_ABORT_COMMAND

Handling SRB_FUNCTION_RESET_BUS

Handling SRB_FUNCTION_RESET_DEVICE

Handling SRB_FUNCTION_FLUSH and SRB_FUNCTION_SHUTDOWN

Handling SRB_FUNCTION_IO_CONTROL

Handling SRB_FUNCTION_WMI

Handling Unsupported SRB_FUNCTION_XXX

Return from HwScsiStartIo

Other SRB_FUNCTION_XXX Requests

SCSI Miniport Driver’s HwScsiDmaStarted Routine

SCSI Miniport Driver’s HwScsiResetBus Routine

SCSI Miniport Driver’s HwScsiInterrupt Routine

Deferring Interrupt-Driven I/O from HwScsiInterrupt

SCSI Miniport Driver’s HwScsiEnableInterruptsCallback Routine

SCSI Miniport Driver’s HwScsiDisableInterruptsCallback Routine

SCSI Miniport Driver’s HwScsiTimer Routine

SCSI Miniport Driver’s HwScsiAdapterState Routine

SCSI Miniport Driver’s HwScsiAdapterControl Routine

Restrictions on SCSI Miniport Drivers that Manage the Boot Drive

Error Handling in SCSI Miniport Drivers

SCSI miniport drivers for NT-based operating systems are HBA-specific but operating system-independent. That is, each miniport driver links itself with the system-supplied SCSI port driver, which is a dynamic-link library (DLL), and calls only the port driver’s ScsiPortXxx routines to communicate with the system and its HBA. Such SCSI miniport drivers run on other Microsoft operating systems that support Win32® applications and also export the ScsiPortXxx routines.

Note that any SCSI miniport driver that calls routines other than the ScsiPortXxx cannot run in both Microsoft® operating system environments. To remain portable across Microsoft Windows systems, including NT-based operating systems, SCSI miniport drivers must call only the system-supplied ScsiPortXxx.

A SCSI miniport can be a Plug and Play driver, or it can run as a legacy driver that does not participate in Plug and Play operations such as resource redistribution or power management. The primary differences between a Plug and Play and a legacy miniport driver are the order in which initialization routines are called and enforcement of certain restrictions that were applied to miniports in Windows NT 4.0 but not enforced.