Compartilhar via


PVIDEO_HW_INTERRUPT função de retorno de chamada (video.h)

HwVidInterrupt detecta e descarta interrupções geradas pelo adaptador de vídeo associado.

Sintaxe

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

Parâmetros

HwDeviceExtension

Ponteiro para a área de armazenamento por adaptador do driver de miniport. Para obter mais informações, consulte de Extensões de Dispositivo.

Valor de retorno

Se HwVidInterrupt determinar que seu hardware associado não gerou a interrupção, ele retornará FALSE. Caso contrário, ele deve ignorar a interrupção em seu adaptador antes de retornar VERDADEIRO.

Observações

Um driver de miniporto deve implementar HwVidInterrupt se o adaptador de vídeo gerar interrupções.

Primeiro, HwVidInterrupt deve determinar se o adaptador realmente causou a interrupção. Caso contrário, essa função deverá retornar FALSE imediatamente para que o ISR do dispositivo que causou a interrupção seja chamado imediatamente.

Caso contrário, HwVidInterrupt é geralmente responsável por concluir a operação de E/S que causou a interrupção e deve fazer o seguinte:

  • Descarte a interrupção no adaptador (obrigatório).
  • Conclua a operação solicitada que causou a interrupção.
  • Retornar o controle o mais rápido possível (necessário).
Se um driver de miniporto tiver uma função HwVidInterrupt, nenhum local de registro ou memória que possa ser acessado pelo HwVidInterrupt poderá ficar visível para o driver de exibição correspondente. Uma interrupção pode ocorrer enquanto o driver de exibição está modificando um dos registros ou locais de memória envolvidos e não há como garantir a sincronização. Portanto, todas as funções que exigem acesso aos registros críticos ou locais de memória para operações controladas por interrupção devem estar no driver de miniporto.

Se qualquer outra função de driver de miniporto compartilhar memória, como parte do HwDeviceExtension, com HwVidInterrupt, ela deverá chamar VideoPortSynchronizeExecution para sincronizar seu acesso à área compartilhada.

HwVidInterrupt pode chamar apenas as seguintes rotinas de VideoPortXxx fornecidas pelo sistema (consulte Functions Exported by the Video Port Driver):

  • VideoPortQueueDpc

  • VideoPortZeroDeviceMemory e VideoPortZeroMemory

  • VideoPortLogError

  • VideoPortStallExecution para não mais do que poucos microssegundos. Se possível, HwVidInterrupt deve evitar chamar essa função.

  • Todas as rotinas VideoPortReadXxx e VideoPortWritexxx.
  • VideoPortDisableInterrupt (obsoleto)

  • VideoPortEnableInterrupt (obsoleto)

HwVidInterrupt não deve chamar nenhuma função VideoPortxxx que não esteja na lista anterior. A violação desse requisito causará uma falha no sistema (uma "tela azul").

Uma função HwVidInterrupt não pode ser paginável, nem qualquer função que ela chama.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho video.h (inclua Video.h)

Consulte também

Funções exportadas pelo driver de porta de vídeo

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory