Compartilhar via


Função ZwSetSecurityObject (ntifs.h)

A rotina ZwSetSecurityObject define o estado de segurança de um objeto.

Sintaxe

NTSYSAPI NTSTATUS ZwSetSecurityObject(
  [in] HANDLE               Handle,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

Parâmetros

[in] Handle

Manipule o objeto cujo estado de segurança deve ser definido. 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_INFORMATIONespecificando as informações a serem definidas. Pode ser uma combinação de um ou mais dos valores a seguir.

Valor Significado
DACL_SECURITY_INFORMATION Indica que a DACL (lista de controle de acesso discricionário) do objeto deve ser definida. Requer acesso WRITE_DAC.
GROUP_SECURITY_INFORMATION Indica que o identificador de grupo primário do objeto deve ser definido. Requer acesso WRITE_OWNER.
OWNER_SECURITY_INFORMATION Indica que o identificador do proprietário do objeto deve ser definido. Requer acesso WRITE_OWNER.
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.

Valor de retorno

ZwSetSecurityObject 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 Manipular não tem os direitos de acesso necessários.
STATUS_ACCESS_VIOLATION securityDescriptor é um ponteiro de NULL .
STATUS_INSUFFICIENT_RESOURCES Não foi possível capturar o descritor de segurança do objeto.
STATUS_INVALID_ACL O descritor de segurança do objeto contém uma ACL inválida.
STATUS_INVALID_HANDLE Handle não é um identificador válido.
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor não aponta para um descritor de segurança válido.
STATUS_INVALID_SID O descritor de segurança do objeto contém um SID inválido.
STATUS_OBJECT_TYPE_MISMATCH Handle não é um identificador do tipo esperado.
STATUS_UNKNOWN_REVISION O nível de revisão do descritor de segurança do objeto é desconhecido ou não tem suporte.

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 "Descritores de segurança absolutos e Self-Relative" na seção Segurança da documentação do SDK do Windows.

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 usar FltSetSecurityObject em vez de ZwSetSecurityObject.

Os chamadores de ZwSetSecurityObject devem estar em execução em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas.

Nota

Se a chamada para a função ZwSetSecurityObject ocorrer no modo de usuário, você deverá usar o nome "NtSetSecurityObject" em vez de "ZwSetSecurityObject".

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 (consulte a seção Comentários)
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte também

FltSetSecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

usando versões Nt e Zw das rotinas de serviços do sistema nativo

ZwQuerySecurityObject