GetUserObjectSecurity-Funktion (winuser.h)
Die GetUserObjectSecurity-Funktion ruft Sicherheitsinformationen für das angegebene Benutzerobjekt ab.
Syntax
BOOL GetUserObjectSecurity(
[in] HANDLE hObj,
[in] PSECURITY_INFORMATION pSIRequested,
[in, out, optional] PSECURITY_DESCRIPTOR pSID,
[in] DWORD nLength,
[out] LPDWORD lpnLengthNeeded
);
Parameter
[in] hObj
Ein Handle für das Benutzerobjekt, für das Sicherheitsinformationen zurückgegeben werden sollen.
[in] pSIRequested
Ein Zeiger auf einen SECURITY_INFORMATION Wert, der die angeforderten Sicherheitsinformationen angibt.
[in, out, optional] pSID
Ein Zeiger auf eine SECURITY_DESCRIPTOR Struktur im selbstrelativen Format, die die angeforderten Informationen enthält, wenn die Funktion zurückgibt. Dieser Puffer muss an einer 4-Byte-Grenze ausgerichtet werden.
[in] nLength
Die Länge des Puffers in Bytes, auf den der pSD-Parameter verweist.
[out] lpnLengthNeeded
Ein Zeiger auf eine Variable, um die Anzahl von Bytes zu empfangen, die zum Speichern der vollständigen Sicherheitsbeschreibung erforderlich sind. Wenn der Wert dieser Variablen größer als der Wert des nLength-Parameters ist, wenn die Funktion zurückgibt, gibt die Funktion FALSE zurück, und keiner der Sicherheitsdeskriptoren wird in den Puffer kopiert. Andernfalls wird die gesamte Sicherheitsbeschreibung kopiert.
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
Zum Lesen der Besitzer-, Gruppen- oder dacl-Liste (Discretionary Access Control List ) aus der Sicherheitsbeschreibung des Benutzerobjekts muss dem aufrufenden Prozess READ_CONTROL Zugriff gewährt worden sein, als das Handle geöffnet wurde.
Zum Lesen der Systemzugriffssteuerungsliste (System Access Control List , SACL) aus der Sicherheitsbeschreibung muss dem aufrufenden Prozess ACCESS_SYSTEM_SECURITY Zugriff gewährt worden sein, als das Handle geöffnet wurde. Der richtige Weg, um diesen Zugriff zu erhalten, besteht darin, die SE_SECURITY_NAME-Berechtigung im aktuellen Token des Aufrufers zu aktivieren, das Handle für ACCESS_SYSTEM_SECURITY Zugriff zu öffnen und dann die Berechtigung zu deaktivieren.
Beispiele
Ein Beispiel, das diese Funktion verwendet, finden Sie unter Starten eines interaktiven Clientprozesses.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (einschließlich Windows.h) |
Bibliothek | User32.lib |
DLL | User32.dll |