Freigeben über


ScsiPortWmiPostProcess-Funktion (scsiwmi.h)

Die ScsiPortWmiPostProcess Routine aktualisiert einen Anforderungskontext für einen WMI-SRB.

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

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)

Siehe auch

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction-

ScsiPortWmiGetReturnSize-

ScsiPortWmiGetReturnStatus-