Função ZwSetSecurityObject (ntifs.h)
A rotina ZwSetSecurityObject
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 | |
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
usando versões Nt e Zw das rotinas de serviços do sistema nativo