NdisMSynchronizeWithInterruptEx, fonction (ndis.h)
Les pilotes miniport appellent la fonction NdisMSynchronizeWithInterruptEx pour synchroniser l’exécution d’une fonction fournie par le pilote miniport avec la fonction MiniportInterrupt .
Syntaxe
BOOLEAN NdisMSynchronizeWithInterruptEx(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] MINIPORT_SYNCHRONIZE_INTERRUPT_HANDLER SynchronizeFunction,
[in] PVOID SynchronizeFunction,
[in] PVOID SynchronizeContext
);
Paramètres
[in] NdisInterruptHandle
Handle d’interruption que le pilote miniport a obtenu lors d’un appel précédent au Fonction NdisMRegisterInterruptEx .
[in] MessageId
Interruption signalée par un message avec laquelle le pilote doit se synchroniser. Si NDIS n’a pas accordé d’interruptions signalées au message pour le pilote, NDIS ignore ce paramètre. MessageId est un index du IO_INTERRUPT_MESSAGE_INFO_ENTRY structures à l’intérieur d’un IO_INTERRUPT_MESSAGE_INFO structure. NDIS transmet un pointeur vers la structure IO_INTERRUPT_MESSAGE_INFO associée au membre MessageInfoTable lorsque le pilote s’inscrit correctement à MSI avec la fonction NdisMRegisterInterruptEx .
[in] SynchronizeFunction
Point d’entrée du conducteur Fonction MiniportSynchronizeInterrupt .
[in] SynchronizeFunction
Point d’entrée du conducteur Fonction MiniportSynchronizeInterrupt .
[in] SynchronizeContext
Pointeur vers une zone de contexte déterminée par miniport-driver qui est passé à la fonction MiniportSynchronizeInterrupt sur SynchronizeContext .
Valeur retournée
NdisMSynchronizeWithInterruptEx retourne la valeur booléenne renvoyée par MiniportSynchronizeInterrupt .
Remarques
Les pilotes miniport qui enregistrent une interruption avec NdisMRegisterInterruptEx utilisent NdisMSynchronizeWithInterruptEx. Valeur que le La fonction MiniportSynchronizeInterrupt retourne également par NdisMSynchronizeWithInterruptEx. Cette valeur propagée fournit status à l’appelant.
Toute fonction de pilote miniport qui partage des ressources avec toute autre fonction de pilote qui s’exécute sur DIRQL doit utiliser NdisMSynchronizeWithInterruptEx pour synchroniser son accès à ces ressources. La fonction MiniportSynchronizeInterrupt s’exécute également sur DIRQL, et les ressources partagées sont protégées par un verrou de rotation alloué par le système. Ainsi, les ressources partagées sont protégées contre l’accès simultané par la fonction MiniportInterrupt et l’appelant.
NdisMSynchronizeWithInterruptEx libère le verrou de rotation système et restaure l’IRQL d’origine de son appelant avant qu’il ne retourne le contrôle.
Pour plus d’informations sur l’acquisition et la publication de verrous de rotation NDIS, consultez Synchronisation et notification dans les pilotes réseau.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.0 et versions ultérieures. |
Plateforme cible | Universal |
En-tête | ndis.h (inclure Ndis.h, Video.h) |
Bibliothèque | Ndis.lib |
IRQL | <= DIRQL |
Règles de conformité DDI | NdisMDeregisterInterruptEx(ndis) |