ScsiPortWmiDispatchFunction-Funktion (scsiwmi.h)
Die ScsiPortWmiDispatchFunction Routine ist eine Dispatchroutine für Miniporttreiber, die WMI unterstützen.
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) |