ScsiPortWmiSetInstanceCount-Funktion (scsiwmi.h)

Der ScsiPortWmiSetInstanceCount gibt die Anzahl der Instanzen an, für die Datenpuffer innerhalb der WNODE_ALL_DATA-Struktur im Anforderungskontext festgelegt werden müssen.

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

BOOLEAN ScsiPortWmiSetInstanceCount(
  [in]  PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in]  ULONG                    InstanceCount,
  [out] PULONG                   BufferAvail,
  [out] PULONG                   SizeNeeded
);

Parameter

[in] RequestContext

Zeiger auf eine Struktur vom Typ SCSIWMI_REQUEST_CONTEXT , die den Anforderungskontext für einen WMI-SRB enthält.

[in] InstanceCount

Enthält die Anzahl der Instanzen, für die der Minidriver Daten bereitstellt.

[out] BufferAvail

Enthält bei der Rückgabe die Anzahl der Bytes des Pufferspeichers, der zum Beschreiben instance Namen und Daten verfügbar ist. Der wert, der in diesem Member zurückgegeben wird, kann an die Routinen ScsiPortWmiSetData und ScsiPortWmiSetInstanceName im BufferAvail-Parameter dieser Routinen übergeben werden.

Die ScsiPortWmiSetInstanceCount-Routine initialisiert ein Array von Zeigern auf Datenpuffer mit einem Arrayelement für jede instance. Wenn im WNODE nicht genügend Arbeitsspeicher zum Initialisieren eines Arrays der Größe InstanceCount verfügbar ist, wird in diesem Element eine Null zurückgegeben.

[out] SizeNeeded

Gibt bei der Eingabe die Anzahl der Bytes an, die zum Beschreiben des gesamten WNODE vor dem Konfigurieren der internen Arrays im WNODE erforderlich sind. Bei der Rückgabe enthält dieses Element die Größe des gesamten WNODE, einschließlich der neu initialisierten Arrays innerhalb des WNODE.

Rückgabewert

Die ScsiPortWmiSetInstanceCount-Routine gibt TRUE zurück, wenn der Vorgang erfolgreich ist, und FALSE , wenn der im Anforderungskontext enthaltene WNODE nicht vom Typ WNODE_ALL_DATA ist.

Hinweise

Der Minidriver muss ScsiPortWmiSetInstanceCount aufrufen, bevor er entweder ScsiPortWmiSetData oder ScsiPortWmiSetInstanceName aufruft. Der Minidriver sollte ScsiPortWmiSetInstanceCount nur einmal aufrufen.

Der Parameter RequestContext verweist auf eine Anforderungskontextstruktur SCSIWMI_REQUEST_CONTEXT, die Informationen enthält, die einem SCSI-Anforderungsblock ( Windows Management Instrumentation , WMI) zugeordnet sind. Die Anforderungskontextstruktur enthält wiederum eine der WMI-WNODE_XXX Strukturen , die vom WMI-System verwendet werden, um Daten zwischen Benutzermodusdatenverbrauchern und Kernelmodusdatenanbietern wie Treibern zu übergeben.

Für die ScsiPortWmiSetInstanceCount-Routine muss die WNODE-Struktur, die im Anforderungskontext definiert ist, vom Typ WNODE_ALL_DATA sein. Dies liegt daran, dass ScsiPortWmiSetInstanceCount einen Datenbereich festlegt, der Informationen für mehrere Instanzen enthält, die einem WMI-Datenblock zugeordnet sind. Im Gegensatz zur WNODE_SINGLE_INSTANCE-Struktur, die Informationen zu einer einzelnen instance enthält, enthält die WNODE_ALL_DATA-Struktur ein Array von Zeigern auf Pufferbereiche für verschiedene Instanzen, und ScsiPortWmiSetInstanceCount initialisiert dieses Array, sodass auf jeden Puffer von instance Daten einzeln mithilfe eines instance Index zugegriffen werden kann.

Der für den Anforderungskontext zugewiesene Arbeitsspeicher muss gültig bleiben, bis der Miniporttreiber ScsiPortWmiPostProcess aufgerufen hat, und ScsiPortWmiPostProcess gibt die endgültige SRB-status- und Puffergröße zurück. Wenn der SRB einen Stift verwenden kann, sollte der Arbeitsspeicher für den Anforderungskontext aus der SRB-Erweiterung zugewiesen werden. Wenn der SRB keinen Stift erstellen kann, kann der Arbeitsspeicher aus einem Stapelrahmen zugewiesen werden, der nicht aus dem Bereich herausgeht.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile scsiwmi.h (einschließlich Miniport.h, Scsi.h)

Weitere Informationen

SCSIWMI_REQUEST_CONTEXT

WNODE_ALL_DATA

WNODE_SINGLE_INSTANCE