ChangeWindowMessageFilter 함수(winuser.h)
[ChangeWindowMessageFilter 함수는 프로세스 전체 scope 있으므로 사용하지 않는 것이 좋습니다. 대신 ChangeWindowMessageFilterEx 함수를 사용하여 필요에 따라 특정 창에 대한 액세스를 제어합니다. ChangeWindowMessageFilter 는 이후 버전의 Windows에서 지원되지 않을 수 있습니다.]
UIPI(사용자 인터페이스 권한 격리) 메시지 필터에서 메시지를 추가하거나 제거합니다.
구문
BOOL ChangeWindowMessageFilter(
[in] UINT message,
[in] DWORD dwFlag
);
매개 변수
[in] message
형식: UINT
필터에 추가하거나 필터에서 제거할 메시지입니다.
[in] dwFlag
형식:DWORD
수행할 작업입니다. 다음 값 중의 하나입니다.
값 | 의미 |
---|---|
|
필터에 메시지를 추가합니다. 이는 메시지를 받을 수 있게 하는 효과가 있습니다. |
|
필터에서 메시지를 제거합니다. 이는 메시지를 차단하는 효과가 있습니다. |
반환 값
형식: 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 |