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 sind möglicherweise geändert oder in Zukunft nicht mehr verfügbar. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

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 Daten- und Ereignisblöcke eines Miniporttreibers enthält und Einstiegspunkte für die Rückrufroutinen der WMI-Bibliothek des Miniporttreibers definiert.

[in] MinorFunction

Gibt die auszuführende WMI-Aktion an. Der Miniporttreiber legt MinorFunction aus dem Eingabe-SRB auf Srb-WmiSubFunction> 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

Zeiger 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 der endgültigen SRB-Rückgabe status und Puffergröße zurückgegeben wird. ScsiPortWmiDispatchFunction übergibt RequestContext an die Rückrufroutine des Miniporttreibers, die diese Anforderung verarbeitet.

[in] DataPath

Zeiger auf eine GUID, die den der Anforderung zugeordneten Datenblock darstellt. Der Miniporttreiber legt DataPath aus dem Eingabe-SRB auf Srb-DataPath> fest.

[in] BufferSize

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

[in] Buffer

Zeiger auf den Datenpuffer. Der Miniporttreiber legt Buffer aus dem Eingabe-SRB auf Srb-DataBuffer> fest.

Rückgabewert

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

Hinweise

Wenn ein Miniporttreiber einen SRB empfängt, in dem der 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 Daten- und Ereignisblöcken des Miniporttreibers und definiert Einstiegspunkte für die HwScsiWmiXxx-Rückrufroutinen des Miniporttreibers.

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

In beiden Fällen sollte der Miniporttreiber nach der Rückgabe von ScsiPortWmiDispatchFunction die folgenden Schritte für Anforderungen ausführen, die er nicht angibt:

  • Legen Sie Srb->DataTransferLength auf den Wert fest, der von ScsiPortWmiGetReturnSize zurückgegeben wird.
  • Legen Sie Srb->SrbStatus auf den von ScsiPortWmiGetReturnStatus zurückgegebenen Wert fest.
  • Aufrufen von ScsiPortNotification mit RequestComplete und erneut mit NextRequest

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile scsiwmi.h (einschließlich Miniport.h, Scsi.h)

Weitere Informationen

SCSIWMI_REQUEST_CONTEXT

SCSI_WMILIB_CONTEXT

ScsiPortNotification

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess