Condividi tramite


Funzione ChangeWindowMessageFilterEx (winuser.h)

Modifica il filtro messaggi UIPI (User Interface Privilege Isolation) per una finestra specificata.

Sintassi

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

Parametri

[in] hwnd

Tipo: HWND

Handle per la finestra il cui filtro messaggi UIPI deve essere modificato.

[in] message

Tipo: UINT

Messaggio consentito dal filtro messaggi tramite o blocchi.

[in] action

Tipo: DWORD

L'azione da eseguire e può accettare uno dei valori seguenti:

Valore Significato
MSGFLT_ALLOW
1
Consente il messaggio tramite il filtro. Ciò consente di ricevere il messaggio da hWnd, indipendentemente dall'origine del messaggio, anche da un processo con privilegi più basso.
MSGFLT_DISALLOW
2
Blocca il messaggio da recapitare a hWnd se proviene da un processo con privilegi inferiore, a meno che il messaggio non sia consentito a livello di processo tramite la funzione ChangeWindowMessageFilter o a livello globale.
MSGFLT_RESET
0
Reimposta il filtro del messaggio della finestra per hWnd sul valore predefinito. Qualsiasi messaggio consentito a livello globale o a livello di processo passerà, ma qualsiasi messaggio non incluso in queste due categorie, e che proviene da un processo con privilegi inferiore, verrà bloccato.

[in, out, optional] pChangeFilterStruct

Tipo: PCHANGEFILTERSTRUCT

Puntatore facoltativo a una struttura CHANGEFILTERSTRUCT .

Valore restituito

Tipo: BOOL

Se la funzione ha esito positivo, restituisce TRUE; in caso contrario, restituisce FALSE. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

UIPI è una funzionalità di sicurezza che impedisce la ricezione di messaggi da un mittente a livello di integrità inferiore. È possibile usare questa funzione per consentire il recapito di messaggi specifici a una finestra anche se il messaggio ha origine da un processo a un livello di integrità inferiore. A differenza della funzione ChangeWindowMessageFilter , che controlla il filtro del messaggio di processo, la funzione ChangeWindowMessageFilterEx controlla il filtro del messaggio della finestra.

Un'applicazione può usare la funzione ChangeWindowMessageFilter per consentire o bloccare un messaggio in modo a livello di processo. Se il messaggio è consentito dal filtro del messaggio di elaborazione o dal filtro del messaggio della finestra, verrà recapitato alla finestra.

Si noti che i processi in corrispondenza o sotto SECURITY_MANDATORY_LOW_RID non sono autorizzati a modificare il filtro dei messaggi. Se questi processi chiamano questa funzione, avrà esito negativo e genererà il codice di errore esteso , ERROR_ACCESS_DENIED.

Alcuni messaggi il cui valore è inferiore a WM_USER devono essere passati attraverso il filtro, indipendentemente dall'impostazione del filtro. Non vi sarà alcun effetto quando si tenta di usare questa funzione per consentire o bloccare tali messaggi.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-gui-l1-3-0 (introdotto in Windows 10 versione 10.0.10240)

Vedi anche

ChangeWindowMessageFilter

Informazioni concettuali

Riferimento

Windows