Partager via


Fonction WskCaptureProviderNPI (wsk.h)

La fonction WskCaptureProviderNPI capture une interface de programmation réseau (NPI) du fournisseur lorsqu’elle devient disponible à partir du sous-système WSK.

Syntaxe

NTSTATUS WskCaptureProviderNPI(
  [in]  PWSK_REGISTRATION WskRegistration,
  [in]  ULONG             WaitTimeout,
  [out] PWSK_PROVIDER_NPI WskProviderNpi
);

Paramètres

[in] WskRegistration

Pointeur vers l’emplacement de mémoire initialisé par WskRegister qui identifie les instance d’inscription d’une application WSK. Pour plus d’informations, consultez WSK_REGISTRATION.

[in] WaitTimeout

Durée, en millisecondes, pendant laquelle la fonction WskCaptureProviderNPI peut attendre que le NPI du fournisseur WSK soit disponible. Vous pouvez également spécifier les éléments suivants :

WSK_NO_WAIT

Retournez immédiatement à partir de cette fonction si le NPI du fournisseur n’est pas disponible.

WSK_INFINITE_WAIT

Attendez que le NPI du fournisseur soit disponible à partir du sous-système WSK.

Pour plus d’informations sur l’utilisation de ce paramètre, consultez Inscription d’une application de noyau Winsock.

[out] WskProviderNpi

Pointeur vers l’indicateur NPI retourné par le fournisseur WSK. Cette structure WSK_PROVIDER_NPI contient un pointeur vers la table de répartition du fournisseur WSK des fonctions WSK que l’application WSK peut appeler.

Valeur retournée

WskCaptureProviderNPI retourne l’un des codes NTSTATUS suivants :

Code de retour Description
STATUS_SUCCESS
La capture NPI du fournisseur s’est terminée avec succès.
STATUS_DEVICE_NOT_READY
L’indicateur NPI du fournisseur n’était pas encore disponible.
STATUS_NOINTERFACE
La version demandée par le client WSK n’est pas prise en charge par le sous-système WSK.
Autres codes status
La capture NPI du fournisseur a échoué.

Remarques

Pour chaque appel à WskCaptureProviderNPI qui retourne un code de réussite, il doit y avoir exactement un appel WskReleaseProviderNPI correspondant qui utilise le même paramètre WskRegistration qui a été passé à WskCaptureProviderNPI.

WskCaptureProviderNPI peut être appelé après un appel à WskDeregister uniquement si le bloc WskRegistration n’est pas libéré ou remplacé. Une fois WskDeregister appelé, tous les autres appels à WskCaptureProviderNPI échouent avec status code STATUS_DEVICE_NOT_READY, et, à moins que le NPI du fournisseur ne devienne disponible simultanément, tous les appels WskCaptureProviderNPI existants qui sont bloqués dans d’autres threads en attente de la disponibilité du NPI du fournisseur WSK seront également retournés immédiatement avec status code STATUS_DEVICE_NOT_READY.

Pour plus d’informations sur l’attachement d’une application WSK au sous-système WSK, consultez Inscription d’une application de noyau Winsock.

Les appelants de la fonction WskCaptureProviderNPI doivent être en cours d’exécution à IRQL = PASSIVE_LEVEL si WaitTimeout n’est pas défini sur WSK_NO_WAIT ; sinon, les appelants doivent être en cours d’exécution à IRQL <= DISPATCH_LEVEL.

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 Universal
En-tête wsk.h (inclure Wsk.h)
Bibliothèque Netio.lib
IRQL PASSIVE_LEVEL (voir la section Remarques)

Voir aussi

WskDeregister

WskRegister

WskReleaseProviderNPI