SECURITY_DESCRIPTOR_CONTROL

O tipo SECURITY_DESCRIPTOR_CONTROL é um conjunto de sinalizadores de bits que qualificam o significado de uma estrutura SECURITY_DESCRIPTOR ou seus componentes. Cada descritor de segurança tem um membro control que armazena os bits SECURITY_DESCRIPTOR_CONTROL .

typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;

O valor do controle pode incluir uma combinação dos seguintes sinalizadores de bits SECURITY_DESCRIPTOR_CONTROL :

Valor Significado
SE_OWNER_DEFAULTED (0x0001) Um mecanismo padrão, em vez do provedor original do descritor de segurança, forneceu o SID (identificador de segurança) proprietário do descritor de segurança. Para definir esse sinalizador, use RtlSetOwnerSecurityDescriptor.
SE_GROUP_DEFAULTED (0x0002) Um mecanismo padrão, em vez do provedor original do descritor de segurança, forneceu o SID do grupo do descritor de segurança.
SE_DACL_PRESENT (0x0004) Indica um descritor de segurança que tem uma DACL. Se esse sinalizador não estiver definido ou se esse sinalizador estiver definido e a DACL for NULL, o descritor de segurança permitirá acesso total a todos. Esse sinalizador é usado para manter as informações de segurança especificadas por um chamador até que o descritor de segurança esteja associado a um objeto protegível. Assim que o descritor de segurança estiver associado a um objeto protegível, o sinalizador SE_DACL_PRESENT ficará sempre definido no controle do descritor de segurança. Para definir esse sinalizador, use RtlSetDaclSecurityDescriptor.
SE_DACL_DEFAULTED (0x0008) Indica um descritor de segurança com uma DACL padrão. Por exemplo, se o criador de um objeto não especificar um DACL, o objeto receberá a DACL padrão do token de acesso do criador. Esse sinalizador pode afetar a forma como o sistema trata a DACL em relação à herança ace. O sistema ignorará esse sinalizador se o sinalizador SE_DACL_PRESENT não estiver definido. Esse sinalizador é usado para determinar como a DACL final no objeto deve ser computada e não é armazenada fisicamente no controle descritor de segurança do objeto protegível. Para definir esse sinalizador, use RtlSetDaclSecurityDescriptor.
SE_SACL_PRESENT (0x0010) Indica um descritor de segurança que tem um SACL.
SE_SACL_DEFAULTED (0x0020) Um mecanismo padrão, em vez do provedor original do descritor de segurança, forneceu o SACL. Esse sinalizador pode afetar como o sistema trata a SACL em relação à herança ace. O sistema ignorará esse sinalizador se o sinalizador SE_SACL_PRESENT não estiver definido.
SE_DACL_UNTRUSTED (0x0040) Indica que a ACL apontada pela DACL do descritor de segurança foi fornecida por uma fonte não confiável. Se esse sinalizador for definido e um ACE composto for encontrado, o sistema substituirá SIDs válidos conhecidos para os SIDs do servidor nos ACEs.
SE_SERVER_SECURITY (0x0080) Solicita que o provedor do objeto protegido pelo descritor de segurança cuja ACL deve ser uma ACL de servidor com base na ACL de entrada, independentemente de sua origem (explícita ou padrão). Isso é feito substituindo todos os ACEs GRANT por ACEs compostos que concedem ao servidor atual. Esse sinalizador só será significativo se o assunto estiver representando.
SE_DACL_AUTO_INHERIT_REQ (0x0100) Solicita que o provedor do objeto protegido pelo descritor de segurança propague automaticamente a DACL para objetos filho existentes. Se o provedor der suporte à herança automática, ele propagará a DACL para quaisquer objetos filho existentes e definirá o bit SE_DACL_AUTO_INHERITED nos descritores de segurança do objeto e seus objetos filho.
SE_SACL_AUTO_INHERIT_REQ (0x0200) Solicita que o provedor do objeto protegido pelo descritor de segurança propague automaticamente o SACL para objetos filho existentes. Se o provedor der suporte à herança automática, ele propagará o SACL para quaisquer objetos filho existentes e definirá o bit SE_SACL_AUTO_INHERITED nos descritores de segurança do objeto e seus objetos filho.
SE_DACL_AUTO_INHERITED (0x0400) A partir do Windows 2000, indica um descritor de segurança no qual a DACL dá suporte à propagação automática de ACEs herdáveis para objetos filho existentes. Para ACLs do Windows 2000 que dão suporte à autenticação automática, esse bit é sempre definido. Ele é usado para distinguir essas ACLs de ACLs Windows NT 4.0 que não dão suporte à autenticação automática. Esse bit não é definido em descritores de segurança para Windows NT 4.0 e anteriores, que não dão suporte à propagação automática de ACEs herdáveis.
SE_SACL_AUTO_INHERITED (0x0800) Indica um descritor de segurança no qual o SACL dá suporte à propagação automática de ACEs herdáveis para objetos filho existentes. Esse bit será definido somente se o algoritmo de herança automática tiver sido executado para o objeto e seus objetos filho existentes. Esse bit não é definido em descritores de segurança para Windows NT 4.0 e anteriores, que não suportam a propagação automática de ACEs herdáveis.
SE_DACL_PROTECTED (0x1000) Protege a DACL do descritor de segurança de ser modificada por ACEs herdáveis.
SE_SACL_PROTECTED (0x2000) Protege o SACL do descritor de segurança de ser modificado por ACEs herdáveis.
SE_RM_CONTROL_VALID (0x4000) Indica que os bits do gerenciador de controle de recursos no descritor de segurança são válidos. Os bits de controle Resource Manager são de oito bits no membro Sbz1 da estrutura SECURITY_DESCRIPTOR que contém informações específicas do Resource Manager acessar a estrutura. Para obter mais informações, confira o SDK do Windows.
SE_SELF_RELATIVE (0x8000) Indica um descritor de segurança em formato auto-relativo com todas as informações de segurança em um bloco contíguo de memória. Se esse sinalizador não estiver definido, o descritor de segurança estará em formato absoluto. Para obter mais informações, confira a documentação do SDK do Windows.

Requisitos

ntifs.h (inclua ntifs.h)

ACE

ACL

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

SECURITY_DESCRIPTOR