Функция 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 клиента по завершении этой операции.
Комментарии
Клиент 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) |