Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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 в качестве диспетчера вызовов для AF, указанный параметром AddressFamily, поэтому NDIS вызовет ProtocolCoAfRegisterNotify функции всех клиентов, которые привязываются к драйверу MCM. |
|
Запрошенная операция завершилась ошибкой, так как NDIS не может выделить достаточно памяти или инициализировать сведения о состоянии, которые он использует для отслеживания драйвера MCM в качестве диспетчера вызовов указанного AF. |
|
NDIS не удалось вызвать NdisMCmRegisterAddressFamilyEx, возможно, по одной из следующих причин:
|
Замечания
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) |