다음을 통해 공유


ChangeWindowMessageFilter 함수(winuser.h)

[ChangeWindowMessageFilter 함수는 프로세스 전체 scope 있으므로 사용하지 않는 것이 좋습니다. 대신 ChangeWindowMessageFilterEx 함수를 사용하여 필요에 따라 특정 창에 대한 액세스를 제어합니다. ChangeWindowMessageFilter 는 이후 버전의 Windows에서 지원되지 않을 수 있습니다.]

UIPI(사용자 인터페이스 권한 격리) 메시지 필터에서 메시지를 추가하거나 제거합니다.

구문

BOOL ChangeWindowMessageFilter(
  [in] UINT  message,
  [in] DWORD dwFlag
);

매개 변수

[in] message

형식: UINT

필터에 추가하거나 필터에서 제거할 메시지입니다.

[in] dwFlag

형식:DWORD

수행할 작업입니다. 다음 값 중의 하나입니다.

의미
MSGFLT_ADD
1
필터에 메시지를 추가합니다. 이는 메시지를 받을 수 있게 하는 효과가 있습니다.
MSGFLT_REMOVE
2
필터에서 메시지를 제거합니다. 이는 메시지를 차단하는 효과가 있습니다.

반환 값

형식: BOOL

성공하면 TRUE이고, 그렇지 않으면 FALSE입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

참고 필터에서 메시지를 성공적으로 제거할 수 있지만 메시지가 차단된다는 보장은 아닙니다. 자세한 내용은 설명 섹션을 참조하세요.
 

설명

UIPI는 낮은 무결성 수준 보낸 사람으로부터 메시지를 받지 못하도록 하는 보안 기능입니다. WM_USER 이상의 값을 가진 이러한 모든 메시지는 기본적으로 차단됩니다. 직관과는 다소 반대로 필터는 허용되는 메시지 목록입니다. 따라서 필터에 메시지를 추가하면 메시지를 수신할 수 없도록 메시지를 제거하면서 낮은 무결성 보낸 사람으로부터 메시지를 받을 수 있습니다.

필터 설정에 관계없이 필터를 통과하려면 값이 WM_USER 미만인 특정 메시지가 필요합니다. 이 함수를 호출하여 필터에서 해당 메시지 중 하나를 제거하면 TRUE가 반환됩니다. 그러나 호출 프로세스에서 메시지를 계속 수신합니다.

SECURITY_MANDATORY_LOW_RID 이하의 프로세스는 필터를 변경할 수 없습니다. 이러한 프로세스가 이 함수를 호출하면 실패합니다.

무결성 수준에 대한 자세한 내용은 보호 모드 인터넷 Explorer 이해 및 작업을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll