MakeAbsoluteSD-Funktion (securitybaseapi.h)
Die MakeAbsoluteSD-Funktion erstellt einen Sicherheitsdeskriptor im absoluten Format, indem ein Sicherheitsdeskriptor im selbstrelativen Format als Vorlage verwendet wird.
Syntax
BOOL MakeAbsoluteSD(
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
[out, optional] PACL pDacl,
[in, out] LPDWORD lpdwDaclSize,
[out, optional] PACL pSacl,
[in, out] LPDWORD lpdwSaclSize,
[out, optional] PSID pOwner,
[in, out] LPDWORD lpdwOwnerSize,
[out, optional] PSID pPrimaryGroup,
[in, out] LPDWORD lpdwPrimaryGroupSize
);
Parameter
[in] pSelfRelativeSecurityDescriptor
Ein Zeiger auf eine SECURITY_DESCRIPTOR Struktur im selbstrelativen Format. Die Funktion erstellt eine absolute Formatversion dieses Sicherheitsdeskriptors, ohne den ursprünglichen Sicherheitsdeskriptor zu ändern.
[out, optional] pAbsoluteSecurityDescriptor
Ein Zeiger auf einen Puffer, den die Funktion mit dem Standard Textkörper eines absoluten Format-Sicherheitsdeskriptors füllt. Diese Informationen sind als SECURITY_DESCRIPTOR-Struktur formatiert.
[in, out] lpdwAbsoluteSecurityDescriptorSize
Ein Zeiger auf eine Variable, die die Größe des Puffers angibt, auf den der pAbsoluteSD-Parameter verweist. Wenn der Puffer nicht groß genug für die Sicherheitsbeschreibung ist, schlägt die Funktion fehl und legt diese Variable auf die erforderliche Mindestgröße fest.
[out, optional] pDacl
Ein Zeiger auf einen Puffer, den die Funktion mit der diskretionären Zugriffssteuerungsliste (DACL) des absoluten Format-Sicherheitsdeskriptors füllt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.
[in, out] lpdwDaclSize
Ein Zeiger auf eine Variable, die die Größe des Puffers angibt, auf den der pDacl-Parameter verweist. Wenn der Puffer für die Zugriffssteuerungsliste (Access Control List , ACL) nicht groß genug ist, schlägt die Funktion fehl und legt diese Variable auf die erforderliche Mindestgröße fest.
[out, optional] pSacl
Ein Zeiger auf einen Puffer, den die Funktion mit der Systemzugriffssteuerungsliste (SACL) des absoluten Format-Sicherheitsdeskriptors füllt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.
[in, out] lpdwSaclSize
Ein Zeiger auf eine Variable, die die Größe des Puffers angibt, auf den der pSacl-Parameter verweist. Wenn der Puffer nicht groß genug für die ACL ist, schlägt die Funktion fehl und legt diese Variable auf die erforderliche Mindestgröße fest.
[out, optional] pOwner
Ein Zeiger auf einen Puffer, den die Funktion mit dem Sicherheitsbezeichner (SID) des Besitzers des absoluten Format-Sicherheitsdeskriptors füllt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.
[in, out] lpdwOwnerSize
Ein Zeiger auf eine Variable, die die Größe des Puffers angibt, auf den der pOwner-Parameter verweist. Wenn der Puffer nicht groß genug für die SID ist, schlägt die Funktion fehl und legt diese Variable auf die erforderliche Mindestgröße fest.
[out, optional] pPrimaryGroup
Ein Zeiger auf einen Puffer, den die Funktion mit der SID der primären Gruppe des absoluten Formatsicherheitsdeskriptors füllt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.
[in, out] lpdwPrimaryGroupSize
Ein Zeiger auf eine Variable, die die Größe des Puffers angibt, auf den der pPrimaryGroup-Parameter verweist. Wenn der Puffer nicht groß genug für die SID ist, schlägt die Funktion fehl und legt diese Variable auf die erforderliche Mindestgröße fest.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion nonzero zurück.
Wenn die Funktion fehlschlägt, gibt sie null zurück. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Mögliche Rückgabecodes umfassen folgendes, sind aber nicht darauf beschränkt.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Mindestens ein Puffer ist zu klein. |
Hinweise
Ein Sicherheitsdeskriptor im absoluten Format enthält Zeiger auf die darin enthaltenen Informationen und nicht auf die Informationen selbst. Ein Sicherheitsdeskriptor im selbstrelativen Format enthält die Informationen in einem zusammenhängenden Speicherblock. In einem selbstrelativen Sicherheitsdeskriptor startet eine SECURITY_DESCRIPTOR-Struktur die Informationen immer, aber die anderen Komponenten des Sicherheitsdeskriptors können der Struktur in beliebiger Reihenfolge folgen. Anstatt Speicheradressen zu verwenden, werden die Komponenten des selbstrelativen Sicherheitsdeskriptors durch Offsets vom Anfang des Sicherheitsdeskriptors identifiziert. Dieses Format ist nützlich, wenn ein Sicherheitsdeskriptor auf einer Diskette gespeichert oder mithilfe eines Kommunikationsprotokolls übertragen werden muss.
Ein Server, der gesicherte Objekte auf verschiedene Medien kopiert, kann die MakeAbsoluteSD-Funktion verwenden, um einen absoluten Sicherheitsdeskriptor aus einem selbstrelativen Sicherheitsdeskriptor und die MakeSelfRelativeSD-Funktion zu erstellen, um einen selbstrelativen Sicherheitsdeskriptor aus einem absoluten Sicherheitsdeskriptor zu erstellen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | securitybaseapi.h (einschließlich Windows.h) |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |