NdisOpenAdapterEx, fonction (ndis.h)
Un pilote de protocole appelle la fonction NdisOpenAdapterEx à partir de sa fonction ProtocolBindAdapterEx pour configurer une liaison entre le pilote de protocole et un pilote sous-jacent.
Syntaxe
NDIS_STATUS NdisOpenAdapterEx(
[in] NDIS_HANDLE NdisProtocolHandle,
[in] NDIS_HANDLE ProtocolBindingContext,
[in] PNDIS_OPEN_PARAMETERS OpenParameters,
[in] NDIS_HANDLE BindContext,
[out] PNDIS_HANDLE NdisBindingHandle
);
Paramètres
[in] NdisProtocolHandle
Handle retourné par le Fonction NdisRegisterProtocolDriver .
[in] ProtocolBindingContext
Handle pour une zone de contexte fournie par l’appelant dans laquelle le pilote de protocole conserve les informations d’état pour cette liaison.
[in] OpenParameters
Pointeur vers une structure NDIS_OPEN_PARAMETERS configurée par l’appelant.
[in] BindContext
Handle qui identifie la zone de contexte NDIS pour l’opération de liaison. NDIS a passé ce handle au paramètre BindContext de la fonction ProtocolBindAdapterEx .
[out] NdisBindingHandle
Pointeur vers une variable fournie par l’appelant. NDIS écrit un handle dans NdisBindingHandle qui identifie la liaison entre l’appelant et l’adaptateur miniport spécifié dans le membre AdapterName sur OpenParameters . L’appelant utilise ce handle dans les appels suivants aux fonctions NdisXxx .
Valeur retournée
NdisOpenAdapterEx retourne l’une des valeurs de status suivantes :
Code de retour | Description |
---|---|
|
NdisOpenAdapterEx a réussi l’opération d’ouverture. |
|
NdisOpenAdapterEx n’a pas terminé l’opération d’ouverture. NDIS appelle ultérieurement le pilote de protocole Fonction ProtocolOpenAdapterCompleteEx pour terminer l’opération d’ouverture. |
|
NdisOpenAdapterEx a échoué en raison de ressources insuffisantes. |
|
Échec de NdisOpenAdapterEx , car un adaptateur miniport spécifié dans le membre AdapterName sur OpenParameters est introuvable. |
|
Échec de NdisOpenAdapterEx , car le tableau spécifié dans le membre MediumArray dans OpenParameters n’incluait pas un type de support pris en charge par NDIS ou le pilote sous-jacent. |
|
Échec de NdisOpenAdapterEx pour d’autres raisons que celles de la liste précédente. |
Remarques
Un pilote de protocole doit appeler NdisOpenAdapterEx à partir de sa fonction ProtocolBindAdapterEx . NDIS échoue à toute tentative d’appel de NdisOpenAdapterEx en dehors du contexte de ProtocolBindAdapterEx.
Si NdisOpenAdapterEx retourne NDIS_STATUS_PENDING, l’appelant ne doit pas utiliser les valeurs de NdisBindingHandle et du membre SelectedMediumIndex dans OpenParameters tant que NDIS n’appelle pas le Fonction ProtocolOpenAdapterCompleteEx .
La chaîne dans AdapterName doit rester valide uniquement jusqu’à ce que NdisOpenAdapterEx soit retourné. Par conséquent, dans le cas où NdisOpenAdapterEx retourne NDIS_STATUS_PENDING, le pilote n’est pas obligé de continuer à conserver cette chaîne après le retour de NdisOpenAdapterEx .
Une fois l’opération d’ouverture terminée, l’appelant peut utiliser la valeur que NDIS a retournée dans le NdisBindingHandle dans les appels suivants aux fonctions NdisXxx . L’appelant peut utiliser le membre SelectedMediumIndex du paramètre OpenParameters pour déterminer comment il doit interagir avec le pilote sous-jacent.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.0 et versions ultérieures. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | ndis.h (inclure Ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | Irql_Protocol_Driver_Function(ndis) |