структура NDIS_MINIPORT_DRIVER_CHARACTERISTICS (ndis.h)
Драйвер NDIS инициализирует структуру NDIS_MINIPORT_DRIVER_CHARACTERISTICS для определения его характеристик минипорта драйвера, включая точки входа для своих функций MiniportXx.
Синтаксис
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. Задайте элемент типа структуры, заголовка указывает 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 |
87 | NDIS 6.87 |
88 | NDIS 6.88 |
89 | NDIS 6.89 |
MajorDriverVersion
Зарезервировано для основного номера версии драйвера. Драйверы минипорта могут указать любое необходимое значение.
MinorDriverVersion
Зарезервировано для дополнительного номера версии драйвера. Драйверы минипорта могут указать любое необходимое значение.
Flags
Битовая маска, которая может быть задана равным нулю или любому из следующих флагов, в сочетании с битовой ИЛИ:
NDIS_INTERMEDIATE_DRIVER
Задайте, если вызывающий объект является промежуточным драйвером NDIS.
NDIS_WDM_DRIVER
Если вызывающий объект является драйвером мини-порта NDIS-WDM.
SetOptionsHandler
Точка входа для функции MiniportSetOption s вызывающего объекта.
Требуется для 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 разрешено, но не требуется для минипорт-драйверов, которые предназначены для установки на устройствах с питанием (mains-powered). Для драйверов, предназначенных для 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 Driver).
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.0 и более поздних версиях. |
заголовка | ndis.h (include Ndis.h) |