Freigeben über


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
STATUS_INVALID_DEVICE_REQUEST

WdfRegistryAssignMemory wurde bei IRQL = PASSIVE_LEVEL nicht aufgerufen.

STATUS_INVALID_PARAMETER
Es wurde ein ungültiger Parameter 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, 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)

Siehe auch

KEY_VALUE_BASIC_INFORMATION

UNICODE_STRING

WDFMEMORY_OFFSET

WdfMemoryCreate

WdfRegistryAssignMultiString-

WdfRegistryAssignString-

WdfRegistryAssignULong-

WdfRegistryAssignUnicodeString-

WdfRegistryAssignValue-