Función VideoPortSynchronizeExecution (video.h)

La función VideoPortSynchronizeExecution sincroniza la ejecución de una función HwVidSynchronizeExecutionCallback proporcionada por el controlador de miniporte, si existe. De lo contrario, ejecuta HwVidSynchronizeExecutionCallback en una prioridad elevada.

Sintaxis

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

Parámetros

HwDeviceExtension

Puntero a la extensión del dispositivo del controlador de minipuerto.

Priority

Especifica el tipo de prioridad en el que se debe ejecutar SynchronizeRoutine especificado, como uno de los siguientes:

  • Si Priority está establecido en VpLowPriority, el subproceso actual se eleva a la prioridad de enmascaramiento no interrupt más alta. En consecuencia, el subproceso actual solo puede ser reemplazado por un ISR si se interrumpe un dispositivo.
  • Si Priority está establecido en VpMediumPriority y el controlador de minipuerto tiene un ISR asociado con su adaptador de vídeo, la llamada a synchronizeRoutine determinada se sincroniza con la función HwVidInterrupt del controlador de miniport. De lo contrario, la sincronización se realiza en el nivel vpLowPriority .
  • VpHighPriority tiene el mismo efecto que VpMediumPriority.

SynchronizeRoutine

Puntero a la función HwVidSynchronizeExecutionCallback del controlador de miniport.

Context

Puntero a un contexto proporcionado por el autor de la llamada que se va a pasar a la función HwVidSynchronizeExecutionCallback del controlador de miniporte . Este puntero puede ser NULL.

Valor devuelto

Si la operación se realiza correctamente, VideoPortSynchronizeExecution devuelve TRUE.

Comentarios

Los conductores de miniportar rara vez llaman a esta rutina a menos que cualquiera de las condiciones siguientes contenga:

  • La función HwVidInterrupt del controlador de miniporte comparte memoria con otras funciones del controlador de miniport. Para acceder a la memoria compartida de una manera segura para varios procesadores, estas funciones de controlador de miniport deben llamar a VideoPortSynchronizeExecution con HwVidSynchronizeExecutionCallback. Esta función de controlador de minipuerto puede acceder de forma segura a la memoria compartida porque el controlador de puerto de vídeo impide que la función HwVidInterrupt acceda a la misma memoria simultáneamente.
  • El adaptador debe estar programado con una secuencia de comandos sin estar sujeto a un modificador de contexto. Por ejemplo, una función SvgaHwIoPortXxx del controlador de miniporte que ha almacenado en búfer una secuencia de instrucciones de E/S y validada la secuencia podría llamar a VideoPortSynchronizeExecution con HwVidSynchronizeExecutionCallback. Esta función de controlador de minipuerto puede transferir el flujo de E/S almacenado en búfer y validado al adaptador muy rápidamente.
Un llamador debe especificar el valor de prioridad práctico más bajo para el trabajo HwVidSynchronizeExecutionCallback . Cualquier CallbackRoutine que se ejecute con una prioridad de hardware alta (VpMediumPriority o VpHighPriority) debe devolver el control lo antes posible. Un controlador con una función HwVidSynchronizeExecutionCallback de alta prioridad debe diseñarse para realizar tanto trabajo como sea posible en todas las demás funciones de controlador, excepto una de sus funciones HwVidSynchronizeExecutionCallback y HwVidInterrupt .

Los autores de llamadas de VideoPortSynchronizeExecution deben ejecutarse en IRQL.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 2000 y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado video.h (incluya Video.h)
Library Videoprt.lib
Archivo DLL Videoprt.sys
IRQL <= DIRQL

Consulte también

HwVidInterrupt

HwVidSynchronizeExecutionCallback