SetUserObjectSecurity-Funktion (winuser.h)

Die SetUserObjectSecurity-Funktion legt die Sicherheit eines Benutzerobjekts fest. Dies kann z. B. ein Fenster oder eine DDE-Unterhaltung sein.

Syntax

BOOL SetUserObjectSecurity(
  [in] HANDLE                hObj,
  [in] PSECURITY_INFORMATION pSIRequested,
  [in] PSECURITY_DESCRIPTOR  pSID
);

Parameter

[in] hObj

Ein Handle für ein Benutzerobjekt, für das Sicherheitsinformationen festgelegt sind.

[in] pSIRequested

Ein Zeiger auf einen Wert, der die komponenten des festzulegenden Sicherheitsdeskriptors angibt. Für diesen Parameter ist eine Kombination der folgenden Werte gültig.

Wert Bedeutung
DACL_SECURITY_INFORMATION
Legt die daCL (Discretionary Access Control List ) des Objekts fest. Das von hObj angegebene Handle muss über WRITE_DAC Zugriff verfügen, oder der aufrufende Prozess muss der Besitzer des Objekts sein.
GROUP_SECURITY_INFORMATION
Legt die primäre Gruppensicherheits-ID (SID) des -Objekts fest.
OWNER_SECURITY_INFORMATION
Legt die SID des Besitzers des Objekts fest. Das von hObj angegebene Handle muss über WRITE_OWNER Zugriff verfügen, oder der aufrufende Prozess muss der Besitzer des Objekts sein oder die SE_TAKE_OWNERSHIP_NAME Berechtigung aktiviert haben.
SACL_SECURITY_INFORMATION
Legt die Systemzugriffssteuerungsliste (SACL ) des -Objekts fest. Das von hObj angegebene Handle muss über ACCESS_SYSTEM_SECURITY Zugriff verfügen.

So erhalten Sie ACCESS_SYSTEM_SECURITY Zugriff

  1. Aktivieren Sie die SE_SECURITY_NAME-Berechtigung im aktuellen Zugriffstoken des Aufrufers.
  2. Öffnen Sie das Handle für ACCESS_SYSTEM_SECURITY Zugriff.
  3. Deaktivieren Sie die Berechtigung.

[in] pSID

Ein Zeiger auf eine SECURITY_DESCRIPTOR-Struktur , die die neuen Sicherheitsinformationen enthält.

Dieser Puffer muss an einer 4-Byte-Grenze ausgerichtet werden.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null zurück.

Wenn die Funktion fehlschlägt, wird null zurückgegeben. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die SetUserObjectSecurity-Funktion wendet die in einem Sicherheitsdeskriptor angegebenen Änderungen auf den Sicherheitsdeskriptor an, der einem Benutzerobjekt zugewiesen ist. Der Sicherheitsdeskriptor des Objekts muss in selbstrelativer Form vorliegen. Bei Bedarf belegt diese Funktion zusätzlichen Arbeitsspeicher, um die Größe des Sicherheitsdeskriptors zu erhöhen.

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 (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll

Weitere Informationen

GetUserObjectSecurity

Low-Level-Access Control

Low-Level-Access Control Functions

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetFileSecurity

SetKernelObjectSecurity

SetPrivateObjectSecurity