Функция NdisClRegisterSap (ndis.h)

NdisClRegisterSap регистрирует SAP, в котором клиент может принимать входящие вызовы с удаленного узла.

Синтаксис

NDIS_STATUS NdisClRegisterSap(
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  ProtocolSapContext,
  [in]  PCO_SAP      Sap,
  [out] PNDIS_HANDLE NdisSapHandle
);

Параметры

[in] NdisAfHandle

Указывает дескриптор, возвращаемый NdisClOpenAddressFamilyEx, который неявно идентифицирует диспетчер вызовов, с помощью которого регистрируется SAP.

[in] ProtocolSapContext

Указывает дескриптор для заданной вызывающим абонентом области контекста, в которой клиент сохраняет состояние для этого SAP после его открытия. NDIS передает этот дескриптор обратно клиенту во всех последующих вызовах, касающихся этого SAP, если вызов NdisClRegisterSap выполнен успешно.

[in] Sap

Указатель на предоставленную клиентом спецификацию для открываемого SAP, отформатированного в виде структуры типа CO_SAP.

[out] NdisSapHandle

Указатель на переменную, в которой при успешном вызове возвращается дескриптор новой зарегистрированной SAP.

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

Когда NdisClRegisterSap возвращает что-либо, кроме NDIS_STATUS_PENDING, клиент должен выполнить внутренний вызов его Функция ProtocolClRegisterSapComplete . В противном случае NDIS вызывает функцию ProtocolClRegisterSapComplete клиента по завершении этой операции.

Комментарии

При вызове NdisClRegisterSap клиент запрашивает уведомления о входящих вызовах в определенном SAP. NDIS перенаправит данные sap в функцию ProtocolCmRegisterSap диспетчера вызовов для проверки. Если данный SAP уже используется или диспетчер вызовов не распознает спецификацию, предоставляемую клиентом в SAP, диспетчер вызовов завершится ошибкой этого запроса.

Формат SAP зависит от среднего уровня и зависит от семейства адресов, поддерживаемого диспетчером вызовов, который впоследствии использует зарегистрированные SSP для маршрутизации входящих вызовов соответствующему клиенту. Диспетчер звонков может регистрировать SAP для установленных ПВМ, не связываясь с другими сетевыми компонентами в зависимости от базового носителя.

Если вызов NdisClRegisterSap завершается успешно, клиент должен сохранить дескриптор, возвращенный в NdisSapHandle , так как это обязательный параметр для NdisClDeregisterSap. Вызывающие методы NdisClRegisterSap обычно передают указатель на переменную в области состояния, выделенной клиентом, в ProtocolSapContext , чтобы в случае успешного вызова NDIS можно было задать для него значение NdisSapHandle . NDIS передает заданный ProtocolSapContext зарегистрированным функциям ProtocolCl/CoXxx клиента во всех последующих вызовах, относящихся к этой SAP, пока клиент не вызовет NdisClDeregisterSap.

Как правило, клиент вызывает NdisClRegisterSap из своей функции ProtocolAfRegisterNotify после успешного вызова NdisClOpenAddressFamilyEx. Регистрация одного или нескольких saP позволяет клиенту принимать входящие вызовы, как только диспетчер звонков получит их по сети.

В отличие от исходящих вызовов, инициированных клиентом, клиент не вызывает NdisCoCreateVc перед вызовом NdisClRegisterSap. Для входящих вызовов диспетчер вызовов инициирует создание VC следующим образом:

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisClRegisterSap (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. NdisClRegisterSap (NDIS 5.1)) в Windows XP.
Целевая платформа Персональный компьютер
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_Protocol_Driver_Function(ndis)

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

CO_SAP

NdisClDeregisterSap

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoCreateVc

ProtocolClIncomingCall

ProtocolClRegisterSapComplete

ProtocolCmRegisterSap

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc