Absolute und Self-Relative Sicherheitsdeskriptoren
Ein Sicherheitsdeskriptor kann entweder im absoluten oder im selbstrelativenFormatsein. Im absoluten Format enthält ein Sicherheitsdeskriptor Zeiger auf seine Informationen, nicht die Informationen selbst. Im selbstrelativen Format speichert ein Sicherheitsdeskriptor eine SECURITY_DESCRIPTOR Struktur und zugeordnete Sicherheitsinformationen in einem zusammenhängenden Speicherblock. Um festzustellen, ob ein Sicherheitsdeskriptor selbstrelativ oder absolut ist, rufen Sie die GetSecurityDescriptorControl-Funktion auf, und überprüfen Sie das SE_SELF_RELATIVE Flag des SECURITY_DESCRIPTOR_CONTROL Parameters. Sie können die MakeSelfRelativeSD- und MakeAbsoluteSD--Funktionen zum Konvertieren zwischen diesen beiden Formaten verwenden.
Das absolute Format ist nützlich, wenn Sie einen Sicherheitsdeskriptor erstellen und Zeiger auf alle Komponenten haben, z. B. wenn Standardeinstellungen für den Besitzer, die Gruppe und die diskretionäre ACL verfügbar sind. In diesem Fall können Sie den InitializeSecurityDescriptor-Funktion aufrufen, um eine SECURITY_DESCRIPTOR Struktur zu initialisieren, und dann Funktionen wie SetSecurityDescriptorDacl aufrufen, um dem Sicherheitsdeskriptor ACL- und SID-Zeiger zuzuweisen.
Im selbstrelativen Format beginnt ein Sicherheitsdeskriptor immer mit einer SECURITY_DESCRIPTOR Struktur, aber die anderen Komponenten der Sicherheitsbeschreibung können der Struktur in beliebiger Reihenfolge folgen. Anstatt Speicheradressen zu verwenden, werden die Komponenten des Sicherheitsdeskriptors durch Offsets vom Anfang des Deskriptors identifiziert. Dieses Format ist nützlich, wenn ein Sicherheitsdeskriptor auf dem Datenträger gespeichert, über ein Kommunikationsprotokoll übertragen oder im Speicher kopiert werden muss.
Mit Ausnahme von MakeAbsoluteSD-, verwenden alle Funktionen, die einen Sicherheitsdeskriptor zurückgeben, dies mithilfe des selbstrelativen Formats tun. Sicherheitsdeskriptoren, die als Argumente an eine Funktion übergeben werden, können entweder selbstrelative oder absolute Form sein. Weitere Informationen finden Sie in der Dokumentation für die Funktion.