Compartilhar via


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

ACE

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx