функция обратного вызова PDD_WAITFORVERTICALBLANK (ddrawint.h)
Функция обратного вызова DdWaitForVerticalBlank возвращает вертикальное пустое состояние устройства.
Синтаксис
PDD_WAITFORVERTICALBLANK PddWaitforverticalblank;
DWORD PddWaitforverticalblank(
PDD_WAITFORVERTICALBLANKDATA unnamedParam1
)
{...}
Параметры
unnamedParam1
Указывает на структуру DD_WAITFORVERTICALBLANKDATA , содержащую сведения, необходимые для получения вертикального пустого состояния.
Возвращаемое значение
DdWaitForVerticalBlank возвращает один из следующих кодов обратного вызова:
Комментарии
В зависимости от значения члена dwFlags структуры DD_WAITFORVERTICALBLANKDATA в lpWaitForVerticalBlank драйвер должен выполнить следующие действия:
- Если dwFlags DDWAITVB_I_TESTVB, драйвер должен запросить текущее состояние вертикального пробела. Драйвер должен задать для элемента bIsInVB DD_WAITFORVERTICALBLANKDATA значение TRUE , если монитор в настоящее время находится в вертикальном пустом месте; В противном случае драйвер должен задать для bIsInVBзначение FALSE.
- Если dwFlags DDWAITVB_BLOCKBEGIN, драйвер должен блокировать и ждать, пока не начнется вертикальное пустое. Если выполняется вертикальное пустое поле, когда драйвер начинает блок, драйвер должен подождать, пока не начнется следующее вертикальное пустое, прежде чем вернуться.
- Если dwFlags DDWAITVB_BLOCKEND, драйвер должен заблокировать и дождаться завершения вертикального пустого поля.
DdWaitForVerticalBlank позволяет приложению синхронизировать себя с интервалом вертикального пробела (VBI).
Существует также проблема с тестами совместимости дисплея WHQL (DCT). Одно из dct для управления питанием включает монитор, а затем опрашивает вертикальное пустое состояние, ожидая его изменения. Если драйвер всегда сообщает одно и то же вертикальное пустое состояние при отключении монитора, тестовое приложение будет зависать в ожидании изменения результата. Это было исправлено в примере драйвера Permedia2, возвращая чередующиеся результаты при отключении монитора. То есть при первом вызове точки входа DdWaitForVerticalBlank драйвера с флагом DDWAIT_I_TESTVB (при выключении монитора) он возвращает значение FALSE, в следующий раз возвращает значение TRUE, в следующий раз false и т. д.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | ddrawint.h (включая Winddi.h) |