CreatePrivateObjectSecurity-Funktion (securitybaseapi.h)
Die CreatePrivateObjectSecurity-Funktion weist eine selbst relative Sicherheitsdeskriptor für ein neues privates Objekt zu und initialisiert sie. Ein geschützter Server ruft diese Funktion auf, wenn es ein neues privates Objekt erstellt.
Um die Objekttyp-GUID des neuen Objekts anzugeben oder zu steuern, wie Zugriffssteuerungseinträge (ACEs) geerbt werden, verwenden Sie die Funktion CreatePrivateObjectSecurityEx .
Syntax
BOOL CreatePrivateObjectSecurity(
[in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
[in, optional] PSECURITY_DESCRIPTOR CreatorDescriptor,
[out] PSECURITY_DESCRIPTOR *NewDescriptor,
[in] BOOL IsDirectoryObject,
[in, optional] HANDLE Token,
[in] PGENERIC_MAPPING GenericMapping
);
Parameter
[in, optional] ParentDescriptor
Ein Zeiger auf den Sicherheitsdeskriptor für das übergeordnete Verzeichnis, in dem ein neues Objekt erstellt wird. Wenn kein übergeordnetes Verzeichnis vorhanden ist, kann dieser Parameter NULL sein.
[in, optional] CreatorDescriptor
Ein Zeiger auf einen Sicherheitsdeskriptor, der vom Ersteller des Objekts bereitgestellt wird. Wenn der Ersteller des Objekts keine Sicherheitsinformationen für das neue Objekt explizit übergeben, soll dieser Parameter NULL sein.
[out] NewDescriptor
Ein Zeiger auf eine Variable, die einen Zeiger auf den neu zugewiesenen selbstbezogenen Sicherheitsdeskriptor empfängt. Der Aufrufer muss die DestroyPrivateObjectSecurity-Funktion aufrufen, um diesen Sicherheitsdeskriptor freizustellen.
[in] IsDirectoryObject
Gibt an, ob das neue Objekt ein Container ist. Ein Wert von TRUE gibt an, dass das Objekt andere Objekte enthält, z. B. ein Verzeichnis.
[in, optional] Token
Ein Handle zum Zugriffstoken für den Clientprozess , dessen Auftrag das Objekt erstellt wird. Wenn dies ein Identitätstoken ist, muss sie auf SecurityIdentification-Ebene oder höher sein. Eine vollständige Beschreibung der SecurityIdentification-Impersonationsebene finden Sie im SECURITY_IMPERSONATION_LEVEL aufgezählten Typ.
Ein Clienttoken wird verwendet, um Standardsicherheitsinformationen für das neue Objekt abzurufen, z. B. den Standardbesitzer, die primäre Gruppe und die Steuerelementliste für die Diskretion des Zugriffs. Das Token muss für den zugriff TOKEN_QUERY geöffnet sein.
Wenn alle folgenden Bedingungen wahr sind, muss das Handle neben TOKEN_QUERY Zugriff für TOKEN_DUPLICATE Zugriff geöffnet werden.
- Der Tokenhandpunkt bezieht sich auf ein primäres Token.
- Der Sicherheitsdeskriptor des Token enthält mindestens ein ACEs mit der OwnerRights SID.
- Ein Sicherheitsdeskriptor wird für den CreatorDescriptor-Parameter angegeben.
- Der Aufrufer dieser Funktion legt das SEF_AVOID_OWNER_RESTRICTION-Flag im AutoInheritFlags-Parameter nicht fest.
[in] GenericMapping
Ein Zeiger auf eine GENERIC_MAPPING Struktur, die die Zuordnung von jedem generischen Recht auf bestimmte Rechte für das Objekt angibt.
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.
Hinweise
Wenn eine Systemzugriffssteuerungsliste (SACL) im vom CreatorDescriptor-Parameter angegebenen SECURITY_DESCRIPTOR angegeben wird, muss der Tokenparameter die SE_SECURITY_NAME Berechtigungen aktiviert haben. Die CreatePrivateObjectSecurity-Funktion überprüft diese Berechtigung und kann während des Prozesses Überprüfungen generieren.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | securitybaseapi.h (enthalten Windows.h) |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |
Weitere Informationen
Client/Server Access Control Funktionen