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
Identificador para 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 .
Retornar valor
ZwSetSecurityObject retorna STATUS_SUCCESS ou um erro apropriado status. Possíveis códigos de status de erro incluem o seguinte:
Código de retorno | Descrição |
---|---|
STATUS_ACCESS_DENIED | O identificador não tem os direitos de acesso necessários. |
STATUS_ACCESS_VIOLATION | SecurityDescriptor é um ponteiro 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 | O identificador 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. |
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 os membros. Para obter mais informações, confira "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.
Observação
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 de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services 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 Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte a seção Comentários) |
Regras de conformidade da DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
Confira também
Usando versões Nt e Zw das rotinas de serviços do sistema nativo