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


функция обратного вызова 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 nmR вызывает функцию обратного вызова клиентского модуля ClientAttachProvider для каждого модуля поставщика, зарегистрированного в качестве поставщика той же NPI, для которой клиентский модуль зарегистрирован в качестве клиента.

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях операционных систем Windows.
целевая платформа Виндоус
заголовка netioddk.h (include Wsk.h)
IRQL PASSIVE_LEVEL

См. также

ClientDetachProvider

NPI_CLIENT_CHARACTERISTICS

NPI_REGISTRATION_INSTANCE

NmrClientAttachProvider

NmrClientDetachProviderComplete

NmrRegisterClient