Partilhar via


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

Manipule o 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 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

O buffer alocado pelo chamador que ZwQuerySecurityObject preenche com uma cópia do descritor de segurança especificado. A estrutura SECURITY_DESCRIPTOR é retornada em formato auto-relativo.

[in] Length

Tamanho, em bytes, do buffer apontado por SecurityDescriptor.

[out] LengthNeeded

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

Valor de retorno

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

Código de retorno Descrição
STATUS_ACCESS_DENIED Handle 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 handle não era um identificador válido.
STATUS_OBJECT_TYPE_MISMATCH Handle não era um identificador do tipo esperado.

Observações

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, consulte Descriptors de Segurança Absoluto e Self-Relative.

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, um buffer SecurityDescriptor de 64K é garantido como 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.

Nota

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 no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de 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 de serviços do sistema nativo.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte também

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwSetSecurityObject