Partager via


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
NDIS_STATUS_SUCCESS
NdisOpenAdapterEx a réussi l’opération d’ouverture.
NDIS_STATUS_PENDING
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.
NDIS_STATUS_RESOURCES
NdisOpenAdapterEx a échoué en raison de ressources insuffisantes.
NDIS_STATUS_ADAPTER_NOT_FOUND
Échec de NdisOpenAdapterEx , car un adaptateur miniport spécifié dans le membre AdapterName sur OpenParameters est introuvable.
NDIS_STATUS_UNSUPPORTED_MEDIA
É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.
NDIS_STATUS_FAILURE
É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)

Voir aussi

NDIS_OPEN_PARAMETERS

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx