Partager via


structure NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS (ndis.h)

Un pilote miniport NDIS définit ses caractéristiques d’interruption dans une structure NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS et transmet la structure à la 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 -en-tête 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 signalée par message (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 des interruptions. Il est plus efficace pour plusieurs fonctions de service d’interruption qui gèrent différents messages à exécuter simultanément.

MessageInterruptHandler

Point d’entrée pour le MiniportMessageInterrupt fonction, le cas échéant, 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 MiniportMessageInterruptDPC fonction, le cas échéant, associée à cette interruption. Si le pilote ne prend pas en charge les interruptions signalées par les messages, 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 le message, 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 les messages, 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 vérifier 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 des messages. 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 NDIS fourni vers un structure IO_INTERRUPT_MESSAGE_INFO.

  • Si InterruptType est NDIS_CONNECT_MESSAGE_BASED, NDIS initialise une structure IO_INTERRUPT_MESSAGE_INFO avec des informations sur l’interruption et définit MessageInfoTable à 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 et passe la structure à NdisMRegisterInterruptEx.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
d’en-tête ndis.h (include Ndis.h)

Voir aussi

IO_INTERRUPT_MESSAGE_INFO

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_OBJECT_HEADER

NdisMRegisterInterruptEx