Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Gilt für KMDF und UMDF]
Die WdfRegistryQueryMemory Methode ruft die Daten ab, die derzeit einem angegebenen Registrierungswert zugewiesen sind, speichert die Daten in einem framework-zugeordneten Puffer und erstellt ein Frameworkspeicherobjekt, das den Puffer darstellt.
Syntax
NTSTATUS WdfRegistryQueryMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
[out] WDFMEMORY *Memory,
[out, optional] PULONG ValueType
);
Die Parameter
[in] Key
Ein Handle zu einem Registrierungsschlüsselobjekt, das einen geöffneten Registrierungsschlüssel darstellt.
[in] ValueName
Ein Zeiger auf eine UNICODE_STRING Struktur, die einen Wertnamen enthält.
[in] PoolType
Ein POOL_TYPE-typed-Wert, der den Speichertyp angibt, der für den Datenpuffer zugewiesen werden soll.
[in, optional] MemoryAttributes
Ein Zeiger auf eine WDF_OBJECT_ATTRIBUTES Struktur, die Objektattribute für das neue Speicherobjekt enthält. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.
[out] Memory
Ein Zeiger auf eine Position, die ein Handle für das neue Speicherobjekt empfängt.
[out, optional] ValueType
Ein Zeiger auf einen Speicherort, der den Datentyp empfängt. Eine Liste der Datentypwerte finden Sie unter Type Member von KEY_VALUE_BASIC_INFORMATION. Dieser Zeiger ist optional und kann NULL-sein.
Rückgabewert
WdfRegistryQueryMemory gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise einen der folgenden Werte zurück:
| Rückgabecode | BESCHREIBUNG |
|---|---|
|
WdfRegistryQueryMemory wurde bei IRQL = PASSIVE_LEVEL nicht aufgerufen. |
|
Es wurde ein ungültiger Parameter angegeben. |
|
Ein Speicherobjekt konnte nicht zugeordnet werden. |
|
Der Treiber hat den Registrierungsschlüssel nicht mit KEY_QUERY_VALUE, KEY_READ oder KEY_ALL_ACCESS Zugriff geöffnet. |
|
Der Registrierungswert war nicht verfügbar. |
|
Der Registrierungswert ist unter dem angegebenen Schlüssel vorhanden, ist jedoch leer. |
Eine Liste mit anderen Rückgabewerten, die von der WdfRegistryQueryMemory Methode möglicherweise zurückgegeben werden, finden Sie unter Framework Object Creation Errors.
Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.
Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.
Bemerkungen
Wenn ein Treiber WdfRegistryQueryMemoryaufruft, weist das Framework einen Puffer zu, der groß genug ist, um die Daten des angegebenen Registrierungswerts aufzunehmen. Nachdem WdfRegistryQueryMemory- zurückgegeben wurde, kann der Treiber WdfMemoryGetBuffer- aufrufen, um einen Zeiger auf den Puffer und die Größe des Puffers abzurufen.
Weitere Informationen zu Registrierungsschlüsselobjekten finden Sie unter Verwenden der Registrierung in Framework-Based Drivers.
Beispiele
Im folgenden Codebeispiel werden die Daten abgerufen, die dem MyValueName Wert zugewiesen sind, und ruft dann die Adresse und Größe der Daten ab.
WDFMEMORY memory;
size_t size;
PUCHAR pBuf;
NTSTATUS status;
ULONG type;
DECLARE_CONST_UNICODE_STRING(valueName1, L"MyValueName");
status = WdfRegistryQueryMemory(
Key,
&valueName1,
PagedPool,
NULL,
&memory,
&type
);
pBuf = (PUCHAR)WdfMemoryGetBuffer(
memory,
&size
);
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | universell |
| Minimale KMDF-Version | 1.0 |
| Mindest-UMDF-Version | 2.0 |
| Kopfzeile | wdfregistry.h (include Wdf.h) |
| Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
| IRQL | PASSIVE_LEVEL |
| DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |