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

Функция NdisMCmRegisterAddressFamilyEx регистрирует семейство адресов (AF) для обмена данными между диспетчером вызовов мини-порта (MCM) и клиентами CoNDIS.

Синтаксис

NDIS_STATUS NdisMCmRegisterAddressFamilyEx(
  [in] NDIS_HANDLE        MiniportAdapterHandle,
  [in] PCO_ADDRESS_FAMILY AddressFamily
);

Параметры

[in] MiniportAdapterHandle

Дескриптор NDIS, который идентифицирует адаптер мини-порта. Этот дескриптор является входным параметром для MCMФункция MiniportInitializeEx.

[in] AddressFamily

Указатель на структуру CO_ADDRESS_FAMILY , которая идентифицирует AF, которую поддерживает драйвер MCM.

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

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

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

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

Комментарии

NDIS MCMs, которые регистрируются в качестве драйверов минипорта NDIS путем вызоваФункция NdisMRegisterMiniportDriver должна вызывать функцию NdisMCmRegisterAddressFamilyEx для регистрации AF. Вместо этого автономные диспетчеры звонков должны вызыватьФункция NdisCmRegisterAddressFamilyEx.

Чтобы зарегистрировать AF для адаптера мини-порта, MCM должен вызвать NdisMCmRegisterAddressFamilyEx из функции MiniportInitializeEx .

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

Драйвер MCM вызывает NdisMCmRegisterAddressFamilyEx после того, как определит, что сетевая карта полностью работает и драйвер может выполнять операции сетевого ввода-вывода. То есть такой MCM регистрирует себя в качестве диспетчера вызовов и объявляет свои конкретные службы сигнализации для клиентов CoNDIS.

После того как MiniportInitializeEx возвращает элемент управления с успешной регистрацией в качестве диспетчера вызовов, NDIS вызывает функции ProtocolBindAdapterEx потенциальных клиентов, а затем — Функции ProtocolCoAfRegisterNotify всех клиентов, которые привязываются к связанному адаптеру мини-порта MCM. Затем эти клиенты вызывают функцию ProtocolCmOpenAf MCM.

MCM может поддерживать несколько afs для одной управляемой сетевой карты. Драйвер MCM должен вызывать NdisMCmRegisterAddressFamilyEx один раз для каждой AF, зарегистрированной для адаптера мини-порта. Только один драйвер MCM может поддерживать определенный тип AF для клиентов, привязанных к данному адаптеру мини-порта.

Требования

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

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

CO_ADDRESS_FAMILY

MiniportInitializeEx

NdisCmRegisterAddressFamilyEx

NdisMRegisterMiniportDriver

ProtocolBindAdapterEx

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc

ProtocolCoDeleteVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete