Présentation des pilotes de protocole NDIS
Un pilote de protocole NDIS exporte un ensemble de fonctions ProtocolXxx à son bord inférieur. Un tel pilote de protocole communique avec NDIS pour envoyer et recevoir des données réseau. Le pilote de protocole est lié à un pilote miniport sous-jacent ou à un pilote intermédiaire qui exporte une interface MiniportXxx à son bord supérieur.
Note Le bord supérieur du pilote miniport d’un pilote intermédiaire (miniport virtuel) ne gère pas les périphériques physiques. Les pilotes miniports sous-jacents gèrent les appareils physiques.
Les pilotes de protocole utilisent toujours des fonctions fournies par NDIS pour communiquer avec les pilotes NDIS sous-jacents afin d’envoyer et de recevoir des données réseau. Par exemple, un pilote de protocole qui a un bord inférieur sans connexion (qui communique avec les pilotes sous-jacents pour les supports sans connexion, tels qu’Ethernet) doit appeler NdisSendNetBufferLists pour envoyer des données réseau à un pilote NDIS sous-jacent. Le pilote de protocole peut appeler NdisOidRequest pour interroger ou définir des OID pris en charge par les pilotes sans connexion sous-jacents. Un pilote de protocole qui a un bord inférieur orienté connexion (qui communique avec les pilotes sous-jacents pour les médias orientés connexion, tels que ISDN) doit appeler NdisCoSendNetBufferLists pour envoyer des données réseau à un pilote NDIS de niveau inférieur. Il peut également appeler NdisCoOidRequest pour interroger ou définir des OID pris en charge par les pilotes orientés connexion sous-jacents.
NDIS fournit également un ensemble de fonctions NdisXxx qui masquent les détails du système d’exploitation sous-jacent. Par exemple, un pilote de protocole peut appeler NdisInitializeEvent pour créer un événement à des fins de synchronisation et NdisInitializeListHead pour créer une liste liée. Les pilotes de protocole qui utilisent les versions NDIS de ces fonctions sont plus portables entre les systèmes d’exploitation Microsoft. Toutefois, les pilotes de protocole peuvent également appeler des routines de prise en charge en mode noyau, telles que IoCreateDevice. Pour plus d’informations, consultez Résumé des routines de support Kernel-Mode.
Les développeurs de pilotes de protocole doivent utiliser les mêmes considérations de programmation que celles appliquées aux autres pilotes NDIS.