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
STATUS_INVALID_DEVICE_REQUEST

WdfRegistryAssignMemory wurde bei IRQL = PASSIVE_LEVEL nicht aufgerufen.

STATUS_INVALID_PARAMETER
Ein ungültiger Parameter wurde angegeben.
STATUS_ACCESS_DENIED
Der Treiber hat den Registrierungsschlüssel nicht mit KEY_SET_VALUE Zugriff geöffnet.
STATUS_INTEGER_OVERFLOW
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)

Weitere Informationen

KEY_VALUE_BASIC_INFORMATION

UNICODE_STRING

WDFMEMORY_OFFSET

WdfMemoryCreate

WdfRegistryAssignMultiString

WdfRegistryAssignString

WdfRegistryAssignULong

WdfRegistryAssignUnicodeString

WdfRegistryAssignValue