GetNamedSecurityInfoA-Funktion (aclapi.h)
Die GetNamedSecurityInfo Funktion ruft eine Kopie des Sicherheitsdeskriptors für ein durch den Namen angegebenes Objekt ab.
Syntax
DWORD GetNamedSecurityInfoA(
[in] LPCSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[out, optional] PSID *ppsidOwner,
[out, optional] PSID *ppsidGroup,
[out, optional] PACL *ppDacl,
[out, optional] PACL *ppSacl,
[out, optional] PSECURITY_DESCRIPTOR *ppSecurityDescriptor
);
Parameter
[in] pObjectName
Ein Zeiger auf eine mit Null beendete Zeichenfolge, die den Namen des Objekts angibt, aus dem Sicherheitsinformationen abgerufen werden sollen. Beschreibungen der Zeichenfolgenformate für die verschiedenen Objekttypen finden Sie unter SE_OBJECT_TYPE.
[in] ObjectType
Gibt einen Wert aus der SE_OBJECT_TYPE -Aufzählung an, der den Typ des Objekts angibt, das vom pObjectName Parameter benannt ist.
[in] SecurityInfo
Eine Gruppe von Bitkennzeichnungen, die den Typ der abzurufenden Sicherheitsinformationen angeben. Dieser Parameter kann eine Kombination aus den SECURITY_INFORMATION Bitkennzeichnungen sein.
[out, optional] ppsidOwner
Ein Zeiger auf eine Variable, die einen Zeiger auf die Besitzer-SID in der Sicherheitsbeschreibung empfängt, in ppSecurityDescriptor oder NULL- zurückgegeben, wenn der Sicherheitsdeskriptor keine Besitzer-SID hat. Der zurückgegebene Zeiger ist nur gültig, wenn Sie das OWNER_SECURITY_INFORMATION Flag festlegen. Außerdem kann dieser Parameter NULL- sein, wenn Sie die Besitzer-SID nicht benötigen.
[out, optional] ppsidGroup
Ein Zeiger auf eine Variable, die einen Zeiger auf die primäre Gruppen-SID in der zurückgegebenen Sicherheitsbeschreibung oder NULL- empfängt, wenn der Sicherheitsdeskriptor keine Gruppen-SID aufweist. Der zurückgegebene Zeiger ist nur gültig, wenn Sie das GROUP_SECURITY_INFORMATION Flag festlegen. Außerdem kann dieser Parameter NULL- werden, wenn Sie die Gruppen-SID nicht benötigen.
[out, optional] ppDacl
Ein Zeiger auf eine Variable, die einen Zeiger auf die DACL im zurückgegebenen Sicherheitsdeskriptor oder NULL- empfängt, wenn der Sicherheitsdeskriptor keine DACL aufweist. Der zurückgegebene Zeiger ist nur gültig, wenn Sie das DACL_SECURITY_INFORMATION Flag festlegen. Außerdem kann dieser Parameter NULL- werden, wenn Sie die DACL nicht benötigen.
[out, optional] ppSacl
Ein Zeiger auf eine Variable, die einen Zeiger auf die SACL im zurückgegebenen Sicherheitsdeskriptor oder NULL- empfängt, wenn der Sicherheitsdeskriptor keine SACL aufweist. Der zurückgegebene Zeiger ist nur gültig, wenn Sie das kennzeichen SACL_SECURITY_INFORMATION festlegen. Außerdem kann dieser Parameter NULL- werden, wenn Sie die SACL nicht benötigen.
[out, optional] ppSecurityDescriptor
Ein Zeiger auf eine Variable, die einen Zeiger auf die Sicherheitsbeschreibung des Objekts empfängt. Wenn Sie mit der Verwendung des Zeigers fertig sind, geben Sie den zurückgegebenen Puffer frei, indem Sie die funktion LocalFree aufrufen.
Dieser Parameter ist erforderlich, wenn einer der ppsidOwner-, ppsidGroup-, ppDacl-oder ppSacl- Parameter nicht NULL-ist.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.
Wenn die Funktion fehlschlägt, ist der Rückgabewert ein nichtzero-Fehlercode, der in WinError.h definiert ist.
Bemerkungen
Wenn eines der ppsidOwner, ppsidGroup, ppDacloder ppSacl Parameter nichtNULL-sind, und der SecurityInfo Parameter gibt an, dass sie aus dem Objekt abgerufen werden, Diese Parameter verweisen auf die entsprechenden Parameter im Sicherheitsdeskriptor, in ppSecurityDescriptorzurückgegeben. Wenn der Sicherheitsdeskriptor die angeforderten Informationen nicht enthält, wird der entsprechende Parameter auf NULL-festgelegt.
Um den Besitzer, die Gruppe oder die DACL aus dem Sicherheitsdeskriptor des Objekts zu lesen, muss die DACL des Objekts READ_CONTROL Zugriff auf den Aufrufer gewähren, oder der Aufrufer muss der Besitzer des Objekts sein.
Um die Liste der Systemzugriffssteuerung des Objekts zu lesen, muss die SE_SECURITY_NAME Berechtigung für den Aufrufvorgang aktiviert sein. Informationen zu den Sicherheitsauswirkungen der Aktivierung von Berechtigungen finden Sie unter Ausführen mit speziellen Berechtigungen.
Sie können die GetNamedSecurityInfo--Funktion mit den folgenden Objekttypen verwenden:
- Lokale oder Remotedateien oder Verzeichnisse auf einem NTFS-Dateisystem
- 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.This function transfers information in plaintext. 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.
Weitere Informationen zum Steuern des Zugriffs auf Objekte über Benutzerkonten, Gruppenkonten oder Anmeldesitzungen finden Sie unter How DACLs Control Access to an Object.
Beispiele
Ein Beispiel, das GetNamedSecurityInfoverwendet, finden Sie unter Ändern der ACLs eines Objekts.
Anmerkung
Der Header "aclapi.h" definiert GetNamedSecurityInfo 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 |