SCSI_WMI_REQUEST_BLOCK Struktur (storport.h)
Diese Struktur ist eine spezielle Version eines SCSI_REQUEST_BLOCK für die Verwendung mit WMI-Befehlen.
Syntax
typedef struct _SCSI_WMI_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR WMISubFunction;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR Reserved1;
UCHAR WMIFlags;
UCHAR Reserved2[2];
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID DataPath;
PVOID Reserved3;
PVOID OriginalRequest;
PVOID SrbExtension;
ULONG Reserved4;
ULONG Reserved6;
UCHAR Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;
Angehörige
Length
Gibt die Größe in Byte dieser Struktur an.
Function
SRB_FUNCTION_WMI, der angibt, dass es sich bei der Anforderung um eine WMI-Anforderung handelt. Wenn dieses Element nicht auf SRB_FUNCTION_WMI festgelegt ist, sollte der Miniporttreiber die Anforderung nicht ausführen.
SrbStatus
Gibt den Status der abgeschlossenen Anforderung zurück. Dieses Element sollte vom Miniporttreiber festgelegt werden, bevor er den betriebssystemspezifischen Treiber benachrichtigt, dass die Anforderung abgeschlossen wurde, indem ScsiPortNotification mit RequestComplete-aufgerufen wird. Der Wert dieses Elements kann ein beliebiger Wert sein, der für SrbStatus- in SCSI_REQUEST_BLOCK aufgeführt ist.
WMISubFunction
Gibt die auszuführende WMI-Aktion an. Ein Miniporttreiber ruft ScsiPortWmiDispatchFunction auf, wobei MinorFunction- auf diesen Wert festgelegt ist. Der Unterfunktionswert entspricht der WMI-Neben-IRP-Nummer, die den WMI-Vorgang identifiziert.
PathId
Gibt den SCSI-Port oder -Bus für die Anforderung an. Dieser Wert ist nullbasiert. Wenn SRB_WMI_FLAGS_ADAPTER_REQUEST in WMIFlags-festgelegt ist, ist dieses Element reserviert.
TargetId
Gibt den Zielcontroller oder das Gerät auf dem Bus an. Wenn SRB_WMI_FLAGS_ADAPTER_REQUEST in WMIFlags-festgelegt ist, ist dieses Element reserviert.
Lun
Gibt die logische Einheitennummer des Geräts an. Wenn SRB_WMI_FLAGS_ADAPTER_REQUEST in WMIFlags-festgelegt ist, ist dieses Element reserviert.
Reserved1
Reserviert für die Systemverwendung und nicht für die Verwendung durch Miniporttreiber.
WMIFlags
Gibt an, dass die WMI-Anforderung für den Adapter gilt, wenn SRB_WMI_FLAGS_ADAPTER_REQUEST festgelegt ist und dass PathId, TargetId-und Lun- reserviert sind. Andernfalls wird WMIFlags-NULL-, was angibt, dass die Anforderung für das gerät ist, das durch PathId, TargetIdund Lunangegeben wird.
Reserved2[2]
Reserviert für die Systemverwendung und nicht für die Verwendung durch Miniporttreiber.
SrbFlags
Gibt verschiedene Parameter und Optionen für die Anforderung an. SrbFlags schreibgeschützt ist. Dieses Element wird auf eine oder mehrere der folgenden Flags festgelegt, die zusammen angezeigt werden:
SRB_FLAGS_DATA_IN
Gibt an, dass Daten vom Gerät an das System übertragen werden.
SRB_FLAGS_DATA_OUT
Gibt an, dass Daten vom System auf das Gerät übertragen werden.
SRB_FLAGS_NO_DATA_TRANSFER
Gibt keine Datenübertragung mit dieser Anforderung an. Wenn dies festgelegt ist, sind die Flags SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN und SRB_FLAGS_UNSPECIFIED_DIRECTION klar.
SRB_FLAGS_DISABLE_SYNCH_TRANSFER
Gibt die HBA an, falls möglich, sollte für diese Übertragungsanforderung asynchrone E/A-Vorgänge ausführen. Wenn zuvor synchrone E/A ausgehandelt wurde, muss die HBA vor der Durchführung der Übertragung erneut für asynchrone E/A-Vorgänge verhandeln.
SRB_FLAGS_DISABLE_DISCONNECT
Gibt an, dass das Ziel während der Verarbeitung dieser Anforderung nicht vom SCSI-Bus getrennt werden soll.
DataTransferLength
Gibt die Größe in Byte des Datenpuffers an. Ein Miniporttreiber ruft ScsiPortWmiDispatchFunction auf, wobei BufferSize- auf diesen Wert festgelegt ist. Wenn ein Unterlauf auftritt, muss der Miniporttreiber dieses Element auf die Anzahl der tatsächlich übertragenen Bytes aktualisieren.
TimeOutValue
Gibt das Intervall in Sekunden an, das von der Anforderung ausgeführt werden kann, bevor der betriebssystemspezifische Porttreiber das Timeout in Betracht ziehen kann. Miniporttreiber sind für Zeitanforderungen nicht erforderlich, da der Porttreiber bereits ausgeführt wird.
DataBuffer
Verweist auf den Datenpuffer. Ein Miniporttreiber ruft ScsiPortWmiDispatchFunction- auf, wobei Buffer- auf diesen Wert festgelegt ist. Miniporttreiber können diesen Wert unabhängig vom Wert von MapBuffers im PORT_CONFIGURATION_INFORMATION für die HBA als Datenzeiger verwenden. Ein Miniporttreiber kann Daten nicht direkt mithilfe von DMA in den Puffer übertragen.
DataPath
Gibt den WMI-Datenpfad für diese Anforderung an. Ein Miniporttreiber ruft ScsiPortWmiDispatchFunction- auf, wobei DataPath- auf diesen Wert festgelegt ist.
Reserved3
Reserviert für die Systemverwendung und nicht für die Verwendung durch Miniporttreiber.
OriginalRequest
Verweist auf das IRP für diese Anforderung. Dieses Element ist für Miniporttreiber irrelevant.
SrbExtension
Verweist auf die Srb-Erweiterung. Ein Miniporttreiber darf dieses Element nicht verwenden, wenn er SrbExtensionSize- auf Null im HW_INITIALIZATION_DATA festgelegt hat. Der Speicher bei SrbExtension wird nicht vom betriebssystemspezifischen Porttreiber initialisiert, und auf die vom Miniporttreiber ermittelten Daten kann direkt vom HBA zugegriffen werden. Die entsprechende physische Adresse kann durch Aufrufen ScsiPortGetPhysicalAddress mit dem SrbExtension Zeiger abgerufen werden.
Reserved4
Reserviert für die Systemverwendung und nicht für die Verwendung durch Miniporttreiber.
Reserved6
Reserviert für die Systemverwendung und nicht für die Verwendung durch Miniporttreiber. Dieses Mitglied ist gültig, beginnend mit Windows Server 2003 mit SP1.
Reserved5[16]
Reserviert für die Systemverwendung und nicht für die Verwendung durch Miniporttreiber.
Bemerkungen
Windows NT-Speicherklasse und Filtertreiber können WMI-SRBs an den Systemporttreiber senden. Der Systemporttreiber verarbeitet bestimmte WMI-Anforderungen im Auftrag von Miniporttreibern. Wenn der Porttreiber eine WMI-Anforderung nicht verarbeiten kann, leitet er die Anforderung an den Miniporttreiber weiter.
Ein Miniporttreiber empfängt WMI-Anforderungen vom Porttreiber nur, wenn der Miniporttreiber WmiDataProvider- in der PORT_CONFIGURATION_INFORMATION-Struktur festgelegt ist. Wenn der Miniporttreiber eine Anforderung unterstützt, sollte er die Anforderung verarbeiten und abschließen, indem er ScsiPortNot ification zweimal aufruft, zuerst mit RequestComplete und dann mit NextRequest (oder NextLuRequest).
Informationen zur Unterstützung von WMI in Miniporttreibern finden Sie unter Windows-Verwaltungsinstrumentation.
Anforderungen
Anforderung | Wert |
---|---|
Header- | storport.h (include Storport.h, Srb.h, Storport.h, Minitape.h) |
Siehe auch
HW_INITIALIZATION_DATA (SCSI)-