Función RtlGetDaclSecurityDescriptor (ntifs.h)

La rutina RtlGetDaclSecurityDescriptor devuelve un puntero a la ACL discrecional (DACL) para un descriptor de seguridad.

Sintaxis

NTSYSAPI NTSTATUS RtlGetDaclSecurityDescriptor(
  [in]  PSECURITY_DESCRIPTOR SecurityDescriptor,
  [out] PBOOLEAN             DaclPresent,
  [out] PACL                 *Dacl,
  [out] PBOOLEAN             DaclDefaulted
);

Parámetros

[in] SecurityDescriptor

Puntero al SECURITY_DESCRIPTOR cuya DACL se va a devolver.

[out] DaclPresent

Puntero a una variable booleana que indica la presencia de una DACL en el descriptor de seguridad especificado. Si esta variable recibe TRUE, el descriptor de seguridad contiene una DACL y los parámetros de salida restantes reciben valores válidos. Si esta variable recibe FALSE, el descriptor de seguridad no contiene una DACL y los parámetros de salida restantes no reciben valores válidos.

[out] Dacl

Puntero a una variable que recibe la dirección de la DACL para el descriptor de seguridad. Si el descriptor de seguridad no tiene una DACL, esta variable no recibe un valor. Si el descriptor de seguridad tiene una DACL NULL , esta variable recibe NULL. Una DACL NULL permite implícitamente todo el acceso a un objeto .

[out] DaclDefaulted

Puntero a una variable booleana que recibe el valor de la marca SE_DACL_DEFAULTED en la estructura SECURITY_DESCRIPTOR_CONTROL del descriptor de seguridad. Si esta marca es TRUE, la DACL se recuperó mediante un mecanismo predeterminado. Si es FALSE, un usuario especificó explícitamente la DACL. Este valor solo es válido si *Dacl recibe un valor distinto de NULL .

Valor devuelto

RtlGetDaclSecurityDescriptor devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:

Código devuelto Descripción
STATUS_UNKNOWN_REVISION
El nivel de revisión del descriptor de seguridad es desconocido o no se admite. Se trata de un código de error.

Comentarios

Un valor de TRUE para *DaclPresent no significa que *Dacl sea distinto de NULL. Es decir, *DaclPresent puede ser TRUE mientras *Dacl es NULL, lo que significa que una DACL NULL está en vigor. Una DACL NULL permite implícitamente todo el acceso a un objeto y no es el mismo que una DACL vacía. Una DACL vacía no permite ningún acceso a un objeto.

Para obtener más información sobre la seguridad y el control de acceso, consulte Modelo de seguridad de Windows para desarrolladores de controladores y la documentación sobre estos temas en Windows SDK.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Server 2003 SP1
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte también

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR