Función SeAccessCheckFromStateEx (ntifs.h)

SeAccessCheckFromStateEx 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 SeAccessCheckFromStateEx(
  PSECURITY_DESCRIPTOR SecurityDescriptor,
  PACCESS_TOKEN        PrimaryToken,
  PACCESS_TOKEN        ClientToken,
  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.

PrimaryToken

[in] Puntero a una estructura de ACCESS_TOKEN opaca para el token principal. Esta estructura proporciona la información del token necesaria para realizar una comprobación de acceso.

ClientToken

[in_opt] Puntero opcional a una estructura de ACCESS_TOKEN opaca para 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 de 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

SeAccessCheckFromStateEx devuelve TRUE si se permite el acceso; devuelve FALSE si no se permite el acceso.

Comentarios

SeAccessCheckFromStateEx 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 su 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 específico STATUS_XXX .

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
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe

Consulte también

SeAccessCheck

SeAccessCheckFromState