Função RtlNormalizeSecurityDescriptor (ntddk.h)
Essa rotina examina um descritor de segurança para obter maneiras de modificar seu layout, com a meta de que dois descritores de segurança equivalentes possam ser instâncias individuais em $SDS com a maior frequência possível e uma meta secundária de que o descritor de segurança armazenado deve ser o menor possível.
Sintaxe
NTSYSAPI BOOLEAN RtlNormalizeSecurityDescriptor(
PSECURITY_DESCRIPTOR *SecurityDescriptor,
ULONG SecurityDescriptorLength,
PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
PULONG NewSecurityDescriptorLength,
BOOLEAN CheckOnly
);
Parâmetros
SecurityDescriptor
Ponteiro para um ponteiro para o SECURITY_DESCRIPTOR para normalizar. O descritor de segurança deve estar no formato auto-relativo. Se NewSecurityDescriptor não for fornecido, esse local poderá ser atualizado com um descritor de segurança recém-alocado do pool de páginas (liberando o descritor de segurança original) se modificações forem feitas.
SecurityDescriptorLength
Comprimento em bytes do descritor de segurança para normalizar.
NewSecurityDescriptor
Se presente e apontar para NULL, receberá um ponteiro para um descritor de segurança recém-alocado do pool de páginas se modificações forem feitas, em vez de atualizar SecurityDescriptor.
Se presente e apontar para não NULL, um descritor de segurança modificado será construído diretamente no buffer (considerado pelo menos de comprimento SecurityDescriptorLength) fornecido pelo chamador.
NewSecurityDescriptorLength
Opcionalmente, receberá o comprimento em bytes do descritor de segurança modificado se essa rotina fizer modificações.
CheckOnly
Um valor BOOLEAN que, se TRUE especificar que a rotina não deve tomar nenhuma ação quando modificações seriam feitas de outra forma. Nesse caso, um descritor de segurança modificado não é criado.
Retornar valor
Retorna TRUE se modificações foram feitas ou teriam sido feitas e FALSE caso contrário (incluindo falha).
Comentários
Se essa rotina fizer modificações, ela retornará o descritor de segurança modificado, a menos que o chamador especifique CheckOnly indicando que só deseja saber se modificações seriam feitas.
As transformações com suporte no momento são:
Organize as seções na ordem Sacl => Dacl => Owner => Group.
Eliminar o preenchimento desnecessário (além do alinhamento simples) entre as seções.
Zero bytes de alinhamento entre as seções.
Elimine qualquer Sacl que não contenha ACEs.
Eliminar ACEs ALLOW duplicadas no Sacl e na Dacl.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 2004 |
Cabeçalho | ntddk.h (inclua Ntddk.h) |
IRQL | APC_LEVEL |