Compartir a través de


Función ChangeWindowMessageFilterEx (winuser.h)

Modifica el filtro de mensajes de aislamiento de privilegios de la interfaz de usuario (UIPI) para una ventana especificada.

Sintaxis

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

Parámetros

[in] hwnd

Tipo: HWND

Identificador de la ventana cuyo filtro de mensajes UIPI se va a modificar.

[in] message

Tipo: UINT

Mensaje que el filtro de mensajes permite a través de bloques o .

[in] action

Tipo: DWORD

La acción que se va a realizar y puede realizar uno de los siguientes valores:

Valor Significado
MSGFLT_ALLOW
1
Permite el mensaje a través del filtro. Esto permite que hWnd reciba el mensaje, independientemente del origen del mensaje, incluso de un proceso con privilegios inferiores.
MSGFLT_DISALLOW
2
Bloquea el mensaje que se va a entregar a hWnd si procede de un proceso con privilegios inferiores, a menos que se permita el mensaje en todo el proceso mediante la función ChangeWindowMessageFilter o globalmente.
MSGFLT_RESET
0
Restablece el filtro de mensajes de la ventana para hWnd al valor predeterminado. Se bloqueará cualquier mensaje permitido global o en todo el proceso, pero se bloqueará cualquier mensaje que no se incluya en esas dos categorías y que provenga de un proceso con privilegios inferiores.

[in, out, optional] pChangeFilterStruct

Tipo: PCHANGEFILTERSTRUCT

Puntero opcional a una estructura CHANGEFILTERSTRUCT .

Valor devuelto

Tipo: BOOL

Si la función se realiza correctamente, devuelve TRUE; de lo contrario, devuelve FALSE. Para obtener información de error extendida, llame a GetLastError.

Comentarios

UIPI es una característica de seguridad que impide que se reciban mensajes de un remitente de nivel de integridad inferior. Puede usar esta función para permitir que se entreguen mensajes específicos a una ventana aunque el mensaje se origine en un proceso en un nivel de integridad inferior. A diferencia de la función ChangeWindowMessageFilter , que controla el filtro de mensajes de proceso, la función ChangeWindowMessageFilterEx controla el filtro de mensajes de la ventana.

Una aplicación puede usar la función ChangeWindowMessageFilter para permitir o bloquear un mensaje de una manera de todo el proceso. Si el mensaje lo permite el filtro de mensajes de proceso o el filtro de mensajes de la ventana, se entregará a la ventana.

Tenga en cuenta que los procesos en o por debajo de SECURITY_MANDATORY_LOW_RID no pueden cambiar el filtro de mensajes. Si esos procesos llaman a esta función, se producirá un error y se generará el código de error extendido, ERROR_ACCESS_DENIED.

Es necesario pasar determinados mensajes cuyo valor sea menor que WM_USER a través del filtro, independientemente de la configuración del filtro. No habrá ningún efecto al intentar usar esta función para permitir o bloquear dichos mensajes.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-gui-l1-3-0 (introducido en Windows 10, versión 10.0.10240)

Consulte también

ChangeWindowMessageFilter

Conceptual

Referencia

Windows