Função ZwQuerySecurityObject (ntifs.h)

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

Sintaxe

NTSYSAPI NTSTATUS ZwQuerySecurityObject(
  [in]  HANDLE               Handle,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  ULONG                Length,
  [out] PULONG               LengthNeeded
);

Parâmetros

[in] Handle

Identificador do objeto cujo descritor de segurança deve ser consultado. Esse identificador deve ter o acesso especificado na coluna Meaning 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 uma ou mais das seguintes informações.

Valor Significado
OWNER_SECURITY_INFORMATION O identificador do 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 (SACL) do objeto 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 ZwQuerySecurityObject 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

ZwQuerySecurityObject retorna STATUS_SUCCESS ou um erro apropriado status. 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

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

Os minifiltros devem chamar FltQuerySecurityObject em vez de ZwQuerySecurityObject.

Observação

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

Para chamadas de drivers de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services 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 Using Nt and Zw Versions of the Native System Services Routines.

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 da DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Confira também

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwSetSecurityObject