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 obtenu dans 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 par le message pour le pilote, NDIS ignore ce paramètre. MessageId est un index du structures IO_INTERRUPT_MESSAGE_INFO_ENTRY à l’intérieur d’un structure IO_INTERRUPT_MESSAGE_INFO. NDIS transmet un pointeur à la structure de IO_INTERRUPT_MESSAGE_INFO associée au membre MessageInfoTable lorsque le pilote s’inscrit correctement pour MSI auprès de la fonction NdisMRegisterInterruptEx.

[in] SynchronizeFunction

Point d’entrée du pilote Fonction MiniportSynchronizeInterrupt.

[in] SynchronizeFunction

Point d’entrée du pilote Fonction MiniportSynchronizeInterrupt.

[in] SynchronizeContext

Pointeur vers une zone de contexte déterminée par miniport-driver qui est passée à la fonction MiniportSynchronizeInterrupt à SyncContext.

Valeur de retour

NdisMSynchronizeWithInterruptEx retourne la valeur booléenne qui MiniportSynchronizeInterrupt retourne.

Remarques

Les pilotes miniport qui inscrivent une interruption avec NdisMRegisterInterruptEx utiliser NdisMSynchronizeWithInterruptEx. Valeur que le Fonction MiniportSynchronizeInterrupt est également retournée par NdisMSynchronizeWithInterruptEx. Cette valeur propagée fournit l’état à 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 le runtime d’intégration d’origine de son appelant avant de retourner 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.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
plateforme cible Universel
d’en-tête ndis.h (include 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