Freigeben über


SetNamedSecurityInfoA-Funktion (aclapi.h)

Die SetNamedSecurityInfo- -Funktion legt angegebene Sicherheitsinformationen in der Sicherheitsbeschreibung eines angegebenen Objekts fest. Der Aufrufer identifiziert das Objekt anhand des Namens.

Syntax

DWORD SetNamedSecurityInfoA(
  [in]           LPSTR                pObjectName,
  [in]           SE_OBJECT_TYPE       ObjectType,
  [in]           SECURITY_INFORMATION SecurityInfo,
  [in, optional] PSID                 psidOwner,
  [in, optional] PSID                 psidGroup,
  [in, optional] PACL                 pDacl,
  [in, optional] PACL                 pSacl
);

Parameter

[in] pObjectName

Ein Zeiger auf eine NULL--terminated-Zeichenfolge, die den Namen des Objekts angibt, für das Sicherheitsinformationen festgelegt werden sollen. Dies kann der Name einer lokalen oder Remotedatei oder eines Verzeichnisses in einem NTFS-Dateisystem, netzwerkfreigabe, Registrierungsschlüssel, Semaphor, Ereignis, Mutex, Dateizuordnung oder Wartezeitgeber sein.

Beschreibungen der Zeichenfolgenformate für die verschiedenen Objekttypen finden Sie unter SE_OBJECT_TYPE.

[in] ObjectType

Ein Wert der SE_OBJECT_TYPE-Aufzählung, die den Typ des Objekts angibt, das vom pObjectName Parameter benannt wird.

[in] SecurityInfo

Eine Gruppe von Bitkennzeichnungen, die den Typ der festzulegenden Sicherheitsinformationen angeben. Dieser Parameter kann eine Kombination aus den SECURITY_INFORMATION Bitkennzeichnungen sein.

[in, optional] psidOwner

Ein Zeiger auf eine SID Struktur, die den Besitzer des Objekts identifiziert. Wenn der Aufrufer nicht über die SeRestorePrivilege- Konstante verfügt (siehe Berechtigungskonstanten), muss diese SID- im Token des Aufrufers enthalten sein und die SE_GROUP_OWNER Berechtigung aktiviert haben. Der parameter SecurityInfo muss das OWNER_SECURITY_INFORMATION Flag enthalten. Um den Besitzer festzulegen, muss der Aufrufer über WRITE_OWNER Zugriff auf das Objekt verfügen oder die SE_TAKE_OWNERSHIP_NAME Berechtigung aktiviert haben. Wenn Sie den Besitzer nicht SID-festlegen, kann dieser Parameter NULL-sein.

[in, optional] psidGroup

Ein Zeiger auf eine SID, die die primäre Gruppe des Objekts identifiziert. Der parameter SecurityInfo muss das GROUP_SECURITY_INFORMATION Flag enthalten. Wenn Sie die primäre Gruppen-SID nicht festlegen, kann dieser Parameter NULL-werden.

[in, optional] pDacl

Ein Zeiger auf die neue DACL für das Objekt. Der parameter SecurityInfo muss das DACL_SECURITY_INFORMATION Flag enthalten. Der Aufrufer muss WRITE_DAC Zugriff auf das Objekt haben oder der Besitzer des Objekts sein. Wenn Sie die DACL nicht festlegen, kann dieser Parameter NULL-sein.

[in, optional] pSacl

Ein Zeiger auf die neue SACL für das Objekt. Der parameter SecurityInfo muss eines der folgenden Flags enthalten: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION oder BACKUP_SECURITY_INFORMATION.

Wenn sie SACL_SECURITY_INFORMATION oder SCOPE_SECURITY_INFORMATION festlegen, muss der Aufrufer die SE_SECURITY_NAME Berechtigung aktiviert haben. Wenn Sie die SACL nicht festlegen, kann dieser Parameter NULL-sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ERROR_SUCCESS zurück.

Wenn die Funktion fehlschlägt, wird ein nichtzero-Fehlercode zurückgegeben, der in WinError.h definiert ist.

Bemerkungen

Wenn Sie die diskretionäre Zugriffssteuerungsliste (DACL) oder elemente in der Systemzugriffssteuerungsliste (SACL) eines Objekts festlegen, verteilt das System automatisch vererbbare Zugriffssteuerungseinträge (ACEs) an vorhandene untergeordnete Objekte gemäß den Regeln der Vererbung.

Sie können die SetNamedSecurityInfo--Funktion mit den folgenden Objekttypen verwenden:

  • Lokale oder Remotedateien oder Verzeichnisse auf einem NTFS
  • Lokale oder Remotedrucker
  • Lokale oder Remote-Windows-Dienste
  • Netzwerkfreigaben
  • Registrierungsschlüssel
  • Semaphoren, Ereignisse, Mutexes und wartezeitfähige Zeitgeber
  • Dateizuordnungsobjekte
  • Verzeichnisdienstobjekte
Die SetNamedSecurityInfo--Funktion sortiert Zugriffsberechtigungs- oder Zugriffsverweigerungs-ACEs nicht basierend auf der bevorzugten Reihenfolge neu. Beim Verteilen vererbbarer ACEs an vorhandene untergeordnete Objekte SetNamedSecurityInfo geerbte ACEs in die Reihenfolge, nachdem alle nicht inheritierten ACEs in den DACLs der untergeordneten Objekte enthalten sind.

Diese Funktion überträgt Informationen in Nur-Text-. Die von dieser Funktion übertragenen Informationen werden signiert, es sei denn, das Signieren für das System wurde deaktiviert, es wird jedoch keine Verschlüsselung ausgeführt.

Wenn Sie die Zugriffsrechte eines Ordners aktualisieren, der durch einen UNC-Pfad angegeben ist, z. B. \Test\TestFolder, wird die ursprüngliche geerbte ACE entfernt, und der vollständige Volumepfad ist nicht enthalten.

Beispiele

Ein Beispiel, das diese Funktion verwendet, finden Sie unter Ändern der ACLs eines Objekt- oder Übernehmen des Objektbesitzes.

Anmerkung

Der Header "aclapi.h" definiert SetNamedSecurityInfo als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- aclapi.h
Library Advapi32.lib
DLL- Advapi32.dll

Siehe auch

ACL-

Zugriffssteuerung

grundlegende Zugriffssteuerungsfunktionen

GetNamedSecurityInfo-

GetSecurityInfo-

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SE_OBJECT_TYPE

SID-

SetSecurityInfo-