FWPS_VSWITCH_POLICY_EVENT_CALLBACK0回调函数 (fwpsk.h)

筛选器引擎调用 vSwitchPolicyEventNotifyFn (FWPS_VSWITCH_POLICY_EVENT_CALLBACK0) 标注函数,以通知标注驱动程序虚拟交换机策略事件。

注意FWPS_VSWITCH_POLICY_EVENT_CALLBACK0特定版本的 FWPS_VSWITCH_POLICY_EVENT_CALLBACK。 有关详细信息 ,请参阅 WFP Version-Independent 名称和面向特定版本的 Windows
 

语法

FWPS_VSWITCH_POLICY_EVENT_CALLBACK0 FwpsVswitchPolicyEventCallback0;

NTSTATUS FwpsVswitchPolicyEventCallback0(
  [in, optional] void *notifyContext,
  [in]           void *completionContext,
  [in]           FWPS_VSWITCH_EVENT_TYPE eventType,
  [in]           const NDIS_SWITCH_PARAMETERS *vSwitch,
  [in, optional] const NDIS_SWITCH_PORT_PROPERTY_PARAMETERS *vSwitchPortProperty,
  [in, optional] const NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS *vSwitchPortPropertyDelete
)
{...}

参数

[in, optional] notifyContext

指向标注驱动程序提供的上下文的指针。 驱动程序将此指针传递给 FwpsvSwitchEventsSubscribe0 函数的 notifyContext 参数。 此参数是可选的,可以为 NULL。

[in] completionContext

指向标注驱动程序提供的完成上下文的指针。 此参数是可选的,可以为 NULL。

[in] eventType

指定为 FWPS_VSWITCH_EVENT_TYPE 枚举值之一的虚拟交换机事件的类型。 有关详细信息,请参阅“备注”。

[in] vSwitch

指向包含虚拟交换机相关信息 的 NDIS_SWITCH_PARAMETERS 结构的指针。

注意NDIS_SWITCH_PARAMETERS结构中的信息反映虚拟交换机的初始状态,不一定反映其当前状态。 具体而言, NumSwitchPortsIsActive 成员的初始值可能仍为零,除非已触发虚拟交换机 PnP 事件。 可以在此回调函数的其他参数中找到当前状态信息。
 

[in, optional] vSwitchPortProperty

指向 NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 结构的指针。 虚拟交换机端口属性。

[in, optional] vSwitchPortPropertyDelete

指向 NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 结构的指针。 虚拟交换机端口属性。

返回值

标注的

FWPS_VSWITCH_POLICY_EVENT_CALLBACK0 函数返回以下 NTSTATUS 代码之一。

返回代码 说明
STATUS_SUCCESS
标注驱动程序接受来自筛选器引擎的通知。
STATUS_PENDING
操作处于挂起状态,稍后将完成。 标注驱动程序将调用 FwpsvSwitchNotifyComplete0 函数来完成挂起的操作。
其他状态代码
出现了错误。

注解

标注驱动程序通过调用 FwpsvSwitchEventsSubscribe0 函数注册 vSwitchPolicyEventNotifyFn 函数。

如果注册了 vSwitchPolicyEventNotifyFn 回调,则会在实时迁移期间和迁移 VM 在新主机上运行之前通知目标主机上为虚拟交换机端口配置的策略。

如果没有实时迁移,还将为 VM 保存操作调用 vSwitchPolicyEventNotifyFn

对通过 VMMS WMI 接口配置的供应商筛选策略的更改将传递给带有 OID 请求的 WFP 虚拟交换机扩展。 这些 OID 携带 一个 NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 结构, 其中 PropertyType 成员设置为 NdisSwitchPortPropertyTypeCustom 类型。

WFP 筛选器驱动程序将 OID_SWITCH_PORT_PROPERTY_ADD OID 请求中的信息传递给 vSwitchPolicyEventNotifyFn ,并在 eventType 参数中设置了FWPS_VSWITCH_EVENT_POLICY_ADD类型,以通知标注驱动程序添加虚拟交换机端口的策略属性。

WFP 筛选器驱动程序将 OID_SWITCH_PORT_PROPERTY_UPDATE OID 请求中的信息传递给 vSwitchPolicyEventNotifyFn ,并在 eventType 参数中设置了FWPS_VSWITCH_EVENT_POLICY_UPDATE类型,以通知标注筛选器驱动程序虚拟交换机端口策略的属性更新。

这些 OID 还包括唯一标识策略所属的 WFP 提供程序的属性标识符 GUID。 当供应商通过 VMMS 配置其策略时,会提供属性标识符 GUID,并且 GUID 必须与供应商用于向 WFP 注册其提供程序的 GUID 相同。

WFP 尝试将属性标识符 GUID 与 从 FwpsvSwitchEventsSubscribe0 函数指定的提供程序 GUID 匹配。 如果有匹配项,WFP 将调用相应的 vSwitchPolicyEventNotifyFn 并将 NDIS_SWITCH_PORT_PROPERTY_PARAMETERS 结构传递给标注。

WFP 筛选器驱动程序将 OID_SWITCH_PORT_PROPERTY_DELETE OID 请求中的信息传递给 vSwitchPolicyEventNotifyFn ,并在 eventType 参数中设置了FWPS_VSWITCH_EVENT_POLICY_DELETE类型,以通知标注筛选器驱动程序删除虚拟交换机端口的策略属性。 删除属性在 NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 结构中指定。

如果标注从 vSwitchPolicyEventNotifyFn 返回STATUS_PENDING,则 WFP 会将STATUS_PENDING返回到 FilterOidRequest 处理程序。 标注驱动程序将调用 FwpsvSwitchNotifyComplete0 函数来完成挂起的操作。

要求

要求
最低受支持的客户端 从Windows 8开始可用。
目标平台 Windows
标头 fwpsk.h (包括 Fwpsk.h)
IRQL <= DISPATCH_LEVEL

另请参阅

标注驱动程序标注函数

FWPS_VSWITCH_EVENT_TYPE

FilterOidRequest

FwpsvSwitchEventsSubscribe0

FwpsvSwitchNotifyComplete0

NDIS_SWITCH_PARAMETERS

NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS

NDIS_SWITCH_PORT_PROPERTY_PARAMETERS

OID_SWITCH_PORT_PROPERTY_ADD

OID_SWITCH_PORT_PROPERTY_DELETE

OID_SWITCH_PORT_PROPERTY_UPDATE