Share via


DdResetVisrgn 함수(ddrawgdi.h)

[이 함수는 각 운영 체제 수정 버전에 따라 변경될 수 있습니다. 대신 Microsoft DirectDraw 및 Microsoft Direct3DAPIs를 사용합니다. 이러한 API는 이러한 운영 체제 변경으로부터 애플리케이션을 격리하고 디스플레이 드라이버와 직접 상호 작용하는 데 관련된 다른 많은 어려움을 숨깁니다.]

NtGdiDdResetVisrgn 함수에 대한 래퍼이며 데스크톱의 창에 대한 클리핑 영역에서 적시에 사용자 모드 정보를 사용하도록 설정합니다.

GdiEntry6 은 이 함수의 별칭으로 정의됩니다.

구문

BOOL DdResetVisrgn(
  LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
  HWND                      hWnd
);

매개 변수

pSurfaceLocal

클리핑을 다시 설정할 DirectDraw 디바이스에 속하는 모든 표면의 사용자 모드 개체에 대한 포인터입니다. 자세한 내용은 DDK 설명서를 참조하세요.

hWnd

예약되어 있습니다.

반환 값

성공하면 이 함수는 TRUE를 반환합니다 . 그렇지 않으면 FALSE를 반환 합니다.

설명

클리핑은 사용자 모드 스레드의 관점에서 비동기적으로 변경됩니다. DirectDraw 및 GDI(Windows Graphics Device Interface)의 커널 모드 부분은 전체 데스크톱에 대한 클리핑 목록이 변경될 때마다 증가되는 카운터를 유지 관리합니다. 이 함수에 대한 호출은 시스템의 모든 기존 DirectDraw 기본 표면과 함께 이 카운터를 기록합니다.

나중에 이러한 기본 표면 중 하나가 IDirectDrawSurface7::Blt 또는 IDirectDrawSurface7::Lock 작업(DDK 설명서 참조)에 의해 수정되면 표면과 함께 기록된 카운터가 전역 카운터와 비교됩니다. 이러한 값이 다른 경우 DDERR_VISRGNCHANGED 오류 코드가 사용자 모드 코드로 반환됩니다. 그런 다음 사용자 모드 코드는 데스크톱에 대한 현재 클리핑을 다시 쿼리하고 , NtGdiDdResetVisrgn을 호출하고, 새 클리핑을 기준으로 기본 화면에 적용된 IDirectDrawSurface7::Blt을 다시 시도합니다. 결국 사용자 모드 코드에서 샘플링한 클리핑은 커널 모드가 소유한 현재 클리핑과 동일하며 IDirectDrawSurface7::Blt은 계속하도록 허용됩니다.

애플리케이션은 IDirectDrawClipper 인터페이스 또는 IDirect3DDevice8::P resent 메서드를 사용하여 비동기 클리핑 변경 내용을 처리하는 것이 좋습니다. 이러한 구문은 자동화된 운영 체제 독립적 방식으로 비동기 클리핑을 구현합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ddrawgdi.h

추가 정보

그래픽 하위 수준 클라이언트 지원