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 |
---|---|
|
WdfRegistryAssignMemory non è stato chiamato in IRQL = PASSIVE_LEVEL. |
|
È stato specificato un parametro non valido. |
|
Il driver non ha aperto la chiave del Registro di sistema con accesso KEY_SET_VALUE. |
|
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) |