NdisMRegisterInterruptEx, fonction (ndis.h)

Les pilotes miniport NDIS appellent la fonction NdisMRegisterInterruptEx pour inscrire une interruption.

Syntaxe

NDIS_STATUS NdisMRegisterInterruptEx(
  [in]  NDIS_HANDLE                              MiniportAdapterHandle,
  [in]  NDIS_HANDLE                              MiniportInterruptContext,
  [in]  PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
  [out] PNDIS_HANDLE                             NdisInterruptHandle
);

Paramètres

[in] MiniportAdapterHandle

Poignée de l’adaptateur miniport que NDIS a passée à Fonction MiniportInitializeEx .

[in] MiniportInterruptContext

Pointeur vers un bloc d’informations de contexte. Le pilote miniport alloue cette mémoire pour stocker des informations sur l’interruption. NDIS transmet le bloc d’informations de contexte dans les appels suivants à d’autres fonctions associées à l’interruption.

[in] MiniportInterruptCharacteristics

Pointeur vers un NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure créée par le pilote miniport. Le pilote initialise cette structure avec des points d’entrée de gestionnaire et des paramètres de configuration qui définissent les caractéristiques d’interruption.

[out] NdisInterruptHandle

Pointeur vers un handle NDIS. NDIS écrit le handle de l’objet d’interruption nouvellement créé dans l’adresse spécifiée par le pointeur NdisInterruptHandle .

Valeur retournée

NdisMRegisterInterruptEx peut retourner l’une des valeurs suivantes :

Code de retour Description
NDIS_STATUS_SUCCESS
NDIS initialise l’objet d’interruption et fournit un handle d’interruption valide à NdisInterruptHandle . NDIS a revendiqué des ressources matérielles et configuré les fonctions qu’il appelle lorsqu’une interruption se produit.
NDIS_STATUS_RESOURCES
NdisMRegisterInterruptEx a échoué en raison de ressources insuffisantes.
NDIS_STATUS_XXX ou NT_STATUS_XXX
La tentative d’initialisation de l’objet d’interruption a échoué pour des raisons autres que celles de la liste précédente.

Remarques

Un pilote miniport doit appeler NdisMRegisterInterruptEx à partir de sa fonction MiniportInitializeEx s’il gère une carte réseau qui génère des interruptions.

MiniportInitializeEx doit appeler le Fonction NdisMSetMiniportAttributes avant d’appeler NdisMRegisterInterruptEx.

Le pilote miniport doit spécifier des points d’entrée pour les fonctions de service d’interruption suivantes :

MiniportInterrupt

MiniportInterruptDPC

MiniportDisableInterruptEx

MiniportEnableInterruptEx

Si la carte réseau prend en charge les interruptions de message signalées (MSI), le pilote miniport doit spécifier des points d’entrée pour les fonctions de service MSI suivantes :

MiniportMessageInterrupt

MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterrupt

Si un pilote spécifie des points d’entrée pour MSI, il doit également spécifier des points d’entrée pour les fonctions de service d’interruption non MSI. En outre, si NdisMRegisterInterruptEx retourne NDIS_STATUS_SUCCESS, le pilote doit examiner la valeur du membre InterruptType du NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure pour déterminer le type d’interruptions NDIS accordées. Si NDIS ne peut pas accorder la prise en charge MSI, il accorde la prise en charge des interruptions basées sur les lignes.

Lorsque les interruptions sont activées sur la carte réseau, la fonction MiniportInterrupt(ou MiniportMessageInterrupt) d’un pilote peut être appelée à tout moment après que le pilote a appelé NdisMRegisterInterruptEx, même avant le retour de NdisMRegisterInterruptEx . Par conséquent, un pilote ne doit pas appeler NdisMRegisterInterruptEx tant qu’il n’est pas prêt à gérer une interruption.

Les pilotes appellent le Fonction NdisMDeregisterInterruptEx pour libérer les ressources précédemment allouées avec NdisMRegisterInterruptEx.

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)
Bibliothèque Ndis.lib
IRQL PASSIVE_LEVEL
Règles de conformité DDI Init_DeRegisterInterrupt(ndis), Init_RegisterInterrupt(ndis), Irql_Interrupt_Function(ndis), NdisMDeregisterInterruptEx(ndis)

Voir aussi

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInitializeEx

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMDeregisterInterruptEx

NdisMSetMiniportAttributes