Função ChangeWindowMessageFilterEx (winuser.h)

Modifica o filtro de mensagem UIPI (Isolamento de Privilégios de Interface do Usuário) para uma janela especificada.

Sintaxe

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

Parâmetros

[in] hwnd

Digite: HWND

Um identificador para a janela cujo filtro de mensagem de UIPI deve ser modificado.

[in] message

Tipo: UINT

A mensagem que o filtro de mensagem permite por meio de blocos ou .

[in] action

Tipo: DWORD

A ação a ser executada e pode usar um dos seguintes valores:

Valor Significado
MSGFLT_ALLOW
1
Permite a mensagem por meio do filtro. Isso permite que a mensagem seja recebida pelo hWnd, independentemente da origem da mensagem, mesmo que ela venha de um processo com privilégios inferiores.
MSGFLT_DISALLOW
2
Bloqueia a mensagem a ser entregue ao hWnd se ela vier de um processo com privilégios inferiores, a menos que a mensagem seja permitida em todo o processo usando a função ChangeWindowMessageFilter ou globalmente.
MSGFLT_RESET
0
Redefine o filtro de mensagem de janela para hWnd para o padrão. Qualquer mensagem permitida globalmente ou em todo o processo será enviada, mas qualquer mensagem não incluída nessas duas categorias e que venha de um processo com privilégios inferiores será bloqueada.

[in, out, optional] pChangeFilterStruct

Tipo: PCHANGEFILTERSTRUCT

Ponteiro opcional para uma estrutura CHANGEFILTERSTRUCT .

Retornar valor

Tipo: BOOL

Se a função for bem-sucedida, ela retornará TRUE; caso contrário, retornará FALSE. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A UIPI é um recurso de segurança que impede que mensagens sejam recebidas de um remetente de nível de integridade inferior. Você pode usar essa função para permitir que mensagens específicas sejam entregues a uma janela, mesmo que a mensagem seja originada de um processo em um nível de integridade inferior. Ao contrário da função ChangeWindowMessageFilter , que controla o filtro de mensagem de processo, a função ChangeWindowMessageFilterEx controla o filtro de mensagem da janela.

Um aplicativo pode usar a função ChangeWindowMessageFilter para permitir ou bloquear uma mensagem em todo o processo. Se a mensagem for permitida pelo filtro de mensagem de processo ou pelo filtro de mensagem da janela, ela será entregue à janela.

Observe que os processos no SECURITY_MANDATORY_LOW_RID ou abaixo não têm permissão para alterar o filtro de mensagem. Se esses processos chamarem essa função, ela falhará e gerará o código de erro estendido , ERROR_ACCESS_DENIED.

Determinadas mensagens cujo valor é menor que WM_USER precisam ser passadas pelo filtro, independentemente da configuração de filtro. Não haverá efeito quando você tentar usar essa função para permitir ou bloquear essas mensagens.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-gui-l1-3-0 (introduzido no Windows 10, versão 10.0.10240)

Confira também

ChangeWindowMessageFilter

Conceitual

Referência

Windows