SCSI_PNP_REQUEST_BLOCK-Struktur (minitape.h)
DieSCSI_PNP_REQUEST_BLOCK-Struktur ist eine spezielle Version einer SCSI_REQUEST_BLOCK , die für Plug-and-Play-Anforderungen (PNP) verwendet wird.
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 dieser Member 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, dass die Anforderung abgeschlossen wurde, 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. Miniport-Treiber ignorieren dieses Element.
PathId
Der SCSI-Port oder Busbezeichner für die Anforderung. Dieser Wert ist nullbasiert.
TargetId
Der Zielcontroller oder die Geräte-ID auf dem Bus.
Lun
Die logische Einheitennummer (Logical Unit Number, LUN) des Geräts.
PnPAction
Die auszuführende Plug-and-Play-Aktion. Dieser Member kann einen der folgenden Werte aufweisen:
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 dieser Member 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 gilt und nicht für eines der Geräte auf dem Adapter. 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 Function-Member des SRB, um den Typ des SRB zu bestimmen. Wenn der Function-Member auf SRB_FUNCTION_PNP festgelegt ist, ist der SRB eine Struktur vom Typ SCSI_PNP_REQUEST_BLOCK.
Anforderungen
Anforderung | Wert |
---|---|
Header | minitape.h (einschließlich Storport.h, Minitape.h, Srb.h) |