ScsiPortWmiPostProcess-Funktion (scsiwmi.h)
Die ScsiPortWmiPostProcess Routine aktualisiert einen Anforderungskontext für einen WMI-SRB.
Syntax
void ScsiPortWmiPostProcess(
[in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
[in] UCHAR SrbStatus,
[in] ULONG BufferUsed
);
Parameter
[in] RequestContext
Ein Zeiger auf den Anforderungskontext für diesen SRB.
[in] SrbStatus
Gibt einen gültigen SRB-Status an. Wenn der an den Miniporttreiber übergebene Ausgabepuffer zu klein war, um alle Daten aus einer Anforderung zu enthalten, legt der Miniporttreiber SrbStatus- auf SRB_STATUS_DATA_OVERRUN fest.
[in] BufferUsed
Wenn SrbStatus- den Erfolg angibt, legt der Miniporttreiber BufferUsed- auf die Anzahl der in den Puffer geschriebenen Daten fest. Wenn SrbStatus- SRB_STATUS_DATA_OVERRUN ist, legt der Miniporttreiber BufferUsed- auf die Anzahl der Bytes fest, die erforderlich sind, um den SRB erfolgreich abzuschließen.
Rückgabewert
Nichts
Bemerkungen
Ein Miniporttreiber muss ScsiPortWmiPostProcess- aufrufen, nachdem die WMI-SRB-Anforderung verarbeitet wurde und bereit ist, abgeschlossen zu werden.
Für synchrone SRBs wird ScsiPortWmiPostProcess- in der Rückrufroutine aufgerufen.
Bei ausstehenden SRBs wird ScsiPortWmiPostProcess- aufgerufen, nachdem der SRB verarbeitet wurde und bevor er abgeschlossen ist.
Wenn ein Miniporttreiber SrbStatus- auf SRB_STATUS_DATA_OVERRUN festlegt und BufferUsed-festlegt, sollten aufeinander folgende identische WMI-SRBs mit einem zugeordneten Puffer gleich oder größer als BufferUsed Bytes erfolgreich sein. Dies sollte erreicht werden, wenn der Treiber den genauen Wert für BufferUsed- festlegt, der zum Abschließen der Anforderung erforderlich ist, wenn ScsiPortWmiPostProcess mit SrbStatus- gleich SRB_STATUS_DATA_OVERRUN. Bei einer Ausgabestruktur mit variabler Größe sollte der Eingabedatenpuffer des SRB über genügend Informationen verfügen, um den genauen BufferUsed Wert zu ermitteln. Wenn der Eingabedatenpuffer nicht genügend Informationen enthält, sollte der Treiber nie dasselbe SRB zweimal mit SRB_STATUS_DATA_OVERRUN nicht bestehen. Stattdessen sollte der Treiber SRB_STATUS_DATA_OVERRUN festlegen und zuerst die für den Ausgabepuffer erforderliche Mindestgröße anfordern und dann SRB_STATUS_SUCCESS festlegen und den Fehler im Inhalt des Ausgabepuffers angeben.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | scsiwmi.h (include Miniport.h, Scsi.h) |