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 Extensões de dispositivo.

Retornar valor

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 TRUE.

Comentários

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

Primeiro, HwVidInterrupt deve determinar se seu adaptador realmente causou a interrupção. Caso contrário, essa função deve 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:

  • Ignore 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 (obrigatório).
Se um driver de miniporto tiver uma função HwVidInterrupt , nenhum local de registro ou memória que possa ser acessado por 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 miniporta.

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 VideoPortXxx fornecidas pelo sistema (consulte Funções exportadas pelo driver de porta de vídeo):

HwVidInterruptnão deve chamar nenhuma função VideoPortXxx que não esteja na lista anterior. A violação desse requisito causará 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
Plataforma de Destino Área de Trabalho
Cabeçalho video.h (incluir Video.h)

Confira também

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

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory