Função FltSetSecurityObject (fltkernel.h)

FltSetSecurityObject define o estado de segurança de um objeto.

Sintaxe

NTSTATUS FLTAPI FltSetSecurityObject(
  [in] PFLT_INSTANCE        Instance,
  [in] PFILE_OBJECT         FileObject,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

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 estado de segurança deve ser definido. O chamador deve ter o acesso especificado na coluna Meaning da tabela mostrada na descrição do parâmetro SecurityInformation . Esse parâmetro é necessário e não pode ser NULL.

[in] SecurityInformation

SECURITY_INFORMATION valor que especifica as informações a serem definidas como uma combinação de uma ou mais das opções a seguir.

Valor Significado
OWNER_SECURITY_INFORMATION Indica que o identificador do proprietário do objeto deve ser definido. Requer acesso WRITE_OWNER.
GROUP_SECURITY_INFORMATION Indica que o identificador de grupo primário do objeto deve ser definido. Requer acesso WRITE_OWNER.
DACL_SECURITY_INFORMATION Indica que a DACL (lista de controle de acesso discricionário) do objeto deve ser definida. Requer acesso WRITE_DAC.
SACL_SECURITY_INFORMATION Indica que a ACL do sistema (SACL) do objeto deve ser definida. Requer acesso ACCESS_SYSTEM_SECURITY.

[in] SecurityDescriptor

Ponteiro para o descritor de segurança a ser definido para o objeto .

Retornar valor

FltSetSecurityObject 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_ACCESS_VIOLATION SecurityDescriptor era um ponteiro NULL . Este é um código de erro.
STATUS_INSUFFICIENT_RESOURCES Não foi possível capturar o descritor de segurança do objeto. Este é um código de erro.
STATUS_INVALID_ACL O descritor de segurança do objeto continha uma ACL inválida. Este é um código de erro.
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor não apontou para um descritor de segurança válido. Este é um código de erro.
STATUS_INVALID_SID O descritor de segurança do objeto continha um SID inválido. Este é um código de erro.
STATUS_UNKNOWN_REVISION O nível de revisão do descritor de segurança do objeto era desconhecido ou não tinha suporte. Este é um código de erro.
STATUS_NOT_IMPLEMENTED A rotina FltSetSecurityObject está presente, mas não tem suporte no ambiente do sistema operacional no qual foi chamada.

Comentários

A rotina FltSetSecurityObject está presente e tem suporte a partir do Windows Vista. No Windows 2000, Windows XP e Server 2003 SP1, a rotina está presente, mas não tem suporte, e retornará STATUS_NOT_IMPLEMENTED se for chamada em qualquer um desses ambientes.

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.

Para obter mais informações sobre segurança e controle de acesso, consulte a documentação sobre esses tópicos no SDK do 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

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwQuerySecurityObject

ZwSetSecurityObject

FltQuerySecurityObject