SCSI_ADAPTER_CONTROL_TYPE-Enumeration (storport.h)

Die SCSI_ADAPTER_CONTROL_TYPE-Enumeration enthält Adaptersteuerungsvorgänge, bei denen jeder Steuerelementtyp eine Aktion für einen Adapter durch den Miniporttreiber initiiert. Storport gibt den Steuerelementtyp an, wenn die HwStorAdapterControl-Routine eines Miniports aufgerufen wird.

Syntax

typedef enum _SCSI_ADAPTER_CONTROL_TYPE {
  ScsiQuerySupportedControlTypes,
  ScsiStopAdapter,
  ScsiRestartAdapter,
  ScsiSetBootConfig,
  ScsiSetRunningConfig,
  ScsiPowerSettingNotification,
  ScsiAdapterPower,
  ScsiAdapterPoFxPowerRequired,
  ScsiAdapterPoFxPowerActive,
  ScsiAdapterPoFxPowerSetFState,
  ScsiAdapterPoFxPowerControl,
  ScsiAdapterPrepareForBusReScan,
  ScsiAdapterSystemPowerHints,
  ScsiAdapterFilterResourceRequirements,
  ScsiAdapterPoFxMaxOperationalPower,
  ScsiAdapterPoFxSetPerfState,
  ScsiAdapterSurpriseRemoval,
  ScsiAdapterSerialNumber,
  ScsiAdapterCryptoOperation,
  ScsiAdapterQueryFruId,
  ScsiAdapterSetEventLogging,
  ScsiAdapterReportInternalData,
  ScsiAdapterResetBusSynchronous,
  ScsiAdapterPostHwInitialize,
  ScsiAdapterPrepareEarlyDumpData,
  ScsiAdapterRestoreEarlyDumpData,
  ScsiAdapterControlMax,
  MakeAdapterControlTypeSizeOfUlong
} SCSI_ADAPTER_CONTROL_TYPE, *PSCSI_ADAPTER_CONTROL_TYPE;

Konstanten

 
ScsiQuerySupportedControlTypes
Meldet die vom Miniporttreiber implementierten Adaptersteuerungsvorgänge. Ein Miniport muss diesen Steuerelementtyp unterstützen.

Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf eine SCSI_SUPPORTED_CONTROL_TYPE_LIST-Struktur nach der Initialisierung des HBA, aber vor der ersten E/A-Instanz auf.

Der Miniporttreiber füllt die SCSI_SUPPORTED_CONTROL_TYPE_LIST-Struktur mit den unterstützten Vorgängen aus. Nachdem HwStorAdapterControl von diesem Aufruf zurückgegeben wurde, ruft der Storport-Treiber das HwStorAdapterControl des Miniporttreibers nur für Vorgänge auf, die vom Miniport unterstützt werden.
ScsiStopAdapter
Fährt den HBA herunter. Ein Miniport muss diesen Steuerelementtyp unterstützen.

Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerungstyp (und Parameter auf NULL) auf, wenn der HBA aus dem System entfernt, zur Neukonfiguration von Ressourcen beendet, für die Energieverwaltung heruntergefahren oder anderweitig neu konfiguriert oder deaktiviert wurde. Storport stellt sicher, dass keine nicht abgeschlossenen Anforderungen vorhanden sind, und stellt eine SRB_FUNCTION_FLUSH Anforderung an den Miniporttreiber aus, bevor diese Routine aufgerufen wird.

Der Miniporttreiber deaktiviert Unterbrechungen für seinen HBA, stoppt die gesamte Verarbeitung (einschließlich der Hintergrundverarbeitung, die nicht Unterbrechungen unterliegt oder deren Verarbeitung dem Storport-Treiber nicht bekannt ist, z. B. das Rekonstruieren fehlertoleranter Volumes), löscht alle verbleibenden zwischengespeicherten Daten in persistenten Speicher und versetzt den HBA in einen Zustand, aus dem er neu initialisiert oder neu gestartet werden kann.

