DXGKDDI_INTERRUPT_ROUTINE fonction de rappel (dispmprt.h)
La fonction DxgkDdiInterruptRoutine gère les interruptions générées par un adaptateur graphique.
Syntaxe
DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;
BOOLEAN DxgkddiInterruptRoutine(
[in] IN_CONST_PVOID MiniportDeviceContext,
[in] IN_ULONG MessageNumber
)
{...}
Paramètres
[in] MiniportDeviceContext
Handle d’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 retournée
Si DxgkDdiInterruptRoutine détermine que l’adaptateur représenté par MiniportDeviceContext n’a pas généré l’interruption, il retourne FALSE. Sinon, il doit ignorer l’interruption sur l’adaptateur avant qu’elle retourne TRUE.
Remarques
Si l’interruption est basée sur une ligne (MessageNumber = 0), DxgkDdiInterruptRoutine doit déterminer si l’adaptateur représenté par MiniportDeviceContext a généré l’interruption et, dans le cas contraire, retourner la valeur FALSE immédiatement.
Si l’adaptateur représenté par MiniportDeviceContext a généré l’interruption, DxgkDdiInterruptRoutine doit effectuer les étapes suivantes :
- Faites disparaître l’interruption sur l’adaptateur.
- Terminez l’opération demandée à l’origine de l’interruption, ou placez en file d’attente un DPC qui terminera l’opération ultérieurement.
- Retourne TRUE aussi rapidement que possible.
Toute autre fonction de pilote miniport d’affichage qui partage la mémoire (par exemple, une partie de l’état représentée par MiniportDeviceContext) avec DxgkDdiInterruptRoutine doit appeler DxgkCbSynchronizeExecution pour synchroniser son accès à la mémoire partagée.
La fonction DxgkDdiInterruptRoutine peut appeler DxgkCbQueueDpc et DxgkCbNotifyInterrupt, mais ne doit pas appeler d’autres fonctions Xxx DxgkCb. Pour plus d’informations sur la séquence appropriée d’appels de fonction, consultez Envoi d’une mémoire tampon de commandes.
DxgkDdiInterruptRoutine s’exécute à un IRQL avec élévation de privilèges, de sorte qu’il (et toutes les fonctions qu’il appelle) doivent être non paginables. En outre, DxgkDdiInterruptRoutine (et toutes les fonctions qu’il appelle) ne doit pas tenter d’accéder à la mémoire paginable.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | dispmprt.h |
IRQL | Consultez la section Notes. |