Descrittori di sicurezza assoluti e Self-Relative
Un descrittore di sicurezza può essere in formato assoluto o auto-relativo . In formato assoluto, un descrittore di sicurezza contiene puntatori alle relative informazioni, non le informazioni stesse. In formato auto-relativo, un descrittore di sicurezza archivia una struttura SECURITY_DESCRIPTOR e le informazioni di sicurezza associate in un blocco contiguo di memoria. Per determinare se un descrittore di sicurezza è auto-relativo o assoluto, chiamare la funzione GetSecurityDescriptorControl e controllare il flag SE_SELF_RELATIVE del parametro SECURITY_DESCRIPTOR_CONTROL . È possibile usare le funzioni MakeSelfRelativeSD e MakeAbsoluteSD per la conversione tra questi due formati.
Il formato assoluto è utile quando si crea un descrittore di sicurezza e sono disponibili puntatori a tutti i componenti, ad esempio quando sono disponibili le impostazioni predefinite per il proprietario, il gruppo e l'elenco di controllo di accesso discrezionale. In questo caso, è possibile chiamare la funzione InitializeSecurityDescriptor per inizializzare una struttura SECURITY_DESCRIPTOR e quindi chiamare funzioni come SetSecurityDescriptorDacl per assegnare puntatori ACL e SID al descrittore di sicurezza.
In formato auto-relativo, un descrittore di sicurezza inizia sempre con una struttura SECURITY_DESCRIPTOR , ma gli altri componenti del descrittore di sicurezza possono seguire la struttura in qualsiasi ordine. Anziché usare gli indirizzi di memoria, i componenti del descrittore di sicurezza vengono identificati da offset dall'inizio del descrittore. Questo formato è utile quando un descrittore di sicurezza deve essere archiviato su disco, trasmesso tramite un protocollo di comunicazione o copiato in memoria.
Ad eccezione di MakeAbsoluteSD, tutte le funzioni che restituiscono un descrittore di sicurezza fanno in modo che usi il formato self-relativo. I descrittori di sicurezza passati come argomenti a una funzione possono essere auto-relativi o forma assoluta. Per altre informazioni, vedere la documentazione per la funzione.