WdfRegistryAssignMemory-Funktion (wdfregistry.h)
[Gilt für KMDF und UMDF]
Die WdfRegistryAssignMemory Methode weist Daten zu, die in einem angegebenen Speicherpuffer enthalten sind, einem angegebenen Wertnamen in der Registrierung.
Syntax
NTSTATUS WdfRegistryAssignMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueType,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);
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] ValueType
Ein Wert, der den Datentyp identifiziert. Eine Liste der Datentypwerte finden Sie unter Type Member von KEY_VALUE_BASIC_INFORMATION.
[in] Memory
Ein Handle für ein Framework-Speicherobjekt. 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, der Memory angibt. Dieser Parameter ist optional und kann NULL-werden.
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. |
|
Es wurde ein ungültiger Parameter 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, waren ungültig. |
Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.
Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.
Bemerkungen
Wenn der Wertname, den der ValueName Parameter angibt, bereits vorhanden ist, WdfRegistryAssignMemory die Daten des Werts aktualisiert.
Weitere Informationen zu Registrierungsschlüsselobjekten finden Sie unter Verwenden der Registrierung in Framework-Based Drivers.
Beispiele
Im folgenden Codebeispiel wird ein Framework-Speicherobjekt 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 |
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) |