FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 callback function

The filter engine calls the vSwitchRuntimeStateSaveNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0) callout function to notify a callout driver about virtual switch run-time state save events.

Note  FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 is a specific version of FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK. See WFP Version-Independent Names and Targeting Specific Versions of Windows for more information.

 

Syntax

FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 FwpsVswitchRuntimeStateSaveCallback0;

NTSTATUS FwpsVswitchRuntimeStateSaveCallback0(
  void *notifyContext,
  void *completionContext,
  FWPS_VSWITCH_EVENT_TYPE eventType,
  const NDIS_SWITCH_PARAMETERS *vSwitch,
  NDIS_SWITCH_PORT_ID portId,
  void **runtimeState,
  SIZE_T *runtimeStateLength
)
{...}

Parameters

notifyContext

completionContext

eventType

The type of virtual switch event specified as one of the FWPS_VSWITCH_EVENT_TYPE enumeration values. For more information, see Remarks.

vSwitch

portId

The source switch port identifier.

*runtimeState

runtimeStateLength

Return Value

A callout's

FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 function returns one of the following NTSTATUS codes.

Return code Description
STATUS_SUCCESS
The callout driver accepts the notification from the filter engine.
STATUS_PENDING
The operation is pending and will be completed later. The callout driver will call the FwpsvSwitchNotifyComplete0 function to complete the pending operation.
Other status codes
An error occurred.

Remarks

A callout driver registers a vSwitchRuntimeStateSaveNotifyFn function by calling the FwpsvSwitchEventsSubscribe0 function.

If the vSwitchRuntimeStateSaveNotifyFn callback is registered, the callout will be notified to retrieve a source VM’s run-time state and to restore a target VM’s run-time state during live migration or a local save and restore operation. In the save case, the eventType parameter of vSwitchRuntimeStateSaveNotifyFn is set to FWPS_VSWITCH_EVENT_RUNTIME_STATE_SAVE.

The virtual switch extension protocol driver issues an object identifier (OID) method request of OID_SWITCH_NIC_SAVE during an operation to save run-time data for a virtual switch port. The filter driver returns this data so that run-time data for a virtual switch port can be saved and restored at a later time.

After the run-time data blob from all callouts are collected, WFP fills the <a href="https://docs.microsoft.com/windows-hardware/drivers/ddi/content/ntddndis/ns-ntddndis-_ndis_switch_nic_save_state">NDIS_SWITCH_NIC_SAVE_STATE</a> structure with the harvested data and completes the save state request. 

A callout can return STATUS_PENDING from vSwitchRuntimeStateSaveNotifyFn. In this case, WFP will return STATUS_PENDING in the FilterOidRequest handler and will complete it at a later time. The callout driver will call the FwpsvSwitchNotifyComplete0 function to complete the pending operation.

See the vSwitchRuntimeStateRestoreNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0) function for information about restoring the run-time state.

Requirements

   
Minimum supported client Available starting with Windows 8.
Target Platform Windows
Header fwpsk.h (include Fwpsk.h)
IRQL <= DISPATCH_LEVEL

See Also

Callout Driver Callout Functions

FWPS_VSWITCH_EVENT_TYPE

FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0

FilterOidRequest

FwpsvSwitchEventsSubscribe0

FwpsvSwitchNotifyComplete0

NDIS_SWITCH_NIC_SAVE_STATE

NDIS_SWITCH_PARAMETERS

OID_SWITCH_NIC_SAVE