Freigeben über


ScsiPortWmiDispatchFunction-Funktion (scsiwmi.h)

Die ScsiPortWmiDispatchFunction Routine ist eine Dispatchroutine für Miniporttreiber, die WMI unterstützen.

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

BOOLEAN ScsiPortWmiDispatchFunction(
  [in] PSCSI_WMILIB_CONTEXT     WmiLibInfo,
  [in] UCHAR                    MinorFunction,
  [in] PVOID                    DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] PVOID                    DataPath,
  [in] ULONG                    BufferSize,
  [in] PVOID                    Buffer
);

Parameter

[in] WmiLibInfo

Zeiger auf eine SCSI_WMILIB_CONTEXT Struktur, die Registrierungsinformationen für die Datenblöcke und Ereignisblöcke eines Miniporttreibers enthält, und definiert Einstiegspunkte für die WMI-Bibliotheksrückrufroutinen des Miniporttreibers.

[in] MinorFunction

Gibt die auszuführende WMI-Aktion an. Der Miniporttreiber legt MinorFunction auf Srb->WmiSubFunction vom Eingabe-SRB fest.

[in] DeviceContext

Zeiger auf einen vom Miniporttreiber definierten Kontextwert. Der Porttreiber übergibt DeviceContext- an die HwScsiWmiXxx Rückrufroutine des Miniporttreibers. Dieser Wert verweist in der Regel auf eine HW_DEVICE_EXTENSION Struktur.

[in] RequestContext

Zeigen Sie auf eine SCSIWMI_REQUEST_CONTEXT-Struktur, die Kontextinformationen für den WMI-SRB enthält. Wenn der SRB stiften kann, muss der Miniporttreiber diese Struktur aus der SRB-Erweiterung zuordnen, da der Anforderungskontext gültig bleiben muss, bis ScsiPortWmiPostProcess mit dem endgültigen SRB-Rückgabestatus und der Puffergröße zurückgibt. ScsiPortWmiDispatchFunction wird RequestContext an die Rückrufroutine des Miniporttreibers übergeben, die diese Anforderung verarbeitet.

[in] DataPath

Zeiger auf eine GUID, die den mit der Anforderung verknüpften Datenblock darstellt. Der Miniporttreiber legt DataPath- auf Srb->DataPath- des Eingabe-SRB fest.

[in] BufferSize

Gibt die Größe in Byte des Datenpuffers an. Der Miniporttreiber legt BufferSize- auf Srb->DataTransferLength- des Eingabe-SRB fest.

[in] Buffer

Zeigen Sie auf den Datenpuffer. Der Miniporttreiber legt Puffer- auf Srb->DataBuffer- aus dem Eingabe-SRB fest.

Rückgabewert

ScsiPortWmiDispatchFunction gibt TRUE zurück, wenn die Anforderung aussteht, oder FALSE, wenn die Anforderung abgeschlossen wurde.

Bemerkungen

Wenn ein Miniporttreiber einen SRB empfängt, in dem das Function Member auf SRB_FUNCTION_WMI festgelegt ist, ruft er ScsiPortWmiDispatchFunction mit Anforderungsparametern auf, einschließlich eines Zeigers auf eine initialisierte SCSI_WMILIB_CONTEXT Struktur. Diese Struktur enthält Informationen zu den Datenblöcken und Ereignisblöcken des Miniporttreibers und definiert Einstiegspunkte für die HwScsiWmiXxx Rückrufroutinen des Miniporttreibers.

ScsiPortWmiDispatchFunction bestätigt, dass SRB eine WMI-Anforderung ist und bestimmt, ob der durch die Anforderung angegebene Block für den Miniporttreiber gültig ist. Wenn diese Bedingungen erfüllt sind, verarbeitet ScsiPortWmiDispatchFunction den SRB durch Aufrufen der entsprechenden HwScsiWmiXxx Einstiegspunkt in der SCSI_WMILIB_CONTEXT Struktur des Miniporttreibers. Wenn der Miniporttreiber keinen Einstiegspunkt für einen optionalen HwScsiWmiXxx- Routine definiert, verarbeitet der Porttreiber die Anforderung.

In beiden Fällen sollte der Miniporttreiber nach ScsiPortWmiDispatchFunction- Folgendes für Anforderungen ausführen, die nicht eingestiftet werden:

  • Legen Sie Srb->DataTransferLength- auf den von ScsiPortWmiGetReturnSize
  • Legen Sie Srb->SrbStatus- auf den von ScsiPortWmiGetReturnStatus
  • Rufen Sie ScsiPortNotification mit RequestComplete- und erneut mit NextRequest-

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- scsiwmi.h (include Miniport.h, Scsi.h)

Siehe auch

SCSIWMI_REQUEST_CONTEXT

SCSI_WMILIB_CONTEXT

ScsiPortNotification-

ScsiPortWmiGetReturnSize-

ScsiPortWmiGetReturnStatus-

ScsiPortWmiPostProcess-