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 wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

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)

Weitere Informationen

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus