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 结构。 设置 标头 指定为NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS的结构的 类型 成员。
若要指示 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 结构的版本,请将 Revision 成员设置为以下值之一:
NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3
为 NDIS 6.80 添加了 SyncOidRequestHandler 成员。
将 大小 成员设置为NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3。
NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2
添加了 DirectOidRequestHandler,NDIS 6.1 的 CancelDirectOidRequestHandler 成员。
将 大小 成员设置为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
可以设置为零或以下任何标志的位掩码,并结合按位 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。
由于对电池使用时间的影响,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 函数。 这是一个可选的入口点。 如果微型端口驱动程序不处理直接 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) |