Fonction NmrClientAttachProvider (netioddk.h)

La fonction NmrClientAttachProvider attache un module client à un module fournisseur.

Syntaxe

NTSTATUS NmrClientAttachProvider(
  [in]  HANDLE                 NmrBindingHandle,
  [in]  __drv_aliasesMem PVOID ClientBindingContext,
  [in]  const VOID             *ClientDispatch,
  [out] PVOID                  *ProviderBindingContext,
  [out] const VOID             **ProviderDispatch
);

Paramètres

[in] NmrBindingHandle

Handle utilisé par la RMN pour représenter la liaison entre le module client et le module fournisseur. Le NMR transmet ce handle au module client lorsqu’il appelle la fonction de rappel ClientAttachProvider du module client.

[in] ClientBindingContext

Pointeur vers un contexte fourni par l’appelant pour la liaison entre le module client et le module fournisseur. Le module client utilise ce contexte pour suivre l’état de la liaison. Le contenu du contexte de liaison du module client est opaque pour le module fournisseur. Le module fournisseur transmet ce pointeur au module client chaque fois qu’il appelle l’une des fonctions de rappel NPI du module client qui nécessitent le contexte de liaison du module client. Le module client doit s’assurer que ce contexte reste valide et qu’il réside dans la mémoire tant que le module fournisseur est attaché au module client.

[in] ClientDispatch

Pointeur vers une structure constante qui contient la table de répartition des fonctions de rappel NPI pour le module client. Le module client doit s’assurer que cette structure reste valide et qu’elle réside dans la mémoire tant que le module fournisseur est attaché au module client. Le contenu de la structure est spécifique à NPI. Si le NPI ne définit pas de structure de table de répartition du client, le module client doit définir ce paramètre sur NULL.

[out] ProviderBindingContext

Pointeur vers une variable qui reçoit un pointeur vers le contexte du module fournisseur pour la liaison entre le module client et le module fournisseur. Le module fournisseur utilise ce contexte pour effectuer le suivi de l’état de la liaison. Le contenu du contexte de liaison du module fournisseur est opaque pour le module client. Le module client transmet ce pointeur au module fournisseur chaque fois qu’il appelle l’une des fonctions NPI du module fournisseur qui nécessitent le contexte de liaison du module fournisseur.

[out] ProviderDispatch

Pointeur vers une variable qui reçoit un pointeur vers une structure qui contient la table de répartition de
Fonctions NPI pour le module fournisseur. Le contenu de la structure est spécifique à NPI.

Valeur retournée

La fonction NmrClientAttachProvider retourne l’un des codes NTSTATUS suivants :

Code de retour Description
STATUS_SUCCESS
Le module client a été correctement attaché au module fournisseur.
STATUS_NOINTERFACE
Le module fournisseur ne s’est pas attaché au module client.
Autres codes status
Une erreur est survenue.

Remarques

Un module client appelle la fonction NmrClientAttachProvider à partir de sa fonction de rappel ClientAttachProvider pour s’attacher à un module fournisseur.

Lorsqu’un module client appelle la fonction NmrClientAttachProvider , la NMR appelle la fonction de rappel ProviderAttachClient du module fournisseur pour terminer le processus de pièce jointe. La fonction NmrClientAttachProvider retourne le code status retourné par la fonction de rappel ProviderAttachClient du module fournisseur.

Si la fonction NmrClientAttachProvider ne retourne pas STATUS_SUCCESS, le module client doit effectuer tout nettoyage nécessaire des données contenues dans sa structure de contexte de liaison. Le module client doit ensuite libérer la mémoire pour sa structure de contexte de liaison s’il a alloué dynamiquement la mémoire pour la structure.

Si la fonction NmrClientAttachProvider retourne STATUS_SUCCESS et que le module client a alloué dynamiquement la mémoire pour son contexte de liaison, le module client doit libérer cette mémoire allouée lorsque la RMN appelle le module clientFonction de rappel ClientCleanupBindingContext une fois que le module client et le module fournisseur sont détachés les uns des autres.

Si la fonction NmrClientAttachProvider retourne STATUS_SUCCESS, le module client doit enregistrer les pointeurs retournés dans les paramètres ProviderBindingContext et ProviderDispatch afin qu’il puisse appeler les fonctions NPI du module fournisseur.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête netioddk.h (inclure Wsk.h)
Bibliothèque Netio.lib
IRQL PASSIVE_LEVEL

Voir aussi

ClientAttachProvider

ClientCleanupBindingContext

ProviderAttachClient