Partager via


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
Ces bits d’indicateur sont définis dans les fichiers d’en-tête Wdm.h et Winnt.h. Pour plus d’informations sur ces indicateurs, consultez Sécurité des clés de registre et droits d’accès.

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
Pour plus d’informations sur ces indicateurs, consultez OBJECT_ATTRIBUTES.

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
Cette case activée de sécurité est similaire à celle effectuée par la routine SeAccessCheck, qui a un paramètre AccessMode qui peut être défini sur UserMode ou KernelMode. Si CheckAccessMode est défini sur UserMode, le gestionnaire de configuration effectue un case activée d’accès de sécurité complet, que l’appel provient du mode utilisateur ou du mode noyau. Pour plus d’informations sur la façon de forcer les vérifications d’accès de sécurité en mode utilisateur sur un appel qui provient du mode noyau, consultez la description de l’indicateur OBJ_FORCE_ACCESS_CHECK dans le membre Attributs de la structure OBJECT_ATTRIBUTES .

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)

Voir aussi

CmSetCallbackObjectContext

OBJECT_ATTRIBUTES

ObOpenObjectByPointer

REG_CREATE_KEY_INFORMATION

RegCreateKey

RegCreateKeyEx

RegistryCallback

SECURITY_DESCRIPTOR

SECURITY_QUALITY_OF_SERVICE

UNICODE_STRING

ZwCreateKey