Liaison à un adaptateur
NDIS appelle la fonction ProtocolBindAdapterEx d’un pilote de protocole pour ouvrir une liaison chaque fois qu’un adaptateur sous-jacent auquel le pilote peut se lier devient disponible. Une fois que NDIS a appelé ProtocolBindAdapterEx, la liaison passe à l’état Ouverture. Dans l’état Ouverture , le pilote de protocole alloue des ressources pour la liaison et ouvre l’adaptateur.
NDIS transmet à ProtocolBindAdapterEx le contexte NDIS de l’opération de liaison, ainsi qu’un pointeur vers une structure NDIS_BIND_PARAMETERS . Cette structure contient des informations sur l’adaptateur, telles que :
Nom de l’adaptateur.
Emplacement du Registre pour les paramètres spécifiques à cette liaison sous l’entrée du service de protocole dans le Registre.
Objet d’appareil physique pour l’adaptateur.
Pour ouvrir un adaptateur, les pilotes de protocole appellent la fonction NdisOpenAdapterEx . Le pilote de protocole transmet les éléments suivants à NdisOpenAdapterEx :
Handle que NDIS a retourné au pilote au niveau du paramètre NdisProtocolHandle de la fonction NdisRegisterProtocolDriver .
Contexte du pilote de protocole pour cette liaison.
Pointeur vers une structure de type NDIS_OPEN_PARAMETERS.
NDIS_OPEN_PARAMETERS contient des informations telles que le nom de l’adaptateur que NdisOpenAdapterEx doit ouvrir, un tableau de types moyens pris en charge par le pilote de protocole et, éventuellement, un tableau de types d’images que le pilote peut recevoir sur cette liaison.
Si un pilote de protocole retourne NDIS_STATUS_PENDING à partir de ProtocolBindAdapterEx, il doit appeler NdisCompleteBindAdapterEx avec la status finale pour terminer la demande de liaison.
Si NDIS retourne NDIS_STATUS_PENDING de NdisOpenAdapterEx, NDIS appelle ultérieurement la fonction ProtocolOpenAdapterCompleteEx du pilote de protocole avec la status finale une fois la demande ouverte terminée.
Une fois que le pilote a ouvert la liaison à l’adaptateur, la liaison est à l’état Suspendu.
Un pilote de protocole appelle la fonction NdisCloseAdapterEx pour fermer l’adaptateur. Le pilote peut appeler NdisCloseAdapterEx à partir de la fonction ProtocolBindAdapterEx ou de la fonction ProtocolUnbindAdapterEx .
Si, après avoir ouvert l’adaptateur et avant de terminer la demande de liaison, ProtocolBindAdapterEx rencontre un échec et doit fermer la liaison à l’adaptateur, il peut appeler NdisCloseAdapterEx. Pour plus d’informations sur la fermeture d’un adaptateur, consultez Dissociation d’un adaptateur.