Share via


MINIPORT_CO_CREATE_VC fonction de rappel (ndis.h)

La fonction MiniportCoCreateVc est requise pour les miniports orientés connexion. MiniportCoCreateVc est appelé par NDIS pour indiquer au pilote miniport qu’un nouveau vc est en cours de création.

Note Vous devez déclarer la fonction à l’aide du type MINIPORT_CO_CREATE_VC . Pour plus d’informations, consultez la section Exemples suivante.
 

Syntaxe

MINIPORT_CO_CREATE_VC MiniportCoCreateVc;

NDIS_STATUS MiniportCoCreateVc(
  [in]  NDIS_HANDLE MiniportAdapterContext,
  [in]  NDIS_HANDLE NdisVcHandle,
  [out] PNDIS_HANDLE MiniportVcContext
)
{...}

Paramètres

[in] MiniportAdapterContext

Spécifie le handle d’une zone de contexte allouée par le pilote miniport dans laquelle le pilote miniport conserve les informations d’état sur cette instance de l’adaptateur. Le pilote miniport a fourni ce handle à NDIS en appelant NdisMSetMiniportAttributes à partir de son Fonction MiniportInitializeEx .

[in] NdisVcHandle

Spécifie un handle, fourni par NDIS, qui identifie de manière unique le vc en cours de création. Ce handle est opaque pour le pilote miniport et réservé à l’utilisation de la bibliothèque NDIS.

[out] MiniportVcContext

Spécifie, lors de la sortie, un handle vers une zone de contexte fournie par le pilote miniport dans laquelle le pilote miniport conserve l’état de la vc.

Valeur retournée

Code de retour Description
NDIS_STATUS_SUCCESS
Indique que le pilote miniport a correctement alloué toutes les ressources nécessaires et s’est préparé à la gestion des demandes pour le vc nouvellement créé.
NDIS_STATUS_RESOURCES
Indique que le gestionnaire d’appels n’a pas pu obtenir les ressources allouées dynamiquement nécessaires pour fonctionner sur le nouveau vc.

Remarques

MiniportCoCreateVc doit être écrit en tant que fonction synchrone et ne peut, en aucun cas, retourner NDIS_STATUS_PENDING sans provoquer une défaillance à l’échelle du système.

MiniportCoCreateVc alloue toutes les ressources nécessaires dont le pilote miniport a besoin pour conserver les informations d’état sur le vc. Les ressources peuvent inclure, sans s’y limiter, des mémoires tampons, des événements, des structures de données et d’autres ressources similaires.

Après avoir alloué toutes les ressources requises, le pilote miniport doit initialiser les ressources dans un état utilisable et retourner un pointeur vers la zone d’état dans MiniportVcContext. Le handle est défini en déréférençant le handle et en stockant un pointeur vers la mémoire tampon d’état comme valeur du handle. Par exemple :

*MiniportVcContext = SomeBuffer;

Les pilotes miniport doivent stocker le handle dans le vc, NdisVcHandle, dans leur zone d’état, car il s’agit d’un paramètre obligatoire pour d’autres routines de bibliothèque NDIS qui sont ensuite appelées par le pilote miniport.

Exemples

Pour définir une fonction MiniportCoCreateVc , vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction que vous définissez. Windows fournit un ensemble de types de fonctions pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une fonction MiniportCoCreateVc nommée « MyCoCreateVc », utilisez le type MINIPORT_CO_CREATE_VC comme indiqué dans cet exemple de code :

MINIPORT_CO_CREATE_VC MyCoCreateVc;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
NDIS_STATUS
 MyCoCreateVc(
    NDIS_HANDLE  MiniportAdapterContext,
    NDIS_HANDLE  NdisVcHandle,
    PNDIS_HANDLE  MiniportVcContext
    )
  {...}

Le type de fonction MINIPORT_CO_CREATE_VC est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction MINIPORT_CO_CREATE_VC dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes NDIS.

Pour plus d’informations sur Use_decl_annotations, consultez Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir MiniportCoCreateVc (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir MiniportCoCreateVc (NDIS 5.1)) dans Windows XP.
Plateforme cible Windows
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

MiniportInitializeEx

NdisMSetMiniportAttributes