FILTER_NET_PNP_EVENT回调函数 (ndis.h)

NDIS 调用筛选器驱动程序的 FilterNetPnPEvent 函数,以通知驱动程序网络即插即用 (PnP) 和电源管理事件。

注意 必须使用 FILTER_NET_PNP_EVENT 类型声明函数。 有关详细信息,请参阅以下示例部分。
 

语法

FILTER_NET_PNP_EVENT FilterNetPnpEvent;

NDIS_STATUS FilterNetPnpEvent(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNET_PNP_EVENT_NOTIFICATION NetPnPEventNotification
)
{...}

参数

[in] FilterModuleContext

筛选器模块上下文区域的句柄。 筛选器驱动程序在 FilterAttach 函数中创建并初始化了此上下文区域。

[in] NetPnPEventNotification

指向 NET_PNP_EVENT_NOTIFICATION 结构,它描述要向筛选器驱动程序指示的 PnP 事件或电源管理事件。

返回值

FilterNetPnPEvent 可以返回以下任一项:

返回代码 说明
NDIS_STATUS_SUCCESS
驱动程序已成功处理 PnP 事件。
NDIS_STATUS_FAILURE
驱动程序失败了 PnP 事件。
 

仅当传播的事件是 NetEventQueryPowerNetEventQueryRemove 事件时,返回值才有效。 对于所有其他传播事件,返回值始终NDIS_STATUS_SUCCESS。

注解

FilterNetPnPEvent 是一个可选函数。 如果筛选器驱动程序不处理网络 PnP 事件,它可以在调用 时将此函数的入口点设置为 NULL NdisFRegisterFilterDriver 函数。

FilterNetPnPEvent 类似于协议驱动程序的 ProtocolNetPnPEvent 函数。 筛选器驱动程序可以将这些通知转发给过度的驱动程序,或者它可以自行处理它们,而不是转发它们。 若要转发通知,请调用 NdisFNetPnPEvent 函数。 请勿将此函数与 FilterDevicePnPEventNotify 函数,用于筛选将堆栈向下定向到基础驱动程序的通知。

NDIS 调用 FilterNetPnPEvent 以通知筛选器驱动程序为基础 NIC 发出的 PnP 或电源管理事件。 NDIS 调用覆盖 NIC 的每个筛选器驱动程序的 FilterNetPnPEvent 函数,然后调用每个过度覆盖协议驱动程序的 ProtocolNetPnPEvent 函数。

将筛选器模块插入驱动程序堆栈或从驱动程序堆栈中删除时,堆栈的特征可能会更改。 NDIS 向所有受影响的协议绑定和筛选器模块发送 PnP 事件,以通知它们此更改。 筛选器驱动程序应适当处理此类更改。

NDIS 在 IRQL = PASSIVE_LEVEL 调用 FilterNetPnPEvent

示例

若要定义 FilterNetPnPEvent 函数,必须首先提供一个函数声明,用于标识要定义的函数类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是为 Windows 操作系统编写驱动程序的要求。

例如,若要定义名为“ MyNetPnPEvent ”的 FilterNetPnPEvent 函数,请使用 FILTER_NET_PNP_EVENT 类型,如以下代码示例所示:

FILTER_NET_PNP_EVENT MyNetPnPEvent;

然后,按如下所示实现函数:

_Use_decl_annotations_
NDIS_STATUS
 MyNetPnPEvent(
    NDIS_HANDLE  FilterModuleContext,
    PNET_PNP_EVENT_NOTIFICATION  NetPnPEvent
    )
  {...}

FILTER_NET_PNP_EVENT函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations批注可确保使用应用于头文件中FILTER_NET_PNP_EVENT函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数

有关 Use_decl_annotations的信息,请参阅 批注函数行为

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 Windows
标头 ndis.h (包括 Ndis.h)
IRQL PASSIVE_LEVEL

另请参阅

FilterAttach

FilterDevicePnPEventNotify

NET_PNP_EVENT_NOTIFICATION

NdisFNetPnPEvent

NdisFRegisterFilterDriver

ProtocolNetPnPEvent