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 alle 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 anzeigt, legt der Miniporttreiber BufferUsed auf die Anzahl von Bytes fest, die in den Puffer geschrieben wurden. 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
Keine
Bemerkungen
Ein Miniporttreiber muss ScsiPortWmiPostProcess aufrufen, nachdem die WMI-SRB-Anforderung verarbeitet wurde und zum Abschluss bereit ist.
Bei synchronen 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 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 beim Aufrufen von ScsiPortWmiPostProcess mit SrbStatus gleich SRB_STATUS_DATA_OVERRUN ist. Für eine Ausgabestruktur mit variabler Größe sollte der Eingabedatenpuffer des SRB über genügend Informationen verfügen, um den genauen BufferUsed-Wert zu bestimmen. Wenn der Eingabedatenpuffer nicht genügend Informationen enthält, sollte der Treiber nie denselben SRB zweimal mit SRB_STATUS_DATA_OVERRUN ausschlagen. Stattdessen sollte der Treiber SRB_STATUS_DATA_OVERRUN festlegen und zuerst die für den Ausgabepuffer erforderliche Mindestgröße anfordern, dann SRB_STATUS_SUCCESS festlegen und den Fehler im Inhalt des Ausgabepuffers angeben.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | scsiwmi.h (einschließlich Miniport.h, Scsi.h) |