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.

Weitere Informationen

HwStorAdapterControl

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE