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
ERROR_INSUFFICIENT_BUFFER
0x7A
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

Weitere Informationen

Low-Level-Access Control

Access Control funktionen auf niedriger Ebene

MakeSelfRelativeSD

SECURITY_DESCRIPTOR