структура NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES (ndis.h)

Драйвер мини-порта NDIS настраивает структуру NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES для определения атрибутов регистрации, связанных с адаптером мини-порта.

Синтаксис

typedef struct _NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_HANDLE         MiniportAdapterContext;
  ULONG               AttributeFlags;
  UINT                CheckForHangTimeInSeconds;
  NDIS_INTERFACE_TYPE InterfaceType;
} NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES, *PNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES;

Члены

Header

Тип, редакция и размер структуры NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Этот элемент имеет формат структуры NDIS_OBJECT_HEADER .

Драйвер мини-порта должен задать для элемента Typeзаголовка значение NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Чтобы указать версию структуры NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES , драйвер должен задать для элемента Редакциизаголовка одно из следующих значений:

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2

Добавлены флаги AttributeFlags для NDIS 6.30.

Задайте для элемента Размер значение NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2.

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1

Исходная версия для NDIS 6.0.

Задайте для элемента Размер значение NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1.

MiniportAdapterContext

Дескриптор контекстной области, выделенной драйвером мини-порта в функции MiniportInitializeEx . Драйвер мини-порта использует эту контекстную область для хранения сведений о состоянии адаптера мини-порта.

AttributeFlags

Битовая маска флагов, объединенных с побитовой или. Драйверы мини-порта NDIS должны установить один или несколько из следующих флагов:

NDIS_MINIPORT_ATTRIBUTES_HARDWARE_DEVICE

Установите значение , если драйвер мини-порта непосредственно управляет физическим устройством. Физическому устройству назначаются аппаратные ресурсы, такие как прерывания, порты ввода-вывода, сопоставленные с памятью операции ввода-вывода или каналы DMA, которые драйвер мини-порта должен запрашивать изФункция MiniportInitializeEx.

NDIS_MINIPORT_ATTRIBUTES_NDIS_WDM

Установите значение , если интерфейс нижнего уровня адаптера мини-порта является драйвером шины WDM, например USB или IEEE 1394. В этом случае драйвер мини-порта не выделяет аппаратные ресурсы, такие как порты ввода-вывода, прерывания, сопоставленные в памяти операции ввода-вывода или каналы DMA. Вместо этого драйвер взаимодействует с устройством через интерфейс WDM базового драйвера шины.

NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER

Укажите, является ли сетевой адаптер вызывающего абонента устройством DMA master шины.

NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND

Установите значение , если NDIS не должен вызывать функцию MiniportHaltEx драйвера мини-порта, прежде чем система перейдет в маломощное (спящее) состояние. Драйверы, использующие состояние, поддерживаемое оборудованием, не должны устанавливать этот флаг.

NDIS_MINIPORT_ATTRIBUTES_SURPRISE_REMOVE_OK

Установите значение , если драйвер мини-порта может обрабатывать удаление сетевой карты без уведомления пользователя. Драйверы NDIS получают уведомления о неожиданном удалении на страницеФункция MiniportDevicePnPEventNotify.

NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS

Устанавливается драйвером мини-порта, который может поддерживать как устройства, ориентированные на подключение, так и устройства без подключения, чтобы указать, что устройство является устройством без подключения.

NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO

Устанавливается драйвером мини-порта CoNDIS, который не предоставляет службы TAPI. Настройка NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO предотвращает привязку драйвера минипорта NDIS к драйверу прокси-сервера NDIS TAPI (NDPROXY). По умолчанию NDIS привязывает NDPROXY ко всем драйверам мини-портов CoNDIS.

NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT

Устанавливается драйвером мини-порта, который вызывает функцию NdisMNetPnPEvent для активации порта по умолчанию. Если NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT не задано, порт по умолчанию активен. NDIS не привязывает драйверы протокола или не присоединяет модули фильтров к адаптеру мини-порта, если порт по умолчанию не активен.

NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND

Начиная с версии NDIS 6.30 этот флаг устанавливается, если драйвер мини-порта может перейти в маломощное состояние без приостановки.

Дополнительные сведения об этом флаге см. в разделе Примечания.

NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK

Начиная с минипортов NDIS 6.30, NDIS не будет вызывать обработчик MiniportShutdownEx минипорта во время проверки ошибок, если этот флаг не установлен. Большинство мини-портов не должны устанавливать этот флаг.

CheckForHangTimeInSeconds

Интервал времени ожидания (в секундах), в течение которого NDIS должен вызыватьФункция MiniportCheckForHangEx. Если драйвер мини-порта не ответил на запрос OID или запрос на отправку в течение двух последовательных вызовов MiniportCheckForHangEx, NDIS может вызвать функцию MiniportResetEx драйвера минипорта .

