Função ZwQuerySecurityObject (ntifs.h)
A rotina
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
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) |