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


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

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

Синтаксис

NPI_PROVIDER_DETACH_CLIENT_FN NpiProviderDetachClientFn;

NTSTATUS NpiProviderDetachClientFn(
  [in] PVOID ProviderBindingContext
)
{...}

Параметры

[in] ProviderBindingContext

Указатель на контекст модуля поставщика для привязки между модулем поставщика и клиентским модулем, от которого он отсоединяется. Функция обратного вызова ProviderAttachClient модуля поставщика возвращает этот указатель на NMR при подключении к клиентскому модулю.

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

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

Код возврата Описание
STATUS_SUCCESS
Модуль поставщика успешно отсоединился от клиентского модуля.
STATUS_PENDING
Модуль поставщика не может отсоединиться от клиентского модуля немедленно.

Комментарии

NMR вызывает функцию обратного вызова ProviderDetachClient модуля поставщика всякий раз, когда необходимо завершить привязку между модулем поставщика и клиентским модулем. Отсоединение инициируется клиентским модулем, вызывающим функцию NmrDeregisterClient , или модулем поставщика, вызывающим функцию NmrDeregisterProvider .

После вызова функции обратного вызова ProviderDetachClient модуль поставщика не должен больше вызывать функции обратного вызова NPI клиентского модуля. Если при вызове функции обратного вызова ProviderDetachClient модуля поставщика отсутствуют вызовы каких-либо функций обратного вызова NPI модуля поставщика, функция обратного вызова ProviderDetachClient модуля поставщика возвращает STATUS_SUCCESS.

Если выполняются вызовы одной или нескольких функций обратного вызова NPI клиентского модуля при вызове функции обратного вызова ProviderDetachClient модуля поставщика, функция обратного вызова ProviderDetachClient модуля поставщика возвращает STATUS_PENDING. В этом случае модуль поставщика должен вызватьФункция NmrProviderDetachClientComplete после завершения всех выполняемых вызовов функций обратного вызова NPI клиентского модуля. ВызовФункция NmrProviderDetachClientComplete уведомляет NMR о том, что отсоединение от клиентского модуля завершено.

NMR вызывает клиентский модульФункция обратного вызова ClientCleanupBindingContext и модуль поставщикаФункция обратного вызова ProviderCleanupBindingContext после того, как клиентский модуль и модуль поставщика завершили отсоединение друг от друга.

NMR вызывает функцию обратного вызова ProviderDetachClient модуля поставщика при любом irQL <= DISPATCH_LEVEL.

Требования

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

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

ClientCleanupBindingContext

NPI_PROVIDER_CHARACTERISTICS

NmrDeregisterClient

NmrDeregisterProvider

NmrProviderDetachClientComplete

ProviderAttachClient

ProviderCleanupBindingContext