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. |