estructura REG_CREATE_KEY_INFORMATION_V1 (wdm.h)

La estructura REG_CREATE_KEY_INFORMATION_V1 contiene información que la rutina RegistryCallback de un controlador de filtro puede usar cuando se crea una clave del Registro.

Sintaxis

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;

Miembros

CompleteName

Puntero a una estructura de UNICODE_STRING que contiene la ruta de acceso de la nueva clave del Registro. La ruta de acceso puede ser absoluta o relativa. Si la ruta de acceso es absoluta, esta estructura contiene una ruta de acceso completa que comienza con el carácter "\". Para una ruta de acceso absoluta, el miembro RootObject especifica la clave \REGISTRY , que es el directorio raíz del árbol del Registro. Si la ruta de acceso es relativa, la ruta de acceso comienza con un carácter distinto de "\" y es relativa a la clave especificada por el miembro RootObject .

RootObject

Puntero a un objeto de clave del Registro que representa la clave del Registro raíz para la ruta de acceso especificada por el miembro CompleteName .

ObjectType

Este miembro está reservado para que lo use el sistema operativo. Los controladores no deben acceder a este miembro.

Options

Especifica las opciones de la rutina de creación de claves que se va a usar para crear o abrir la nueva clave. Para obtener más información, vea la descripción del parámetro CreateOptions de la rutina ZwCreateKey y la descripción del parámetro OpenOptions de la rutina ZwOpenKeyEx .

Class

Puntero a una estructura UNICODE_STRING que identifica la clase de objeto de la nueva clave. Para obtener más información sobre este miembro, vea el parámetro Class de la rutina ZwCreateKey . Este valor de puntero puede ser NULL.

SecurityDescriptor

Puntero a una estructura de SECURITY_DESCRIPTOR que contiene información de seguridad para el objeto de clave. Este puntero se obtuvo del miembro SecurityDescriptor de la estructura de OBJECT_ATTRIBUTES que se pasó como parámetro de entrada en la llamada para crear la nueva clave del Registro.

SecurityQualityOfService

Puntero a una estructura de SECURITY_QUALITY_OF_SERVICE . Esta estructura indica si un servidor puede suplantar al cliente que intenta crear la clave del Registro y, si se permite la suplantación, en la medida en que se permite.

DesiredAccess

Máscara de acceso especificada por el subproceso que intenta crear la clave del Registro. Para obtener más información sobre esta máscara de acceso, vea la descripción del parámetro DesiredAccess de la rutina ZwCreateKey .

GrantedAccess

Máscara de acceso que indica los derechos de acceso concedidos al subproceso que intenta crear la clave del Registro. Para obtener más información sobre este miembro, vea la siguiente sección Comentarios.

Disposition

Valor que indica si la operación del Registro solicitada creará una nueva clave o abrirá una existente. Para obtener más información sobre este miembro, vea la descripción del parámetro Disposition de la rutina ZwCreateKey y la siguiente sección Comentarios.

ResultObject

Puntero a una ubicación que recibe la dirección del objeto de clave que representa la clave del Registro creada.

CallContext

Información de contexto opcional definida por el controlador que puede proporcionar la rutina RegistryCallback del controlador.

RootObjectContext

Puntero a la información de contexto definida por el controlador que el controlador ha asociado con la raíz de la ruta de acceso del objeto del Registro llamando a la rutina CmSetCallbackObjectContext .

Transaction

Puntero a un objeto de transacción para la operación del Registro. Puede proporcionar este puntero a la rutina ObOpenObjectByPointer para obtener el identificador de transacción correspondiente. Si este miembro es NULL, la operación se realiza en contexto no transaccional.

Version

Número de versión de la estructura. Este miembro distingue la estructura de REG_CREATE_KEY_INFORMATION en Windows Vista de la estructura de REG_CREATE_KEY_INFORMATION_V1 en Windows 7 y versiones posteriores de Windows. Actualmente se definen los siguientes números de versión.

Número de la versión Versión de la estructura
0 REG_CREATE_KEY_INFORMATION
1 REG_CREATE_KEY_INFORMATION_V1
 

Las versiones futuras de esta estructura podrían agregar nuevos miembros, pero no cambiarán los miembros que ya están definidos en las versiones existentes de la estructura. Este miembro se define en la estructura REG_CREATE_KEY_INFORMATION_V1 que se admite en Windows 7 y versiones posteriores de los sistemas operativos Windows. En la estructura de REG_CREATE_KEY_INFORMATION que admite Windows Vista, este miembro se denomina Reservado y se establece en cero. Los controladores de filtro deben confiar en el número de versión y no en la versión del sistema operativo para determinar qué versión de la estructura usan.

