NdisMCmCreateVc, fonction (ndis.h)
NdisMCmCreateVc configure un point de terminaison de connexion sur lequel un pilote MCM peut distribuer une offre d’appel entrante à un client.
Syntaxe
NDIS_STATUS NdisMCmCreateVc(
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] NDIS_HANDLE NdisAfHandle,
[in] NDIS_HANDLE MiniportVcContext,
[out] PNDIS_HANDLE NdisVcHandle
);
Paramètres
[in] MiniportAdapterHandle
Spécifie la poignée fournie par NDIS à l’origine à MiniportInitializeEx.
[in] NdisAfHandle
Spécifie le handle qui identifie le client qui est la cible d’un appel entrant. Le pilote MCM a obtenu ce handle en tant que paramètre d’entrée pour sa fonction ProtocolCmOpenAf.
[in] MiniportVcContext
Spécifie le handle d’une zone de contexte résident fournie par l’appelant dans laquelle le pilote MCM conserve l’état de cette vc. NDIS transmet ce handle au pilote MCM dans tous les appels suivants concernant ce vc si l’appel à NdisMCmCreateVc réussit.
[out] NdisVcHandle
Pointeur vers une variable fournie par l’appelant qui doit être initialisée pour NULL avant NdisMCmCreateVc est appelée. Lors du retour d’un appel réussi, cette variable a été définie sur un handle fourni par NDIS pour le vc nouvellement créé. L’appelant doit enregistrer ce handle pour les appels suivants vers des fonctions Ndis orientées connexionXxx concernant cette vc.
Valeur de retour
NdisMCmCreateVc pouvez retourner l’une des options suivantes :
Retourner le code | Description |
---|---|
|
NDIS a créé le vc avec succès. |
|
NDIS n’a pas pu allouer suffisamment de mémoire pour configurer la vc. |
|
Le NdisAfHandle n’est pas valide donné. |
|
Le client a échoué la création du vc pour une raison quelconque, et NDIS a propagé l’état d’erreur retourné par sa fonction ProtocolCoCreateVc au pilote MCM. |
Remarques
Un pilote MCM crée une vc avec NdisMCmCreateVc pour représenter une offre entrante d’une connexion à partir d’un nœud distant dirigé vers un SAP qui a déjà été inscrit auprès du pilote MCM.
Dans le processus de création de vc, NDIS fournit un NdisVcHandle au client et au pilote MCM. Ce handle identifie la connexion virtuelle pour le client et le pilote miniport vers lequel les demandes ultérieures concernant la vc donnée sont dirigées. Chaque pilote doit traiter ce handle VC comme une variable opaque, en le transmettant non modifié et non interprété dans les appels suivants à certaines fonctions de bibliothèque NDIS orientées connexion.
En règle générale, les appelants de NdisMCmCreateVc stockent le NdisVcHandle retourné dans la zone d’état allouée par l’appelant à MiniportVcContext. NDIS transmet une NdisVcHandle en tant que paramètre d’entrée à la fonction ProtocolCoCreateVc du client approprié chaque fois qu’un pilote MCM crée un vc.
Lorsqu’un pilote MCM traite l’offre d’un appel entrant dirigé vers l’une de ses SAP inscrites, il doit appeler NdisMCmCreateVc d’abord. En tant qu’opération synchrone, NDIS appelle la fonction ProtocolCoCreateVc du client avant NdisMCmCreateVc retourne le contrôle. Si son appel à NdisMCmCreateVc réussit, le pilote MCM peut continuer à notifier le client approprié, en transmettant la valeur retournée à NdisVcHandle à NdisMCmDispatchIncomingCall.
L’enregistreur de pilotes détermine si un pilote MCM a un MiniportCoCreateVc fonction que le pilote appelle dans le contexte de la configuration des connexions pour les appels sortants et entrants.
Seuls les pilotes miniport orientés connexion qui fournissent une prise en charge intégrée de la gestion des appels peuvent appeler NdisMCmCreateVc. Les gestionnaires d’appels et les clients autonomes, qui s’inscrivent auprès de NDIS en tant que pilotes de protocole, appellent NdisCoCreateVc à la place.