Fonction WdfRegistryAssignMemory (wdfregistry.h)
[S’applique à KMDF et UMDF]
La méthode WdfRegistryAssignMemory affecte les données contenues dans une mémoire tampon spécifiée à un nom de valeur spécifié dans le Registre.
Syntaxe
NTSTATUS WdfRegistryAssignMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueType,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);
Paramètres
[in] Key
Handle d’un objet de clé de Registre qui représente une clé de Registre ouverte.
[in] ValueName
Pointeur vers une structure UNICODE_STRING qui contient un nom de valeur.
[in] ValueType
Valeur qui identifie le type de données. Pour obtenir la liste des valeurs de type de données, consultez le membre type de KEY_VALUE_BASIC_INFORMATION.
[in] Memory
Handle d’un objet de mémoire framework. Cet objet représente une mémoire tampon qui contient des données qui seront affectées au nom de valeur vers lequel pointe ValueName .
[in, optional] MemoryOffsets
Pointeur vers une structure de WDFMEMORY_OFFSET fournie par le pilote qui identifie une sous-section de la mémoire tampon spécifiée par la mémoire . Ce paramètre est facultatif et peut être NULL.
Valeur retournée
WdfRegistryAssignMemory retourne STATUS_SUCCESS si l’opération réussit. Sinon, la méthode peut retourner l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
WdfRegistryAssignMemory n’a pas été appelé à IRQL = PASSIVE_LEVEL. |
|
Un paramètre non valide a été spécifié. |
|
Le pilote n’a pas ouvert la clé de Registre avec KEY_SET_VALUE accès. |
|
Le contenu de la structure WDFMEMORY_OFFSET que le paramètre MemoryOffsets a spécifié n’était pas valide. |
Cette méthode peut également retourner d’autres valeurs NTSTATUS.
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Remarques
Si le nom de valeur spécifié par le paramètre ValueName existe déjà, WdfRegistryAssignMemory met à jour les données de la valeur.
Pour plus d’informations sur les objets de clé de Registre, consultez Utilisation du Registre dans les pilotes Framework-Based.
Exemples
L’exemple de code suivant crée un objet de mémoire framework, charge la mémoire tampon de l’objet avec de fausses données et affecte le contenu de la mémoire tampon à une valeur de Registre.
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
);
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfregistry.h (include Wdf.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |