Função NtQuerySecurityObject (ntifs.h)

A rotina NtQuerySecurityObject recupera uma cópia do descritor de segurança de um objeto.

Sintaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtQuerySecurityObject(
  [in]  HANDLE               Handle,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  ULONG                Length,
  [out] PULONG               LengthNeeded
);

Parâmetros

[in] Handle

Manipule para o objeto cujo descritor de segurança deve ser consultado. Esse identificador deve ter o acesso especificado na coluna Significado da tabela mostrada na descrição do parâmetro SecurityInformation .

[in] SecurityInformation

Um valor SECURITY_INFORMATION especificando as informações a serem consultadas como uma combinação de um ou mais dos seguintes.

Valor Significado
OWNER_SECURITY_INFORMATION O identificador de proprietário do objeto está sendo consultado. Requer acesso READ_CONTROL.
GROUP_SECURITY_INFORMATION O identificador de grupo primário do objeto está sendo consultado. Requer acesso READ_CONTROL.
SACL_SECURITY_INFORMATION A ACL do sistema do objeto (SACL) está sendo consultada. Requer acesso ACCESS_SYSTEM_SECURITY.
DACL_SECURITY_INFORMATION A DACL (lista de controle de acesso discricionário) do objeto está sendo consultada. Requer acesso READ_CONTROL.

[out] SecurityDescriptor

Buffer alocado pelo chamador que NtQuerySecurityObject preenche com uma cópia do descritor de segurança especificado. A estrutura SECURITY_DESCRIPTOR é retornada no formato auto-relativo.

[in] Length

Tamanho, em bytes, do buffer apontado por SecurityDescriptor.

[out] LengthNeeded

Ponteiro para uma variável alocada pelo chamador que recebe o número de bytes necessários para armazenar o descritor de segurança copiado.

Retornar valor

NtQuerySecurityObject retorna STATUS_SUCCESS ou um erro apropriado status. Os possíveis códigos de status de erro incluem o seguinte:

Código de retorno Descrição
STATUS_ACCESS_DENIED O identificador não tinha o acesso necessário.
STATUS_BUFFER_TOO_SMALL O buffer é muito pequeno para o descritor de segurança. Nenhuma das informações de segurança foi copiada para o buffer.
STATUS_INVALID_HANDLE O identificador não era um identificador válido.
STATUS_OBJECT_TYPE_MISMATCH O identificador não era um identificador do tipo esperado.

Comentários

Minifilters devem chamar FltQuerySecurityObject.

Um descritor de segurança pode estar em forma absoluta ou auto-relativa. Na forma auto-relativa, todos os membros da estrutura estão localizados contíguamente na memória. Na forma absoluta, a estrutura contém apenas ponteiros para os membros. Para obter mais informações, confira Descritores de segurança absolutos e autorrelativos.

O sistema de arquivos NTFS impõe um limite de 64K ao tamanho do descritor de segurança que é gravado em disco para um arquivo. (O sistema de arquivos FAT não dá suporte a descritores de segurança para arquivos.) Portanto, é garantido que um buffer SecurityDescriptor de 64K seja grande o suficiente para manter a estrutura de SECURITY_DESCRIPTOR retornada.

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 Windows.

Observação

Se a chamada para a função NtQuerySecurityObject ocorrer no modo de usuário, você deverá usar o nome "NtQuerySecurityObject" em vez de "ZwQuerySecurityObject".

Para chamadas de drivers no modo kernel, as versões NtXxx e ZwXxx de uma rotina dos Serviços do Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas dos Serviços de Sistema Nativo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Confira também

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

NtSetSecurityObject