Função NtSetSecurityObject (ntifs.h)
A rotina de NtSetSecurityObject
Sintaxe
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetSecurityObject(
[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
SECURITY_INFORMATION valor que especifica as informações a serem definidas como uma combinação de uma ou mais das seguintes informações.
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. |
SACL_SECURITY_INFORMATION | Indica que a ACL do sistema (SACL) do objeto deve ser definida. Requer acesso ACCESS_SYSTEM_SECURITY. |
DACL_SECURITY_INFORMATION | Indica que a DACL (lista de controle de acesso discricionário) do objeto deve ser definida. Requer acesso WRITE_DAC. |
[in] SecurityDescriptor
Ponteiro para o descritor de segurança a ser definido para o objeto.
Valor de retorno
NtSetSecurityObject 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 | O chamador não tinha o acesso necessário. |
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 continha uma ACL inválida. |
STATUS_INVALID_HANDLE | Handle não é um identificador válido. |
STATUS_INVALID_SECURITY_DESCR | SecurityDescriptor não apontou para um descritor de segurança válido. |
STATUS_INVALID_SID | O descritor de segurança do objeto continha 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 era desconhecido ou não tinha 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 Descriptors de Segurança Absoluto e Self-Relative.
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 NtSetSecurityObject.
Os chamadores de NtSetSecurityObject devem estar em execução em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas.
Nota
Se a chamada para a função NtSetSecurityObject 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, PowerIrpDDis |
Consulte também
usando versões Nt e Zw das rotinas de serviços de sistema nativo
NtQuerySecurityObject