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

Драйвер любой сетевой карты (сетевой адаптер), имеющий встроенную поддержку сигналов, ориентированный на подключение, может зарегистрировать себя в качестве драйвера 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 (include 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