Partager via


PROTOCOL_CL_DEREGISTER_SAP_COMPLETE fonction de rappel (ndis.h)

La fonction ProtocolClDeregisterSapComplete est utilisée par les clients NDIS orientés connexion. Les clients NDIS orientés connexion qui acceptent les appels entrants doivent disposer de fonctions ProtocolClDeregisterSapComplete pour effectuer les opérations asynchrones qu’ils lancent avec NdisClDeregisterSap. Sinon, la fonction ProtocolClDeregisterSapComplete inscrite d’un pilote de protocole peut simplement retourner le contrôle.

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

Syntaxe

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE ProtocolClDeregisterSapComplete;

void ProtocolClDeregisterSapComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolSapContext
)
{...}

Paramètres

[in] Status

Spécifie le status final de la demande du client de désinscription de son SAP, qui peut être l’un des éléments suivants :

NDIS_STATUS_SUCCESS

Le SAP a été fermé. Le NdisSapHandle qui représentait le SAP précédemment inscrit du client, que le client a stocké dans sa zone ProtocolSapContext , n’est désormais pas valide.

NDIS_STATUS_FAILURE

NDIS avait marqué l’état du AF comme « fermant », de sorte que le SAP associé représenté par le NdisSapHandle a déjà été publié lorsque l’appel du client à NdisClDeregisterSap s’est produit.

NDIS_STATUS_XXX

Le gestionnaire d’appels a échoué à la demande de fermeture du SAP pour une raison déterminée par cm, et NDIS a propagé le status retourné par son Fonction ProtocolCmDeregisterSap sur le client.

[in] ProtocolSapContext

Spécifie le handle fourni par le client à sa zone de contexte par SAP, initialement passé à NDIS avec NdisClRegisterSap. Une fois que le gestionnaire d’appels a annulé l’inscription de ce SAP, le client peut libérer sa zone de contexte ou préparer cette zone de contexte pour la réutilisation.

Valeur de retour

None

Remarques

Un appel à ProtocolClDeregisterSapComplete indique que l’appel précédent du client à NdisClDeregisterSap a été traité par le gestionnaire d’appels.

À moins que le gestionnaire d’appels n’ait échoué à la désinscription pour une raison déterminée par cm, le client doit considérer le NdisSapHandle non valide lorsque ProtocolClDeregisterSapComplete est appelé. Par conséquent, ProtocolClDeregisterSapComplete peut libérer la zone de contexte par SAP allouée par le client ou la préparer à la réutilisation dans un appel ultérieur à NdisClRegisterSap.

Exemples

Pour définir une fonction ProtocolClDeregisterSapComplete , 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 ProtocolClDeregisterSapComplete nommée « MyClDeregisterSapComplete », utilisez le type PROTOCOL_CL_DEREGISTER_SAP_COMPLETE comme indiqué dans cet exemple de code :

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE MyClDeregisterSapComplete;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyClDeregisterSapComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolSapContext
    )
  {...}

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

Voir aussi

NdisClDeregisterSap

NdisClRegisterSap

NdisCmDeregisterSapComplete

NdisFreeMemory

NdisFreeToNPagedLookasideList

NdisMCmDeregisterSapComplete

ProtocolCmDeregisterSap