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

Weitere Informationen

CreatePrivateObjectSecurity

GetKernelObjectSecurity

GetPrivateObjectSecurity

Low-Level-Access Control

Access Control funktionen auf niedriger Ebene

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetUserObjectSecurity