HW_UNIT_CONTROL Rückruffunktion (storport.h)
Die HwStorUnitControl-Routine eines Miniporttreibers wird aufgerufen, um synchrone Vorgänge auszuführen, um den Zustand des Speichereinheitgeräts zu steuern.
Syntax
HW_UNIT_CONTROL HwUnitControl;
SCSI_UNIT_CONTROL_STATUS HwUnitControl(
[in] PVOID DeviceExtension,
[in] SCSI_UNIT_CONTROL_TYPE ControlType,
[in] PVOID Parameters
)
{...}
Parameter
[in] DeviceExtension
Ein Zeiger auf den Speicherbereich des Miniporttreibers pro Einheit.
[in] ControlType
Ein SCSI_UNIT_CONTROL_TYPE Wert, der einen Einheitensteuerungsvorgang angibt, bei dem jeder Steuerelementtyp eine Aktion durch den Miniporttreiber initiiert. Weitere Informationen finden Sie unter SCSI_UNIT_CONTROL_TYPE .
[in] Parameters
Zeiger auf eine Struktur oder einen Wert, der Informationen im Zusammenhang mit controlType enthält. Alle Strukturen werden aufruferseitig zugeordnet. Weitere Informationen finden Sie unter SCSI_UNIT_CONTROL_TYPE .
Adresse
Die Adresse der Einheit, für die der Steuerungsvorgang angegeben wird.
Rückgabewert
Abhängig vom Steuerelementtyp gibt HwStorUnitControl einen der folgenden SCSI_UNIT_CONTROL_STATUS Werte zurück:
Rückgabecode | Beschreibung |
---|---|
ScsiUnitControlSuccess | Der Miniporttreiber hat den angeforderten Vorgang erfolgreich abgeschlossen. |
ScsiUnitControlUnsuccessful | Der Vorgang zur Steuerung der Einheit war nicht erfolgreich. |
Hinweise
Storport ruft das HwStorUnitControl eines Miniports mit einem ScsiQuerySupportedControlTypes-Steuerelementtyp auf, nachdem der HBA initialisiert wurde, aber vor der ersten E/A. Der Miniporttreiber füllt die SCSI_SUPPORTED_CONTROL_TYPE_LIST-Struktur unter Parameter mit den unterstützten Vorgängen aus. Nachdem HwStorUnitControl von diesem Aufruf zurückgegeben wurde, ruft der Storport-Treiber den HwStorAdapterControl-Rückruf des Miniporttreibers nur für Vorgänge auf, die vom Miniport unterstützt werden.
Storport ruft HwStorUnitControl auf, um den Miniporttreiber über eine Änderung des durch Address identifizierten Einheitsgeräts zu benachrichtigen, oder dass der Miniport eine Abfrage oder einen Set-Vorgang für diese Einheit ausführen soll, z. B. das Starten einer Einheit oder das Behandeln eines Energiesteuerungsvorgangs für eine Einheit.
In der folgenden Tabelle sind die aktuelle IRQL und der Spinlock aufgeführt, der beim Erteilen des Steuerelementtyps abgerufen wurde.
Steuerelementtyp | IRQL | Drehsperre |
---|---|---|
ScsiQuerySupportedControlTypes | PASSIVE_LEVEL | Keine |
ScsiUnitUsage | PASSIVE_LEVEL | Keine |
ScsiUnitStart | PASSIVE_LEVEL | Keine |
ScsiUnitPower | DISPATCH_LEVEL | Keine |
ScsiUnitPoFxPowerInfo | PASSIVE_LEVEL | Keine |
ScsiUnitPoFxPowerRequired | DISPATCH_LEVEL | Keine |
ScsiUnitPoFxPowerActive | DISPATCH_LEVEL | Keine |
ScsiUnitPoFxPowerSetFState | DISPATCH_LEVEL | Keine |
ScsiUnitPoFxPowerControl | DISPATCH_LEVEL | Keine |
ScsiUnitRemove | PASSIVE_LEVEL | Keine |
ScsiUnitSurpriseRemoval | PASSIVE_LEVEL | Keine |
ScsiUnitRichDescription | PASSIVE_LEVEL | Keine |
ScsiUnitQueryBusType | PASSIVE_LEVEL | Keine |
ScsiUnitQueryFruId | PASSIVE_LEVEL | Keine |
Der Name HwStorUnitControl ist nur ein Platzhalter. Der eigentliche Prototyp dieser Routine wird in storport.h wie folgt definiert:
typedef
SCSI_UNIT_CONTROL_STATUS
HW_UNIT_CONTROL (
_In_ PVOID DeviceExtension,
_In_ SCSI_UNIT_CONTROL_TYPE ControlType,
_In_ PVOID Parameters
);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 |
Zielplattform | Universell |
Header | storport.h (einschließlich Storport.h) |
IRQL | Siehe Hinweise. |