Partager via


PVIDEO_HW_INTERRUPT fonction de rappel (video.h)

HwVidInterrupt détecte et ignore les interruptions générées par la carte vidéo associée.

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 retournée

Si HwVidInterrupt détermine que son matériel associé n’a pas généré l’interruption, il retourne FALSE. Dans le cas contraire, 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 doit déterminer si son adaptateur a réellement provoqué l’interruption. Si ce n’est pas le cas, cette fonction doit retourner la valeur FALSE immédiatement afin que l’ISR de l’appareil à l’origine de l’interruption soit appelé rapidement.

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

  • Ignorez l’interruption sur l’adaptateur (obligatoire).
  • Effectuez l’opération demandée qui a provoqué l’interruption.
  • Retourner le contrôle aussi rapidement que possible (obligatoire).
Si un pilote miniport a une fonction HwVidInterrupt , aucun registre ou emplacement de mémoire accessible par HwVidInterrupt ne peut être visible pour 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 les interruptions doivent se trouver dans le pilote miniport.

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

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

HwVidInterruptne doit pas appeler une fonction VideoPortXxx qui ne figure 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 aucune fonction qu’elle appelle.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête video.h (inclure Video.h)

Voir aussi

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

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory