다음을 통해 공유


DrvSynchronizeSurface 함수(winddi.h)

DrvSynchronizeSurface 함수는 지정된 표면에 GDI를 작성해야 한다고 드라이버에 알립니다. 이 함수를 사용하면 디바이스의 공동 프로세서에서 수행하는 그리기 작업을 GDI와 조정할 수 있습니다.

구문

void DrvSynchronizeSurface(
  SURFOBJ *pso,
  RECTL   *prcl,
  FLONG   fl
);

매개 변수

pso

그리기 동기화가 수행되는 표면을 식별하는 SURFOBJ 구조체에 대한 포인터입니다.

prcl

GDI가 그릴 표면 또는 NULL을 나타내는 RECTL 구조를 지정합니다. 이 작업이 진행 중인 그리기 작업과 충돌하지 않는 경우 드라이버는 공동 프로세서가 완료되는 것을 기다리지 않고 GDI를 그릴 수 있도록 선택할 수 있습니다.

fl

GDI가 동기화 요청을 만드는 이벤트를 지정하는 플래그입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

DSS_TIMER_EVENT

GDI는 동기화 타이머 이벤트로 인해 이 함수를 호출합니다. 타이머 이벤트는 DEVINFO 구조체의 GCAPS2_SYNCTIMER 비트를 지정하는 드라이버에 대해서만 생성됩니다.

DSS_FLUSH_EVENT

GDI는 동기화 플러시 이벤트로 인해 이 함수를 호출합니다. 이러한 플러시 이벤트는 DEVINFO 구조체의 GCAPS2_SYNCFLUSH 비트를 지정하는 드라이버에 대해서만 생성됩니다.

반환 값

없음

설명

이 함수를 사용하면 디바이스의 공동 프로세서에서 수행하는 그리기 작업을 GDI와 조정할 수 있습니다.

DrvSynchronizeSurface 는 디스플레이 드라이버에서 선택적으로 구현할 수 있습니다. GDI는 EngAssociateSurface에 의해 후크된 경우에만 이 함수를 호출합니다. GDI는 디바이스 표면에 직접 그리기 직전에 DrvSynchronizeSurface 를 호출합니다.

DrvSynchronizeSurface 는 그리기에 공동 프로세서를 사용하는 디바이스를 지원하기 위한 것입니다. 이러한 디바이스는 긴 그리기 작업을 시작하고 작업이 계속되는 동안 GDI로 돌아갈 수 있습니다. 디바이스 드라이버가 표면에 대한 모든 그리기 작업을 수행하지 않는 경우 GDI에서 후속 그리기 작업을 처리할 수 있습니다. 이 경우 GDI가 표면에 그릴 수 있기 전에 공동 프로세서가 작업을 완료할 때까지 GDI가 대기해야 합니다.

이 함수는 GDI가 prcl로 지정된 사각형 영역 내에서 표면에 그리는 것이 안전한 경우 를 반환해야 합니다.

DrvSynchronizeSurface 자체는 출력 함수가 아닙니다.

요구 사항

   
대상 플랫폼 데스크톱
머리글 winddi.h(Winddi.h 포함)

추가 정보

DrvEnablePDEV

DrvSynchronize

EngAssociateSurface