Der Miniporttreiber sollte seine Ressourcen nicht freigeben, wenn er seinen HBA beendet. Wenn der HBA für die Neukonfiguration von PnP-Ressourcen entfernt oder beendet wurde, gibt der Storport-Treiber Ressourcen im Namen des Miniporttreibers frei. Wenn der HBA für die Energieverwaltung heruntergefahren wird, werden die Ressourcen des Miniporttreibers beibehalten, sodass der HBA neu gestartet werden kann.

Nachdem HwStorAdapterControl den HBA beendet hat, sollten alle Datenstrukturen, die im Auftrag des Miniporttreibers für den HBA zugewiesen wurden, als ungültig gelten, bis der Miniporttreiber zum Neustart aufgefordert wird.

Beachten Sie, dass Storport möglicherweise HwStorAdapterControl aufruft, um den Adapter zu beenden, nachdem der HBA bereits physisch aus dem System entfernt wurde, sodass die HwStorAdapterControl-Routine des Miniporttreibers keine Vorgänge ausführen darf, die erfordern, dass der HBA physisch vorhanden ist, während er den HBA beendet.

Der Miniporttreiber wird für den HBA erst erneut aufgerufen, wenn entweder der PnP-Manager das Starten des HBA anfordert. In diesem Fall initialisiert der Storport-Treiber (re)initialisiert, indem er seine HwStorAdapterControl - und HwStorInitialize-Routine aufruft, oder ein für die Energieverwaltung beendeter HBA wird eingeschaltet. In diesem Fall ruft der Storport-Treiber die HwStorAdapterControl-Routine des Miniport-Treibers mit ScsiRestartAdapterAdapter auf . oder, wenn der Miniporttreiber diesen Steuerelementtyp nicht implementiert, wiederholt die Initialisierungssequenz für den HBA.
ScsiRestartAdapter
Initialisiert einen HBA erneut. Ein Miniport muss diesen Steuerelementtyp unterstützen.

Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerungstyp (und Parameter auf NULL) auf, um einen HBA hochzufahren, der für die Energieverwaltung heruntergefahren wurde. Alle Ressourcen, die zuvor dem Miniporttreiber zugewiesen wurden, sind weiterhin verfügbar, und die Geräteerweiterungen und logischen Einheitenerweiterungen (sofern vorhanden) sind intakt.

Der Miniporttreiber führt dieselben Vorgänge wie in seiner HwStorInitialize-Routine aus, z. B. das Einrichten der HBA-Register und des Anfangszustands( falls vorhanden).

Der Miniporttreiber darf keine Routinen aufrufen, die nur von HwStorFindAdapter oder von HwStorAdapterControl aufgerufen werden können, wenn der Steuerelementtyp ScsiSetRunningConfig ist, z. B. StorPortGetBusData und StorPortSetBusDataByOffset. Wenn der Miniporttreiber solche Routinen aufrufen muss, um seinen HBA neu zu starten, muss er auch ScsiSetRunningConfig implementieren.

Wenn der Miniporttreiber ScsiRestartAdapter nicht implementiert, ruft der Storport-Treiber die Routinen HwStorFindAdapter und HwStorInitialize des Miniporttreibers auf. Da solche Routinen jedoch erkennungsnotwendige Arbeit für den Neustart des HBA ausführen können, wird ein solcher Miniporttreiber seinen HBA nicht so schnell einschalten wie ein Miniporttreiber, der ScsiRestartAdapter implementiert.
ScsiSetBootConfig
Stellt alle Einstellungen für einen HBA wieder her, die das BIOS möglicherweise für einen Neustart benötigt. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp (und Parameters auf NULL) auf, nachdem diese Routine mit ScsiStopAdapter aufgerufen wurde.

Ein Miniporttreiber muss ScsiSetBootConfig implementieren, wenn StorPortGetBusData oder StorPortSetBusDataByOffset aufgerufen werden muss, bevor das System neu gestartet werden kann.
ScsiSetRunningConfig
Stellt alle Einstellungen für einen HBA wieder her, die der Miniporttreiber möglicherweise zum Steuern des HBA benötigt, während das System ausgeführt wird. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp (und Parameter auf NULL) auf, bevor er diese Routine mit ScsiRestartAdapter aufruft, wenn der Miniporttreiber diesen Steuerelementtyp implementiert.

Der Interrupt des HBA ist noch nicht verbunden, wenn der Storport-Treiber diesen Aufruf ausgibt. Daher muss der Miniporttreiber darauf achten, keinen Interrupt zu generieren.

Ein Miniporttreiber muss ScsiSetRunningConfig implementieren, wenn StorPortGetBusData oder StorPortSetBusDataByOffset aufgerufen werden muss, um die entsprechende ausgeführte Konfiguration im HBA wiederherzustellen, bevor sie neu gestartet werden kann.
ScsiPowerSettingNotification
Benachrichtigung für eine Änderung der registrierten Energieeinstellung. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf eine STOR_POWER_SETTING_INFO-Struktur auf, wenn eine Energieeinstellungsänderung auftritt. Miniports registrieren sich für Energieeinstellungsbenachrichtigungen, indem StorPortSetPowerSettingNotificationGuids mit einer Liste von GUIDs aufgerufen werden, die die relevanten Energiewechselereignisse darstellen. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterPower
Meldet den Ein- oder Ausschaltenstatus des Adapters. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf eine STOR_ADAPTER_CONTROL_POWER-Struktur auf. Wenn der Miniport diesen Steuerelementtyp unterstützt, empfängt er keinen Speicheranforderungsblock mit SRB_FUNCTION_POWER und HwStorAdapterControl wird nicht mit dem ScsiStopAdapter-Steuerelementtyp aufgerufen. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterPoFxPowerRequired
Benachrichtigt den Miniport, ob für die Adapterkomponente Strom benötigt wird oder nicht. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parameters auf, die auf einen BOOLEAN-Wert verweisen, der TRUE ist, wenn die Adapterkomponente Strom benötigt. andernfalls FALSE. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterPoFxPowerActive
Benachrichtigt den Miniport, ob die Adapterkomponente aktiv oder im Leerlauf ist. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parameters auf, die auf eine STOR_POFX_ACTIVE_CONTEXT Struktur verweisen. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterPoFxPowerSetFState
Benachrichtigt den Miniport, um die Adapterkomponente auf den angegebenen F-Zustand festzulegen. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf, die auf eineSTOR_POFX_FSTATE_CONTEXT Struktur verweisen. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterPoFxPowerControl
Fordert an, dass der Miniport einen privaten Energiesteuerungsvorgang ausführt, der für den Adapter durch ein Power Engine Plug-In (PEP) initiiert wurde. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf, die auf eine STOR_POFX_POWER_CONTROL-Struktur verweisen. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterPrepareForBusReScan
Benachrichtigt den Miniport, um den Adapter für die Busaufzählung vorzubereiten. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp auf (und Parameter auf NULL festgelegt). Der Miniport sollte den Adapter und alle verbundenen Geräte einschalten, damit der Busaufzählungsvorgang die Geräte finden kann. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterSystemPowerHints
Stellt Hinweise zur Systemleistung für den Miniport bereit. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und parametern auf eine STOR_SYSTEM_POWER_HINTS-Struktur auf. Dieser Steuerelementtyp ist in Windows 8 und höher gültig.
ScsiAdapterFilterResourceRequirements
Filtert die erforderlichen Ressourcen für den Adapter. Der Storport-Treiber ruft HwStorAdapterControl mit diesem IRP_MN_FILTER_RESOURCE_REQUIREMENTS Steuerelementtyp und Parametern auf eine STOR_FILTER_RESOURCE_REQUIREMENTS-Struktur auf, wenn Storport die Anforderung verarbeitet, und miniport hat das STOR_FEATURE_ADAPTER_CONTROL_PRE_FINDADAPTER Flag im Feld FeatureSupport von HW_INITIALIZATION_DATA festgelegt. Beachten Sie, dass die für diesen Steuerelementtyp übergebene DeviceExtension nicht initialisiert wird.

