Fonction NdisCoCreateVc (ndis.h)

NdisCoCreateVc configure un point de terminaison de connexion à partir duquel un client peut effectuer des appels sortants ou sur lequel un gestionnaire d’appels autonome peut distribuer des appels entrants.

Syntaxe

NDIS_STATUS NdisCoCreateVc(
  [in]           NDIS_HANDLE  NdisBindingHandle,
  [in, optional] NDIS_HANDLE  NdisAfHandle,
  [in]           NDIS_HANDLE  ProtocolVcContext,
  [in, out]      PNDIS_HANDLE NdisVcHandle
);

Paramètres

[in] NdisBindingHandle

Spécifie le handle retourné par NdisOpenAdapterEx qui identifie la carte réseau ou l’adaptateur virtuel cible du pilote inférieur suivant auquel l’appelant est lié.

[in, optional] NdisAfHandle

Spécifie le handle retourné par NdisClOpenAddressFamilyEx si l’appelant est un client. Un gestionnaire d’appels définit ce paramètre sur NULL s’il crée un vc pour lui-même, tel qu’un vc sur un commutateur réseau. Lorsqu’il crée un vc pour les notifications d’appel entrantes, un gestionnaire d’appels transmet le handle AF qu’il a enregistré dans son état par AF désigné par le CallMgrAfContext qui a été passé en tant que paramètre d’entrée à son Fonction ProtocolCmRegisterSap .

[in] ProtocolVcContext

Spécifie le handle d’une zone de contexte résident fournie par l’appelant dans laquelle l’appelant maintient l’état pour ce vc. NDIS transmet ce handle au créateur de vc dans tous les appels suivants concernant ce point de terminaison si l’appel à NdisCoCreateVc réussit.

[in, out] NdisVcHandle

Pointeur vers une variable fournie par l’appelant qui doit être initialisée sur NULL lorsque NdisCoCreateVc est appelé. Au retour d’un appel réussi, cela pointe vers une variable que NDIS a définie sur son handle pour le vc nouvellement créé. L’appelant doit enregistrer ce handle pour les appels ultérieurs aux fonctions Ndis Xxx orientées connexion.

Valeur retournée

NdisCoCreateVc peut retourner l’un des éléments suivants :

Code de retour Description
NDIS_STATUS_SUCCESS
NDIS a créé le vc avec succès.
NDIS_STATUS_RESOURCES
NDIS n’a pas pu allouer suffisamment de mémoire pour configurer le vc.
NDIS_STATUS_FAILURE
Le NdisAfHandle donné n’est pas valide.
NDIS_STATUS_ XXX
Le pilote miniport sous-jacent a échoué à la création du vc pour une raison déterminée par le pilote miniport, que NDIS a propagée à l’appelant.

Remarques

Un client ou un gestionnaire d’appels autonome crée un vc avec NdisCoCreateVc, selon que le vc représente un appel sortant ou entrant, respectivement.

Dans le processus de création de vc, NDIS fournit un NdisVcHandle au client, au gestionnaire d’appels et au pilote miniport auquel les deux pilotes de protocole sont liés. Ce handle identifie le circuit virtuel pour le client, le gestionnaire d’appels et le pilote miniport vers lequel sont dirigées les requêtes suivantes concernant le VC donné. Chaque pilote doit traiter ce handle VC comme une variable opaque, le passant sans modification et sans interprétation dans les appels suivants à certaines fonctions de bibliothèque NDIS orientées connexion.

En règle générale, les appelants de NdisCoCreateVc stockent le NdisVcHandle retourné dans la zone d’état allouée à l’appelant à l’emplacement ProtocolVcContext . NDIS transmet ce handle en tant que paramètre d’entrée aux fonctions ProtocolCoCreateVc et MiniportCoCreateVc des deux autres pilotes impliqués dans chaque création d’un vc.

Pour effectuer un appel sortant, un client doit d’abord appeler NdisCoCreateVc . En tant qu’opération synchrone, NDIS appelle la fonction MiniportCoCreateVc du pilote miniport sous-jacent et la fonction ProtocolCoCreateVc du gestionnaire d’appels avant que NdisCoCreateVc ne retourne le contrôle. Si son appel à NdisCoCreateVc réussit, le client peut passer un appel sortant, en passant le NdisVcHandle retourné à NdisClMakeCall.

Quand son La fonction ProtocolCoReceiveNetBufferLists traite l’offre d’un appel entrant dirigé vers l’une de ses sapps inscrites. Un gestionnaire d’appels doit d’abord appeler NdisCoCreateVc . En tant qu’opération synchrone, NDIS appelle la fonction MiniportCoCreateVc du pilote miniport sous-jacent et la fonction ProtocolCoCreateVc du client avant que NdisCoCreateVc ne retourne le contrôle. Si son appel à NdisCoCreateVc réussit, le gestionnaire d’appels peut continuer à notifier le client approprié, en passant la valeur retournée à NdisVcHandle à NdisCmDispatchIncomingCall.

Les gestionnaires d’appels autonomes, qui s’inscrivent auprès de NDIS en tant que pilotes de protocole, peuvent appeler NdisCoCreateVc. À la place, les pilotes miniport orientés connexion qui fournissent une prise en charge intégrée de la gestion des appels appellent NdisMCmCreateVc.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisCoCreateVc (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (consultez NdisCoCreateVc (NDIS 5.1)) dans Windows XP.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI Irql_Connection_Function(ndis)

Voir aussi

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoDeleteVc

NdisMCmCreateVc

ProtocolCmRegisterSap

ProtocolCoCreateVc

ProtocolCoReceiveNetBufferLists