Função VideoPortSynchronizeExecution (video.h)

A função VideoPortSynchronizeExecution sincroniza a execução de uma função HwVidSynchronizeExecutionCallback fornecida pelo driver de miniport com a função HwVidInterrupt do driver de miniport, se houver. Caso contrário, ele executará HwVidSynchronizeExecutionCallback em uma prioridade elevada.

Sintaxe

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

Parâmetros

HwDeviceExtension

Ponteiro para a extensão de dispositivo do driver de miniport.

Priority

Especifica o tipo de prioridade no qual o SynchronizeRoutine fornecido deve ser executado, como um dos seguintes:

  • Se Priority for definido como VpLowPriority, o thread atual será elevado para a prioridade de máscara não interinterrupta mais alta. Assim, o thread atual só poderá ser preemptado por um ISR se um dispositivo interromper.
  • Se Priority for definido como VpMediumPriority e o driver de miniporto tiver um ISR associado ao adaptador de vídeo, a chamada para a SynchronizeRoutine fornecida será sincronizada com a função HwVidInterrupt do driver de miniport. Caso contrário, a sincronização será feita no nível VpLowPriority .
  • VpHighPriority tem o mesmo efeito que VpMediumPriority.

SynchronizeRoutine

Ponteiro para a função HwVidSynchronizeExecutionCallback do driver de miniport.

Context

Ponteiro para um contexto fornecido pelo chamador a ser passado para a função HwVidSynchronizeExecutionCallback do driver de miniport. Esse ponteiro pode ser NULL.

Retornar valor

Se a operação for bem-sucedida, VideoPortSynchronizeExecution retornará TRUE.

Comentários

Os drivers de miniporta raramente chamam essa rotina, a menos que qualquer uma das seguintes condições mantenha:

  • A função HwVidInterrupt do driver de miniport compartilha memória com outras funções de driver de miniport. Para acessar a memória compartilhada de maneira segura para vários processadores, essas funções de driver de miniport devem chamar VideoPortSynchronizeExecution com HwVidSynchronizeExecutionCallback. Essa função de driver de miniporto pode acessar com segurança a memória compartilhada porque o driver da porta de vídeo impede que a função HwVidInterrupt acesse a mesma memória simultaneamente.
  • O adaptador deve ser programado com uma sequência de comandos sem estar sujeito a uma opção de contexto. Por exemplo, a função SvgaHwIoPortXxx de um driver de miniport que armazena em buffer uma sequência de instruções de E/S e validou a sequência pode chamar VideoPortSynchronizeExecution com HwVidSynchronizeExecutionCallback. Essa função de driver de miniporto pode transferir o fluxo de E/S armazenado em buffer e validado para o adaptador muito rapidamente.
Um chamador deve especificar o menor valor prático de Prioridade para o trabalho que HwVidSynchronizeExecutionCallback deve fazer. Qualquer CallbackRoutine executado em uma prioridade de hardware alta (VpMediumPriority ou VpHighPriority) deve retornar o controle o mais rápido possível. Um driver com uma função HwVidSynchronizeExecutionCallback de alta prioridade deve ser projetado para fazer o máximo de trabalho possível em todas as outras funções de driver, exceto uma de suas funções HwVidSynchronizeExecutionCallback e HwVidInterrupt .

Os chamadores de VideoPortSynchronizeExecution devem estar em execução no IRQL

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho video.h (inclua Video.h)
Biblioteca Videoprt.lib
DLL Videoprt.sys
IRQL <= DIRQL

Confira também

HwVidInterrupt

HwVidSynchronizeExecutionCallback