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

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

Синтаксис

typedef struct _NDIS_MINIPORT_DRIVER_CHARACTERISTICS {
  NDIS_OBJECT_HEADER                         Header;
  UCHAR                                      MajorNdisVersion;
  UCHAR                                      MinorNdisVersion;
  UCHAR                                      MajorDriverVersion;
  UCHAR                                      MinorDriverVersion;
  ULONG                                      Flags;
  SET_OPTIONS_HANDLER                        SetOptionsHandler;
  MINIPORT_INITIALIZE_HANDLER                InitializeHandlerEx;
  MINIPORT_HALT_HANDLER                      HaltHandlerEx;
  MINIPORT_DRIVER_UNLOAD                     UnloadHandler;
  MINIPORT_PAUSE_HANDLER                     PauseHandler;
  MINIPORT_RESTART_HANDLER                   RestartHandler;
  MINIPORT_OID_REQUEST_HANDLER               OidRequestHandler;
  MINIPORT_SEND_NET_BUFFER_LISTS_HANDLER     SendNetBufferListsHandler;
  MINIPORT_RETURN_NET_BUFFER_LISTS_HANDLER   ReturnNetBufferListsHandler;
  MINIPORT_CANCEL_SEND_HANDLER               CancelSendHandler;
  MINIPORT_CHECK_FOR_HANG_HANDLER            CheckForHangHandlerEx;
  MINIPORT_RESET_HANDLER                     ResetHandlerEx;
  MINIPORT_DEVICE_PNP_EVENT_NOTIFY_HANDLER   DevicePnPEventNotifyHandler;
  MINIPORT_SHUTDOWN_HANDLER                  ShutdownHandlerEx;
  MINIPORT_CANCEL_OID_REQUEST_HANDLER        CancelOidRequestHandler;
  MINIPORT_DIRECT_OID_REQUEST_HANDLER        DirectOidRequestHandler;
  MINIPORT_CANCEL_DIRECT_OID_REQUEST_HANDLER CancelDirectOidRequestHandler;
  MINIPORT_SYNCHRONOUS_OID_REQUEST_HANDLER   SynchronousOidRequestHandler;
} NDIS_MINIPORT_DRIVER_CHARACTERISTICS, *PNDIS_MINIPORT_DRIVER_CHARACTERISTICS;

Члены

Header

Структура NDIS_OBJECT_HEADER для структуры NDIS_MINIPORT_DRIVER_CHARACTERISTICS . Присвойте элементу Type структуры, указанной в заголовке , NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS.

Чтобы указать версию структуры NDIS_MINIPORT_DRIVER_CHARACTERISTICS , присвойте члену Редакции одно из следующих значений:

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3

Добавлен элемент SynchronousOidRequestHandler для NDIS 6.80.

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

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2

Добавлены члены DirectOidRequestHandler и CancelDirectOidRequestHandler для NDIS 6.1.

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

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1

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

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

MajorNdisVersion

Основная версия библиотеки NDIS, используемая драйвером. Текущее значение равно 0x06.

MinorNdisVersion

Дополнительная версия NDIS. Ниже приведены доступные параметры дополнительных значений версии.

Значение Значение
0 NDIS 6
20 NDIS 6.20
30 NDIS 6.30
40 NDIS 6.40
50 NDIS 6.50
51 NDIS 6.51
60 NDIS 6.60
70 NDIS 6.70
80 NDIS 6.80
81 NDIS 6.81
82 NDIS 6.82
83 NDIS 6.83
84 NDIS 6.84
85 NDIS 6.85
86 NDIS 6.86

MajorDriverVersion

Зарезервировано для основного номера версии драйвера. Драйверы мини-портов могут указать любое необходимое значение.

MinorDriverVersion

Зарезервировано для дополнительного номера версии драйвера. Драйверы мини-портов могут указать любое необходимое значение.

Flags

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

NDIS_INTERMEDIATE_DRIVER

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

NDIS_WDM_DRIVER

Установите значение , если вызывающий объект является драйвером мини-порта NDIS-WDM.

SetOptionsHandler

Точка входа для функции MiniportSetOptions вызывающего объекта.

Требуется для co-NDIS. Рекомендуется для драйверов мини-портов Ethernet, поддерживающих RSS с использованием MSI-C через PCI.

InitializeHandlerEx

Обязательный. Точка входа дляФункция MiniportInitializeEx.

HaltHandlerEx