RemainingName

Puntero a una estructura de UNICODE_STRING que contiene la ruta de acceso relativa de la nueva clave del Registro. Este miembro siempre expresa la ruta de acceso de la nueva clave en relación con la ruta de acceso de la clave especificada por el miembro RootObject . En cambio, el miembro CompleteName puede contener una ruta de acceso absoluta si el miembro RootObject especifica la clave \REGISTRY .

Wow64Flags

Contiene las marcas Wow64 de la máscara de acceso que se pasó como parámetro de entrada en la llamada para crear la nueva clave del Registro. Este miembro indica si un programa cliente de 32 bits que se ejecuta en una versión de 64 bits de Windows está intentando crear una clave del Registro. Este miembro se establece en cero o en uno de los siguientes bits de marca:

  • KEY_WOW64_32KEY
  • KEY_WOW64_64KEY
Estos bits de marca se definen en los archivos de encabezado Wdm.h y Winnt.h. Para obtener más información sobre estas marcas, consulte Derechos de acceso y seguridad de clave del Registro.

Attributes

Contiene las marcas de atributo de objeto del miembro Attributes de la estructura OBJECT_ATTRIBUTES que se pasó como parámetro de entrada en la llamada para crear la nueva clave del Registro. Este miembro puede contener uno o varios de los siguientes bits de marca:

  • OBJ_KERNEL_HANDLE
  • OBJ_FORCE_ACCESS_CHECK
  • OBJ_OPENLINK
Para obtener más información sobre estas marcas, consulte OBJECT_ATTRIBUTES.

CheckAccessMode

Indica cómo realiza el administrador de configuración la comprobación de acceso de seguridad de la llamada para crear la nueva clave. Este miembro contiene uno de los siguientes valores de enumeración MODE del archivo de encabezado Wdm.h:

  • KernelMode
  • UserMode
Esta comprobación de seguridad es similar a la realizada por la rutina SeAccessCheck , que tiene un parámetro AccessMode que se puede establecer en UserMode o KernelMode. Si CheckAccessMode está establecido en UserMode, el administrador de configuración realiza una comprobación de acceso de seguridad completa independientemente de si la llamada se originó en modo de usuario o modo kernel. Para obtener más información sobre cómo forzar las comprobaciones de acceso de seguridad en modo de usuario en una llamada que se origina en modo kernel, vea la descripción de la marca OBJ_FORCE_ACCESS_CHECK en el miembro Atributos de la estructura de OBJECT_ATTRIBUTES .

Comentarios

El administrador de configuración pasa esta estructura a la rutina RegistryCallback cada vez que un subproceso intenta crear una clave, por ejemplo, cuando un subproceso en modo de usuario llama a RegCreateKey o RegCreateKeyEx, o cuando un controlador en modo kernel llama a ZwCreateKey.

Esta estructura es una versión extendida de la estructura de REG_CREATE_KEY_INFORMATION que admite Windows Vista. Los primeros 14 miembros, CompleteName a través de Transaction, son idénticos en las dos estructuras. Los cinco últimos miembros de la estructura de REG_CREATE_KEY_INFORMATION_V1 , Version through CheckAccessMode, no forman parte de la estructura de REG_CREATE_KEY_INFORMATION .

Si la rutina RegistryCallback del controlador devuelve STATUS_CALLBACK_BYPASS para una notificación RegNtPreCreateKeyEx , el controlador debe proporcionar los valores para los miembros GrantedAccess, Disposition y ResultObject .

La estructura REG_CREATE_KEY_INFORMATION_V1 es una de las estructuras que un controlador de filtro puede recibir a través de su rutina RegistryCallback . Para obtener más información sobre las operaciones de filtrado del registro, consulte Filtrado de llamadas del Registro.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 7 y versiones posteriores de los sistemas operativos Windows.
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)

Consulte también

CmSetCallbackObjectContext

OBJECT_ATTRIBUTES

ObOpenObjectByPointer

REG_CREATE_KEY_INFORMATION

RegCreateKey

RegCreateKeyEx

RegistryCallback

SECURITY_DESCRIPTOR

SECURITY_QUALITY_OF_SERVICE

UNICODE_STRING

ZwCreateKey