Partager via


ChangeWindowMessageFilterEx, fonction (winuser.h)

Modifie le filtre de message UIPI (User Interface Privilege Isolation) pour une fenêtre spécifiée.

Syntaxe

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

Paramètres

[in] hwnd

Type : HWND

Handle de la fenêtre dont le filtre de message UIPI doit être modifié.

[in] message

Type : UINT

Message que le filtre de messages autorise via ou bloque.

[in] action

Type : DWORD

Action à effectuer et peut prendre l’une des valeurs suivantes :

Valeur Signification
MSGFLT_ALLOW
1
Autorise le message à travers le filtre. Cela permet au message d’être reçu par hWnd, quelle que soit la source du message, même s’il provient d’un processus à privilèges inférieurs.
MSGFLT_DISALLOW
2
Bloque la remise du message à hWnd s’il provient d’un processus à privilèges inférieurs, sauf si le message est autorisé à l’échelle du processus à l’aide de la fonction ChangeWindowMessageFilter ou globalement.
MSGFLT_RESET
0
Rétablit le filtre de messages de fenêtre pour hWnd à la valeur par défaut. Tout message autorisé globalement ou à l’échelle du processus sera transmis, mais tout message non inclus dans ces deux catégories, et qui provient d’un processus à privilèges inférieurs, sera bloqué.

[in, out, optional] pChangeFilterStruct

Type : PCHANGEFILTERSTRUCT

Pointeur facultatif vers une structure CHANGEFILTERSTRUCT .

Valeur retournée

Type : BOOL

Si la fonction réussit, elle retourne TRUE ; sinon, elle retourne FALSE. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

UIPI est une fonctionnalité de sécurité qui empêche la réception de messages d’un expéditeur de niveau d’intégrité inférieur. Vous pouvez utiliser cette fonction pour autoriser la remise de messages spécifiques à une fenêtre même si le message provient d’un processus à un niveau d’intégrité inférieur. Contrairement à la fonction ChangeWindowMessageFilter , qui contrôle le filtre de messages de processus, la fonction ChangeWindowMessageFilterEx contrôle le filtre de messages de fenêtre.

Une application peut utiliser la fonction ChangeWindowMessageFilter pour autoriser ou bloquer un message à l’échelle du processus. Si le message est autorisé par le filtre de message de processus ou par le filtre de message de fenêtre, il est remis à la fenêtre.

Notez que les processus au niveau ou en dessous de SECURITY_MANDATORY_LOW_RID ne sont pas autorisés à modifier le filtre de message. Si ces processus appellent cette fonction, elle échoue et génère le code d’erreur étendu , ERROR_ACCESS_DENIED.

Certains messages dont la valeur est inférieure à WM_USER doivent être passés par le filtre, quel que soit le paramètre de filtre. Il n’y aura aucun effet lorsque vous tentez d’utiliser cette fonction pour autoriser ou bloquer ces messages.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-gui-l1-3-0 (introduit dans Windows 10, version 10.0.10240)

Voir aussi

ChangeWindowMessageFilter

Conceptuel

Référence

Windows