PDD_WAITFORVERTICALBLANK 콜백 함수(ddrawint.h)
DdWaitForVerticalBlank 콜백 함수는 디바이스의 세로 빈 상태 반환합니다.
구문
PDD_WAITFORVERTICALBLANK PddWaitforverticalblank;
DWORD PddWaitforverticalblank(
PDD_WAITFORVERTICALBLANKDATA unnamedParam1
)
{...}
매개 변수
unnamedParam1
세로 빈 상태 가져오는 데 필요한 정보가 포함된 DD_WAITFORVERTICALBLANKDATA 구조를 가리킵니다.
반환 값
DdWaitForVerticalBlank 는 다음 콜백 코드 중 하나를 반환합니다.
설명
lpWaitForVerticalBlank에서 DD_WAITFORVERTICALBLANKDATA 구조체의 dwFlags 멤버 값에 따라 드라이버는 다음을 수행해야 합니다.
- dwFlags가 DDWAITVB_I_TESTVB 경우 드라이버는 현재 세로 공백 상태 쿼리해야 합니다. 모니터가 현재 세로 공백에 있는 경우 드라이버는 DD_WAITFORVERTICALBLANKDATA bIsInVB 멤버를 TRUE 로 설정해야 합니다. 그렇지 않으면 드라이버가 bIsInVB 를 FALSE로 설정해야 합니다.
- dwFlags가 DDWAITVB_BLOCKBEGIN 경우 드라이버는 차단하고 세로 공백이 시작될 때까지 기다려야 합니다. 드라이버가 블록을 시작할 때 세로 공백이 진행 중인 경우 드라이버는 반환하기 전에 다음 세로 공백이 시작될 때까지 기다려야 합니다.
- dwFlags가 DDWAITVB_BLOCKEND 경우 드라이버는 차단하고 세로 공백이 끝날 때까지 기다려야 합니다.
DdWaitForVerticalBlank 를 사용하면 애플리케이션이 VBI(세로 공백 간격)와 동기화할 수 있습니다.
WHQL DCT(디스플레이 호환성 테스트)에도 문제가 있습니다. 전원 관리용 DCT 중 하나는 모니터를 작동한 다음 수직 빈 상태 폴링하여 변경되기를 기다립니다. 모니터의 전원이 끊어질 때 드라이버가 항상 동일한 세로 공백 상태 보고하는 경우 테스트 애플리케이션은 결과가 변경되기를 기다리는 동안 중단됩니다. 모니터 전원이 낮아지는 동안 교대로 결과를 반환하여 Permedia2 샘플 드라이버에서 수정되었습니다. 즉, 드라이버의 DdWaitForVerticalBlank 진입점이 DDWAIT_I_TESTVB 플래그(모니터의 전원이 다운된 경우)로 처음 호출되면 FALSE를 반환하고 다음에 TRUE를 반환할 때 FALSE를 반환하고 다음번에는 FALSE를 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | ddrawint.h(Winddi.h 포함) |