WdfRegistryAssignMemory-Funktion (wdfregistry.h)
[Gilt für KMDF und UMDF]
Die WdfRegistryAssignMemory-Methode weist Daten, die in einem angegebenen Speicherpuffer enthalten sind, einem angegebenen Wertnamen in der Registrierung zu.
Syntax
NTSTATUS WdfRegistryAssignMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueType,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);
Parameter
[in] Key
Ein Handle für ein Registrierungsschlüsselobjekt, das einen geöffneten Registrierungsschlüssel darstellt.
[in] ValueName
Ein Zeiger auf eine UNICODE_STRING-Struktur , die einen Wertnamen enthält.
[in] ValueType
Ein -Wert, der den Datentyp identifiziert. Eine Liste der Datentypwerte finden Sie im Typmember von KEY_VALUE_BASIC_INFORMATION.
[in] Memory
Ein Handle für ein Frameworkspeicherobjekt. Dieses Objekt stellt einen Puffer dar, der Daten enthält, die dem Wertnamen zugewiesen werden, auf den ValueName verweist.
[in, optional] MemoryOffsets
Ein Zeiger auf eine vom Treiber bereitgestellte WDFMEMORY_OFFSET Struktur, die einen Unterabschnitt des Puffers identifiziert, den der Arbeitsspeicher angibt. Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
WdfRegistryAssignMemory 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 |
---|---|
|
WdfRegistryAssignMemory wurde bei IRQL = PASSIVE_LEVEL nicht aufgerufen. |
|
Ein ungültiger Parameter wurde angegeben. |
|
Der Treiber hat den Registrierungsschlüssel nicht mit KEY_SET_VALUE Zugriff geöffnet. |
|
Der Inhalt der WDFMEMORY_OFFSET Struktur, die vom MemoryOffsets-Parameter angegeben wurde, war ungültig. |
Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Wenn der Wertname, den der ValueName-Parameter angibt, bereits vorhanden ist, aktualisiert WdfRegistryAssignMemory die Daten des Werts.
Weitere Informationen zu Registrierungsschlüsselobjekten finden Sie unter Verwenden der Registrierung in Framework-Based-Treibern.
Beispiele
Im folgenden Codebeispiel wird ein Frameworkspeicherobjekt erstellt, der Puffer des Objekts mit gefälschten Daten geladen und der Inhalt des Puffers einem Registrierungswert zugewiesen.
PUCHAR pBuffer;
WDFMEMORY memory;
NTSTATUS status;
UCHAR i;
DECLARE_UNICODE_STRING_SIZE(valueName, L"MyValueName");
status = WdfMemoryCreate(
WDF_NO_OBJECT_ATTRIBUTES,
NonPagedPool,
0,
MEMORY_LENGTH,
&memory,
(PVOID*)&pBuffer
);
if (NT_SUCCESS(status)) {
// Fill the buffer with fake data.
for (i = 1; i <= MEMORY_LENGTH; i++) {
pBuffer[i-1] = i;
}
status = WdfRegistryAssignMemory(
Key,
&valueName,
REG_BINARY,
memory,
NULL
);
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfregistry.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |