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.
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 |
---|---|
|
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éé. |
|
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 |