Freigeben über


GetSecurityDescriptorDacl-Funktion (securitybaseapi.h)

Die GetSecurityDescriptorDacl-Funktion ruft einen Zeiger auf die diskretionäre Zugriffssteuerungsliste (DACL) in einem angegebenen Sicherheitsdeskriptor ab.

Syntax

BOOL GetSecurityDescriptorDacl(
  [in]  PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [out] LPBOOL               lpbDaclPresent,
  [out] PACL                 *pDacl,
  [out] LPBOOL               lpbDaclDefaulted
);

Parameter

[in] pSecurityDescriptor

Ein Zeiger auf die SECURITY_DESCRIPTOR-Struktur , die die DACL enthält. Die Funktion ruft einen Zeiger darauf ab.

[out] lpbDaclPresent

Ein Zeiger auf einen Wert, der das Vorhandensein einer DACL in der angegebenen Sicherheitsbeschreibung angibt. Wenn lpbDaclPresentTRUE ist, enthält der Sicherheitsdeskriptor eine DACL, und die restlichen Ausgabeparameter in dieser Funktion erhalten gültige Werte. Wenn lpbDaclPresentFALSE ist, enthält der Sicherheitsdeskriptor keine DACL, und die verbleibenden Ausgabeparameter erhalten keine gültigen Werte.

Ein Wert von TRUE für lpbDaclPresent bedeutet nicht, dass pDacl nicht NULL ist. Das heißt, lpbDaclPresent kann TRUE sein, während pDaclNULL ist, was bedeutet, dass eine NULL-DACL wirksam ist. Eine NULL-DACL ermöglicht implizit den gesamten Zugriff auf ein Objekt und ist nicht mit einer leeren DACL identisch. Eine leere DACL lässt keinen Zugriff auf ein Objekt zu. Informationen zum Erstellen einer richtigen DACL finden Sie unter Erstellen einer DACL.

[out] pDacl

Ein Zeiger auf einen Zeiger auf eine Zugriffssteuerungsliste (Access Control List , ACL). Wenn eine DACL vorhanden ist, legt die Funktion den Zeiger, auf den pDacl verweist, auf die Adresse der DACL des Sicherheitsdeskriptors fest. Wenn keine DACL vorhanden ist, wird kein Wert gespeichert.

Wenn die Funktion einen NULL-Wert im Zeiger speichert, auf den pDacl verweist, verfügt der Sicherheitsdeskriptor über eine NULL-DACL . Eine NULL-DACL ermöglicht implizit den gesamten Zugriff auf ein Objekt.

Wenn eine Anwendung eine DACL ohne NULL erwartet, aber auf eine NULL-DACL stößt, sollte die Anwendung sicher fehlschlagen und keinen Zugriff zulassen.

[out] lpbDaclDefaulted

Ein Zeiger auf ein Flag, das auf den Wert des SE_DACL_DEFAULTED Flags in der SECURITY_DESCRIPTOR_CONTROL-Struktur festgelegt ist, wenn eine DACL für die Sicherheitsbeschreibung vorhanden ist. Wenn dieses Flag TRUE ist, wurde die DACL von einem Standardmechanismus abgerufen. wenn FALSE, wurde die DACL explizit von einem Benutzer angegeben.

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.

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

GetSecurityDescriptorControl

GetSecurityDescriptorGroup

GetSecurityDescriptorLength

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

InitializeSecurityDescriptor

IsValidSecurityDescriptor

Low-Level-Access Control

Access Control funktionen auf niedriger Ebene

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL

SetSecurityDescriptorDacl