Función SeAccessCheckFromState (ntifs.h)
SeAccessCheckFromState comprueba si los derechos de acceso solicitados se pueden conceder a un objeto protegido por un descriptor de seguridad y un propietario de objeto opcional.
Sintaxis
BOOLEAN SeAccessCheckFromState(
PSECURITY_DESCRIPTOR SecurityDescriptor,
PTOKEN_ACCESS_INFORMATION PrimaryTokenInformation,
PTOKEN_ACCESS_INFORMATION ClientTokenInformation,
ACCESS_MASK DesiredAccess,
ACCESS_MASK PreviouslyGrantedAccess,
PPRIVILEGE_SET *Privileges,
PGENERIC_MAPPING GenericMapping,
KPROCESSOR_MODE AccessMode,
PACCESS_MASK GrantedAccess,
PNTSTATUS AccessStatus
);
Parámetros
SecurityDescriptor
[in] Puntero a una estructura de SECURITY_DESCRIPTOR que contiene la información de seguridad que protege el objeto al que se accede.
PrimaryTokenInformation
[in] Puntero a la estructura de TOKEN_ACCESS_INFORMATION capturada desde el token principal. Esta estructura proporciona la información del token necesaria para realizar una comprobación de acceso.
ClientTokenInformation
[in_opt] Puntero opcional a la estructura de TOKEN_ACCESS_INFORMATION capturada desde el token de cliente.
DesiredAccess
[in] Valor de ACCESS_MASK que especifica los derechos de acceso deseados que se van a comprobar.
PreviouslyGrantedAccess
[in] Valor de ACCESS_MASK que especifica los accesos a los que ya se ha concedido el usuario; por ejemplo, como resultado de mantener un privilegio.
Privileges
[out] Puntero a una estructura de PRIVILEGE_SET en la que se devuelve un conjunto de privilegios para indicar los privilegios que se usaron como parte de la validación de acceso.
GenericMapping
[in] Puntero a la estructura GENERIC_MAPPING asociada a este tipo de objeto.
AccessMode
[in] Valor KPROCESSOR_MODE que especifica el modo de procesador que se va a usar en la comprobación. AccessMode puede ser KernelMode o UserMode. Los controladores de nivel inferior deben especificar KernelMode.
GrantedAccess
[out] Puntero a un valor de ACCESS_MASK devuelto que indica el acceso concedido.
AccessStatus
[out] Puntero a un valor de estado NT que se puede devolver para indicar por qué se denegó el acceso. Vea la sección Comentarios.
Valor devuelto
SeAccessCheckFromState devuelve TRUE si se permite el acceso; devuelve FALSE si no se permite el acceso.
Comentarios
SeAccessCheckFromState puede realizar pruebas para los siguientes privilegios, en función de los accesos solicitados:
- SeTakeOwnershipPrivilege
- SeSecurityPrivilege
Esta rutina también puede comprobar si el autor de la llamada es el propietario del objeto para conceder acceso WRITE_DAC o READ_CONTROL.
Si esta rutina devuelve FALSE, el autor de la llamada debe usar accessStatus devuelto como valor devuelto. Es decir, el autor de la llamada debe evitar codificar de forma hardcod un valor devuelto de STATUS_ACCESS_DENIED o cualquier otro valor STATUS_XXX específico.
Es posible que se llame a esta rutina desde el nivel DPC, por lo que no debe ser paginable.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 |
Encabezado | ntifs.h (incluya ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |