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

Функция NdisClOpenAddressFamilyEx регистрирует семейство адресов (AF), связанное с диспетчером вызовов для клиента, ориентированного на подключение.

Синтаксис

NDIS_STATUS NdisClOpenAddressFamilyEx(
  [in]  NDIS_HANDLE        NdisBindingHandle,
  [in]  PCO_ADDRESS_FAMILY AddressFamily,
  [in]  NDIS_HANDLE        ClientAfContext,
  [out] PNDIS_HANDLE       NdisAfHandle
);

Параметры

[in] NdisBindingHandle

Дескриптор, возвращающий NdisOpenAdapterEx , идентифицирующий целевую сетевую карту (NIC) или виртуальный адаптер следующего нижнего драйвера, к которому привязан вызывающий объект.

[in] AddressFamily

Указатель на структуру CO_ADDRESS_FAMILY , описывающую открытый диспетчер вызовов и AF.

Этот указатель является входным параметром клиентаФункция ProtocolCoAfRegisterNotify, которая вызывает NdisClOpenAddressFamilyEx.

[in] ClientAfContext

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

[out] NdisAfHandle

Указатель на переменную, предоставляемую вызывающим объектом, в которой NdisClOpenAddressFamilyEx возвращает дескриптор, представляющий только что открытое семейство адресов.

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

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

Remarks

Клиент CoNDIS вызывает NdisClOpenAddressFamilyEx из своего Функция ProtocolCoAfRegisterNotify после того, как клиент проверяет входной буфер, на который указывает параметр AddressFamily , чтобы определить, распознает ли клиент диспетчер вызовов и зарегистрированные адреса. NDIS перенаправит вызов клиента NdisClOpenAddressFamilyEx в функцию ProtocolCmOpenAf диспетчера вызовов, которая гарантирует, что клиент прошел в допустимой структуре AF.

Успешный вызов NdisClOpenAddressFamilyEx настраивает обмен данными от клиента к диспетчеру вызовов. Затем клиент может подготовиться к приему входящих вызовов, вызвав функцию NdisClRegisterSap . Клиент также может настроить виртуальное подключение (VC), вызвав функцию NdisCoCreateVc , чтобы он смог выполнить исходящий вызов, вызвав функцию NdisClMakeCall .

Если вызов клиента к NdisClOpenAddressFamilyEx завершается сбоем, клиент должен вызвать функцию NdisUnbindAdapter , чтобы запросить NDIS для освобождения привязки к базовому адаптеру минипорта. В противном случае клиент должен сохранить дескриптор, возвращаемый в параметре NdisAfHandle . Этот дескриптор определяет диспетчер вызовов, на который направляются последующие запросы, касающиеся заданного семейства адресов. Клиент должен рассматривать этот возвращенный дескриптор как непрозрачную переменную, передавая ее неизмененные и неинтерпретированные в последующих вызовах функций NdisXxx .

NDIS передает указатель из параметра ClientAfContext в зарегистрированные функции ProtocolClXxx клиента во всех последующих вызовах, которые касаются AF, пока клиент не вызовет NdisCloseAddressFamily с тем же NdisAfHandle . После закрытия AF клиент может освободить или повторно использовать хранилище, выделенное в ClientAfContext .

Требования

   
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версий.
Целевая платформа Рабочий стол
Заголовок ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL
Правила соответствия DDI Irql_Protocol_Driver_Function(ndis)

См. также

CO_ADDRESS_FAMILY

NdisAllocateFromNPagedLookasideList

NdisCloseAddressFamily

NdisClMakeCall

NdisClRegisterSap

NdisCoCreateVc

NdisOpenAdapterEx

NdisUnbindAdapter

ProtocolClOpenAfCompleteEx

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify