Freigeben über


SCSI_WMI_REQUEST_BLOCK Struktur (storport.h)

Diese Struktur ist eine spezielle Version eines SCSI_REQUEST_BLOCK für die Verwendung mit WMI-Befehlen.

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

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)-

PORT_CONFIGURATION_INFORMATION (SCSI)-

SCSI_REQUEST_BLOCK

ScsiPortNotification-

ScsiPortWmiDispatchFunction-