Freigeben über


IoGetDevicePropertyData-Funktion (wdm.h)

Die IoGetDevicePropertyData-Routine ruft die aktuelle Einstellung für eine Geräteeigenschaft ab.

Syntax

NTSTATUS IoGetDevicePropertyData(
  [in]  PDEVICE_OBJECT   Pdo,
  [in]  const DEVPROPKEY *PropertyKey,
  [in]  LCID             Lcid,
        ULONG            Flags,
  [in]  ULONG            Size,
  [out] PVOID            Data,
  [out] PULONG           RequiredSize,
  [out] PDEVPROPTYPE     Type
);

Parameter

[in] Pdo

Ein Zeiger auf das physische Geräteobjekt (PDO) für das gerät, das abgefragt wird.

[in] PropertyKey

Ein Zeiger auf eine DEVPROPKEY-Struktur , die den Geräteeigenschaftenschlüssel angibt.

[in] Lcid

Ein Gebietsschemabezeichner. Legen Sie diesen Parameter entweder auf einen sprachspezifischen LCID-Wert oder auf LOCALE_NEUTRAL fest. Die LOCALE_NEUTRAL LCID gibt an, dass die Eigenschaft sprachneutral ist (d. a. nicht sprachspezifisch). Legen Sie diesen Parameter nicht auf LOCALE_SYSTEM_DEFAULT oder LOCALE_USER_DEFAULT fest. Weitere Informationen zu sprachspezifischen LCID-Werten finden Sie unter LCID-Struktur.

Flags

Ist für das System reserviert. Treiber sollten diesen Wert auf 0 festlegen.

[in] Size

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

[out] Data

Ein Zeiger auf die Geräteeigenschaftendaten.

[out] RequiredSize

Ein Zeiger auf eine ULONG, um die Größe der Eigenschafteninformationen zu empfangen, die bei Data zurückgegeben werden. Wenn IoGetDevicePropertyData STATUS_BUFFER_TOO_SMALL zurückgibt, kann der Aufrufer diesen Wert verwenden, um einen Puffer der richtigen Größe zuzuweisen.

[out] Type

Ein Zeiger auf einen DEVPROPTYPE-Wert . Wenn IoGetDevicePropertyData erfolgreich abgeschlossen wurde, verwendet die Routine Type , um den Datentyp anzugeben, der im Datenpuffer zurückgegeben wird.

Rückgabewert

IoGetDevicePropertyData gibt einen NTSTATUS-Wert zurück. Diese Routine gibt möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Vorgang wurde erfolgreich ausgeführt. Der Datenpuffer enthält die abgerufenen Daten. **Type* enthält den Typ der abgerufenen Daten.
STATUS_BUFFER_TOO_SMALL
Der Datenpuffer ist zu klein. **RequiredSize* enthält die erforderliche Pufferlänge.
STATUS_OBJECT_NAME_NOT_FOUND
Die angegebene Geräteeigenschaft wurde nicht gefunden.

Hinweise

Kernelmodustreiber verwenden die IoGetDevicePropertyData-Routine , um Geräteeigenschaften abzurufen, die als Teil des einheitlichen Geräteeigenschaftenmodells definiert sind.

Informationen zu Eigenschaftentypen, die für diese Routine verfügbar sind, finden Sie unter DEVPROP_TYPE_BYTE und angrenzenden Seiten für DEVPROP_TYPE_*.

Treiber können die IoSetDevicePropertyData-Routine verwenden, um eine Geräteeigenschaft zu ändern.

Aufrufer von IoGetDevicePropertyData müssen unter IRQL <= APC_LEVEL im Kontext eines Systemthreads ausgeführt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

DEVPROPKEY

DEVPROPTYPE

IoSetDevicePropertyData