Der Miniporttreiber sollte die im Puffer beschriebenen Ressourcen mithilfe der STOR_FILTER_RESOURCE_REQUIREMENTS-Struktur ändern oder reduzieren. Dieser Steuerelementtyp ist in Windows 8.1 und höher gültig.
ScsiAdapterPoFxMaxOperationalPower
Kommuniziert einen maximalen Betriebsleistungswert an den Miniport. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf, die auf eine STOR_MAX_OPERATIONAL_POWER Struktur verweisen. Zum Empfangen dieses Steuerelements muss der Miniport zuvor StorPortPoFxSetPerfState aufgerufen haben, um eine perf-Gruppe mit PStateType = StorPoFxPerfStateTypeDiscrete und Count> 1 zu registrieren.

Das Feld Wert in jedem Leistungszustand (P-Zustand) muss ein maximales Leistungsniveau darstellen, das relativ zu den anderen P-Zuständen ist und innerhalb des Bereichs der maximalen Leistungsstufen liegt, die von den P-Zuständen des Miniports (einschließlich) gemeldet werden. Der Miniport muss sicherstellen, dass er einen Energiezustand wählt, dessen maximaler Stromverbrauch kleiner oder gleich dem in diesem Parameter angegebenen Wert ist.
ScsiAdapterPoFxSetPerfState
Informiert den Miniport über den status eines P-Zustandsübergangs, der durch einen Aufruf von StorPortPoFxSetPerfState angefordert wurde. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf, die auf eine STOR_POFX_PERF_STATE_CONTEXT-Struktur verweisen.

Wenn der Miniport einen physischen Energiezustandsübergang initiieren muss, sollte er auf den HwStorAdapterControl-Rückruf warten, bevor er dies tut. Das heißt, ein Miniport muss zuerst StorPortPoFxSetPerfState aufrufen, um seine Absicht zu signalisieren, einen P-Zustandsübergang vorzunehmen. Storport ruft dann den HwStorAdapterControl-Rückruf des Miniports auf, an dem der Miniport alle Aktionen im Zusammenhang mit dem Übergang zum P-Zustand ausführen kann (z. B. ändern des physischen Energiezustands des Geräts).
ScsiAdapterSurpriseRemoval
Benachrichtigt den Miniport, dass die Einheit überraschend entfernt wurde. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp auf (und Parameter auf NULL festgelegt).
ScsiAdapterSerialNumber
Fordert an, dass der Miniport die Seriennummer des Adapters abruft. Der Storport-Treiber ruft HwStorAdapterControl mit diesem Steuerelementtyp und Parametern auf, die auf eine STOR_SERIAL_NUMBER Struktur verweisen.
ScsiAdapterCryptoOperation
Ist für das System reserviert. Benachrichtigt den Miniport, einen kryptografischen Vorgang auszuführen. Storport ruft HwStorAdapterControl mit und Parameters auf eine STOR_CRYPTO_OPERATION.
ScsiAdapterQueryFruId
Verfügbar ab Windows 10 Version 21H1. Fragt die ID einer Fehleraustauscheinheit (Fru) des Adapters ab. Storport ruft HwStorAdapterControl mit und Parameters auf eine STOR_FRU_ID_DESCRIPTION-Struktur , wenn [IOCTL_STORAGE_QUERY_PROPERTY]ni-ntddstor-ioctl_storage_query_property.md) mit einer StorageFruIdProperty-Eigenschafts-ID behandelt wird.

Storport sendet dieses Steuerelement nur, wenn ein Miniport zuvor auch StorPortSetFeatureList in seiner HwFindAdapter-Routine mit storportFeatureFruIdAdapterControl angegeben hat.
ScsiAdapterSetEventLogging
Verfügbar ab Windows 10 Version 21H1. Benachrichtigt den Miniport darüber, ob ein bestimmter Ereigniskanal für einen Adapter aktiviert oder deaktiviert ist. Ein Miniport sollte dann nur dann eine API aufrufen, um ein Ereignis für den Adapter zu protokollieren, wenn der entsprechende Kanal aktiviert ist. Wenn der Miniport diesen Steuerelementtyp unterstützt, ruft Storport HwStorAdapterControl mit diesem und Parameters auf, die auf eine STOR_SET_EVENT_LOGGING-Struktur verweisen.

Storport sendet dieses Steuerelement nur, wenn ein Miniport zuvor auch StorPortSetFeatureList in seiner HwFindAdapter-Routine mit storportFeatureFruIdAdapterControl angegeben hat.
ScsiAdapterReportInternalData
Ist für das System reserviert. Verfügbar ab Windows 11 Version 22H2.

Storport sendet dieses Steuerelement nur, wenn ein Miniport in seiner HwFindAdapter-Routine mit angegebenem ScsiAdapterReportInternalData zuvor auch StorPortSetFeatureList genannt wurde.
ScsiAdapterResetBusSynchronous
Verfügbar ab Windows 11 Version 22H2. Storport sendet dieses Steuerelement während der Verarbeitung eines IOCTL_STORAGE_DEVICE_RESET. Der Miniporttreiber sollte dieses Steuerelement ähnlich wie in seiner HwResetBus-Rückrufroutine behandeln und SCSI_ADAPTER_CONTROL_STATUS zurückgeben.

Storport sendet dieses Steuerelement nur, wenn ein Miniport in seiner HwFindAdapter-Routine mit StorportFeatureResetBusSynchronous zuvor auch StorPortSetFeatureList genannt wurde.
ScsiAdapterPostHwInitialize
Ist für das System reserviert. Verfügbar ab Windows 11 Version 22H2.

Storport sendet dieses Steuerelement nur, wenn ein Miniport zuvor in seiner HwFindAdapter-RoutinestorportFeaturePostHwInitialize auch StorPortSetFeatureList genannt hat.
ScsiAdapterPrepareEarlyDumpData
Ist für das System reserviert. Verfügbar ab Windows 11 Version 22H2.

Storport sendet dieses Steuerelement nur, wenn ein Miniport in seiner HwFindAdapter-Routine mit storportFeaturePrepareEarlyDumpData zuvor auch StorPortSetFeatureList genannt wurde.
ScsiAdapterRestoreEarlyDumpData
Ist für das System reserviert. Verfügbar ab Windows 11 Version 22H2.

Storport sendet dieses Steuerelement nur, wenn ein Miniport in seiner HwFindAdapter-Routine mit storportFeatureRestoreEarlyDumpData zuvor auch StorPortSetFeatureList genannt wurde.
ScsiAdapterControlMax
Maximaler Steuerelementtypwert.
MakeAdapterControlTypeSizeOfUlong
Legt diese Enumeration auf die Größe einer ULONG fest.

Hinweise

Ein Miniport meldet, welche Steuerelementtypen unterstützt werden, wenn Storport die HwStorAdapterControl-Routine des Miniports mit einem Steuerelementtyp von ScsiQuerySupportedControlTypes aufruft. Für die vom Miniport unterstützten Steuerelementtypen ruft Storport HwStorAdapterControl mit einem SCSI_ADAPTER_CONTROL_TYPE-Wert auf, um den Steuerungsvorgang anzugeben, der den vom Miniport auszuführenden Adaptersteuerungsvorgang angibt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Kopfzeile storport.h

Weitere Informationen

HwStorAdapterControl