Freigeben über


ChangeWindowMessageFilterEx-Funktion (winuser.h)

Ändert den UiPI-Nachrichtenfilter (User Interface Privilege Isolation) für ein angegebenes Fenster.

Syntax

BOOL ChangeWindowMessageFilterEx(
  [in]                HWND                hwnd,
  [in]                UINT                message,
  [in]                DWORD               action,
  [in, out, optional] PCHANGEFILTERSTRUCT pChangeFilterStruct
);

Parameter

[in] hwnd

Typ: HWND

Ein Handle für das Fenster, dessen UIPI-Nachrichtenfilter geändert werden soll.

[in] message

Typ: UINT

Die Nachricht, die der Nachrichtenfilter durch oder blockiert.

[in] action

Art: DWORD

Die auszuführende Aktion kann einen der folgenden Werte annehmen:

Wert Bedeutung
MSGFLT_ALLOW
1
Lässt die Nachricht über den Filter zu. Dadurch kann die Nachricht von hWnd empfangen werden, unabhängig von der Quelle der Nachricht, auch wenn sie aus einem Prozess mit niedrigeren Berechtigungen stammt.
MSGFLT_DISALLOW
2
Blockiert die Nachricht, die an hWnd übermittelt werden soll, wenn sie aus einem Prozess mit niedrigeren Berechtigungen stammt, es sei denn, die Nachricht ist prozessweit mithilfe der ChangeWindowMessageFilter-Funktion oder global zulässig.
MSGFLT_RESET
0
Setzt den Fenstermeldungsfilter für hWnd auf den Standardwert zurück. Jede nachricht, die global oder prozessweit zulässig ist, wird durch, aber alle Nachrichten, die nicht in diesen beiden Kategorien enthalten sind und aus einem Prozess mit niedrigeren Berechtigungen stammen, werden blockiert.

[in, out, optional] pChangeFilterStruct

Typ: PCHANGEFILTERSTRUCT

Optionaler Zeiger auf eine CHANGEFILTERSTRUCT-Struktur .

Rückgabewert

Typ: BOOL

Wenn die Funktion erfolgreich ist, gibt sie TRUE zurück. Andernfalls wird FALSE zurückgegeben. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

UIPI ist ein Sicherheitsfeature, das verhindert, dass Nachrichten von einem Absender mit niedrigerer Integritätsebene empfangen werden. Sie können diese Funktion verwenden, um die Übermittlung bestimmter Nachrichten an ein Fenster zu ermöglichen, auch wenn die Nachricht von einem Prozess mit einer niedrigeren Integritätsebene stammt. Im Gegensatz zur ChangeWindowMessageFilter-Funktion , die den Prozessnachrichtenfilter steuert, steuert die ChangeWindowMessageFilterEx-Funktion den Fensternachrichtenfilter.

Eine Anwendung kann die ChangeWindowMessageFilter-Funktion verwenden, um eine Nachricht prozessweit zuzulassen oder zu blockieren. Wenn die Nachricht entweder durch den Prozessnachrichtenfilter oder den Fensternachrichtenfilter zugelassen wird, wird sie an das Fenster übermittelt.

Beachten Sie, dass Prozesse mit oder unter SECURITY_MANDATORY_LOW_RID den Nachrichtenfilter nicht ändern dürfen. Wenn diese Prozesse diese Funktion aufrufen, schlägt sie fehl und generiert den erweiterten Fehlercode , ERROR_ACCESS_DENIED.

Bestimmte Nachrichten, deren Wert kleiner als WM_USER ist, müssen unabhängig von der Filtereinstellung durch den Filter übergeben werden. Es gibt keine Auswirkungen, wenn Sie versuchen, diese Funktion zu verwenden, um solche Meldungen zuzulassen oder zu blockieren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-gui-l1-3-0 (eingeführt in Windows 10, Version 10.0.10240)

Weitere Informationen

ChangeWindowMessageFilter

Konzept

Referenz

Windows