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 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 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) |