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 |