Partager via


PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE fonction de rappel (ndis.h)

La fonction ProtocolClModifyCallQoSComplete est utilisée par les clients NDIS orientés connexion qui peuvent modifier la qualité de service sur une connexion dynamiquement. Ces clients doivent avoir fonctions ProtocolClModifyCallQoSComplete pour effectuer les opérations asynchrones qu’ils lancent avec NdisClModifyCallQoS. Dans le cas contraire, la fonction ProtocolClModifyCallQoSComplete d’un pilote de protocole peut simplement retourner le contrôle.

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

Syntaxe

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;

void ProtocolClModifyCallQosComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Paramètres

[in] Status

Spécifie l’état final de la demande asynchrone du client pour modifier les paramètres d’appel de cette vc comme l’une des suivantes :

NDIS_STATUS_SUCCESS

La QoS a été modifiée comme demandé par le client.

NDIS_STATUS_RESOURCES

NDIS ou le gestionnaire d’appels n’a pas pu modifier la QoS, car l’une d’entre elles n’a pas pu allouer de ressources suffisantes dynamiquement.

NDIS_STATUS_INVALID_DATA

Les paramètres d’appel fournis par le client à NdisClModifyCallQoS n’étaient pas valides.

NDIS_STATUS_FAILURE

Le gestionnaire d’appels n’a pas pu modifier la Qualité de service en raison d’une défaillance sur le réseau ou dans un autre composant réseau orienté connexion.

NDIS_STATUS_XXX

Le gestionnaire d’appels n’a pas pu modifier la Qualité de service et NDIS a propagé l’état d’échec déterminé par CM au client.

[in] ProtocolVcContext

Spécifie le handle de la zone de contexte par VC du client, que le client a initialement fourni à NDIS lorsqu’il a appelé NdisCoCreateVc pour configurer la vc pour sa demande d’appel sortante ou à partir de sa fonction ProtocolCoCreateVc si le client a accepté un appel entrant sur cette vc.

[in] CallParameters

Pointeur vers une structure de CO_CALL_PARAMETERS mise en mémoire tampon contenant la qoS spécifiée par le client la modification demandée, ou éventuellement la qoS d’origine pour cette vc établie lors de l’activation de la connexion, que le gestionnaire d’appels a restauré.

Valeur de retour

Aucun

Remarques

Un appel à ProtocolClModifyCallQoSComplete indique que le gestionnaire d’appels a terminé le traitement d’une demande initiée par le client pour modifier la qualité du service sur un vc actif. Par exemple, si le support réseau sous-jacent prend en charge les modifications de qoS dynamiques, un client peut demander des modifications à tout moment sur une vc active.

Si l’appel du client à NdisClModifyCallQoS réussit, ProtocolClModifyCallQoSComplete peut accepter la modification qoS en retournant simplement le contrôle. Sinon, ProtocolClModifyCallQoSComplete peut s’engager dans une négociation plus poussée avec le gestionnaire d’appels tant que le développeur du client place une limite raisonnable sur le nombre de renégociations possibles. Sinon, ProtocolClModifyCallQoSComplete peut simplement supprimer l’appel avec NdisClCloseCall chaque fois que le gestionnaire d’appels rejette une demande de modification de la QoS et que la QoS établie précédemment est devenue inacceptable pour le client.

exemples de

Pour définir une fonction ProtocolClModifyCallQoSComplete, 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 ProtocolClModifyCallQoSComplete nommée « MyClModifyCallQoSComplete », utilisez le type PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE comme illustré dans cet exemple de code :

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyClModifyCallQoSComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Le type de fonction PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE 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 PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE 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 ProtocolClModifyCallQoSComplete (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir ProtocolClModifyCallQoSComplete (NDIS 5.1)) dans Windows XP.
plateforme cible Windows
d’en-tête ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

CO_CALL_PARAMETERS

NdisClCloseCall

NdisClModifyCallQoS

NdisCmModifyCallQoSComplete

NdisMCmModifyCallQoSComplete

ProtocolCmModifyCallQoS

ProtocolCoCreateVc