structure REG_CREATE_KEY_INFORMATION_V1 (wdm.h)
La structure REG_CREATE_KEY_INFORMATION_V1 contient des informations que la routine RegistryCallback d’un pilote de filtre peut utiliser lors de la création d’une clé de Registre.
Syntaxe
typedef struct _REG_CREATE_KEY_INFORMATION_V1 {
PUNICODE_STRING CompleteName;
PVOID RootObject;
PVOID ObjectType;
ULONG Options;
PUNICODE_STRING Class;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
ACCESS_MASK DesiredAccess;
ACCESS_MASK GrantedAccess;
PULONG Disposition;
PVOID *ResultObject;
PVOID CallContext;
PVOID RootObjectContext;
PVOID Transaction;
ULONG_PTR Version;
PUNICODE_STRING RemainingName;
ULONG Wow64Flags;
ULONG Attributes;
KPROCESSOR_MODE CheckAccessMode;
} REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION_V1, *PREG_CREATE_KEY_INFORMATION_V1, *PREG_OPEN_KEY_INFORMATION_V1;
Membres
CompleteName
Pointeur vers une structure UNICODE_STRING qui contient le chemin d’accès de la nouvelle clé de Registre. Le chemin peut être absolu ou relatif. Si le chemin d’accès est absolu, cette structure contient un chemin d’accès complet qui commence par le caractère « \ ». Pour un chemin d’accès absolu, le membre RootObject spécifie la clé \REGISTRY , qui est le répertoire racine de l’arborescence du Registre. Si le chemin d’accès est relatif, le chemin commence par un caractère autre que « \ » et est relatif à la clé spécifiée par le membre RootObject .
RootObject
Pointeur vers un objet de clé de Registre qui représente la clé de Registre racine pour le chemin d’accès spécifié par le membre CompleteName .
ObjectType
Ce membre est réservé au système d’exploitation. Les pilotes ne doivent pas accéder à ce membre.
Options
Spécifie les options de la routine de création de clé à utiliser pour créer ou ouvrir la nouvelle clé. Pour plus d’informations, consultez la description du paramètre CreateOptions de la routine ZwCreateKey et la description du paramètre OpenOptions de la routine ZwOpenKeyEx .
Class
Pointeur vers une structure de UNICODE_STRING qui identifie la classe d’objet de la nouvelle clé. Pour plus d’informations sur ce membre, consultez le paramètre Class de la routine ZwCreateKey . Cette valeur de pointeur peut être NULL.
SecurityDescriptor
Pointeur vers une structure de SECURITY_DESCRIPTOR qui contient des informations de sécurité pour l’objet clé. Ce pointeur a été obtenu à partir du membre SecurityDescriptor de la structure OBJECT_ATTRIBUTES qui a été passé en tant que paramètre d’entrée dans l’appel pour créer la nouvelle clé de Registre.
SecurityQualityOfService
Pointeur vers une structure SECURITY_QUALITY_OF_SERVICE . Cette structure indique si un serveur peut emprunter l’identité du client qui tente de créer la clé de Registre et, si l’emprunt d’identité est autorisé, la mesure dans laquelle elle est autorisée.
DesiredAccess
Masque d’accès spécifié par le thread qui tente de créer la clé de Registre. Pour plus d’informations sur ce masque d’accès, consultez la description du paramètre DesiredAccess de la routine ZwCreateKey .
GrantedAccess
Masque d’accès qui indique les droits d’accès accordés au thread qui tente de créer la clé de Registre. Pour plus d’informations sur ce membre, consultez la section Remarques suivante.
Disposition
Valeur qui indique si l’opération de Registre demandée va créer une nouvelle clé ou en ouvrir une existante. Pour plus d’informations sur ce membre, consultez la description du paramètre Disposition de la routine ZwCreateKey et la section Remarques suivante.
ResultObject
Pointeur vers un emplacement qui reçoit l’adresse de l’objet clé qui représente la clé de Registre créée.
CallContext
Informations de contexte facultatives définies par le pilote que la routine RegistryCallback du pilote peut fournir.
RootObjectContext
Pointeur vers les informations de contexte définies par le pilote que le pilote a associées à la racine du chemin d’accès de l’objet de Registre en appelant la routine CmSetCallbackObjectContext .
Transaction
Pointeur vers un objet de transaction pour l’opération de Registre. Vous pouvez fournir ce pointeur vers la routine ObOpenObjectByPointer pour obtenir le handle de transaction correspondant. Si ce membre a la valeur NULL, l’opération est effectuée dans un contexte non transactionnel.
Version
Numéro de version de la structure. Ce membre distingue la structure REG_CREATE_KEY_INFORMATION dans Windows Vista de la structure REG_CREATE_KEY_INFORMATION_V1 dans Windows 7 et les versions ultérieures de Windows. Les numéros de version suivants sont actuellement définis.
Numéro de version | Version de la structure |
---|---|
0 | REG_CREATE_KEY_INFORMATION |
1 | REG_CREATE_KEY_INFORMATION_V1 |
Les versions ultérieures de cette structure peuvent ajouter de nouveaux membres, mais ne modifieront pas les membres déjà définis dans les versions existantes de la structure. Ce membre est défini dans la structure REG_CREATE_KEY_INFORMATION_V1 prise en charge dans Windows 7 et les versions ultérieures des systèmes d’exploitation Windows. Dans la structure REG_CREATE_KEY_INFORMATION prise en charge par Windows Vista, ce membre est nommé Réservé et est défini sur zéro. Les pilotes de filtre doivent s’appuyer sur le numéro de version et non sur la version du système d’exploitation pour déterminer la version de la structure qu’ils utilisent.
RemainingName
Pointeur vers une structure UNICODE_STRING qui contient le chemin d’accès relatif de la nouvelle clé de Registre. Ce membre exprime toujours le chemin de la nouvelle clé par rapport au chemin d’accès de la clé spécifié par le membre RootObject . En revanche, le membre CompleteName peut contenir un chemin d’accès absolu si le membre RootObject spécifie la clé \REGISTRY .
Wow64Flags
Contient les indicateurs Wow64 du masque d’accès qui a été passé en tant que paramètre d’entrée dans l’appel pour créer la nouvelle clé de Registre. Ce membre indique si un programme client 32 bits qui s’exécute sur une version 64 bits de Windows tente de créer une clé de Registre. Ce membre est défini sur zéro ou sur l’un des bits d’indicateur suivants :
- KEY_WOW64_32KEY
- KEY_WOW64_64KEY
Attributes
Contient les indicateurs object-attribute du membre Attributes de la structure OBJECT_ATTRIBUTES qui a été passé en tant que paramètre d’entrée dans l’appel pour créer la nouvelle clé de Registre. Ce membre peut contenir un ou plusieurs des bits d’indicateur suivants :
- OBJ_KERNEL_HANDLE
- OBJ_FORCE_ACCESS_CHECK
- OBJ_OPENLINK
CheckAccessMode
Indique comment le gestionnaire de configuration effectue l’case activée d’accès de sécurité pour que l’appel crée la nouvelle clé. Ce membre contient l’une des valeurs d’énumération MODE suivantes du fichier d’en-tête Wdm.h :
- KernelMode
- Usermode
Remarques
Le gestionnaire de configuration transmet cette structure à la routine RegistryCallback chaque fois qu’un thread tente de créer une clé, par exemple, lorsqu’un thread en mode utilisateur appelle RegCreateKey ou RegCreateKeyEx, ou lorsqu’un pilote en mode noyau appelle ZwCreateKey.
Cette structure est une version étendue de la structure REG_CREATE_KEY_INFORMATION prise en charge par Windows Vista. Les 14 premiers membres, CompleteName via Transaction, sont identiques dans les deux structures. Les cinq derniers membres de la structure REG_CREATE_KEY_INFORMATION_V1 , Version à CheckAccessMode, ne font pas partie de la structure REG_CREATE_KEY_INFORMATION .
Si la routine RegistryCallback du pilote retourne STATUS_CALLBACK_BYPASS pour une notification RegNtPreCreateKeyEx , le pilote doit fournir les valeurs des membres GrantedAccess, Disposition et ResultObject .
La structure REG_CREATE_KEY_INFORMATION_V1 est l’une des nombreuses structures qu’un pilote de filtre peut recevoir via sa routine RegistryCallback . Pour plus d’informations sur les opérations de filtrage du Registre, consultez Filtrage des appels du Registre.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible sur Windows 7 et versions ultérieures des systèmes d’exploitation Windows. |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |