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_MINIPORT_DRIVER_CHARACTERISTICS 结构的NDIS_OBJECT_HEADER结构。 将 Header 指定的结构的 Type 成员设置为NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS。

若要指示 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 结构的版本,请将 Revision 成员设置为以下值之一:

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3

为 NDIS 6.80 添加了 SynchronousOidRequestHandler 成员。

Size 成员设置为 NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3。

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2

为 NDIS 6.1 添加了 DirectOidRequestHandlerCancelDirectOidRequestHandler 成员。

Size 成员设置为NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2。

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1

NDIS 6.0 的原始版本。

Size 成员设置为 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

可设置为零或以下任意标志的位掩码,与按位 OR 结合使用:

NDIS_INTERMEDIATE_DRIVER

设置调用方是否为 NDIS 中间驱动程序。

NDIS_WDM_DRIVER

设置调用方是否为 NDIS-WDM 微型端口驱动程序。

SetOptionsHandler

调用方 MiniportSetOptions 函数的入口点。

对于 Co-NDIS 是必需的。 建议用于支持通过 PCI 使用 MSI-C 的 RSS 的以太网微型端口驱动程序。

InitializeHandlerEx

必需。 的入口点 MiniportInitializeEx 函数。

HaltHandlerEx

必需。 MiniportHaltEx 函数的入口点。

UnloadHandler

必需。 的入口点 MiniportDriverUnload 函数。

PauseHandler

必需。 MiniportPause 函数的入口点。

RestartHandler

必需。 MiniportRestart 函数的入口点。

OidRequestHandler

MiniportOidRequest 函数的入口点。 对于所有无连接的微型端口驱动程序(包括所有以太网、WLAN 和 IM 驱动程序)是必需的。 对于某些 CoNDIS 微型端口驱动程序是可选的。

SendNetBufferListsHandler

必需。 的入口点 MiniportSendNetBufferLists 函数。

ReturnNetBufferListsHandler

必需。 的入口点 MiniportReturnNetBufferLists 函数。

CancelSendHandler

必需。 MiniportCancelSend 函数的入口点。

CheckForHangHandlerEx

可选。 的入口点 MiniportCheckForHangEx 函数。

中间驱动程序或虚拟微型端口不需要 MiniportCheckForHangEx,因为它们不是可以挂起的物理设备,因此它们必须将此入口点设置为 NULL

由于会影响电池使用时间,禁止在任何 AOAC 设备上使用 MiniportCheckForHangEx,因此这些设备的微型端口驱动程序必须将此入口点设置为 NULL

由于对电池使用时间的影响,不建议将微型端口驱动程序安装在非 AOAC 电池供电设备上,因此它们应将此入口点设置为 NULL

MiniportCheckForHangEx 是允许的,但不要求微型端口驱动程序安装在线路供电 (电源供电的) 设备。 对于面向 NDIS 6.30 及更高版本的驱动程序,请考虑改用 NdisMResetMiniport

ResetHandlerEx

如果提供 CheckForHangHandlerEx) ,则需要可选 (。 MiniportResetEx 函数的入口点。 MiniportResetEx 不是中间驱动程序所必需的,因此它们应将此入口点设置为 NULL

DevicePnPEventNotifyHandler

必需。 的入口点 MiniportDevicePnPEventNotify 函数。

ShutdownHandlerEx

必需。 MiniportShutdownEx 函数的入口点。

CancelOidRequestHandler

必需。 的入口点 MiniportCancelOidRequest 函数。

DirectOidRequestHandler

的入口点 MiniportDirectOidRequest 函数。 这是一个可选的入口点。 如果微型端口驱动程序不处理直接 OID 请求,请将此成员设置为 NULL

对于以太网,可选;但是,如果提供了一个,则必须同时提供两者。

对于实现 RDMA 或 IPSec 卸载的 WLAN 和以太网微型端口是必需的。

CancelDirectOidRequestHandler

的入口点 MiniportCancelDirectOidRequest 函数。 这是一个可选的入口点。 如果微型端口驱动程序不处理直接 OID 请求,请将此成员设置为 NULL

对于以太网,可选;但是,如果提供了一个,则必须同时提供两者。

对于实现 RDMA 或 IPSec 卸载的 WLAN 和以太网微型端口是必需的。

SynchronousOidRequestHandler

的入口点 MiniportSynchronousOidRequest 函数。 这是一个可选的入口点。 如果微型端口驱动程序不处理同步 OID 请求,请将此成员设置为 NULL

对于实现 RSSv2 的 WLAN 和以太网微型端口是必需的。

注解

NDIS 驱动程序在 的 MiniportDriverCharacteristics 参数中传递指向其NDIS_MINIPORT_DRIVER_CHARACTERISTICS结构的指针 NdisMRegisterMiniportDriver 函数。 微型端口驱动程序从其 DriverEntry 例程调用 NdisMRegisterMiniportDriver (另请参阅 NDIS 微型端口驱动程序的 DriverEntry) 。

要求

要求
最低受支持的客户端 在 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