Partager via


Traitement de réception sans RSS

Les pilotes miniport qui ne prennent pas en charge le RSS traitent la réception comme décrit dans cette rubrique.

La figure suivante illustre le traitement de réception non RSS.

Diagramme illustrant le traitement d’envoi et de réception sans RSS.

Dans la figure, les chemins en pointillés représentent un autre chemin d’accès pour le traitement d’envoi et de réception. Étant donné que le système contrôle la mise à l’échelle, le traitement ne se produit pas toujours sur le processeur qui offre les meilleures performances. Les connexions sont traitées sur le même processeur par pur hasard à travers des interruptions successives.

Le processus suivant se répète pour chaque cycle d’interruption non RSS :

  1. La carte réseau utilise le DMA pour remplir une mémoire tampon avec les données reçues, puis elle interrompt le système.

    Le pilote miniport a alloué les mémoires tampons de réception en mémoire partagée pendant l’initialisation.

  2. La carte réseau peut continuer à remplir des mémoires tampons de réception supplémentaires à tout moment dans ce cycle d’interruption. Toutefois, la carte réseau n’interrompt pas à nouveau tant que le pilote miniport n’active pas les interruptions.

    Les mémoires tampons reçues gérées par le système dans un cycle d’interruption peuvent être associées à de nombreuses connexions réseau différentes.

  3. NDIS appelle la fonction MiniportInterrupt du pilote miniport (ISR) sur un processeur déterminé par le système.

    Dans l’idéal, l’ISR doit accéder au processeur le moins occupé. Toutefois, dans certains systèmes, le système affecte l’ISR à un processeur disponible ou à un processeur associé à la carte réseau.

  4. L’ISR désactive les interruptions et demande à NDIS de mettre en file d’attente un appel de procédure différé (DPC) pour traiter les données reçues.

  5. NDIS appelle sur le processeur actuel la fonction MiniportInterruptDPC (DPC).

  6. Les compilations DPC reçoivent des descripteurs pour toutes les mémoires tampons reçues et transmettent les données vers la pile des pilotes. Pour plus d’informations, consultez Réception de données réseau.

    Il peut y avoir de nombreuses mémoires tampons pour de nombreuses connexions différentes et il y a potentiellement beaucoup de traitement à terminer. Les données reçues associées aux cycles d’interruption suivants peuvent être traitées sur d’autres processeurs. Le traitement d’envoi d’une connexion réseau donnée peut également s’exécuter sur un autre processeur.

  7. Le DPC active les interruptions. Ce cycle d’interruption est terminé et le processus redémarre.