Partager via


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)

Voir aussi

IO_INTERRUPT_MESSAGE_INFO

IO_INTERRUPT_MESSAGE_INFO_ENTRY

MiniportInterrupt

MiniportSynchronizeInterrupt

NdisMRegisterInterruptEx