HwVidSynchronizeExecutionCallback Functionality

Miniport drivers for adapters that do not generate interrupts seldom call VideoPortSynchronizeExecution with a HwVidSynchronizeExecutionCallback function.

In fact, even miniport drivers that have a HwVidInterrupt function do not necessarily have a HwVidSynchronizeExecutionCallback function. Because the video port driver does not send a request to a miniport’s HwVidStartIO function until it completes processing of the preceding request (see HwVidStartIO Functionality for more information), miniport drivers rarely call VideoPortSynchronizeExecution.

There are two possible uses for a miniport’s HwVidSynchronizeExecutionCallback function:

With the first type of HwVidSynchronizeExecutionCallback function, the miniport calls VideoPortSynchronizeExecution with the Priority set to VpMediumPriority. With the second type of HwVidSynchronizeExecutionCallback function, the miniport also makes this call with the Priority set to VpMediumPriority if the driver has no HwVidInterrupt function. Otherwise, such a miniport makes this call with the Priority set to VpHighPriority.

In general, a miniport driver should not call VideoPortSynchronizeExecution with the second type of HwVidSynchronizeExecutionCallback function unless the driver designer has no other alternative: that is, unless the adapter is such that it must be programmed with system interrupts masked off. Otherwise, the miniport should call VideoPortSynchronizeExecution with the Priority set to VpLowPriority.

A HwVidSynchronizeExecutionCallback function, like a HwVidInterrupt function, cannot be pageable and cannot call certain VideoPortXxx functions without bringing down the system. For a summary of VideoPortXxx that the HwVidSynchronizeExecutionCallback function can call safely, see HwVidInterrupt Functionality.