Compartir a través de


Derechos de acceso y seguridad de objetos de sincronización

El modelo de seguridad de Windows permite controlar el acceso a objetos de evento, exclusión mutua, semáforo y temporizador de espera. Las colas del temporizador, las variables interbloqueadas y los objetos de sección críticos no son protegibles. Para obtener más información, vea Modelo de control de acceso.

Puede especificar un descriptor de seguridad para un objeto de sincronización entre procesos al llamar a la función CreateEvent, CreateMutex, CreateSemaphore o CreateWaitableTimer . Si especifica NULL, el objeto obtiene un descriptor de seguridad predeterminado. Las listas de control de acceso (ACL) del descriptor de seguridad predeterminado para un objeto de sincronización proceden del token principal o de suplantación del creador.

Para obtener o establecer el descriptor de seguridad de un objeto event, mutex, semaphore o waitable timer, llame a las funciones GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo o SetSecurityInfo .

Los identificadores devueltos por CreateEvent, CreateMutex, CreateSemaphore y CreateWaitableTimer tienen acceso total al nuevo objeto. Al llamar a las funciones OpenEvent, OpenMutex, OpenSemaphore y OpenWaitableTimer , el sistema comprueba los derechos de acceso solicitados en el descriptor de seguridad del objeto.

Los derechos de acceso válidos para los objetos de sincronización entre procesos incluyen los derechos de acceso estándar y algunos derechos de acceso específicos del objeto. En la tabla siguiente se enumeran los derechos de acceso estándar utilizados por todos los objetos.

Value Significado
DELETE (0x00010000L) Necesario para eliminar el objeto.
READ_CONTROL (0x00020000L) Se requiere para leer información en el descriptor de seguridad del objeto, sin incluir la información en sacl. Para leer o escribir la SACL, debe solicitar el derecho de acceso ACCESS_SYSTEM_SECURITY . Para obtener más información, consulte Derecho de acceso SACL.
SYNCHRONIZE (0x00100000L) Derecho a utilizar el objeto para la sincronización. Esto permite que un subproceso espere hasta que el objeto esté en estado señalado.
WRITE_DAC (0x00040000L) Necesario para modificar la DACL en el descriptor de seguridad del objeto .
WRITE_OWNER (0x00080000L) Necesario para cambiar el propietario en el descriptor de seguridad del objeto.

 

En la tabla siguiente se enumeran los derechos de acceso específicos del objeto para los objetos de evento. Estos derechos se admiten además de los derechos de acceso estándar.

Value Significado
EVENT_ALL_ACCESS (0x1F0003) Todos los derechos de acceso posibles para un objeto de evento. Use este derecho solo si la aplicación requiere acceso más allá del concedido por los derechos de acceso estándar y EVENT_MODIFY_STATE. El uso de este derecho de acceso aumenta la posibilidad de que un administrador deba ejecutar la aplicación.
EVENT_MODIFY_STATE (0x0002) Modifique el acceso de estado, que es necesario para las funciones SetEvent, ResetEvent y PulseEvent .

 

En la tabla siguiente se enumeran los derechos de acceso específicos del objeto para los objetos de exclusión mutua. Estos derechos se admiten además de los derechos de acceso estándar.

Value Significado
MUTEX_ALL_ACCESS (0x1F0001) Todos los derechos de acceso posibles para un objeto de exclusión mutua. Use este derecho solo si la aplicación requiere acceso más allá del concedido por los derechos de acceso estándar. El uso de este derecho de acceso aumenta la posibilidad de que un administrador deba ejecutar la aplicación.
MUTEX_MODIFY_STATE (0x0001) Reservado para uso futuro.

 

En la tabla siguiente se enumeran los derechos de acceso específicos del objeto para los objetos de semáforo. Estos derechos se admiten además de los derechos de acceso estándar.

Value Significado
SEMAPHORE_ALL_ACCESS (0x1F0003) Todos los derechos de acceso posibles para un objeto de semáforo. Use este derecho solo si la aplicación requiere acceso más allá del concedido por los derechos de acceso estándar y SEMAPHORE_MODIFY_STATE. El uso de este derecho de acceso aumenta la posibilidad de que un administrador deba ejecutar la aplicación.
SEMAPHORE_MODIFY_STATE (0x0002) Modifique el acceso de estado, que es necesario para la función ReleaseSemaphore .

 

En la tabla siguiente se enumeran los derechos de acceso específicos del objeto para los objetos de temporizador de espera. Estos derechos se admiten además de los derechos de acceso estándar.

Value Significado
TIMER_ALL_ACCESS (0x1F0003) Todos los derechos de acceso posibles para un objeto de temporizador de espera. Use este derecho solo si la aplicación requiere acceso más allá del concedido por los derechos de acceso estándar y TIMER_MODIFY_STATE. El uso de este derecho de acceso aumenta la posibilidad de que un administrador deba ejecutar la aplicación.
TIMER_MODIFY_STATE (0x0002) Modifique el acceso de estado, que es necesario para las funciones SetWaitableTimer y CancelWaitableTimer .
TIMER_QUERY_STATE (0x0001) Reservado para uso futuro.

 

Para leer o escribir la SACL de un objeto de sincronización entre procesos, debe solicitar el derecho de acceso ACCESS_SYSTEM_SECURITY . Para obtener más información, consulte Listas de control de acceso (ACL) y Derecho de acceso SACL.