PDD_WAITFORVERTICALBLANK funzione di callback (ddrawint.h)
La funzione di callback DdWaitForVerticalBlank restituisce lo stato verticale vuoto del dispositivo.
Sintassi
PDD_WAITFORVERTICALBLANK PddWaitforverticalblank;
DWORD PddWaitforverticalblank(
PDD_WAITFORVERTICALBLANKDATA unnamedParam1
)
{...}
Parametri
unnamedParam1
Punta a una struttura DD_WAITFORVERTICALBLANKDATA contenente le informazioni necessarie per ottenere lo stato vuoto verticale.
Valore restituito
DdWaitForVerticalBlank restituisce uno dei codici di callback seguenti:
Commenti
A seconda del valore del membro dwFlags della struttura DD_WAITFORVERTICALBLANKDATA in lpWaitForVerticalBlank, il driver deve eseguire le operazioni seguenti:
- Se dwFlags è DDWAITVB_I_TESTVB, il driver deve eseguire una query sullo stato di spaziatura verticale corrente. Il driver deve impostare il membro bIsInVB di DD_WAITFORVERTICALBLANKDATA su TRUE se il monitor è attualmente in uno spazio vuoto verticale; in caso contrario, il driver deve impostare bIsInVB su FALSE.
- Se dwFlags è DDWAITVB_BLOCKBEGIN, il driver deve bloccare e attendere l'inizio di un vuoto verticale. Se un campo vuoto verticale è in corso quando il driver inizia il blocco, il driver deve attendere l'inizio del successivo vuoto verticale prima di tornare.
- Se dwFlags è DDWAITVB_BLOCKEND, il driver deve bloccarsi e attendere fino a quando non termina un vuoto verticale.
DdWaitForVerticalBlank consente a un'applicazione di sincronizzarsi con l'intervallo di spaziatura verticale (VBI).
Si è verificato anche un problema con i test di compatibilità della visualizzazione WHQL (DCT). Uno dei controller di dominio per il risparmio energia riduce il monitor e quindi esegue il polling dello stato vuoto verticale, in attesa che cambi. Se il driver segnala sempre lo stesso stato verticale vuoto quando il monitoraggio viene spento, l'applicazione di test si blocca in attesa della modifica del risultato. Questo problema è stato risolto nel driver di esempio Permedia2 restituendo risultati alternati mentre il monitor è spento. Ovvero, la prima volta che il punto di ingresso DdWaitForVerticalBlank del driver viene chiamato con il flag di DDWAIT_I_TESTVB (quando il monitor è spento), restituisce FALSE, la volta successiva che restituisce TRUE, la volta successiva FALSE e così via.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | ddrawint.h (include Winddi.h) |