Обязательный. Точка входа для функции MiniportHaltEx .

UnloadHandler

Обязательный. Точка входа дляФункция MiniportDriverUnload.

PauseHandler

Обязательный. Точка входа для функции MiniportPause .

RestartHandler

Обязательный. Точка входа для функции MiniportRestart .

OidRequestHandler

Точка входа для функции MiniportOidRequest . Требуется для всех драйверов мини-портов без подключения, включая все драйверы Ethernet, WLAN и мгновенных сообщений. Необязательно для некоторых драйверов мини-порта CoNDIS.

SendNetBufferListsHandler

Обязательный. Точка входа дляФункция MiniportSendNetBufferLists.

ReturnNetBufferListsHandler

Обязательный. Точка входа дляФункция MiniportReturnNetBufferLists.

CancelSendHandler

Обязательный. Точка входа для функции MiniportCancelSend .

CheckForHangHandlerEx

Необязательный элемент. Точка входа дляФункция MiniportCheckForHangEx.

MiniportCheckForHangEx не требуется для промежуточных драйверов или виртуальных мини-портов, так как они не являются физическими устройствами, которые могут зависать, поэтому они должны задать для этой точки входа значение NULL.

MiniportCheckForHangEx запрещен на любом устройстве AOAC из-за влияния на время работы батареи, поэтому для драйверов мини-портов для этих устройств необходимо задать для этой точки входа значение NULL.

Использование MiniportCheckForHangEx не рекомендуется для драйверов мини-портов, предназначенных для установки на устройствах без AOAC с питанием от батареи из-за влияния на время работы батареи, поэтому они должны задать для этой точки входа значение NULL.

MiniportCheckForHangEx разрешен, но не требуется для драйверов miniport, которые предназначены для установки на устройствах с линейным питанием (с питанием от сети). Для драйверов, предназначенных для NDIS 6.30 и более поздних версий, рассмотрите возможность использования NdisMResetMiniport .

ResetHandlerEx

Необязательный параметр (требуется при указании CheckForHangHandlerEx). Точка входа для функции MiniportResetEx . MiniportResetEx не требуется для промежуточных драйверов, поэтому они должны задать для этой точки входа значение NULL.

DevicePnPEventNotifyHandler

Обязательный. Точка входа дляФункция MiniportDevicePnPEventNotify.

ShutdownHandlerEx

Обязательный. Точка входа для функции MiniportShutdownEx .

CancelOidRequestHandler

Обязательный. Точка входа дляФункция MiniportCancelOidRequest.

DirectOidRequestHandler

Точка входа дляФункция MiniportDirectOidRequest. Это необязательная точка входа. Присвойте этому члену значение NULL , если драйвер мини-порта не обрабатывает прямые запросы OID.

Необязательно для Ethernet; однако если один из них указан, то должны быть указаны оба.

Требуется для мини-портов WLAN и Ethernet, реализующих разгрузку RDMA или IPSec.

CancelDirectOidRequestHandler

Точка входа дляФункция MiniportCancelDirectOidRequest. Это необязательная точка входа. Присвойте этому члену значение NULL , если драйвер мини-порта не обрабатывает прямые запросы OID.

Необязательно для Ethernet; однако если один из них указан, то должны быть указаны оба.

Требуется для мини-портов WLAN и Ethernet, реализующих разгрузку RDMA или IPSec.

SynchronousOidRequestHandler

Точка входа дляФункция MiniportSynchronousOidRequest. Это необязательная точка входа. Присвойте этому члену значение NULL , если драйвер мини-порта не обрабатывает синхронные запросы OID.

Требуется для мини-портов WLAN и Ethernet, реализующих RSSv2.

Комментарии

Драйвер NDIS передает указатель на свою NDIS_MINIPORT_DRIVER_CHARACTERISTICS структуру в параметре MiniportDriverCharacteristics объектаФункция NdisMRegisterMiniportDriver. Драйвер мини-порта вызывает NdisMRegisterMiniportDriver из своей процедуры DriverEntry (см. также DriverEntry NDIS Miniport Drivers).

Требования

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

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

DriverEntry

MiniportCancelDirectOidRequest

MiniportCancelOidRequest

MiniportCancelSend

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportDirectOidRequest

MiniportDriverUnload

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

MiniportRestart

MiniportReturnNetBufferLists

MiniportSendNetBufferLists

MiniportSetOptions

MiniportShutdownEx

NdisMRegisterMiniportDriver