Fonction NdisMCmCreateVc (ndis.h)

NdisMCmCreateVc configure un point de terminaison de connexion sur lequel un pilote MCM peut distribuer une offre d’appel entrant à 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 le handle fourni par NDIS entré à l’origine dans MiniportInitializeEx.

[in] NdisAfHandle

Spécifie le handle qui identifie le client cible d’un appel entrant. Le pilote MCM a obtenu ce handle en tant que paramètre d’entrée de 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 pour ce 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 sur NULL avant l’appel de NdisMCmCreateVc . Au 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 ultérieurs aux fonctions NdisXxx orientées connexion concernant ce vc.

Valeur retournée

NdisMCmCreateVc 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 client a échoué à la création du VC pour une raison quelconque, et NDIS a propagé l’erreur status retournée par sa fonction ProtocolCoCreateVc au pilote MCM.

Remarques

Un pilote MCM crée un vc avec NdisMCmCreateVc pour représenter une offre entrante d’une connexion à partir d’un nœud distant dirigé vers un SAP déjà 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 requêtes suivantes concernant le vc donné sont dirigées. 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 NdisMCmCreateVc stockent le NdisVcHandle retourné dans la zone d’état allouée à l’appelant sur MiniportVcContext . NDIS transmet un 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 d’abord appeler NdisMCmCreateVc . En tant qu’opération synchrone, NDIS appelle la fonction ProtocolCoCreateVc du client avant que NdisMCmCreateVc retourne le contrôle. Si son appel à NdisMCmCreateVc réussit, le pilote MCM peut continuer à notifier le client approprié, en passant la valeur retournée à NdisVcHandle à NdisMCmDispatchIncomingCall.

L’enregistreur de pilotes détermine si un pilote MCM a une fonction MiniportCoCreateVc (interne) 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 plutôt NdisCoCreateVc .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisMCmCreateVc (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (consultez NdisMCmCreateVc (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_MCM_Function(ndis)

Voir aussi

MiniportCoCreateVc

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCoCreateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolCmRegisterSap

ProtocolCoCreateVc