Condividi tramite


Funzione RtlNormalizeSecurityDescriptor (ntddk.h)

Questa routine esamina un descrittore di sicurezza per individuare modi per modificarne il layout, con l'obiettivo che due descrittori di sicurezza equivalenti devono essere in grado di essere un'istanza singola in $SDS più spesso possibile e un obiettivo secondario che il descrittore di sicurezza archiviato deve essere il più piccolo possibile.

Sintassi

NTSYSAPI BOOLEAN RtlNormalizeSecurityDescriptor(
  PSECURITY_DESCRIPTOR *SecurityDescriptor,
  ULONG                SecurityDescriptorLength,
  PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
  PULONG               NewSecurityDescriptorLength,
  BOOLEAN              CheckOnly
);

Parametri

SecurityDescriptor

Puntatore a un puntatore al SECURITY_DESCRIPTOR da normalizzare. Il descrittore di sicurezza deve essere in formato auto-relativo. Se non viene specificato newSecurityDescriptor, questo percorso può essere aggiornato con un descrittore di sicurezza appena allocato dal pool di paging (liberando il descrittore di sicurezza originale) se sono state apportate modifiche.

SecurityDescriptorLength

Lunghezza in byte del descrittore di sicurezza da normalizzare.

NewSecurityDescriptor

Se presente e punta a NULL, riceve un puntatore a un descrittore di sicurezza appena allocato dal pool di paging se sono state apportate modifiche, anziché aggiornare SecurityDescriptor.

Se presente e punta a non NULL, un descrittore di sicurezza modificato viene invece costruito direttamente nel buffer (si presuppone che sia almeno di lunghezza SecurityDescriptorLength) fornito dal chiamante.

NewSecurityDescriptorLength

Facoltativamente, riceve la lunghezza in byte del descrittore di sicurezza modificato se questa routine apporta modifiche.

CheckOnly

Valore BOOLEAN che se TRUE specifica che la routine non deve eseguire alcuna azione quando verranno apportate modifiche. In questo caso, non viene creato un descrittore di sicurezza modificato.

Valore restituito

Restituisce TRUE se sono state apportate modifiche o sono state apportate e FALSE in caso contrario (incluso l'errore).

Osservazioni

Se questa routine apporta modifiche, restituisce il descrittore di sicurezza modificato, a meno che il chiamante non specifichi CheckOnly che indica che vogliono sapere solo se verranno apportate modifiche.

Le trasformazioni attualmente supportate sono:

  • Disporre le sezioni nell'ordine Sacl => Dacl => Owner => Group.

  • Eliminare la spaziatura interna non necessaria (oltre l'allineamento semplice) tra le sezioni.

  • Zero byte di allineamento tra le sezioni.

  • Eliminare eventuali sacl che non contengono ACL.

  • Eliminare gli ACL ALLOW duplicati in Sacl e Dacl.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 2004
intestazione ntddk.h (include Ntddk.h)
IRQL APC_LEVEL