NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure (ndis.h)

Un pilote de miniport NDIS définit ses caractéristiques d’interruption dans une structure de NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS et transmet la structure au Fonction NdisMRegisterInterruptEx .

Syntaxe

typedef struct _NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS {
  NDIS_OBJECT_HEADER                     Header;
  MINIPORT_ISR_HANDLER                   InterruptHandler;
  MINIPORT_INTERRUPT_DPC_HANDLER         InterruptDpcHandler;
  MINIPORT_DISABLE_INTERRUPT_HANDLER     DisableInterruptHandler;
  MINIPORT_ENABLE_INTERRUPT_HANDLER      EnableInterruptHandler;
  BOOLEAN                                MsiSupported;
  BOOLEAN                                MsiSyncWithAllMessages;
  MINIPORT_MSI_ISR_HANDLER               MessageInterruptHandler;
  MINIPORT_MSI_INTERRUPT_DPC_HANDLER     MessageInterruptDpcHandler;
  MINIPORT_DISABLE_MSI_INTERRUPT_HANDLER DisableMessageInterruptHandler;
  MINIPORT_ENABLE_MSI_INTERRUPT_HANDLER  EnableMessageInterruptHandler;
  NDIS_INTERRUPT_TYPE                    InterruptType;
  PIO_INTERRUPT_MESSAGE_INFO             MessageInfoTable;
} NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS, *PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS. Définissez le membre Type de la structure spécifiée par Header sur NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT, le membre Revision sur NDIS_MINIPORT_INTERRUPT_REVISION_1 et le membre Size sur NDIS_SIZEOF_MINIPORT_INTERRUPT_CHARACTERISTICS_REVISION_1.

InterruptHandler

Point d’entrée de la fonction MiniportInterrupt associée à cette interruption.

InterruptDpcHandler

Point d’entrée de la fonction MiniportInterruptDPC associée à cette interruption.

DisableInterruptHandler

Point d’entrée pour le Fonction MiniportDisableInterruptEx .

EnableInterruptHandler

Point d’entrée pour le Fonction MiniportEnableInterruptEx .

MsiSupported

Définissez ce membre sur TRUE si le pilote miniport prend en charge les fonctions de service d’interruption par message signalé (MSI). Le pilote miniport doit fournir des points d’entrée pour les fonctions de service MSI.

La définition de cette valeur sur FALSE indique que MSI n’est pas pris en charge. Les points d’entrée de la fonction de service MSI doivent être définis sur NULL.

MsiSyncWithAllMessages

Définissez ce membre sur TRUE si le pilote miniport doit sérialiser toutes les fonctions de service MSI.

La définition de cette valeur sur TRUE peut dégrader les performances d’interruption. Il est plus efficace que plusieurs fonctions de service d’interruption qui gèrent différents messages s’exécutent simultanément.

MessageInterruptHandler

Point d’entrée pour le Fonction MiniportMessageInterrupt , si elle existe, associée à cette interruption. Si le pilote ne prend pas en charge les interruptions de message, définissez ce membre sur NULL.

MessageInterruptDpcHandler

Point d’entrée pour le Fonction MiniportMessageInterruptDPC , le cas échéant, associée à cette interruption. Si le pilote ne prend pas en charge les interruptions signalées par message, définissez ce membre sur NULL.

DisableMessageInterruptHandler

Point d’entrée pour le Fonction MiniportDisableMessageInterrupt , le cas échéant. Si le pilote ne prend pas en charge les interruptions signalées par les messages, définissez ce membre sur NULL.

EnableMessageInterruptHandler

Point d’entrée pour le Fonction MiniportEnableMessageInterrupt , le cas échéant. Si le pilote ne prend pas en charge les interruptions signalées par message, définissez ce membre sur NULL.

InterruptType

Variable de type NDIS_INTERRUPT_TYPE. NDIS définit cette variable pour indiquer le type d’interruption qu’il a accordé au pilote miniport. Si le pilote prend en charge MSI, il doit case activée cette valeur si NdisMRegisterInterruptEx retourne NDIS_STATUS_SUCCESS. Si InterruptType est défini sur NDIS_CONNECT_LINE_BASED, NDIS a accordé au pilote une interruption basée sur une ligne, ce qui peut se produire même si le pilote prend en charge les interruptions signalées par message. Si InterruptType est défini sur NDIS_CONNECT_MESSAGE_BASED, NDIS a accordé au pilote une interruption signalée par un message. Dans ce cas, le pilote peut accéder à MessageInfoTable pour obtenir les informations d’interruption.

MessageInfoTable

Pointeur fourni par NDIS vers un IO_INTERRUPT_MESSAGE_INFO structure.

  • Si InterruptType est NDIS_CONNECT_MESSAGE_BASED, NDIS initialise une structure de IO_INTERRUPT_MESSAGE_INFO avec des informations sur l’interruption et définit MessageInfoTable sur un pointeur vers la structure. Les pilotes miniport ne doivent pas modifier la structure.
  • Si InterruptType est NDIS_CONNECT_LINE_BASED, MessageInfoTable doit avoir la valeur NULL.

Remarques

Un pilote miniport appelle la fonction NdisMRegisterInterruptEx pour inscrire une interruption. Le pilote alloue et initialise une structure NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS pour spécifier les caractéristiques d’interruption et les points d’entrée du gestionnaire, puis transmet la structure à NdisMRegisterInterruptEx.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

IO_INTERRUPT_MESSAGE_INFO

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_OBJECT_HEADER

NdisMRegisterInterruptEx