Compartir a través de


Filtrado de operaciones del Registro en subárboles de aplicación

Las aplicaciones en modo de usuario usan subárboles de aplicaciones en el registro para almacenar datos de estado específicos de la aplicación.

Un controlador de filtro del Registro recibe llamadas a su rutina RegistryCallback para las operaciones del Registro en subárboles de la aplicación. Estas llamadas no distinguen entre operaciones del Registro en subárboles de aplicaciones y operaciones en otros tipos de subárboles del Registro.

Para cargar un subárbol de aplicación, una aplicación llama a RegLoadAppKey.

Los subárboles de la aplicación se cargan en \\REGISTRY\\A en lugar de en \\REGISTRY\\MACHINE o \\REGISTRY\\USER.

Tenga en cuenta que no hay ninguna manera de atravesar \\REGISTRY\\A. Se produce un error al intentar abrir una clave en \REGISTRY\A con el estado de error STATUS_ACCESS_DENIED.

Para acceder a una clave de un subárbol de aplicación, una aplicación usa el identificador que recibe cuando llama a RegLoadAppKey.

El sistema operativo descarga automáticamente el subárbol de la aplicación después de cerrar todos los identificadores del subárbol.

A diferencia de otros tipos de subárboles del Registro, para los que cada clave está protegida con su propio descriptor de seguridad, la seguridad de un subárbol de aplicación se basa en el descriptor de seguridad del archivo de Hive. Esto significa que:

  • Se produce un error al intentar establecer un descriptor de seguridad en una clave individual de un subárbol de la aplicación con el estado de error STATUS_ACCESS_DENIED.
  • Una entidad que se carga correctamente el subárbol puede modificar todo el subárbol.

Los controladores de filtro del Registro que controlan las operaciones de clave de creación y clave abierta (que se indican mediante los valores de notificación RegNtPreOpenKey, RegNtPreOpenKeyEx, RegNtPreCreateKey y RegNtPreCreateKeyEx ) deben tener cuidado de no usar una ruta de acceso absoluta (una empezando \\REGISTRY\\A\\por ) para abrir un subárbol de la aplicación; solo el administrador del Registro puede hacerlo. Si un controlador de filtro del Registro intenta abrir un subárbol de aplicación de esta manera (por ejemplo, llamando a la rutina ZwOpenKey ), la operación produce un error de estado STATUS_ACCESS_DENIED.

La cadena de nombre de ruta de acceso absoluta aparece en el miembro CompleteName de la estructura REG_CREATE_KEY_INFORMATION, REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION o REG_OPEN_KEY_INFORMATION_V1 .