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
STATUS_ACCESS_DENIED
O chamador não tinha o acesso necessário. Este é um código de erro.
STATUS_BUFFER_TOO_SMALL
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

Confira também

FILE_STREAM_INFORMATION

SECURITY_DESCRIPTOR

SECURITY_INFORMATION