Partager via


MINIPORT_CO_ACTIVATE_VC fonction de rappel (ndis.h)

La fonction MiniportCoActivateVc est requise pour les miniports orientés connexion. MiniportCoActivateVc est appelé par NDIS pour indiquer au pilote miniport qu’une connexion virtuelle est activée.

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

Syntaxe

MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;

NDIS_STATUS MiniportCoActivateVc(
  [in]      NDIS_HANDLE MiniportVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

Paramètres

[in] MiniportVcContext

Spécifie le handle d’une zone de contexte allouée au pilote miniport dans laquelle le pilote miniport conserve son état par VC. Le pilote miniport a fourni cette poignée à NDIS à partir de sa fonction MiniportCoCreateVc .

[in, out] CallParameters

Spécifie les paramètres d’appel, tels que spécifiés par le gestionnaire d’appels, à établir pour cette VC. À la sortie, le pilote miniport retourne des paramètres d’appel modifiés si certains indicateurs sont définis dans la structure CO_CALL_PARAMETERS .

Valeur retournée

Code de retour Description
NDIS_STATUS_SUCCESS
Indique que le VC a été activé avec succès.
NDIS_STATUS_PENDING
Indique que le pilote miniport terminera la demande d’activation asynchrone d’un VC. Lorsque le pilote miniport a terminé ses opérations, il doit appeler NdisMCoActivateVcComplete.
NDIS_STATUS_INVALID_DATA
Indique que les paramètres d’appel spécifiés dans CallParameters ne sont pas valides ou non valides pour le type de support pris en charge par ce pilote miniport.
NDIS_STATUS_RESOURCES
Indique que le pilote miniport n’a pas pu activer le vc, car il n’a pas pu allouer toutes les ressources nécessaires dont le pilote miniport a besoin pour conserver les informations d’état sur le vc actif.

Remarques

Le pilote miniport doit valider les paramètres d’appel pour ce VC, comme spécifié dans CallParameters, pour vérifier que l’adaptateur peut prendre en charge l’appel demandé. Si les paramètres d’appel demandés ne peuvent pas être satisfaits, le pilote miniport doit échouer la demande avec NDIS_STATUS_INVALID_DATA.

MiniportCoActivateVc peut être appelé plusieurs fois pour un seul VC afin de modifier les paramètres d’appel d’un appel déjà actif. À chaque appel, le pilote miniport doit valider les paramètres et effectuer tout traitement requis par son adaptateur afin de répondre à la demande. Toutefois, s’il ne peut pas définir les paramètres d’appel donnés, MiniportCoActivateVc doit laisser le vc dans un état utilisable, car le client orienté connexion ou un gestionnaire d’appels peut continuer à envoyer ou à recevoir des données à l’aide des anciens paramètres d’appel.

Si les indicateurs ROUND_UP_FLOW ou ROUND_DOWN_FLOW sont définis dans la structure des paramètres d’appel dans CallParameters-MediaParameters-Flags>>, le pilote miniport a été invité à retourner le débit réel du vc après que le débit de flux a été arrondi en fonction de l’indicateur approprié qui a été défini. Si le pilote miniport modifie l’un des paramètres d’appel parce que ces indicateurs ont été définis, il doit retourner les paramètres d’appel réels en cours d’utilisation pour le vc sur CallParameters.

Si les paramètres d’appel sont acceptables, MiniportCoActivateVc communique avec son adaptateur si nécessaire pour préparer l’adaptateur à recevoir ou à transmettre des données sur la connexion virtuelle (en d’autres termes, la programmation de mémoires tampons de réception).

Exemples

Pour définir une fonction MiniportCoActivateVc , 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, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification de trouver les erreurs, et 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 MiniportCoActivateVc nommée « MyCoActivateVc », utilisez le type MINIPORT_CO_ACTIVATE_VC comme indiqué dans cet exemple de code :

MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
NDIS_STATUS
 MyCoActivateVc(
    NDIS_HANDLE  MiniportVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Le type de fonction MINIPORT_CO_ACTIVATE_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_ACTIVATE_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 MiniportCoActivateVc (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (consultez MiniportCoActivateVc (NDIS 5.1)) dans Windows XP.
Plateforme cible Windows
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete