Функция 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 MCM, которые регистрируются в качестве NDIS минипорт драйверов путем вызова Функция NdisMRegisterMiniportDriver должна вызывать функцию NdisMCmRegisterAddressFamilyEx для регистрации AF. Вместо этого автономные диспетчеры вызовов должны вызывать Функция NdisCmRegisterAddressFamilyEx .

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

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

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

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

MCM может поддерживать несколько AF для одного сетевого адаптера, которым он управляет. Драйвер 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