Compartilhar via


Função SeAccessCheck (wdm.h)

SeAccessCheck determina 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.

Sintaxe

BOOLEAN SeAccessCheck(
  [in]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]  PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
  [in]  BOOLEAN                   SubjectContextLocked,
  [in]  ACCESS_MASK               DesiredAccess,
  [in]  ACCESS_MASK               PreviouslyGrantedAccess,
  [out] PPRIVILEGE_SET            *Privileges,
  [in]  PGENERIC_MAPPING          GenericMapping,
  [in]  KPROCESSOR_MODE           AccessMode,
  [out] PACCESS_MASK              GrantedAccess,
  [out] PNTSTATUS                 AccessStatus
);

Parâmetros

[in] SecurityDescriptor

Ponteiro para a estrutura SECURITY_DESCRIPTOR que descreve o descritor de segurança que protege o objeto que está sendo acessado.

[in] SubjectSecurityContext

Ponteiro para a estrutura de SECURITY_SUBJECT_CONTEXT opaca que especifica o contexto de segurança capturado do assunto.

[in] SubjectContextLocked

Valor booliano que indica se o contexto de assunto do usuário está bloqueado, para que ele não precise ser bloqueado novamente.

[in] DesiredAccess

Especifica a máscara de bits ACCESS_MASK para os direitos de acesso que o chamador está tentando adquirir. Se o chamador definir o MAXIMUM_ALLOWED bit, a rotina executará todas as verificações da DACL. No entanto, SeAccessCheck não faz nenhuma verificação de privilégio, a menos que o chamador as solicite especificamente definindo o ACCESS_SYSTEM_SECURITY ou WRITE_OWNER bits.

[in] PreviouslyGrantedAccess

Especifica o ACCESS_MASK bitmask de direitos de acesso já concedidos, como direitos de acesso concedidos como resultado da retenção de um privilégio.

[out] Privileges

Ponteiro para uma variável fornecida pelo chamador a ser definida como o endereço da estrutura PRIVILEGE_SET que será usada como parte da validação de acesso ou esse parâmetro pode ser NULL. O buffer retornado, se houver, deve ser liberado pelo chamador com SeFreePrivileges.

[in] GenericMapping

Ponteiro para a estrutura GENERIC_MAPPING associada a esse tipo de objeto. Esse valor especifica os direitos de acesso específicos implícitos por cada direito de acesso GENERIC_XXX .

[in] AccessMode

Especifica o modo de acesso a ser usado no marcar, UserMode ou KernelMode.

[out] GrantedAccess

Ponteiro para uma máscara de acesso retornada que indica o acesso concedido. Se o chamador especificar MAXIMUM_ALLOWED e a DACL em SecurityDescriptor for NULL, a rotina retornará GENERIC_ALL mais qualquer acesso adicional que o chamador solicitar explicitamente.

[out] AccessStatus

Ponteiro para o valor status indicando por que o acesso foi negado.

Retornar valor

Se o acesso for permitido, SeAccessCheck retornará TRUE.

Comentários

SeAccessCheck pode executar testes de privilégio para SeTakeOwnershipPrivilege e SeSecurityPrivilege, dependendo dos acessos que estão sendo solicitados. Ele pode executar testes de privilégios adicionais em versões futuras do sistema operacional.

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

Se essa rotina retornar FALSE, o chamador deverá usar o AccessStatus retornado 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 específico STATUS_XXX .

Para obter mais informações sobre segurança e controle de acesso, consulte Modelo de segurança do Windows para desenvolvedores de driver e a documentação sobre esses tópicos no SDK do Microsoft Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Confira também

ACCESS_MASK

GENERIC_MAPPING

IoGetFileObjectGenericMapping

PRIVILEGE_SET

SE_EXPORTS

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeFreePrivileges

SeValidSecurityDescriptor