Partager via


PVIDEO_HW_INTERRUPT fonction de rappel (video.h)

HwVidInterrupt détecte et ignore les interruptions générées par l’adaptateur vidéo associé.

Syntaxe

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

Paramètres

HwDeviceExtension

Pointeur vers la zone de stockage par adaptateur du pilote miniport. Pour plus d’informations, consultez extensions d’appareil.

Valeur de retour

Si HwVidInterrupt détermine que son matériel associé n’a pas généré l’interruption, il retourne FALSE. Sinon, il doit ignorer l’interruption sur son adaptateur avant de retourner TRUE.

Remarques

Un pilote miniport doit implémenter HwVidInterrupt si sa carte vidéo génère des interruptions.

Tout d’abord, HwVidInterrupt devez déterminer si son adaptateur a réellement provoqué l’interruption. Si ce n’est pas le cas, cette fonction doit retourner FALSE immédiatement afin que l’ISR de l’appareil à l’origine de l’interruption soit appelée rapidement.

Sinon, HwVidInterrupt est généralement responsable de la fin de l’opération d’E/S qui a provoqué l’interruption et doit effectuer les opérations suivantes :

  • Ignorer l’interruption sur l’adaptateur (obligatoire).
  • Terminez l’opération demandée qui a provoqué l’interruption.
  • Retourner le contrôle le plus rapidement possible (obligatoire).
Si un pilote miniport a une fonction HwVidInterrupt, aucun enregistrement ou emplacement de mémoire accessible par HwVidInterrupt peut être visible par le pilote d’affichage correspondant. Une interruption peut se produire pendant que le pilote d’affichage modifie l’un des registres ou emplacements de mémoire impliqués, et il n’existe aucun moyen de garantir la synchronisation. Par conséquent, toutes les fonctions nécessitant l’accès aux registres critiques ou aux emplacements de mémoire pour les opérations pilotées par interruption doivent se trouver dans le pilote miniport.

Si une autre fonction de pilote miniport partage de la mémoire, telle qu’une partie du HwDeviceExtension, avec HwVidInterrupt, elle doit appeler VideoPortSynchronizeExecution pour synchroniser son accès à la zone partagée.

HwVidInterrupt ne peut appeler que les routines VideoPortXxx fournies par le système suivantes (voir Fonctions exportées par le pilote de port vidéo) :

HwVidInterrupt ne doit pas appeler fonction VideoPortXxx qui n’est pas dans la liste précédente. La violation de cette exigence entraîne une défaillance du système (un « écran bleu »).

Une fonction HwVidInterrupt ne peut pas être paginable, ni n’importe quelle fonction qu’elle appelle.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête video.h (include Video.h)

Voir aussi

fonctions exportées par le pilote de port vidéo

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory