Freigeben über


SCSI_POWER_REQUEST_BLOCK Struktur (storport.h)

Die SCSI_POWER_REQUEST_BLOCK-Struktur ist eine spezielle Version einer SCSI_REQUEST_BLOCK, die für Energieverwaltungsanforderungen verwendet wird.

Anmerkung

Die SCSI-Porttreiber- und SCSI-Miniporttreibermodelle können in Zukunft geändert oder nicht verfügbar sein. Stattdessen empfehlen wir die Verwendung des Storport-Treibers und Storport Miniport Treibermodelle.

Syntax

typedef struct _SCSI_POWER_REQUEST_BLOCK {
  USHORT                     Length;
  UCHAR                      Function;
  UCHAR                      SrbStatus;
  UCHAR                      SrbPowerFlags;
  UCHAR                      PathId;
  UCHAR                      TargetId;
  UCHAR                      Lun;
  STOR_DEVICE_POWER_STATE    DevicePowerState;
  ULONG                      SrbFlags;
  ULONG                      DataTransferLength;
  ULONG                      TimeOutValue;
  PVOID                      DataBuffer;
  PVOID                      SenseInfoBuffer;
  struct _SCSI_REQUEST_BLOCK *NextSrb;
  PVOID                      OriginalRequest;
  PVOID                      SrbExtension;
  STOR_POWER_ACTION          PowerAction;
  ULONG                      Reserved;
  UCHAR                      Reserved5[16];
} SCSI_POWER_REQUEST_BLOCK, *PSCSI_POWER_REQUEST_BLOCK;

Angehörige

Length

Die Größe der SCSI_POWER_REQUEST_BLOCK Struktur in Byte.

Function

Der auszuführende Vorgang. Für die SCSI_POWER_REQUEST_BLOCK Struktur ist dieses Element immer auf SRB_FUNCTION_POWER festgelegt.

SrbStatus

Der Status der abgeschlossenen Anforderung. Dieses Element sollte vom Miniporttreiber festgelegt werden, bevor er den Storport-Treiber benachrichtigt, dass die Anforderung abgeschlossen wurde. Ein Miniporttreiber benachrichtigt den Storport-Treiber, dass die Anforderung abgeschlossen wurde, indem die StorPortNotification-funktion mit dem RequestComplete- Benachrichtigungstyp aufgerufen wird.

Eine Liste der möglichen Werte für dieses Element finden Sie in der WDK-Dokumentation unter SCSI_REQUEST_BLOCK.

SrbPowerFlags

Die Energieverwaltungskennzeichnungen. Derzeit ist das einzige zulässige Flag SRB_POWER_FLAGS_ADAPTER_REQUEST, was angibt, dass die Energieverwaltungsanforderung für den Adapter gilt. Wenn dieses Flag festgelegt ist, sollte der Miniporttreiber die Werte in der PathId-, TargetId-und Lun-ignorieren.

PathId

Der SCSI-Port- oder Busbezeichner für die Anforderung. Dieser Wert basiert auf Null.

TargetId

Der Zielcontroller oder die Geräte-ID auf dem Bus.

Lun

Die logische Einheitsnummer (LUN) des Geräts.

DevicePowerState

Ein Enumerationswert vom Typ STOR_DEVICE_POWER_STATE, der den angeforderten Leistungszustand des Geräts angibt.

SrbFlags

Miniport-Treiber sollte dieses Element ignorieren.

DataTransferLength

Miniport-Treiber sollte dieses Element ignorieren.

TimeOutValue

Das Intervall in Sekunden, das die Anforderung ausführen kann, bevor der Storport-Treiber feststellt, dass die Anforderung ein Timeout aufweist.

DataBuffer

Miniport-Treiber sollte dieses Element ignorieren.

SenseInfoBuffer

Miniport-Treiber sollte dieses Element ignorieren.

NextSrb

Miniport-Treiber sollte dieses Element ignorieren.

OriginalRequest

Miniport-Treiber sollte dieses Element ignorieren.

SrbExtension

Ein Zeiger auf die SRB-Erweiterung. Ein Miniporttreiber darf dieses Element nicht verwenden, wenn er SrbExtensionSize- in der HW_INITIALIZATION_DATA-Struktur auf Null festgelegt hat. Der Storport-Treiber initialisiert nicht den Speicher, auf den dieses Element verweist. Die HBA kann direkt auf die Daten zugreifen, die der Miniporttreiber in die SRB-Erweiterung schreibt. Ein Miniporttreiber kann die physische Adresse der SRB-Erweiterung abrufen, indem die StorPortGetPhysicalAddress Routine aufgerufen wird.

PowerAction

Ein Enumeratorwert vom Typ STOR_POWER_ACTION, der den Typ des System herunterfahrens angibt, das gerade eintritt. Dieser Wert ist nur dann sinnvoll, wenn das Gerät in den D1-, D2- oder D3-Energiezustand wechselt, wie durch das DevicePowerState Member angegeben.

Reserved

Reserviert für die Systemverwendung.

Reserved5[16]

Reserviert für die Systemverwendung.

Bemerkungen

Der Storport-Treiber ruft HwStorBuildIo- auf, um SRBs an den Miniporttreiber zu übergeben. HwStorBuildIo- sollte das Function Member des SRB überprüfen, um den Typ des SRB zu bestimmen. Wenn das element Function auf SRB_FUNCTION_POWER festgelegt ist, ist der SRB eine Struktur vom Typ SCSI_POWER_REQUEST_BLOCK.

Der Storport-Treiber sendet SCSI_POWER_REQUEST_BLOCK Anforderungen an einen Miniporttreiber, um den Miniporttreiber über Windows-Energieereignisse zu benachrichtigen, die sich auf Speichergeräte auswirken, die mit dem Adapter verbunden sind. Im Falle eines Power up-Ereignisses bietet diese Anforderung dem Miniporttreiber die Möglichkeit, sich selbst zu initialisieren. Bei einem Ruhezustands- oder Herunterfahren-Ereignis bietet diese Anforderung dem Miniporttreiber die Möglichkeit, E/A-Anforderungen abzuschließen und sich auf einen Stromausfall vorzubereiten. Der Miniporttreiber kann den Wert im PowerAction Member der SCSI_POWER_REQUEST_BLOCK verwenden, um zu bestimmen, welche Aktionen erforderlich sind. Nachdem der Miniporttreiber die SCSI_POWER_REQUEST_BLOCK Anforderung abgeschlossen hat, ruft der Storport-Treiber HwScsiAdapterControl mit einer Steuerungsanforderung ScsiStopAdapter- auf, um den Adapter herunterzuschalten. Der Miniporttreiber wird beim Verarbeiten der SRB_FUNCTION_POWER-Anforderung erneut initialisiert, oder er kann warten und erneut initialisieren, wenn der Storport-Treiber HwStorAdapterControl- aufruft, um eine ScsiRestartAdapter- Steuerelementanforderung auszuführen.

Beim Übergang vom D0-Energiezustand in einen niedrigeren Zustand (D1, D2 oder D3) sendet der Storport-Treiber eine SCSI_POWER_REQUEST_BLOCK Anforderung an den Miniporttreiber, bevor der zugrunde liegende Bustreiber den Adapter herunterschaltt.

Die folgenden Bedingungen müssen vorhanden sein, bevor der Storport-Treiber eine SCSI_POWER_REQUEST_BLOCK Anforderung an den Miniporttreiber sendet:

  • Der Adapter wird nicht beendet.
  • Die E/A-Warteschlange für den Adapter wird angehalten.
  • Die Adapterhardware wird eingeschaltet.
  • Der Miniport kann auf die Hardwareressourcen des Adapters zugreifen.

Anforderungen

Anforderung Wert
Header- storport.h (einschließlich Storport.h, Minitape.h, Srb.h)

Siehe auch

HwStorBuildIo-

SCSI_REQUEST_BLOCK

StorPortNotification