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 代码之一:
返回代码 | 描述 |
---|---|
|
提供程序 NPI 捕获成功完成。 |
|
提供程序 NPI 尚不可用。 |
|
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(请参阅“备注”部分) |