Funzione RtlNormalizeSecurityDescriptor (ntddk.h)
Questa routine esamina un descrittore di sicurezza per modi per modificarne il layout, con l'obiettivo che due descrittori di sicurezza equivalenti devono essere in grado di essere a istanza singola in $SDS il 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 NewSecurityDescriptor non viene fornito, 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 un valore diverso da 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 le modifiche verrebbero apportate in altro modo. In questo caso, non viene creato un descrittore di sicurezza modificato.
Valore restituito
Restituisce TRUE se le modifiche sono state apportate o sarebbero state apportate e FALSE in caso contrario (incluso l'errore).
Commenti
Se questa routine apporta modifiche, restituisce il descrittore di sicurezza modificato, a meno che il chiamante non specifichi CheckOnly che indica che desiderano sapere solo se verrebbero apportate modifiche.
Le trasformazioni attualmente supportate sono:
Disporre le sezioni nell'ordine Sacl => Dacl => Owner => Group.
Elimina la spaziatura interna non necessaria (oltre l'allineamento semplice) tra le sezioni.
Zero byte di allineamento tra le sezioni.
Eliminare qualsiasi sacl che non contiene ACL.
Eliminare gli ACL ALLOW duplicati in Sacl e Dacl.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10, versione 2004 |
Intestazione | ntddk.h (include Ntddk.h) |
IRQL | APC_LEVEL |