Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы выделить порт NDIS для мини-адаптера, драйвер минипорта вызывает функцию NdisMAllocatePort. NdisMAllocatePort является синхронной функцией и возвращается после того, как NDIS успешно выделяет ресурсы, необходимые для порта.
Перед вызовом NdisMAllocatePortдрайвер должен вызвать функцию NdisMSetMiniportAttributes, чтобы задать атрибуты в структуре NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Драйверы минипорта могут вызывать NdisMAllocatePort для минипорт-адаптера после успешного завершения вызова NdisMSetMiniportAttributes, и до вызова функции MiniportHaltEx для этого минипорт-адаптера.
NDIS всегда выделяет порт по умолчанию (ноль порта), поэтому драйверы мини-порта не должны выделять порт по умолчанию. NDIS освобождает порт по умолчанию после того, как драйвер минипорта возвращает форму MiniportHaltEx.
NDIS назначает номер порта порту, когда драйвер мини-порта вызывает NdisMAllocatePort. Драйвер указывает характеристики портов в структуре NDIS_PORT_CHARACTERISTICS перед вызовом функции NdisMAllocatePort. Когда NdisMAllocatePort успешно возвращает управление, член PortNumber в структуре NDIS_PORT_CHARACTERISTICS, заданной параметром PortCharacteristics, устанавливается в номер порта, который NDIS назначил этому порту.
Перед возвращением из MiniportHaltExдрайвер минипорта должен вызвать функцию NdisMFreePort, чтобы освободить все порты, связанные с мини-адаптером. Если минипорт-адаптер завершает инициализацию с ошибкой, драйвер должен вызвать NdisMFreePort, чтобы освободить все порты, которые он выделил, прежде чем вернуться из функции MiniportInitializeEx. Дополнительные сведения о освобождении портов NDIS см. в разделе Освобождение портов NDIS.
Максимальное количество портов, которые может выделить драйвер мини-порта, — 0xffffff. Однако на практике драйверы задают максимальное число, основанное на типе порта и требованиях приложения драйвера. Например, для приложения моста количество портов вряд ли превысит 16. Число портов будет выше для точек доступа, использующих порты 802.1x, и значительно выше для драйверов глобальной сети, использующих порты виртуальной частной сети (VPN).
После того как минипорт-драйвер выделяет порт, он находится в выделенном состоянии, но не активен. Порт нельзя использовать для отправки и получения данных, инициирования указания состояния, выдачи запроса OID или запуска события Plug and Play (PnP), пока порт не будет активирован. NDIS автоматически активирует порт по умолчанию после того, как минипорт-драйвер установил атрибуты регистрации в структуре NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Чтобы потребовать, чтобы NDIS не активировал порт по умолчанию, мини-драйвер может задать NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT в AttributeFlags в члене NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES.
NDIS передает состояние аутентификации порта по умолчанию функции MiniportInitializeEx в элементе DefaultPortAuthStates структуры NDIS_MINIPORT_INIT_PARAMETERS. Если драйвер минипорта управляет портом по умолчанию, когда драйвер минипорта активирует порт по умолчанию, он может активировать порт по умолчанию с помощью параметров проверки подлинности по умолчанию. Дополнительные сведения об активации порта по умолчанию см. Активация портов NDIS.
Драйверы минипорта могут использовать флаг NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS в элементе данных флагов структуры NDIS_PORT_CHARACTERISTICS для портов, которые драйверы выделяют и активируют. В случае выделения NDIS назначает состояния проверки подлинности по умолчанию новым портам и игнорирует состояния проверки подлинности, передаваемые в функцию NdisMAllocatePort.
Дополнительные сведения о состояниях портов NDIS см. в разделе состояния портов NDIS. Для получения более подробной информации об активации портов см. раздел "Активация портов NDIS".