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ée par NDIS pour indiquer au pilote miniport qu’une connexion virtuelle est activée.

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

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 par le 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, comme spécifié par le gestionnaire d’appels, à établir pour cette vc. En 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 de retour

Retourner le code Description
NDIS_STATUS_SUCCESS
Indique que le vc a été activé avec succès.
NDIS_STATUS_PENDING
Indique que le pilote miniport termine la demande d’activation asynchrone d’une 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 à 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 la vc, car il n’a pas pu allouer toutes les ressources requises dont le pilote miniport a besoin pour conserver les informations d’état sur la vc active.

Remarques

Le pilote miniport doit valider les paramètres d’appel de 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 une seule 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 satisfaire 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 paramètres d’appel plus anciens.

Si les indicateurs de ROUND_UP_FLOW ou de ROUND_DOWN_FLOW sont définis dans la structure des paramètres d’appel à CallParameters->MediaParameters->Indicateurs, le pilote miniport a été demandé pour retourner le débit réel du vc une fois que le débit de flux a été arrondi selon l’indicateur approprié qui a été défini. Si le pilote miniport modifie l’un des paramètres d’appel, car ces indicateurs ont été définis, il doit retourner les paramètres d’appel réels utilisés pour la vc à CallParameters.

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

exemples de

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 fonctions permet d'Analyse du code pour les pilotes, de vérificateur de pilotes statiques (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des 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 lorsque vous exécutez les 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 annoter le comportement de la fonction.

Exigences

Exigence Valeur
client minimum 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 (voir MiniportCoActivateVc (NDIS 5.1)) dans Windows XP.
plateforme cible Windows
d’en-tête ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete