WskCaptureProviderNPI 函数 (wsk.h)
WskCaptureProviderNPI 函数捕获提供程序网络编程接口 (NPI) 从 WSK 子系统可用时。
语法
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 调用使用传递给 WskCaptureProviderNPI 的相同 WskRegistration 参数。
只有在 WskRegistration 块未释放或覆盖的情况下,才能在调用 WskDeregister 后调用 WskCaptureProviderNPI。 调用 WskDeregister 后,对 WskCaptureProviderNPI 的任何进一步调用都将失败,状态代码STATUS_DEVICE_NOT_READY,并且,除非提供程序 NPI 同时可用,否则在等待 WSK 提供程序 NPI 变为可用的其他线程中阻止的任何现有 WskCaptureProviderNPI 调用也将立即返回,状态代码STATUS_DEVICE_NOT_READY。
有关将 WSK 应用程序附加到 WSK 子系统的详细信息,请参阅 注册 Winsock 内核应用程序。
如果 WaitTimeout 未设置为 WSK_NO_WAIT,WskCaptureProviderNPI 函数的调用方必须在 IRQL = PASSIVE_LEVEL 运行;否则,调用方必须在 IRQL <= DISPATCH_LEVEL 运行。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
目标平台 | 通用 |
标头 | wsk.h (包括 Wsk.h) |
Library | Netio.lib |
IRQL | PASSIVE_LEVEL (请参阅备注部分) |