Condividi tramite


Funzione WdfRegistryAssignMemory (wdfregistry.h)

[Si applica a KMDF e UMDF]

Il metodo WdfRegistryAssignMemory assegna i dati contenuti in un buffer di memoria specificato a un nome valore specificato nel Registro di sistema.

Sintassi

NTSTATUS WdfRegistryAssignMemory(
  [in]           WDFKEY            Key,
  [in]           PCUNICODE_STRING  ValueName,
  [in]           ULONG             ValueType,
  [in]           WDFMEMORY         Memory,
  [in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);

Parametri

[in] Key

Handle per un oggetto chiave del Registro di sistema che rappresenta una chiave del Registro di sistema aperta.

[in] ValueName

Puntatore a una struttura UNICODE_STRING contenente un nome di valore.

[in] ValueType

Valore che identifica il tipo di dati. Per un elenco di valori del tipo di dati, vedere Il membro Type di KEY_VALUE_BASIC_INFORMATION.

[in] Memory

Handle per un oggetto memoria framework. Questo oggetto rappresenta un buffer che contiene dati che verranno assegnati al nome del valore a cui ValueName punta.

[in, optional] MemoryOffsets

Puntatore a una struttura di WDFMEMORY_OFFSET fornita dal driver che identifica una sottosezione del buffer specificata dalla memoria . Questo parametro è facoltativo e può essere NULL.

Valore restituito

WdfRegistryAssignMemory restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, il metodo potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INVALID_DEVICE_REQUEST

WdfRegistryAssignMemory non è stato chiamato in IRQL = PASSIVE_LEVEL.

STATUS_INVALID_PARAMETER
È stato specificato un parametro non valido.
STATUS_ACCESS_DENIED
Il driver non ha aperto la chiave del Registro di sistema con accesso KEY_SET_VALUE.
STATUS_INTEGER_OVERFLOW
Il contenuto della struttura WDFMEMORY_OFFSET specificata dal parametro MemoryOffsets non è valido.
 

Questo metodo potrebbe restituire anche altri valori NTSTATUS.

Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.

Commenti

Se il nome del valore specificato dal parametro ValueName esiste già, WdfRegistryAssignMemory aggiorna i dati del valore.

Per altre informazioni sugli oggetti chiave del Registro di sistema, vedere Uso del Registro di sistema in Framework-Based Driver.

Esempio

L'esempio di codice seguente crea un oggetto memoria del framework, carica il buffer dell'oggetto con dati falsi e assegna il contenuto del buffer a un valore del Registro di sistema.

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
                                     );
}

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1,0
Versione UMDF minima 2,0
Intestazione wdfregistry.h (includere Wdf.h)
Libreria Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedi anche

KEY_VALUE_BASIC_INFORMATION

UNICODE_STRING

WDFMEMORY_OFFSET

WdfMemoryCreate

WdfRegistryAssignMultiString

WdfRegistryAssignString

WdfRegistryAssignULong

WdfRegistryAssignUnicodeString

WdfRegistryAssignValue