Função SeSetSecurityDescriptorInfo (ntifs.h)
A rotina SeSetSecurityDescriptorInfo define o descritor de segurança de um objeto.
Sintaxe
NTSTATUS SeSetSecurityDescriptorInfo(
[in, optional] PVOID Object,
[in] PSECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR ModificationDescriptor,
[in, out] PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
[in] POOL_TYPE PoolType,
[in] PGENERIC_MAPPING GenericMapping
);
Parâmetros
[in, optional] Object
Ponteiro para o objeto cujo descritor de segurança deve ser definido. Isso é usado para atualizar informações de cota de segurança.
[in] SecurityInformation
Ponteiro para uma máscara de bits que especifica quais informações de segurança devem ser aplicadas ao objeto. 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 está sendo definida. Requer acesso WRITE_DAC. |
GROUP_SECURITY_INFORMATION | Indica que o identificador de grupo primário do objeto está sendo definido. Requer acesso WRITE_OWNER. |
OWNER_SECURITY_INFORMATION | Indica que o identificador do proprietário do objeto está sendo definido. Requer acesso WRITE_OWNER. |
SACL_SECURITY_INFORMATION | Indica que a ACL do sistema (SACL) do objeto está sendo definida. Requer acesso ACCESS_SYSTEM_SECURITY. |
ModificationDescriptor
O descritor de segurança de entrada a ser aplicado ao objeto . Espera-se que o chamador dessa rotina investigue e capture o descritor de segurança passado antes de chamar SeSetSecurityDescriptorInfo e liberá-lo posteriormente.
[in, out] ObjectsSecurityDescriptor
Ponteiro para um ponteiro para o descritor de segurança do objeto. O descritor de segurança deve estar no formato auto-relativo. O chamador é responsável por liberar essa estrutura quando ela não é mais necessária.
[in] PoolType
Especifica o tipo de pool a ser usado ao alocar um novo descritor de segurança, que pode ser um dos seguintes:
- NonPagedPool
- PagedPool
- NonPagedPoolCacheAligned
- PagedPoolCacheAligned
Normalmente, um chamador especifica PagedPool ou nonPagedPool se o buffer for acessado em IRQL >= DISPATCH_LEVEL ou em um contexto de thread arbitrário.
Os tipos de pool NonPagedPoolMustSucceed e NonPagedPoolCacheAlignedMustS estão obsoletos e não devem mais ser usados.
[in] GenericMapping
Ponteiro para uma estrutura GENERIC_MAPPING que especifica o mapeamento de tipos de acesso genéricos para tipos de acesso específicos e padrão para o objeto que está sendo acessado. Espera-se que essa estrutura de mapeamento seja segura para acessar (ou seja, capturada, se necessário) antes de ser passada para essa rotina.
Retornar valor
Código de retorno | Descrição |
---|---|
STATUS_SUCCESS | O descritor de segurança do objeto foi modificado com êxito. |
STATUS_BAD_DESCRIPTOR_FORMAT | O descritor de segurança do objeto fornecido não estava em formato auto-relativo. |
STATUS_NO_SECURITY_ON_OBJECT | O objeto não tem um descritor de segurança. |
Comentários
SeSetSecurityDescriptorInfo modifica o descritor de segurança existente de um objeto. Se o objeto não tiver um descritor de segurança, a chamada para SeSetSecurityDescriptorInfo falhará.
Para especificar se o objeto dá suporte à herança automática de ACE (entradas de controle de acesso), use SeSetSecurityDescriptorInfoEx.
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 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.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Confira também
RtlCreateSecurityDescriptorRelative