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 添加了 DirectOidRequestHandler 和 CancelDirectOidRequestHandler 成员。
将 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) |