функция обратного вызова NPI_CLIENT_ATTACH_PROVIDER_FN (netioddk.h)

Функция обратного вызова ClientAttachProvider клиентского модуля присоединяет клиентский модуль к модулю поставщика.

Синтаксис

NPI_CLIENT_ATTACH_PROVIDER_FN NpiClientAttachProviderFn;

NTSTATUS NpiClientAttachProviderFn(
  [in] HANDLE NmrBindingHandle,
  [in] PVOID ClientContext,
  [in] PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
)
{...}

Параметры

[in] NmrBindingHandle

Дескриптор, используемый NMR для представления привязки между клиентским модулем и модулем поставщика.

[in] ClientContext

Указатель на контекст регистрации клиентского модуля. Клиентский модуль передает этот указатель на NMR при вызове функции NmrRegisterClient для регистрации в NMR.

[in] ProviderRegistrationInstance

Указатель на объект структура NPI_REGISTRATION_INSTANCE . Эта структура содержит данные регистрации модуля поставщика.

Возвращаемое значение

Функция обратного вызова ClientAttachProvider модуля клиента возвращает один из следующих кодов NTSTATUS:

Код возврата Описание
STATUS_SUCCESS
Клиентский модуль и модуль поставщика успешно подключены друг к другу.
STATUS_NOINTERFACE
Либо клиентский модуль не подключился к модулю поставщика, либо модуль поставщика не подключился к клиентскому модулю.
Другие коды состояния
Произошла ошибка.

Примечания

После того как клиентский модуль зарегистрировался в NMR, NMR вызывает функцию обратного вызова ClientAttachProvider клиентского модуля один раз для каждого модуля поставщика, зарегистрированного в качестве поставщика того же NPI , для которого клиентский модуль зарегистрировался в качестве клиента.

NMR также вызывает функцию обратного вызова ClientAttachProvider клиентского модуля, когда новый сетевой модуль регистрируется в качестве поставщика того же NPI , для которого клиентский модуль зарегистрирован в качестве клиента.

Клиентский модуль может изучить данные регистрации модуля поставщика. Эти данные указаны в структуре, на которую указывает параметр ProviderRegistrationInstance . Клиентский модуль использует эти данные, чтобы определить, будет ли он подключаться к модулю поставщика:

  • Если клиентский модуль определяет, что он подключится к модулю поставщика, функция обратного вызова ClientAttachProvider вызывает функцию NmrClientAttachProvider , чтобы продолжить процесс вложения. В этом случае функция обратного вызова ClientAttachProvider должна возвращать код состояния, возвращаемый вызовом Функция NmrClientAttachProvider .
  • Если клиентский модуль определяет, что он не будет подключаться к модулю поставщика, функция обратного вызова ClientAttachProvider должна возвращать STATUS_NOINTERFACE.
Если клиентский модуль успешно подключается к модулю поставщика, он должен сохранить дескриптор, указанный в параметре NmrBindingHandle . Клиентский модуль передает этот дескриптор в качестве параметра в Функция NmrClientDetachProviderComplete при отключении от модуля поставщика.

NMR вызывает функцию обратного вызова ClientAttachProvider клиентского модуля в IRQL = PASSIVE_LEVEL.

Требования

   
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Windows
Header netioddk.h (включая Wsk.h)
IRQL PASSIVE_LEVEL

См. также

ClientDetachProvider

NPI_CLIENT_CHARACTERISTICS

NPI_REGISTRATION_INSTANCE

NmrClientAttachProvider

NmrClientDetachProviderComplete

NmrRegisterClient