PROTOCOL_OPEN_ADAPTER_COMPLETE_EX fonction de rappel (ndis.h)
NDIS appelle la fonction ProtocolOpenAdapterCompleteEx d’un pilote de protocole pour effectuer une opération d’adaptateur ouvert pour laquelle la fonction NdisOpenAdapterEx retournée NDIS_STATUS_PENDING.
Syntaxe
PROTOCOL_OPEN_ADAPTER_COMPLETE_EX ProtocolOpenAdapterCompleteEx;
void ProtocolOpenAdapterCompleteEx(
[in] NDIS_HANDLE ProtocolBindingContext,
[in] NDIS_STATUS Status
)
{...}
Paramètres
[in] ProtocolBindingContext
Handle vers une zone de contexte allouée par le pilote de protocole. Le pilote de protocole gère les informations de contexte par liaison dans cette zone de contexte. Le pilote a fourni ce handle à NDIS lorsque le pilote a appelé NdisOpenAdapterEx.
[in] Status
État final de l’opération ouverte pour le pilote miniport sous-jacent. Cette valeur d’état est NDIS_STATUS_SUCCESS si la liaison a été établie ou si un état d’erreur que le pilote sous-jacent détermine.
Valeur de retour
Aucun
Remarques
La fonction ProtocolOpenAdapterCompleteEx est requise. Un pilote de protocole appelle la fonction NdisOpenAdapterEx à partir de sa fonction ProtocolBindAdapterEx. NDIS appelle la fonction ProtocolOpenAdapterCompleteEx du pilote une fois qu’une opération ouverte en attente est terminée.
Si ProtocolBindAdapterEx attend que NDIS appelle ProtocolOpenAdapterCompleteEx, cette fonction peut simplement enregistrer l’état et indiquer qu’elle a été appelée (par exemple, elle peut mettre à jour la zone de contexte ProtocolBindingContext). Cela permet à la fonction ProtocolBindAdapterEx d’effectuer l’opération de liaison.
Si la fonction ProtocolBindAdapterEx n’a pas déjà été effectuée, ProtocolOpenAdapterCompleteEx pouvez allouer les ressources requises par le pilote pour la liaison.
Si ProtocolBindAdapterEx retourné NDIS_STATUS_PENDING, ProtocolOpenAdapterCompleteEx pouvez appeler le fonction NdisCompleteBindAdapterEx pour terminer l’opération de liaison. Dans ce cas, ProtocolOpenAdapterCompleteEx passe NdisCompleteBindAdapterEx le handle BindContext que NDIS a passé à ProtocolBindAdapterEx. Si le paramètre Status indique une erreur, ProtocolOpenAdapterCompleteEx peut libérer des ressources de liaison configurées dans ProtocolBindAdapterEx.
NDIS appelle ProtocolOpenAdapterCompleteEx à IRQL = PASSIVE_LEVEL.
exemples de
Pour définir une fonction ProtocolOpenAdapterCompleteEx, 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 ProtocolOpenAdapterCompleteEx nommée « MyOpenAdapterCompleteEx », utilisez le type PROTOCOL_OPEN_ADAPTER_COMPLETE_EX comme indiqué dans cet exemple de code :
PROTOCOL_OPEN_ADAPTER_COMPLETE_EX MyOpenAdapterCompleteEx;
Ensuite, implémentez votre fonction comme suit :
_Use_decl_annotations_
VOID
MyOpenAdapterCompleteEx(
NDIS_HANDLE ProtocolBindingContext,
NDIS_STATUS Status
)
{...}
Le type de fonction PROTOCOL_OPEN_ADAPTER_COMPLETE_EX 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_OPEN_ADAPTER_COMPLETE_EX 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 | Prise en charge dans NDIS 6.0 et versions ultérieures. |
plateforme cible | Windows |
d’en-tête | ndis.h (include Ndis.h) |
IRQL | PASSIVE_LEVEL |