Função FltQuerySecurityObject (fltkernel.h)
FltQuerySecurityObject recupera uma cópia do descritor de segurança de um objeto.
Sintaxe
NTSTATUS FLTAPI FltQuerySecurityObject(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[in] SECURITY_INFORMATION SecurityInformation,
[in, out] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] ULONG Length,
[out, optional] PULONG LengthNeeded
);
Parâmetros
[in] Instance
Ponteiro de instância opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL.
[in] FileObject
Ponteiro de objeto de arquivo para o objeto cujo descritor de segurança está sendo consultado. Esse parâmetro é necessário e não pode ser NULL.
[in] SecurityInformation
SECURITY_INFORMATION valor. Esse parâmetro é necessário e deve ser um dos seguintes:
Valor de SecurityInformation | 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 . |
DACL_SECURITY_INFORMATION | A DACL (lista de controle de acesso discricionário) do objeto está sendo consultada. Requer acesso READ_CONTROL . |
SACL_SECURITY_INFORMATION | A ACL do sistema (SACL) do objeto está sendo consultada. Requer acesso ACCESS_SYSTEM_SECURITY . |
[in, out] SecurityDescriptor
Ponteiro para um buffer de saída fornecido pelo chamador que recebe uma cópia do descritor de segurança para o objeto especificado. A estrutura SECURITY_DESCRIPTOR é retornada no formato auto-relativo. Esse parâmetro é opcional e pode ser NULL.
[in] Length
Tamanho, em bytes, do buffer SecurityDescriptor .
[out, optional] 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 retornado no buffer apontado pelo parâmetro SecurityDescriptor . Esse parâmetro é opcional e pode ser NULL.
Retornar valor
FltQuerySecurityObject retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:
Código de retorno | Descrição |
---|---|
|
O chamador não tinha o acesso necessário. Este é um código de erro. |
|
O buffer é muito pequeno para conter o descritor de segurança. Nenhuma das informações de segurança foi copiada para o buffer. Este é um código de erro. |
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 seus membros.
O sistema de arquivos NTFS impõe um limite de 64 KB 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 de 64 KB apontado pelo parâmetro SecurityDescriptor tem a garantia de ser grande o suficiente para manter a estrutura de SECURITY_DESCRIPTOR retornada.
O objeto para o qual o parâmetro FileObject aponta pode representar um fluxo de dados nomeado. Para obter mais informações sobre fluxos de dados nomeados, consulte FILE_STREAM_INFORMATION.
Para obter mais informações sobre segurança e controle de acesso, consulte a documentação do SDK do Microsoft Windows.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | fltkernel.h (inclua Fltkernel.h) |
Biblioteca | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |