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

Функция NdisCmRegisterAddressFamilyEx регистрирует семейство адресов (AF) для обмена данными между драйверами CoNDIS.

Синтаксис

NDIS_STATUS NdisCmRegisterAddressFamilyEx(
  [in] NDIS_HANDLE        NdisBindingHandle,
  [in] PCO_ADDRESS_FAMILY AddressFamily
);

Параметры

[in] NdisBindingHandle

Дескриптор, предоставленный NDIS в параметре NdisBindingHandle функции NdisOpenAdapterEx . Этот дескриптор идентифицирует привязку, связанную с AF.

[in] AddressFamily

Указатель на структуру CO_ADDRESS_FAMILY , которая идентифицирует диспетчер вызовов и af, которые он поддерживает для привязки, указанной в NdisBindingHandle .

Указатель addressFamily становится входным параметром для Функции ProtocolCoAfRegisterNotify всех клиентов, привязанных к одному и тому же адаптеру мини-порта CoNDIS.

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

NdisCmRegisterAddressFamilyEx может возвращать любое из следующих элементов:

Код возврата Описание
NDIS_STATUS_SUCCESS
Драйвер протокола зарегистрировал AF, на который указывает AddressFamily , поэтому NDIS вызовет Функции ProtocolCoAfRegisterNotify всех клиентов, которые привязываются к одному и тому же адаптеру мини-порта.
NDIS_STATUS_RESOURCES
Запрошенная операция завершилась сбоем, так как NDIS не удалось выделить достаточный объем памяти или инициализировать состояние, используемое для отслеживания диспетчера вызовов или указанного af.
NDIS_STATUS_FAILURE
NDIS не удалось вызвать NdisCmRegisterAddressFamilyEx, возможно, по одной из следующих причин:
  • Вызывающий объект не зарегистрирован в качестве драйвера протокола, ориентированного на подключение.
  • Драйвер мини-порта, к которому привязан вызывающий, не был зарегистрирован как драйвер мини-порта, ориентированный на подключение.
  • Другой диспетчер вызовов уже зарегистрировал указанную af.
  • Привязка вызывающего объекта закрывается.

Комментарии

Автономные диспетчеры вызовов NDIS, которые регистрируются в качестве драйверов протокола NDIS, вызываяФункция NdisRegisterProtocolDriver должна вызывать функцию NdisCmRegisterAddressFamilyEx для регистрации AF. Диспетчеры вызовов минипорта (MCM) должны вместо этого вызыватьФункция NdisMCmRegisterAddressFamilyEx.

Чтобы зарегистрировать AF для привязки, автономный диспетчер вызовов должен вызвать NdisCmRegisterAddressFamilyEx из Функция ProtocolBindAdapterEx .

Функция ProtocolBindAdapterEx автономного диспетчера вызовов сначала устанавливает привязку к базовому драйверу мини-порта, вызывая функцию NdisOpenAdapterEx . Каждый раз, когда NDIS вызывает ProtocolBindAdapterEx с другим дескриптором в параметре BindContext , ProtocolBindAdapterEx устанавливает привязку и регистрирует af, которая поддерживается. Иными словами, автономный диспетчер вызовов в конечном итоге регистрирует af для каждой привязки, в которой он предоставляет службы управления вызовами клиентам, ориентированным на подключение.

Диспетчер звонков может поддерживать несколько af и несколько af для одной привязки. Однако только один диспетчер вызовов может поддерживать заданную af для клиентов, привязанных к данному адаптеру минипорта.

Когда функция ProtocolBindAdapterEx диспетчера вызовов возвращает элемент управления после успешной операции привязки, NDIS вызывает Функции ProtocolCoAfRegisterNotify всех клиентов, привязанных к одному адаптеру мини-порта.

Требования

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

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

CO_ADDRESS_FAMILY

NdisMCmRegisterAddressFamilyEx

NdisOpenAdapterEx

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolCoAfRegisterNotify