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 |
---|---|
|
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. |
|
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. |
|
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
Konzept
Referenz