NPI_PROVIDER_ATTACH_CLIENT_FN fonction de rappel (netioddk.h)
La fonction de rappel ProviderAttachClient d’un module fournisseur attache le module fournisseur à un module client.
Syntaxe
NPI_PROVIDER_ATTACH_CLIENT_FN NpiProviderAttachClientFn;
NTSTATUS NpiProviderAttachClientFn(
[in] HANDLE NmrBindingHandle,
[in] PVOID ProviderContext,
[in] PNPI_REGISTRATION_INSTANCE ClientRegistrationInstance,
[in] PVOID ClientBindingContext,
[in] const VOID *ClientDispatch,
[out] PVOID *ProviderBindingContext,
[out] const VOID **ProviderDispatch
)
{...}
Paramètres
[in] NmrBindingHandle
Handle utilisé par la NMR pour représenter la liaison entre le module client et le module fournisseur.
[in] ProviderContext
Pointeur vers le contexte d’inscription du module fournisseur. Le module fournisseur transmet ce pointeur à la NMR lorsqu’il appelle la fonction NmrRegisterProvider pour s’inscrire auprès de la NMR.
[in] ClientRegistrationInstance
Pointeur vers un structure NPI_REGISTRATION_INSTANCE. Cette structure contient les données d’inscription du module client.
[in] ClientBindingContext
Pointeur vers le contexte du module client 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’un des NPI du module client fonctions de rappel qui nécessitent le contexte de liaison du module client.
[in] ClientDispatch
Pointeur vers une structure constante qui contient la table de distribution de NPI fonctions de rappel pour le module client. Le contenu de la structure est spécifique à l’indicateur NPI. Si l’indicateur de performance réseau ne définit pas de structure de table de répartition du client, ce pointeur est NULL.
[out] ProviderBindingContext
Pointeur vers une variable dans laquelle le module fournisseur stocke un pointeur vers son contexte pour la liaison entre le module client et le module fournisseur. Le module fournisseur utilise ce contexte pour suivre 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. Le module fournisseur doit s’assurer que ce contexte reste valide et résident en mémoire tant que le module client est attaché au module fournisseur.
[out] ProviderDispatch
Pointeur vers une variable dans laquelle le module fournisseur stocke un pointeur vers une structure constante qui contient la table de distribution de fonctions nPI pour le module fournisseur. Le module fournisseur doit s’assurer que cette structure reste valide et réside dans la mémoire tant que le module client est attaché au module fournisseur. Le contenu de la structure est spécifique à l’indicateur NPI.
Valeur de retour
La fonction de rappel ProviderAttachClient d’un module fournisseur retourne l’un des codes NTSTATUS suivants :
Retourner le code | Description |
---|---|
|
Le module fournisseur a réussi à être attaché au module client. |
|
Le module fournisseur n’a pas attaché au module client. |
|
Une erreur s’est produite. |
Remarques
La NMR appelle la fonction de rappel ProviderAttachClient d’un module fournisseur chaque fois qu’un module client appelle la fonction NmrClientAttachProvider avec un handle qui représente une liaison entre le module client et le module fournisseur.
Un module fournisseur peut examiner les données d’inscription du module client. Ces données se situent dans la structure pointée par le paramètre ClientRegistrationInstance. Le module fournisseur utilise ces données pour déterminer s’il sera attaché au module client :
- Si le module fournisseur détermine qu’il est attaché au module client, la fonction de rappel ProviderAttachClient doit effectuer les opérations suivantes :
- Enregistrez les pointeurs passés dans les paramètres clientBindingContext et ClientDispatch afin que le module fournisseur puisse effectuer des appels aux fonctions de NPI du module client.
- Enregistrez le handle passé dans le paramètre NmrBindingHandle. Le module fournisseur transmet ce handle en tant que paramètre au fonction NmrProviderDetachClientComplete lorsqu’elle se détache du module client.
- Définissez le paramètre ProviderBindingContext pour pointer vers la structure de contexte de liaison du module fournisseur pour la liaison entre le module client et le module fournisseur.
- Définissez le paramètre ProviderDispatch pour qu’il pointe vers une structure qui contient la table de répartition du module fournisseur de fonctions de NPI.
- Retourne STATUS_SUCCESS.
- Si le module fournisseur détermine qu’il n’est pas attaché au module client, la fonction de rappel ProviderAttachClient doit retourner STATUS_NOINTERFACE.
La NMR appelle la fonction de rappel ProviderAttachClient d’un module fournisseur à IRQL = PASSIVE_LEVEL.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Windows |
d’en-tête | netioddk.h (include Wsk.h) |
IRQL | PASSIVE_LEVEL |