Share via


ChangeWindowMessageFilterEx 함수(winuser.h)

지정된 창에 대한 UIPI(사용자 인터페이스 권한 격리) 메시지 필터를 수정합니다.

구문

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

매개 변수

[in] hwnd

형식: HWND

UIPI 메시지 필터를 수정할 창에 대한 핸들입니다.

[in] message

형식: UINT

메시지 필터에서 허용하거나 차단하는 메시지입니다.

[in] action

형식:DWORD

수행할 작업이며 다음 값 중 하나를 사용할 수 있습니다.

의미
MSGFLT_ALLOW
1
필터를 통해 메시지를 허용합니다. 이렇게 하면 메시지 원본에 관계없이 hWnd에서 메시지를 수신할 수 있으며, 권한이 낮은 프로세스에서도 메시지를 받을 수 있습니다.
MSGFLT_DISALLOW
2
메시지가 ChangeWindowMessageFilter 함수를 사용하거나 전역적으로 처리할 수 있는 경우가 아니면 낮은 권한의 프로세스에서 오는 경우 hWnd로 배달할 메시지를 차단합니다.
MSGFLT_RESET
0
hWnd에 대한 창 메시지 필터를 기본값으로 다시 설정합니다. 전역적으로 또는 프로세스 전체에서 허용되는 모든 메시지는 통과하지만 해당 두 범주에 포함되지 않은 모든 메시지는 더 낮은 권한 있는 프로세스에서 제공되므로 차단됩니다.

[in, out, optional] pChangeFilterStruct

형식: PCHANGEFILTERSTRUCT

CHANGEFILTERSTRUCT 구조체에 대한 선택적 포인터입니다.

반환 값

형식: BOOL

함수가 성공하면 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환 합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

UIPI는 낮은 무결성 수준 보낸 사람으로부터 메시지를 받지 못하도록 하는 보안 기능입니다. 이 함수를 사용하여 메시지가 낮은 무결성 수준의 프로세스에서 시작된 경우에도 특정 메시지를 창으로 배달할 수 있습니다. 프로세스 메시지 필터를 제어하는 ChangeWindowMessageFilter 함수와 달리 ChangeWindowMessageFilterEx 함수는 창 메시지 필터를 제어합니다.

애플리케이션은 ChangeWindowMessageFilter 함수를 사용하여 프로세스 전체에서 메시지를 허용하거나 차단할 수 있습니다. 프로세스 메시지 필터 또는 창 메시지 필터에서 메시지를 허용하는 경우 창으로 배달됩니다.

SECURITY_MANDATORY_LOW_RID 이하의 프로세스는 메시지 필터를 변경할 수 없습니다. 이러한 프로세스에서 이 함수를 호출하면 실패하고 확장 오류 코드가 생성되고 ERROR_ACCESS_DENIED.

값이 WM_USER 보다 작은 특정 메시지는 필터 설정에 관계없이 필터를 통해 전달되어야 합니다. 이 함수를 사용하여 이러한 메시지를 허용하거나 차단하려고 하면 아무런 효과가 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-gui-l1-3-0(Windows 10 버전 10.0.10240에 도입됨)

추가 정보

ChangeWindowMessageFilter

개념

참조

Windows