Funzione VideoPortSynchronizeExecution (video.h)

La funzione VideoPortSynchronizeExecution sincronizza l'esecuzione di un driver miniport fornito HwVidSynchronizeExecutionCallback con la funzione HwVidInterrupt del driver miniport, se presente. In caso contrario, esegue HwVidSynchronizeExecutionCallback con una priorità generata.

Sintassi

VIDEOPORT_DEPRECATED BOOLEAN VIDEOPORT_API VideoPortSynchronizeExecution(
  PVOID                         HwDeviceExtension,
  VIDEO_SYNCHRONIZE_PRIORITY    Priority,
  PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
  PVOID                         Context
);

Parametri

HwDeviceExtension

Puntatore all'estensione del dispositivo del driver miniport.

Priority

Specifica il tipo di priorità in corrispondenza del quale deve essere eseguita l'oggetto SynchronizeRoutine specificato, come segue:

  • Se Priority è impostato su VpLowPriority, il thread corrente viene generato alla priorità di maschera noninterrupt più alta. Di conseguenza, il thread corrente può essere interrotto solo da un ISR se un dispositivo interrompe.
  • Se Priority è impostato su VpMediumPriority e il driver miniport ha un ISR associato alla relativa scheda video, la chiamata a SynchronizeRoutine specificata viene sincronizzata con la funzione HwVidInterrupt del driver miniport. In caso contrario, la sincronizzazione viene eseguita a livello di VpLowPriority .
  • VpHighPriority ha lo stesso effetto di VpMediumPriority.

SynchronizeRoutine

Puntatore alla funzione HwVidSynchronizeExecutionCallback del driver miniport.

Context

Puntatore a un contesto fornito dal chiamante da passare alla funzione HwVidSynchronizeExecutionCallback del driver miniport. Questo puntatore può essere NULL.

Valore restituito

Se l'operazione ha esito positivo, VideoPortSynchronizeExecution restituisce TRUE.

Commenti

I driver Miniport chiamano raramente questa routine a meno che non siano presenti una delle condizioni seguenti:

  • La funzione HwVidInterrupt del driver miniport condivide la memoria con altre funzioni del driver miniport. Per accedere alla memoria condivisa in modo sicuro multiprocessore, tali funzioni del driver miniport devono chiamare VideoPortSynchronizeExecution con HwVidSynchronizeExecutionCallback. Questa funzione driver miniport può accedere in modo sicuro alla memoria condivisa perché il driver della porta video impedisce alla funzione HwVidInterrupt di accedere contemporaneamente alla stessa memoria.
  • L'adattatore deve essere programmato con una sequenza di comandi senza essere soggetto a un cambio di contesto. Ad esempio, la funzione SvgaHwIoPortXxx di un driver miniport che ha memorizzato nel buffer una sequenza di istruzioni di I/O e convalidato la sequenza potrebbe chiamare VideoPortSynchronizeExecution con HwVidSynchronizeExecutionCallback. Questa funzione driver miniport può trasferire il flusso di I/O memorizzato nel buffer e convalidato all'adattatore molto rapidamente.
Un chiamante deve specificare il valore di priorità più basso pratico per il lavoro che deve essere HwVidSynchronizeExecutionCallback . Qualsiasi CallbackRoutine eseguito con priorità hardware elevata (VpMediumPriority o VpHighPriority) deve restituire il controllo il più rapidamente possibile. Un driver con una funzione HwVidSynchronizeExecutionCallback ad alta priorità deve essere progettato per eseguire il maggior numero possibile di operazioni in ogni altra funzione driver, ad eccezione di una delle funzioni HwVidSynchronizeExecutionCallback e HwVidInterrupt .

I chiamanti di VideoPortSynchronizeExecution devono essere in esecuzione in IRQL

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 2000 e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione video.h (include Video.h)
Libreria Videoprt.lib
DLL Videoprt.sys
IRQL <= DIRQL

Vedi anche

HwVidInterrupt

HwVidSynchronizeExecutionCallback