Compartilhar via


Função SeAccessCheckFromState (ntifs.h)

SeAccessCheckFromState verifica se os direitos de acesso solicitados podem ser concedidos a um objeto protegido por um descritor de segurança e um proprietário de objeto opcional.

Sintaxe

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] Ponteiro para uma estrutura SECURITY_DESCRIPTOR que contém as informações de segurança que protegem o objeto que está sendo acessado.

PrimaryTokenInformation

[in] Ponteiro para a estrutura de TOKEN_ACCESS_INFORMATION capturada do token primário. Essa estrutura fornece as informações do token necessárias para executar uma verificação de acesso.

ClientTokenInformation

[in_opt] Ponteiro opcional para a estrutura de TOKEN_ACCESS_INFORMATION capturada do token de cliente.

DesiredAccess

[in] Um valor ACCESS_MASK que especifica os direitos de acesso desejados para verificar.

PreviouslyGrantedAccess

[in] Um valor ACCESS_MASK que especifica todos os acessos que o usuário já recebeu; por exemplo, como resultado da retenção de um privilégio.

Privileges

[out] Ponteiro para uma estrutura PRIVILEGE_SET na qual um conjunto de privilégios é retornado para indicar quaisquer privilégios que foram usados como parte da validação de acesso.

GenericMapping

[in] Ponteiro para a estrutura de GENERIC_MAPPING associada a esse tipo de objeto.

AccessMode

[in] Um valor KPROCESSOR_MODE que especifica o modo de processador a ser usado na verificação. AccessMode pode ser KernelMode ou UserMode. Drivers de nível inferior devem especificar kernelMode.

GrantedAccess

[out] Ponteiro para um valor de ACCESS_MASK retornado que indica o acesso concedido.

AccessStatus

[out] Ponteiro para um valor de status NT que pode ser retornado para indicar por que o acesso foi negado. Consulte Comentários.

Valor de retorno

SeAccessCheckFromState retornará TRUE se o acesso for permitido; retornará FALSE se o acesso não for permitido.

Observações

seAccessCheckFromState pode executar testes para os seguintes privilégios, dependendo dos acessos solicitados:

  • SeTakeOwnershipPrivilege
  • SeSecurityPrivilege

Essa rotina também pode verificar se o chamador é o proprietário do objeto para conceder acesso WRITE_DAC ou READ_CONTROL.

Se essa rotina retornar FALSE, o chamador deverá usar a AccessStatus retornada como seu valor retornado. Ou seja, o chamador deve evitar a codificação de um valor retornado de STATUS_ACCESS_DENIED ou qualquer outro valor deXXX STATUS_ específico.

Essa rotina pode ser chamada do nível de DPC, portanto, não deve ser paginável.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000
cabeçalho ntifs.h (include ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe

Consulte também

SeAccessCheck

SeAccessCheckFromStateEx