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


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

[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 при завершении этой операции.

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Настольный
заголовка ndis.h (include 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