WdfIoTargetQueryTargetProperty-Funktion (wdfiotarget.h)

[Gilt nur für KMDF]

Die WdfIoTargetQueryTargetProperty Methode ruft eine angegebene Geräteeigenschaft für ein angegebenes E/A-Ziel ab.

Syntax

NTSTATUS WdfIoTargetQueryTargetProperty(
  [in]            WDFIOTARGET              IoTarget,
  [in]            DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]            ULONG                    BufferLength,
  [out, optional] PVOID                    PropertyBuffer,
  [out]           PULONG                   ResultLength
);

Die Parameter

[in] IoTarget

Ein Handle für ein lokales oder Remote-E/A-Zielobjekt, das von einem vorherigen Aufruf an WdfDeviceGetIoTarget oder WdfIoTargetCreateabgerufen wurde, oder von einer Methode, die ein spezialisiertes E/A-Ziel bereitstellt.

[in] DeviceProperty

Ein DEVICE_REGISTRY_PROPERTY-typed-Wert, der die abzurufende Geräteeigenschaft identifiziert.

[in] BufferLength

Die Größe des Puffers in Bytes, auf den PropertyBuffer verweist.

[out, optional] PropertyBuffer

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die angeforderten Geräteeigenschafteninformationen empfängt. Dieser Zeiger kann null werden, wenn BufferLength null ist.

[out] ResultLength

Ein Zeiger auf einen Speicherort, der in Byte die Größe der Informationen enthält, auf die WdfIoTargetQueryTargetProperty, die im Puffer gespeichert PropertyBuffer. Wenn WdfIoTargetQueryTargetProperty STATUS_BUFFER_TOO_SMALL zurückgibt, empfängt dieser Speicherort die erforderliche Puffergröße.

Rückgabewert

WdfIoTargetQueryTargetProperty gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:

Rückgabecode BESCHREIBUNG
STATUS_BUFFER_TOO_SMALL
Der Puffer, auf den der PropertyBuffer Parameter verweist, war zu klein, um die angeforderten Informationen zu empfangen.
STATUS_INVALID_PARAMETER_2
Der wert, den der DeviceProperty parameter angegeben hat, war ungültig.
STATUS_INVALID_DEVICE_REQUEST
Die Treiber des Geräts haben die Eigenschaften des Geräts noch nicht gemeldet.
 

Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Bemerkungen

Bevor Treiber Geräteeigenschaftendaten empfangen, rufen sie in der Regel die WdfIoTargetQueryTargetProperty Methode auf, um die erforderliche Puffergröße abzurufen. Bei einigen Eigenschaften kann sich die Datengröße ändern, wenn die erforderliche Größe zurückgegeben wird und wenn der Treiber WdfIoTargetQueryTargetProperty erneut aufruft. Daher sollten Treiber WdfIoTargetQueryTargetProperty- in einer Schleife aufrufen, die ausgeführt wird, bis der Rückgabestatus nicht STATUS_BUFFER_TOO_SMALL ist.

Anstatt WdfIoTargetQueryTargetProperty-aufzurufen, kann Ihr Treiber WdfIoTargetAllocAndQueryTargetPropertyaufrufen, der einen Puffer zuordnet und die Eigenschafteninformationen im Puffer platziert.

Weitere Informationen zu WdfIoTargetQueryTargetPropertyfinden Sie unter Abrufen von Informationen zu einem allgemeinen E/A-Ziel-.

Weitere Informationen zu E/A-Zielen finden Sie unter Using I/O Targets.

Beispiele

Im folgenden Codebeispiel wird die DevicePropertyUINumber-Eigenschaft eines Geräts abrufen. Im Beispiel wird WdfIoTargetQueryTargetProperty- anstelle von WdfIoTargetAllocAndQueryTargetProperty aufgerufen, da die Länge einer UI-Nummer bekannt ist.

ULONG targetUINumber, resultLength;
NTSTATUS status;

status = WdfIoTargetQueryTargetProperty(
                                        target,
                                        DevicePropertyUINumber,
                                        sizeof(targetNumber),
                                        &targetUINumber,
                                        &resultLength
                                        );

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Kopfzeile wdfiotarget.h (include Wdf.h)
Bibliothek Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

DEVICE_REGISTRY_PROPERTY

WdfDeviceGetIoTarget-

WdfDeviceQueryProperty-

WdfIoTargetAllocAndQueryTargetProperty

WdfIoTargetCreate