Freigeben über


SCSI_PNP_REQUEST_BLOCK-Struktur (storport.h)

DieSCSI_PNP_REQUEST_BLOCK-Struktur ist eine spezielle Version einer SCSI_REQUEST_BLOCK , die für Plug-and-Play-Anforderungen (PNP) verwendet wird.

Hinweis

Der SCSI-Porttreiber und die SCSI-Miniporttreibermodelle können in Zukunft geändert oder nicht mehr verfügbar sein. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.

Syntax

typedef struct _SCSI_PNP_REQUEST_BLOCK {
  USHORT                     Length;
  UCHAR                      Function;
  UCHAR                      SrbStatus;
  UCHAR                      PnPSubFunction;
  UCHAR                      PathId;
  UCHAR                      TargetId;
  UCHAR                      Lun;
  STOR_PNP_ACTION            PnPAction;
  ULONG                      SrbFlags;
  ULONG                      DataTransferLength;
  ULONG                      TimeOutValue;
  PVOID                      DataBuffer;
  PVOID                      SenseInfoBuffer;
  struct _SCSI_REQUEST_BLOCK *NextSrb;
  PVOID                      OriginalRequest;
  PVOID                      SrbExtension;
  ULONG                      SrbPnPFlags;
  ULONG                      Reserved;
  UCHAR                      Reserved4[16];
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;

Member

Length

Die Größe der SCSI_PNP_REQUEST_BLOCK Struktur in Bytes.

Function

Der auszuführende Vorgang. Für die SCSI_PNP_REQUEST_BLOCK-Struktur ist dieses Element immer auf SRB_FUNCTION_PNP festgelegt.

SrbStatus

Die status der abgeschlossenen Anforderung. Der Miniporttreiber sollte diesen Wert festlegen, bevor der Storport-Treiber benachrichtigt wird, dass die Anforderung abgeschlossen wurde. Ein Miniporttreiber benachrichtigt den Storport-Treiber über den Abschluss der Anforderung, indem er die StorPortNotification-Routine mit dem Benachrichtigungstyp RequestComplete aufruft. Eine Liste möglicher status Werte finden Sie unter SCSI_REQUEST_BLOCK.

PnPSubFunction

Dieser Member wird derzeit nicht verwendet. Miniporttreiber ignorieren diesen Member.

PathId

Der SCSI-Port oder der Busbezeichner für die Anforderung. Dieser Wert ist nullbasiert.

TargetId

Der Zielcontroller oder der Gerätebezeichner auf dem Bus.

Lun

Die LUN (Logical Unit Number) des Geräts.

PnPAction

Die auszuführende Plug-and-Play-Aktion. Dieses Element kann über einen der folgenden Werte verfügen:

Wert Bedeutung
StorStartDevice (0x00) Starten Sie das Gerät.
StorRemoveDevice (0x02) Entfernen Sie das Gerät.
StorStopDevice (0x04) Beenden Sie das Gerät.
StorQueryCapabilities (0x09) Fragen Sie die Funktionen des Geräts ab.
StorQueryResourceRequirements (0x0B) Fragen Sie die Ressourcenanforderungen für das Gerät ab.
StorFilterResourceRequirerements (0x0D) Filtern Sie die Ressourcenanforderungen für das Gerät.
StorSupriseRemoval (0x17) Überraschendes Entfernen des Geräts. Dieser Wert wurde in Windows 7 hinzugefügt.

SrbFlags

Der Miniport-Treiber sollte diesen Member ignorieren.

DataTransferLength

Der Miniport-Treiber sollte diesen Member ignorieren.

TimeOutValue

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

DataBuffer

Der Miniport-Treiber sollte diesen Member ignorieren.

SenseInfoBuffer

Der Miniport-Treiber sollte diesen Member ignorieren.

NextSrb

Der Miniport-Treiber sollte diesen Member ignorieren.

OriginalRequest

Der Miniport-Treiber sollte diesen Member ignorieren.

SrbExtension

Ein Zeiger auf die SRB-Erweiterung. Ein Miniporttreiber darf diesen Member nicht verwenden, wenn er SrbExtensionSize in der HW_INITIALIZATION_DATA-Struktur auf 0 festgelegt hat. Der Storport-Treiber initialisiert nicht den Arbeitsspeicher, auf den dieses Element verweist. Der 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 er die StorPortGetPhysicalAddress-Routine aufruft.

SrbPnPFlags

Die PNP-Flags. Derzeit ist das einzige zulässige Flag SRB_PNP_FLAGS_ADAPTER_REQUEST, was angibt, dass die PNP-Anforderung für den Adapter und nicht für eines der Geräte auf dem Adapter gilt. Wenn dieses Flag festgelegt ist, sollte der Miniporttreiber die Werte in PathId, TargetId und Lun ignorieren.

Reserved

Ist für das System reserviert.

Reserved4[16]

Ist für das System reserviert.

Hinweise

Der Storport-Treiber sendet SCSI_PNP_REQUEST_BLOCK Anforderungen an einen Miniporttreiber, um den Miniporttreiber über Windows-Plug-and-Play-Ereignisse zu benachrichtigen, die sich auf Speichergeräte auswirken, die mit dem Adapter verbunden sind.

Der Storport-Treiber ruft HwStorBuildIo auf, um SRBs an den Miniporttreiber zu übergeben. HwStorBuildIo überprüft den Funktionsmember des SRB, um den Typ des SRB zu bestimmen. Wenn der Funktionsmember auf SRB_FUNCTION_PNP festgelegt ist, ist der SRB eine Struktur vom Typ SCSI_PNP_REQUEST_BLOCK.

Anforderungen

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

Weitere Informationen

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification