RtlNormalizeSecurityDescriptor-Funktion (ntddk.h)
Diese Routine untersucht einen Sicherheitsdeskriptor, um das Layout zu ändern, mit dem Ziel, dass alle zwei gleichwertigen Sicherheitsdeskriptoren so oft wie möglich in $SDS instanziert werden sollten, und ein sekundäres Ziel, dass der gespeicherte Sicherheitsdeskriptor so klein wie möglich sein sollte.
Syntax
NTSYSAPI BOOLEAN RtlNormalizeSecurityDescriptor(
PSECURITY_DESCRIPTOR *SecurityDescriptor,
ULONG SecurityDescriptorLength,
PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
PULONG NewSecurityDescriptorLength,
BOOLEAN CheckOnly
);
Parameter
SecurityDescriptor
Zeigen Sie auf einen Zeiger auf die SECURITY_DESCRIPTOR, um die Normalisierung zu normalisieren. Der Sicherheitsdeskriptor muss im selbstrelativen Format vorliegen. Wenn NewSecurityDescriptor- nicht bereitgestellt wird, kann dieser Speicherort mit einem neu zugewiesenen Sicherheitsdeskriptor aus dem ausgelagerten Pool (freistellen des ursprünglichen Sicherheitsdeskriptors) aktualisiert werden, wenn Änderungen vorgenommen wurden.
SecurityDescriptorLength
Länge in Byte des Sicherheitsdeskriptors, der normalisiert werden soll.
NewSecurityDescriptor
Wenn vorhanden und auf NULL verweist, empfängt einen Zeiger auf einen neu zugewiesenen Sicherheitsdeskriptor aus dem ausgelagerten Pool, wenn Änderungen vorgenommen wurden, anstatt SecurityDescriptorzu aktualisieren.
Wenn vorhanden und auf Nicht-NULL verweist, wird stattdessen ein geänderter Sicherheitsdeskriptor direkt im Puffer erstellt (vorausgesetzt, dass er mindestens die Länge SecurityDescriptorLength) vom Aufrufer bereitgestellt wird.
NewSecurityDescriptorLength
Empfängt optional die Länge in Byte des geänderten Sicherheitsdeskriptors, wenn diese Routine Änderungen vornimmt.
CheckOnly
Ein BOOLESCHER Wert, der, wenn TRUE angibt, dass die Routine keine Aktion ausführen soll, wenn Änderungen andernfalls vorgenommen werden. In diesem Fall wird kein geänderter Sicherheitsdeskriptor erstellt.
Rückgabewert
Gibt TRUE zurück, wenn Änderungen vorgenommen oder vorgenommen wurden, andernfalls FALSE (einschließlich Fehler).
Bemerkungen
Wenn diese Routine Änderungen vorgibt, gibt sie den geänderten Sicherheitsdeskriptor zurück, es sei denn, der Aufrufer gibt CheckOnly an, der angibt, dass er nur wissen möchte, ob Änderungen vorgenommen werden.
Die derzeit unterstützten Transformationen sind:
Ordnen Sie die Abschnitte in der Reihenfolge Sacl => Dacl => Owner => Gruppe an.
Vermeiden Sie unnötigen Abstand (über die einfache Ausrichtung hinaus) zwischen Abschnitten.
Null aller Ausrichtungsbytes zwischen Abschnitten.
Entfernen Sie alle Sacl, die keine ACEs enthalten.
Entfernen Sie doppelte ALLOW ACEs in sacl und Dacl.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10, Version 2004 |
Header- | ntddk.h (include Ntddk.h) |
IRQL- | APC_LEVEL |