Partager via


NdisMIndicateStatus, fonction (ndis.h)

Remarque NDIS 5. x a été déconseillé et est remplacé par NDIS 6. x. Pour le développement de nouveaux pilotes NDIS, consultez Pilotes réseau à partir de Windows Vista. Pour plus d’informations sur le portage de NDIS 5. pilotes x vers NDIS 6. x, consultez Portage des pilotes NDIS 5.x vers NDIS 6.0.

NdisMIndicateStatus indique les modifications apportées à l’état d’une carte réseau aux pilotes NDIS de niveau supérieur.

Syntaxe

void NdisMIndicateStatus(
  [in] NDIS_HANDLE MiniportHandle,
  [in] NDIS_STATUS GeneralStatus,
  [in] PVOID       StatusBuffer,
  [in] UINT        StatusBufferSize
);

Paramètres

[in] MiniportHandle

Spécifie l’entrée de handle à l’origine pour MiniportInitialize.

[in] GeneralStatus

Spécifie la valeur NDIS_STATUS_ XXX qui indique la modification générale de l’état de la carte réseau.

[in] StatusBuffer

Pointeur vers une mémoire tampon allouée par l’appelant contenant des données spécifiques à un support et dépendante de la valeur de GeneralStatus. Il indique des informations détaillées sur le changement d’état.

[in] StatusBufferSize

Spécifie la taille en octets de la mémoire tampon à StatusBuffer.

Valeur de retour

Aucun

Remarques

Lorsqu’un pilote miniport appelle NdisMIndicateStatus, NDIS appelle la fonction ProtocolStatus de chaque protocole lié. Cela permet à un pilote de protocole lié ou, éventuellement, au gestionnaire de configuration de consigner la modification de l’état d’une carte réseau sous-jacente ou de prendre des mesures correctives. Par exemple, un protocole peut appeler NdisReset, selon le NDIS_STATUS_ XXX indiqué.

Lorsqu’un pilote miniport appelle NdisMIndicateStatus pour signaler une modification de l’état de la carte réseau, NDIS peut appeler la fonction MiniportReset pour essayer de restaurer la carte réseau dans une condition de travail. Dans ces circonstances, NDIS peut appeler des protocoles liés uniquement avec NDIS_STATUS_RESET_START et versions ultérieures avec NDIS_STATUS_RESET_END, plutôt qu’avec le GeneralStatus indiqué par le pilote miniport.

NdisMIndicateStatus fournit deux informations :

  • Valeur d’état globale indiquant la modification générale de l’état.
  • Raison spécifique de la modification générale, qui peut être spécifique au réseau. Par exemple, les défaillances d’insertion en anneau sont particulières aux réseaux anneaux de jetons (802.5), mais ne sont pas pertinentes pour les cartes réseau Ethernet (802.3) et leurs pilotes.

Un pilote miniport peut également appeler NdisMIndicateStatus pour indiquer des problèmes tels que des câbles qui ont été supprimés accidentellement, puis réinsérés ou un anneau qui a temporairement échoué. Par exemple, supposons que les deux conditions suivantes se produisent :

  • Le pilote miniport appelle NdisMIndicateStatus avec NDIS_STATUS_RING_STATUS.

  • Le StatusBuffer contient l’une des valeurs d’état suivantes :

    • NDIS_RING_LOBE_WIRE_FAULT
    • NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS

Une fois qu’un tel changement d’état a été signalé avec une indication, tous les seuils ou compteurs de statistiques associés restent inchangés.

Un pilote miniport ne peut pas appeler NdisMIndicateStatus dans le contexte de sa fonctionMiniportISR, MiniportHaltou MiniportShutdown. Seul un pilote miniport désérialisé peut appeler NdisMIndicateStatus dans le contexte de sa fonction MiniportInitialize.

Un pilote miniport doit libérer tout verrou de rotation qu’il contient avant d’appeler NdisMIndicateStatus.

Les appelants sérialisés de NdisMIndicateStatus doivent s’exécuter à IRQL = DISPATCH_LEVEL. Les appelants désérialisés de NdisMIndicateStatus doivent s’exécuter sur IRQL <= DISPATCH_LEVEL.

indiquant la perte et la restauration d’une connexion réseau

Lorsqu’un pilote miniport détecte que la connexion réseau a été perdue, elle doit appeler NdisMIndicateStatus avec NDIS_STATUS_MEDIA_DISCONNECT. Lorsque la connexion est restaurée, le pilote miniport doit appeler NdisMIndicateStatus avec NDIS_STATUS_MEDIA_CONNECT.

