Compartir a través de


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

Consulte también

SeAccessCheck

SeAccessCheckFromStateEx