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