DXGKDDI_INTERRUPT_ROUTINE fonction de rappel (dispmprt.h)
La fonction DxgkDdiInterruptRoutine gère les interruptions générées par un adaptateur d’affichage.
Syntaxe
DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;
BOOLEAN DxgkddiInterruptRoutine(
[in] IN_CONST_PVOID MiniportDeviceContext,
[in] IN_ULONG MessageNumber
)
{...}
Paramètres
[in] MiniportDeviceContext
Handle vers un bloc de contexte associé à un adaptateur d’affichage. La fonction DxgkDdiAddDevice du pilote miniport d’affichage a précédemment fourni ce handle au sous-système du noyau graphique DirectX.
[in] MessageNumber
Index de base zéro dans la table d’interruption signalée par message (MSI) si l’interruption est signalée par un message. Pour les interruptions basées sur des lignes, ce paramètre est égal à zéro.
Valeur de retour
Si DxgkDdiInterruptRoutine détermine que l’adaptateur représenté par MiniportDeviceContext n’a pas généré l’interruption, elle retourne FALSE. Sinon, elle doit ignorer l’interruption sur l’adaptateur avant de retourner TRUE.
Remarques
Si l’interruption est basée sur une ligne (MessageNumber = 0), DxgkDdiInterruptRoutine devez déterminer si l’adaptateur représenté par MiniportDeviceContext généré l’interruption et, si ce n’est pas le cas, renvoyer FALSE immédiatement.
Si l’adaptateur représenté par MiniportDeviceContext a généré l’interruption, DxgkDdiInterruptRoutine devez effectuer les étapes suivantes :
- Ignorer l’interruption sur l’adaptateur.
- Terminez l’opération demandée qui a provoqué l’interruption, ou filez d’attente une DPC qui terminera l’opération ultérieurement.
- Retournez TRUE le plus rapidement possible.
Toute autre fonction de pilote miniport d’affichage qui partage la mémoire (par exemple, une partie de l’état représenté par MiniportDeviceContext) avec DxgkDdiInterruptRoutine doit appeler DxgkCbSynchronizeExecution pour synchroniser son accès à la mémoire partagée.
La fonction DxgkDdiInterruptRoutine peut appeler DxgkCbQueueDpc et fonctions DxgkCbNotifyInterrupt, mais ne doit pas appeler d’autres fonctions DxgkCbXxx. Pour plus d’informations sur la séquence appropriée d’appels de fonction, consultez Envoi d’une mémoire tampon de commande.
DxgkDdiInterruptRoutine s’exécute à un IRQL avec élévation de privilèges. Par conséquent, elle (et toutes les fonctions qu’il appelle) doivent être non paginables. En outre, DxgkDdiInterruptRoutine (et toutes les fonctions qu’il appelle) ne doivent pas tenter d’accéder à la mémoire paginable.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
plateforme cible | Bureau |
d’en-tête | dispmprt.h |
IRQL | Voir la section Remarques. |