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 a créé le vc avec succès. |
|
NDIS n’a pas pu allouer suffisamment de mémoire pour configurer le vc. |
|
Le NdisAfHandle donné n’est pas valide. |
|
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) |