Remarque pilotes miniport 802.11 doivent suivre les instructions d’état multimédia pour les réseaux locaux sans fil lors de la génération d’indications de connexion réseau. Pour plus d’informations sur ces instructions, consultez Indications de l’état des médias pour les réseaux 802.11.

802.11 Appels de pilotes MINIport sans fil à NdisMIndicateStatus

Les pilotes miniports sans fil 802.11 (WLAN) peuvent apporter diverses indications spécifiques au média WLAN. Par exemple, le pilote miniport peut donner une indication spécifique au RÉSEAU LOCAL lorsque les éléments suivants se produisent :

  • Le pilote détecte que la puissance du signal reçu de son association BSS actuelle a changé.
  • Le pilote détecte une défaillance MIC TKIP sur un paquet reçu.

Les types suivants d’indications spécifiques au RÉSEAU LOCAL peuvent être effectués par 802.11 pilotes miniport avec NdisMIndicateStatus:

Pour plus d’informations sur ces indications spécifiques aux médias, consultez 802.11 Media-Specific Indications d’état.

WAN Miniport Driver Calls to NdisMIndicateStatus

La plupart des pilotes de carte réseau WAN indiquent l’état avec certains codes d’état spéciaux et le contenu de la mémoire tampon. Ces indications d’état sont générées par les pilotes de carte réseau WAN et les pilotes de protocole NDIS liés à un tel pilote miniport peuvent ignorer ces indications. Toutefois, le traitement correct de ces indications entraîne généralement une amélioration des performances pour les protocoles et pour les pilotes de carte réseau WAN.

Les quatre types d’indications spécifiques à WAN suivants peuvent être envoyés aux pilotes de protocole liés avec NdisMIndicateStatus:

  • Aligner
  • Ligne vers le bas
  • Fragment
  • Événement de ligne TAPI

NDIS_STATUS_WAN_LINE_UP

Un pilote miniport WAN donne une indication de ligne chaque fois qu’un nouveau lien devient actif. Jusqu’à ce que cela se produise, la carte réseau accepte les images et les laisse réussir ou échouer, mais il est peu probable qu’elles soient reçues par n’importe quel nœud distant. Jusqu’à ce que cela se produise, les protocoles doivent réduire leurs minuteurs et les nouvelles tentatives pour échouer rapidement toute tentative de connexion sortante.

Le pilote miniport WAN indique cette indication avec NdisMIndicateStatus avant de retourner à partir de la requête OID_TAPI_GET_ID.

Le code d’état de l’indication de ligne est NDIS_STATUS_WAN_LINE_UP. La mémoire tampon à StatusBuffer est mise en forme sous forme de structure NDIS_MAC_LINE_UP.

NDIS_STATUS_WAN_LINE_DOWN

Un pilote miniport WAN indique une ligne vers le bas chaque fois qu’un lien tombe en panne. Lorsque cela se produit, les protocoles liés doivent réduire leurs minuteurs et retenter les nombres de nouvelles tentatives jusqu’à l’indication de ligne suivante.

Le code d’état de l’indication de ligne est NDIS_STATUS_WAN_LINE_DOWN. La mémoire tampon à StatusBuffer est mise en forme sous forme de structure NDIS_MAC_LINE_DOWN.

NDIS_STATUS_WAN_FRAGMENT

Un pilote miniport WAN indique un fragment chaque fois qu’il reçoit un paquet partiel du nœud distant. Lorsque cela se produit, un protocole lié doit envoyer des trames au nœud distant qui l’informera de cette situation, plutôt que d’attendre qu’un délai d’attente se produise.

Le code d’état de l’indication de fragment est NDIS_STATUS_WAN_FRAGMENT. La mémoire tampon à StatusBuffer est mise en forme sous forme de structure NDIS_MAC_FRAGMENT.

NDISWAN surveille les paquets supprimés en comptant le nombre d’indications de fragment sur chaque lien.

NDIS_TAPI_EVENT

Un pilote miniport WAN doit utiliser une valeur GeneralStatus de NDIS_STATUS_TAPI_INDICATION pour les indications d’état TAPI . La mémoire tampon à StatusBuffer est mise en forme sous forme de structure NDIS_TAPI_EVENT.

  • Plateforme cible : universelle
  • Version : non pris en charge pour les pilotes NDIS 6.0 dans Windows Vista. Utilisez NdisMIndicateStatusExà la place. Pris en charge pour les pilotes NDIS 5.1 dans Windows Vista et Windows XP.

Exigences

Exigence Valeur
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib

Voir aussi