NDIS_FILTER_DRIVER_CHARACTERISTICS 结构 (ndis.h)
若要指定其驱动程序特征,筛选器驱动程序会初始化NDIS_FILTER_DRIVER_CHARACTERISTICS结构并将其传递给 NDIS。
语法
typedef struct _NDIS_FILTER_DRIVER_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
UCHAR MajorNdisVersion;
UCHAR MinorNdisVersion;
UCHAR MajorDriverVersion;
UCHAR MinorDriverVersion;
ULONG Flags;
NDIS_STRING FriendlyName;
NDIS_STRING UniqueName;
NDIS_STRING ServiceName;
SET_OPTIONS_HANDLER SetOptionsHandler;
FILTER_SET_FILTER_MODULE_OPTIONS_HANDLER SetFilterModuleOptionsHandler;
FILTER_ATTACH_HANDLER AttachHandler;
FILTER_DETACH_HANDLER DetachHandler;
FILTER_RESTART_HANDLER RestartHandler;
FILTER_PAUSE_HANDLER PauseHandler;
FILTER_SEND_NET_BUFFER_LISTS_HANDLER SendNetBufferListsHandler;
FILTER_SEND_NET_BUFFER_LISTS_COMPLETE_HANDLER SendNetBufferListsCompleteHandler;
FILTER_CANCEL_SEND_HANDLER CancelSendNetBufferListsHandler;
FILTER_RECEIVE_NET_BUFFER_LISTS_HANDLER ReceiveNetBufferListsHandler;
FILTER_RETURN_NET_BUFFER_LISTS_HANDLER ReturnNetBufferListsHandler;
FILTER_OID_REQUEST_HANDLER OidRequestHandler;
FILTER_OID_REQUEST_COMPLETE_HANDLER OidRequestCompleteHandler;
FILTER_CANCEL_OID_REQUEST_HANDLER CancelOidRequestHandler;
FILTER_DEVICE_PNP_EVENT_NOTIFY_HANDLER DevicePnPEventNotifyHandler;
FILTER_NET_PNP_EVENT_HANDLER NetPnPEventHandler;
FILTER_STATUS_HANDLER StatusHandler;
FILTER_DIRECT_OID_REQUEST_HANDLER DirectOidRequestHandler;
FILTER_DIRECT_OID_REQUEST_COMPLETE_HANDLER DirectOidRequestCompleteHandler;
FILTER_CANCEL_DIRECT_OID_REQUEST_HANDLER CancelDirectOidRequestHandler;
FILTER_SYNCHRONOUS_OID_REQUEST_HANDLER SynchronousOidRequestHandler;
FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE_HANDLER SynchronousOidRequestCompleteHandler;
} NDIS_FILTER_DRIVER_CHARACTERISTICS, *PNDIS_FILTER_DRIVER_CHARACTERISTICS;
成员
Header
筛选器驱动程序特征结构的 NDIS_OBJECT_HEADER 结构 (NDIS_FILTER_DRIVER_CHARACTERISTICS) 。 将 Header 指定的结构的 Type 成员设置为NDIS_OBJECT_TYPE_FILTER_DRIVER_CHARACTERISTICS。
若要指示 NDIS_FILTER_DRIVER_CHARACTERISTICS 结构的版本,请将 Revision 成员设置为以下值之一:
NDIS_FILTER_CHARACTERISTICS_REVISION_3
为 NDIS 6.80 添加了 SynchronousOidRequestHandler 和 SynchronousOidRequestCompleteHandler 成员。
将 Size 成员设置为NDIS_SIZEOF_FILTER_DRIVER_CHARACTERISTICS_REVISION_3。
NDIS_FILTER_CHARACTERISTICS_REVISION_2
为 NDIS 6.1 添加了 DirectOidRequestHandler、 DirectOidRequestCompleteHandler 和 CancelDirectOidRequestHandler 成员。
将 Size 成员设置为 NDIS_SIZEOF_FILTER_DRIVER_CHARACTERISTICS_REVISION_2。
NDIS_FILTER_CHARACTERISTICS_REVISION_1
原始版本。
将 Size 成员设置为NDIS_SIZEOF_FILTER_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 保留。
FriendlyName
一个 Unicode 字符串,表示筛选器驱动程序的用户可读说明。
UniqueName
一个 Unicode 字符串,表示筛选器驱动程序的唯一名称。 此字符串必须是用大括号括起来的 GUID,例如“{5cbf81bd-5055-47cd-9055-a76b2b4e3697}”。 此 GUID 必须与筛选器驱动程序的 INF 文件中 NetCfgInstanceId INF 文件条目中的 GUID 匹配。 有关详细信息,请参阅 筛选器驱动程序的 INF 文件设置。
ServiceName
一个 Unicode 字符串,表示筛选器驱动程序的服务名称。 此字符串必须是筛选器驱动程序的 INF 文件中 AddService 指令中的服务名称。 有关详细信息,请参阅 筛选器驱动程序的 INF 文件设置。
SetOptionsHandler
指定调用方 FilterSetOptions 函数的入口点。
SetFilterModuleOptionsHandler
调用方 的入口点 FilterSetModuleOptions 函数。
AttachHandler
调用方 FilterAttach 函数的入口点。
DetachHandler
调用方 FilterDetach 函数的入口点。
RestartHandler
调用方 FilterRestart 函数的入口点。
PauseHandler
调用方 FilterPause 函数的入口点。
SendNetBufferListsHandler
调用方 的入口点 FilterSendNetBufferLists 函数。 若要绕过此函数,请将此成员设置为 NULL。
SendNetBufferListsCompleteHandler
调用方 的入口点 FilterSendNetBufferListsComplete 函数。 若要绕过此函数,请将此成员设置为 NULL。
CancelSendNetBufferListsHandler
调用方 的入口点 FilterCancelSendNetBufferLists 函数。 若要绕过此函数,请将此成员设置为 NULL。
ReceiveNetBufferListsHandler
调用方 的入口点 FilterReceiveNetBufferLists 函数。 若要绕过此函数,请将此成员设置为 NULL。
ReturnNetBufferListsHandler
调用方 的入口点 FilterReturnNetBufferLists 函数。 若要绕过此函数,请将此成员设置为 NULL。
OidRequestHandler
调用方 FilterOidRequest 函数的入口点。 若要绕过此函数,请将此成员设置为 NULL。
OidRequestCompleteHandler
调用方 的入口点 FilterOidRequestComplete 函数。 若要绕过此函数,请将此成员设置为 NULL。
CancelOidRequestHandler
调用方 的入口点 FilterCancelOidRequest 函数。 若要绕过此函数,请将此成员设置为 NULL。
DevicePnPEventNotifyHandler
调用方 的入口点 FilterDevicePnPEventNotify 函数。 若要绕过此函数,请将此成员设置为 NULL。
NetPnPEventHandler
调用方 FilterNetPnPEvent 函数的入口点。 若要绕过此函数,请将此成员设置为 NULL。
StatusHandler
调用方 FilterStatus 函数的入口点。 若要绕过此函数,请将此成员设置为 NULL。
DirectOidRequestHandler
调用方 的入口点 FilterDirectOidRequest 函数。 若要绕过此函数,请将此成员设置为 NULL。
DirectOidRequestCompleteHandler
调用方 的入口点 FilterDirectOidRequestComplete 函数。 若要绕过此函数,请将此成员设置为 NULL。
CancelDirectOidRequestHandler
调用方 的入口点 FilterCancelDirectOidRequest 函数。 若要绕过此函数,请将此成员设置为 NULL。
SynchronousOidRequestHandler
调用方 FilterSynchronousOidRequest 函数的入口点。 若要绕过此函数,请将此成员设置为 NULL。
SynchronousOidRequestCompleteHandler
调用方 FilterSynchronousOidRequestComplete 函数的入口点。 若要绕过此函数,请将此成员设置为 NULL。
注解
筛选器驱动程序调用用于注册其特征的 NdisFRegisterFilterDriver 函数,包括其筛选器驱动程序函数的默认入口点 (FilterXxx) 。 筛选器驱动程序初始化NDIS_FILTER_DRIVER_CHARACTERISTICS结构,并在 NdisFRegisterFilterDriver 的 FilterCharacteristics 参数中传递指向此结构的指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |
另请参阅
FilterCancelDirectOidRequest FilterCancelSendNetBufferLists FilterDirectOidRequestComplete FilterSendNetBufferListsComplete NDIS_FILTER_PARTIAL_CHARACTERISTICS反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