Функция 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) |