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
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 |