Freigeben über


HW_UNIT_CONTROL Rückruffunktion (storport.h)

Die HwStorUnitControl Routine eines Miniporttreibers wird aufgerufen, um synchrone Vorgänge auszuführen, um den Zustand des Speichereinheitsgerä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, wobei jeder Steuerelementtyp eine Aktion vom Miniporttreiber initiiert. Weitere Informationen finden Sie unter SCSI_UNIT_CONTROL_TYPE.

[in] Parameters

Zeiger auf eine Struktur oder einen Wert, die Informationen zum ControlType-enthält. Alle Strukturen sind aufrufergeteilt. Weitere Informationen finden Sie unter SCSI_UNIT_CONTROL_TYPE.

Adresse

Die Adresse der Einheit, für die der Kontrollvorgang angegeben wird.

Rückgabewert

Je nach 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 Einheitensteuerungsvorgang war nicht erfolgreich.

Bemerkungen

Storport ruft die HwStorUnitControl- eines Miniports mit einem ScsiQuerySupportedControlTypes Steuerelementtyp auf, nachdem die HBA initialisiert wurde, aber vor der ersten E/A. Der Miniporttreiber füllt die SCSI_SUPPORTED_CONTROL_TYPE_LIST Struktur bei Parameters mit den unterstützten Vorgängen aus. Nachdem HwStorUnitControl- von diesem Aufruf zurückgegeben wurde, ruft der Storport-Treiber den HwStorAdapterControl Rückruf nur für Vorgänge auf, die vom Miniport unterstützt werden.

Storport ruft HwStorUnitControl- auf, um den Miniporttreiber über eine Änderung an dem gerät zu benachrichtigen, das durch Addressidentifiziert wird, oder dass der Miniport eine Abfrage ausführen oder einen Vorgang für diese Einheit festlegen soll, z. B. das Starten einer Einheit oder das Behandeln eines Stromsteuerungsvorgangs für eine Einheit.

In der folgenden Tabelle sind die aktuellen IRQL und das Spinlock aufgeführt, das beim Ausgestellt des Steuerelementtyps abgerufen wurde.

Steuerelementtyp IRQL Drehsperre
ScsiQuerySupportedControlTypes- PASSIVE_LEVEL Nichts
ScsiUnitUsage- PASSIVE_LEVEL Nichts
ScsiUnitStart- PASSIVE_LEVEL Nichts
ScsiUnitPower- DISPATCH_LEVEL Nichts
ScsiUnitPoFxPowerInfo- PASSIVE_LEVEL Nichts
ScsiUnitPoFxPowerRequired DISPATCH_LEVEL Nichts
ScsiUnitPoFxPowerActive- DISPATCH_LEVEL Nichts
ScsiUnitPoFxPowerSetFState- DISPATCH_LEVEL Nichts
ScsiUnitPoFxPowerControl- DISPATCH_LEVEL Nichts
ScsiUnitRemove- PASSIVE_LEVEL Nichts
ScsiUnitSurpriseRemoval- PASSIVE_LEVEL Nichts
ScsiUnitRichDescription- PASSIVE_LEVEL Nichts
ScsiUnitQueryBusType- PASSIVE_LEVEL Nichts
ScsiUnitQueryFruId- PASSIVE_LEVEL Nichts

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
mindestens unterstützte Client- Windows 8
Zielplattform- Universal
Header- storport.h (include Storport.h)
IRQL- Siehe Anmerkungen.

Siehe auch

HwStorAdapterControl-

SCSI_SUPPORTED_CONTROL_TYPE_LIST

SCSI_UNIT_CONTROL_TYPE