Compartir a través de


Función RtlSetDaclSecurityDescriptor (wdm.h)

La rutina RtlSetDaclSecurityDescriptor establece la información DACL de un descriptor de seguridad de formato absoluto, o si ya hay una DACL presente en el descriptor de seguridad, se sustituye.

Sintaxis

NTSYSAPI NTSTATUS RtlSetDaclSecurityDescriptor(
  [in, out]      PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]           BOOLEAN              DaclPresent,
  [in, optional] PACL                 Dacl,
  [in, optional] BOOLEAN              DaclDefaulted
);

Parámetros

[in, out] SecurityDescriptor

Puntero a una estructura SECURITY_DESCRIPTOR . Esta estructura es el descriptor de seguridad al que se va a aplicar la DACL.

[in] DaclPresent

Indica si hay una DACL presente en el descriptor de seguridad. Si este parámetro es FALSE, RtlSetDaclSecurityDescriptor establece la marca de control SE_DACL_PRESENT en el descriptor de seguridad en FALSE. En este caso, se omiten los parámetros opcionales restantes (Dacl y DaclDefaulted). Si DaclPresent es TRUE, la marca SE_DACL_PRESENT del descriptor de seguridad se establece en TRUE y no se omiten los parámetros opcionales restantes. Para obtener más información sobre la marca de SE_DACL_PRESENT, consulte SECURITY_DESCRIPTOR_CONTROL.

[in, optional] Dacl

Puntero a la DACL para el descriptor de seguridad. Si este parámetro es NULL, el puntero DACL del descriptor de seguridad se establece en NULL. Un puntero DACL NULL concede incondicionalmente todo el acceso a un objeto y no es el mismo que una DACL vacía. Una DACL vacía deniega todo el acceso a un objeto . Si Dacl no es NULL, el descriptor de seguridad hace referencia a la estructura de ACL proporcionada por el autor de la llamada, pero no se copia en . El autor de la llamada puede asignar la estructura de ACL desde la memoria del sistema paginada y puede llamar a la rutina RtlCreateAcl para inicializar la estructura.

ADVERTENCIA❗ Si se establece una DACL NULA , se permite el acceso sin restricciones al objeto y, por lo tanto, solo se debe usar en escenarios estratégicos en los que una evaluación de seguridad haya validado que se trata de un resultado aceptable. Considere la posibilidad de usar una DACL vacía , que tiene como valor predeterminado todo el acceso denegado de forma predeterminada.

[in, optional] DaclDefaulted

Indica si el DACL se proporcionó mediante algún mecanismo predeterminado o si el autor de la llamada especificó explícitamente. Si este parámetro es TRUE, la DACL se proporcionó mediante un mecanismo predeterminado. Si DaclDefaulted es FALSE, el autor de la llamada especificó explícitamente la DACL. RtlSetDaclSecurityDescriptor copia el valor especificado para este parámetro en la marca de control SE_DACL_DEFAULTED en el descriptor de seguridad. Para obtener más información sobre la marca de SE_DACL_DEFAULTED, consulte SECURITY_DESCRIPTOR_CONTROL.

Valor devuelto

RtlSetDaclSecurityDescriptor puede devolver uno de los siguientes valores de estado.

Código de retorno Descripción
STATUS_SUCCESS
La llamada se completó correctamente.
STATUS_UNKNOWN_REVISION
Se desconoce la revisión del descriptor de seguridad.
STATUS_INVALID_SECURITY_DESCR
El descriptor de seguridad no es un descriptor de seguridad de formato absoluto.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Universal
encabezado wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL de NtosKrnl.exe (modo kernel); Ntdll.dll (modo de usuario)
irQL PASSIVE_LEVEL

Consulte también

de ACL

RtlCreateAcl

rtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL