Функция VideoPortSynchronizeExecution (video.h)

Функция VideoPortSynchronizeExecution синхронизирует выполнение предоставленной драйвером мини-порта функции HwVidSynchronizeExecutionCallback с функцией HwVidInterrupt драйвера минипорта, если она имеется. В противном случае он запускает HwVidSynchronizeExecutionCallback с повышением приоритета.

Синтаксис

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

Параметры

HwDeviceExtension

Указатель на расширение устройства драйвера мини-порта.

Priority

Указывает тип приоритета, с которым должен выполняться заданный SynchronizeRoutine , как одно из следующих значений:

  • Если для параметра Priority задано значение VpLowPriority, текущий поток возвращается к самому высокому приоритету без маскирования. Соответственно, текущий поток может быть вытеснен только с помощью ISR, если устройство прерывает работу.
  • Если для параметра Priority задано значение VpMediumPriority и драйвер мини-порта имеет ISR, связанный с его видеоадаптером, вызов данного элемента SynchronizeRoutine синхронизируется с функцией HwVidInterrupt драйвера мини-порта. В противном случае синхронизация выполняется на уровне VpLowPriority .
  • VpHighPriority имеет тот же эффект, что и VpMediumPriority.

SynchronizeRoutine

Указатель на функцию HwVidSynchronizeExecutionCallback драйвера мини-порта.

Context

Указатель на предоставленный вызывающим объектом контекст, который передается в функцию HwVidSynchronizeExecutionCallback драйвера мини-порта. Этот указатель может иметь значение NULL.

Возвращаемое значение

Если операция выполнена успешно, Функция VideoPortSynchronizeExecution возвращает значение TRUE.

Комментарии

Водители минипорта редко называют эту процедуру, если не поддерживается одно из следующих условий:

  • Функция HwVidInterrupt драйвера мини-порта использует память совместно с другими функциями драйвера минипорта. Чтобы получить доступ к общей памяти в многопроцессорном режиме, такие функции драйвера минипорта должны вызывать VideoPortSynchronizeExecution с HwVidSynchronizeExecutionCallback. Эта функция драйвера мини-порта может безопасно получать доступ к общей памяти, так как драйвер видеопорта не позволяет функции HwVidInterrupt получать доступ к той же памяти одновременно.
  • Адаптер должен быть запрограммирован с помощью последовательности команд без переключения контекста. Например, функция SvgaHwIoPortXxx драйвера мини-порта, которая буферизировала последовательность инструкций ввода-вывода и проверила последовательность, может вызывать VideoPortSynchronizeExecution с HwVidSynchronizeExecutionCallback. Эта функция драйвера минипорта может очень быстро передавать буферный и проверенный поток ввода-вывода адаптеру.
Вызывающий объект должен указать наименьшее практическое значение Приоритета для работы HwVidSynchronizeExecutionCallback . Любой объект CallbackRoutine , который выполняется с высоким приоритетом оборудования (VpMediumPriority или VpHighPriority), должен как можно быстрее возвращать управление. Драйвер с такой высокоприоритетной функцией HwVidSynchronizeExecutionCallback должен выполнять как можно больше работы в любой другой функции драйвера, за исключением одной из обеих функций HwVidSynchronizeExecutionCallback и HwVidInterrupt .

Вызывающие объекта VideoPortSynchronizeExecution должны выполняться в IRQL

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
Целевая платформа Персональный компьютер
Верхняя часть video.h (включить Video.h)
Библиотека Videoprt.lib
DLL Videoprt.sys
IRQL <= DIRQL

См. также раздел

HwVidInterrupt

HwVidSynchronizeExecutionCallback