структура 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) |
См. также раздел
MiniportCancelDirectOidRequest MiniportDevicePnPEventNotify MiniportReturnNetBufferListsОбратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по