функция обратного вызова 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:
Код возврата | Описание |
---|---|
|
Клиентский модуль и модуль поставщика успешно подключены друг к другу. |
|
Либо клиентский модуль не подключился к модулю поставщика, либо модуль поставщика не подключился к клиентскому модулю. |
|
Произошла ошибка. |
Комментарии
После регистрации клиентского модуля в NMR он вызывает функцию обратного вызова ClientAttachProvider клиентского модуля по одному разу для каждого модуля поставщика, зарегистрированного как поставщик того же NPI , для которого клиентский модуль зарегистрирован в качестве клиента.
NMR также вызывает функцию обратного вызова ClientAttachProvider клиентского модуля, когда новый сетевой модуль регистрируется в качестве поставщика того же NPI , для которого клиентский модуль зарегистрирован в качестве клиента.
Клиентский модуль может проверять данные регистрации модуля поставщика. Эти данные приведены в структуре, на которую указывает параметр ProviderRegistrationInstance . Клиентский модуль использует эти данные, чтобы определить, будет ли он подключаться к модулю поставщика:
- Если клиентский модуль определяет, что он будет присоединен к модулю поставщика, функция обратного вызова ClientAttachProvider вызывает функцию NmrClientAttachProvider для продолжения процесса вложения. В этом случае функция обратного вызова ClientAttachProvider должна возвращать код состояния, возвращаемый вызовомФункция NmrClientAttachProvider.
- Если клиентский модуль определяет, что он не будет подключаться к модулю поставщика, функция обратного вызова ClientAttachProvider должна возвращать STATUS_NOINTERFACE.
NMR вызывает функцию обратного вызова ClientAttachProvider клиентского модуля в IRQL = PASSIVE_LEVEL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Целевая платформа | Windows |
Header | netioddk.h (включая Wsk.h) |
IRQL | PASSIVE_LEVEL |