WskCaptureProviderNPI 函数 (wsk.h)

WskCaptureProviderNPI 函数在 WSK 子系统可用时捕获提供程序 网络编程接口 (NPI)

语法

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

参数

[in] WskRegistration

指向 WskRegister 初始化的内存位置的指针,用于标识 WSK 应用程序的注册实例。 有关详细信息,请参阅 WSK_REGISTRATION

[in] WaitTimeout

WskCaptureProviderNPI 函数等待的时间(以毫秒为单位),直到 WSK 提供程序 NPI 可用。 或者,可以指定以下内容:

WSK_NO_WAIT

如果提供程序 NPI 不可用,则立即从此函数返回。

WSK_INFINITE_WAIT

等待提供程序 NPI 从 WSK 子系统获取。

有关如何使用此参数的详细信息,请参阅 注册 Winsock 内核应用程序

[out] WskProviderNpi

指向 WSK 提供程序返回的 NPI 的指针。 此 WSK_PROVIDER_NPI 结构包含指向 WSK 应用程序可以调用的 WSK 函数的 WSK 提供程序调度表的指针。

返回值

WskCaptureProviderNPI 返回以下 NTSTATUS 代码之一:

返回代码 描述
STATUS_SUCCESS
提供程序 NPI 捕获成功完成。
STATUS_DEVICE_NOT_READY
提供程序 NPI 尚不可用。
STATUS_NOINTERFACE
WSK 子系统不支持 WSK 客户端请求的版本。
其他状态代码
提供程序 NPI 捕获失败。

言论

对于返回成功代码 WskCaptureProviderNPI 的每个调用,必须有一个相应的 WskReleaseProviderNPI 调用,该调用使用相同的 WskRegistration 参数传递给 WskCaptureProviderNPI

只有在未释放或覆盖 WskRegistration 块时,才能调用 WskCaptureProviderNPI,调用 wskDeregister WskDeregister。 调用 WskDeregister 后, 对 WskCaptureProviderNPI 的任何进一步调用都将失败,状态代码STATUS_DEVICE_NOT_READY失败,除非提供程序 NPI 并发可用,否则任何现有的 WskCaptureProviderNPI 调用在其他线程中被阻止,等待 WSK 提供程序 NPI 变为可用也将立即返回状态代码STATUS_DEVICE_NOT_READY。

有关将 WSK 应用程序附加到 WSK 子系统的详细信息,请参阅 注册 Winsock 内核应用程序

如果 WaitTimeout 未设置为WSK_NO_WAIT,则必须在 IRQL = PASSIVE_LEVEL 运行 WskCaptureProviderNPI 函数的调用方;否则,调用方必须在 IRQL <= DISPATCH_LEVEL运行。

要求

要求 价值
最低支持的客户端 在 Windows Vista 和更高版本的 Windows作系统中可用。
目标平台 普遍
标头 wsk.h (包括 Wsk.h)
Netio.lib
IRQL PASSIVE_LEVEL(请参阅“备注”部分)

另请参阅

WskDeregister

WskRegister

WskReleaseProviderNPI