NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 结构 (ndis.h)
为了指定其驱动程序特征,协议驱动程序初始化 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 结构并将其传递给 NDIS。
语法
typedef struct _NDIS_PROTOCOL_DRIVER_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
UCHAR MajorNdisVersion;
UCHAR MinorNdisVersion;
UCHAR MajorDriverVersion;
UCHAR MinorDriverVersion;
ULONG Flags;
NDIS_STRING Name;
SET_OPTIONS_HANDLER SetOptionsHandler;
BIND_HANDLER_EX BindAdapterHandlerEx;
UNBIND_HANDLER_EX UnbindAdapterHandlerEx;
OPEN_ADAPTER_COMPLETE_HANDLER_EX OpenAdapterCompleteHandlerEx;
CLOSE_ADAPTER_COMPLETE_HANDLER_EX CloseAdapterCompleteHandlerEx;
NET_PNP_EVENT_HANDLER NetPnPEventHandler;
UNINSTALL_PROTOCOL_HANDLER UninstallHandler;
OID_REQUEST_COMPLETE_HANDLER OidRequestCompleteHandler;
STATUS_HANDLER_EX StatusHandlerEx;
RECEIVE_NET_BUFFER_LISTS_HANDLER ReceiveNetBufferListsHandler;
SEND_NET_BUFFER_LISTS_COMPLETE_HANDLER SendNetBufferListsCompleteHandler;
DIRECT_OID_REQUEST_COMPLETE_HANDLER DirectOidRequestCompleteHandler;
} NDIS_PROTOCOL_DRIVER_CHARACTERISTICS, *PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS;
成员
Header
NDIS_PROTOCOL_DRIVER_CHARACTERISTICS结构的NDIS_OBJECT_HEADER结构。 将 Header 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_PROTOCOL_DRIVER_CHARACTERISTICS。
若要指示 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 结构的版本,请将 Revision 成员设置为以下值之一:
NDIS_PROTOCOL_DRIVER_CHARACTERISTICS_REVISION_2
为 NDIS 6.1 添加了 DirectOidRequestCompleteHandler 成员。
将 Size 成员设置为 NDIS_SIZEOF_PROTOCOL_DRIVER_CHARACTERISTICS_REVISION_2。
NDIS_PROTOCOL_DRIVER_CHARACTERISTICS_REVISION_1
NDIS 6.0 的原始版本。
将 Size 成员设置为 NDIS_SIZEOF_PROTOCOL_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 6.89 及更高版本支持以下标志:
值 | 含义 |
---|---|
NDIS_PROTOCOL_DRIVER_UDP_RSC_NOT_SUPPORTED 0x00000008 | 驱动程序选择退出 URO 支持。 |
在 NDIS 6.88 及更低版本中, 标志 是为 NDIS 保留的。 协议驱动程序应将此成员设置为零。
Name
一个 Unicode 字符串,它是协议驱动程序的服务名称。
SetOptionsHandler
ProtocolSetOptions 函数的入口点。
BindAdapterHandlerEx
的入口点 ProtocolBindAdapterEx 函数。
UnbindAdapterHandlerEx
的入口点 ProtocolUnbindAdapterEx 函数。
OpenAdapterCompleteHandlerEx
的入口点 ProtocolOpenAdapterCompleteEx 函数。
CloseAdapterCompleteHandlerEx
的入口点 ProtocolCloseAdapterCompleteEx 函数。
NetPnPEventHandler
调用方 ProtocolNetPnPEvent 函数的入口点。
UninstallHandler
调用方 ProtocolUninstall 函数的入口点(如果有)或 NULL。
OidRequestCompleteHandler
调用方 的入口点 ProtocolOidRequestComplete 函数。
StatusHandlerEx
调用方 ProtocolStatusEx 函数的入口点(如果有)或 NULL。
ReceiveNetBufferListsHandler
的入口点 ProtocolReceiveNetBufferLists 函数。
SendNetBufferListsCompleteHandler
的入口点 ProtocolSendNetBufferListsComplete 函数。
DirectOidRequestCompleteHandler
调用方 的入口点 ProtocolDirectOidRequestComplete 函数。 这是一个可选函数。 如果协议驱动程序不支持直接 OID 请求接口,请将此入口点设置为 NULL 。
注解
协议驱动程序调用用于注册其特征的 NdisRegisterProtocolDriver 函数,包括其协议驱动程序函数的默认入口点 (ProtocolXxx) 。 协议驱动程序初始化NDIS_PROTOCOL_DRIVER_CHARACTERISTICS结构,并在 NdisRegisterProtocolDriver 的 ProtocolCharacteristics 参数中传递指向此结构的指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |