Поделиться через


Функция 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 может ждать, пока NPI поставщика WSK станет доступным. Кроме того, можно указать следующее:

WSK_NO_WAIT

Вернитесь из этой функции немедленно, если NPI поставщика недоступен.

WSK_INFINITE_WAIT

Дождитесь, пока NPI поставщика не будет доступен из подсистемы WSK.

Дополнительные сведения об использовании этого параметра см. в разделе Регистрация приложения ядра Winsock.

[out] WskProviderNpi

Указатель на NPI, возвращенный поставщиком WSK. Эта структура 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.

WskCaptureProviderNPI можно вызывать после вызова WskDeregister , только если блок WskRegistration не освобожден или не перезаписан. После вызова WskDeregister все дальнейшие вызовы WskCaptureProviderNPI завершаются сбоем с кодом состояния STATUS_DEVICE_NOT_READY, и, если NPI поставщика не станет доступным одновременно, все существующие вызовы WskCaptureProviderNPI , заблокированные в других потоках, ожидающих, пока NPI поставщика WSK станет доступным, также будут немедленно возвращаться с кодом состояния STATUS_DEVICE_NOT_READY.

Дополнительные сведения о присоединении приложения WSK к подсистеме WSK см. в разделе Регистрация приложения ядра Winsock.

Вызывающие функции WskCaptureProviderNPI должны выполняться в irQL = PASSIVE_LEVEL, если для WaitTimeout не задано значение WSK_NO_WAIT; В противном случае вызывающие средства должны выполняться в IRQL <= DISPATCH_LEVEL.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть wsk.h (включая Wsk.h)
Библиотека Netio.lib
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

См. также раздел

WskDeregister

WskRegister

WskReleaseProviderNPI