Интервал, который NDIS использует при вызове MiniportCheckForHangEx , всегда кратен 2 секундам. Например, если указать 5 секунд, интервал будет составлять примерно 4 секунды.

Если этот элемент равен 0, интервал времени ожидания по умолчанию составляет 2 секунды.

Примечание Интервал времени ожидания должен превышать время инициализации драйвера мини-порта. Дополнительные сведения см. в разделе Miniport Adapter Check-for-Hang and Reset Operations.
 

InterfaceType

Тип интерфейса шины ввода-вывода адаптера мини-порта. Обычно это тип шины ввода-вывода, к которой подключен адаптер мини-порта. В NDIS 6.0 поддерживаются следующие значения:

NdisInterfaceInternal

Указывает внутренний интерфейс для конкретного узла.

NdisInterfaceIsa

Указывает интерфейс ISA.

NdisInterfaceEisa

Указывает расширенный интерфейс ISA (EISA). Этот тип интерфейса не поддерживается в NDIS 6.0 и более поздних версиях.

NdisInterfaceMca

Относится к шине MCA, которая больше не поддерживается. Этот тип интерфейса не поддерживается в NDIS 6.0 и более поздних версиях.

NdisInterfaceTurboChannel

Указывает интерфейс Turbo Channel.

NdisInterfacePci

Указывает интерфейс PCI.

NdisInterfacePcMcia

Указывает интерфейс Международной ассоциации карт памяти персонального компьютера (PC Card).

NdisInterfaceCBus

Указывает CBus.

NdisInterfaceMPIBus

Указывает MPIBus.

NdisInterfaceMPSABus

Указывает MPSABus.

NdisInterfaceProcessorInternal

Указывает внутреннюю шину процессора.

NdisInterfaceInternalPowerBus

Указывает внутреннюю шину питания.

NdisInterfacePNPISABus

Указывает PNPISABus.

NdisInterfacePNPBus

Указывает PNPBus.

Этот параметр не имеет значения для промежуточных драйверов, которые должны указывать 0 для этого элемента.

Комментарии

Драйвер мини-порта передает указатель на структуру NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES в параметре MiniportAttributes объектаФункция NdisMSetMiniportAttributes. Драйвер мини-порта вызывает NdisMSetMiniportAttributes из функции MiniportInitializeEx во время инициализации.

Драйверы miniport должны задавать атрибуты в NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES как можно скорее в MiniportInitializeEx. Установка этих атрибутов является обязательной.

Флаг NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND

NDIS выдает запрос OID на OID_PNP_SET_POWER драйверу мини-порта, прежде чем базовый адаптер минипорта перейдет в состояние низкой мощности D1, D2 или D3. Когда драйвер обрабатывает этот OID, он должен подготовить адаптер минипорта к переходу в более низкое состояние питания и не должен ждать завершения ожидающих получения пакетов.

В некоторых случаях, прежде чем NDIS выдает запрос OID OID_PNP_SET_POWER драйверу минипорта, NDIS вызывает функцию MiniportPause водителя минипорта , как описано ниже:

  • Если флаг NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND не установлен, NDIS вызывает функцию MiniportPause водителя минипорта перед отправкой OID-запроса OID_PNP_SET_POWER драйверу. В контексте вызова MiniportPause драйвер должен дождаться завершения ожидающих получения указаний пакетов.
  • Если установлен флаг NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND , NDIS не вызывает функцию MiniportPause драйвера минипорта до выдачи OID-запроса OID_PNP_SET_POWER драйверу. Когда драйвер минипорта обрабатывает запрос OID, он не должен предполагать, что он был ранее приостановлен при подготовке адаптера минипорта к переходу в состояние с низким энергопотреблением.
    Примечание Исключение из этого возникает, когда драйвер протокола или фильтра, поддерживающий NDIS 6.20 или более ранние версии NDIS, привязан или подключен к адаптеру мини-порта. В этом случае NDIS вызывает функцию MiniportPause водителя минипорта независимо от того, устанавливает ли драйвер минипорта флаг NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND .
     

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Верхняя часть ndis.h (включая Ndis.h)

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

Операции проверки зависания и сброса адаптера минипорта

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportPause

MiniportResetEx

NDIS_OBJECT_HEADER

NdisMNetPnPEvent

NdisMSetMiniportAttributes

OID_PNP_SET_POWER