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

Übersicht über Client/Server Access Control

CreatePrivateObjectSecurityEx

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

GetTokenInformation

OpenProcessToken

SECURITY_DESCRIPTOR

SECURITY_IMPERSONATION_LEVEL

SetPrivateObjectSecurity