PDD_WAITFORVERTICALBLANK função de retorno de chamada (ddrawint.h)
A função de retorno de chamada DdWaitForVerticalBlank retorna a status vertical em branco do dispositivo.
Sintaxe
PDD_WAITFORVERTICALBLANK PddWaitforverticalblank;
DWORD PddWaitforverticalblank(
PDD_WAITFORVERTICALBLANKDATA unnamedParam1
)
{...}
Parâmetros
unnamedParam1
Aponta para uma estrutura DD_WAITFORVERTICALBLANKDATA que contém as informações necessárias para obter a status vertical em branco.
Retornar valor
DdWaitForVerticalBlank retorna um dos seguintes códigos de retorno de chamada:
Comentários
Dependendo do valor do membro dwFlags da estrutura DD_WAITFORVERTICALBLANKDATA em lpWaitForVerticalBlank, o driver deve fazer o seguinte:
- Se dwFlags for DDWAITVB_I_TESTVB, o driver deverá consultar o status de em branco vertical atual. O driver deve definir o membro bIsInVB de DD_WAITFORVERTICALBLANKDATA como TRUE se o monitor estiver atualmente em branco vertical; caso contrário, o driver deve definir bIsInVB como FALSE.
- Se dwFlags for DDWAITVB_BLOCKBEGIN, o driver deverá bloquear e aguardar até que um espaço em branco vertical comece. Se um espaço em branco vertical estiver em andamento quando o driver iniciar o bloco, o driver deverá aguardar até que o próximo espaço em branco vertical comece antes de retornar.
- Se dwFlags for DDWAITVB_BLOCKEND, o driver deverá bloquear e aguardar até que um espaço em branco vertical termine.
DdWaitForVerticalBlank permite que um aplicativo se sincronize com o VBI (intervalo de espaço em branco vertical).
Também há um problema com os DCTs (Testes de Compatibilidade de Exibição) do WHQL. Um dos DCTs para gerenciamento de energia alimenta o monitor e sonda o status vertical em branco, esperando que ele mude. Se o driver sempre relatar o mesmo status em branco vertical quando o monitor estiver desligado, o aplicativo de teste ficará travado aguardando a alteração do resultado. Isso foi corrigido no driver de exemplo Permedia2 retornando resultados alternados enquanto o monitor é desligado. Ou seja, na primeira vez que o ponto de entrada DdWaitForVerticalBlank do driver é chamado com o sinalizador DDWAIT_I_TESTVB (quando o monitor é desligado), ele retorna FALSE, na próxima vez que retornar TRUE, da próxima vez FALSE etc.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ddrawint.h (inclua Winddi.h) |