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
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
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
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) |