FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 콜백 함수(fwpsk.h)
필터 엔진은 vSwitchRuntimeStateSaveNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0) 설명선 함수를 호출하여 설명선 드라이버에 가상 스위치 런타임 상태 저장 이벤트에 대해 알립니다.
참고
FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 특정 버전의 FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK. 자세한 내용은 WFP Version-Independent 이름 및 특정 버전의 Windows 대상 지정 을 참조하세요.
구문
FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 FwpsVswitchRuntimeStateSaveCallback0;
NTSTATUS FwpsVswitchRuntimeStateSaveCallback0(
[in, optional] void *notifyContext,
[in] void *completionContext,
[in] FWPS_VSWITCH_EVENT_TYPE eventType,
[in] const NDIS_SWITCH_PARAMETERS *vSwitch,
[in] NDIS_SWITCH_PORT_ID portId,
void **runtimeState,
[out] SIZE_T *runtimeStateLength
)
{...}
매개 변수
[in, optional] notifyContext
설명선 드라이버에서 제공하는 컨텍스트에 대한 포인터입니다. 드라이버는 FwpsvSwitchEventsSubscribe0 함수의 notifyContext 매개 변수에 이 포인터를 전달했습니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in] completionContext
설명선 드라이버에서 제공하는 완료 컨텍스트에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in] eventType
FWPS_VSWITCH_EVENT_TYPE 열거형 값 중 하나로 지정된 가상 스위치 이벤트의 형식입니다. 자세한 내용은 설명 부분을 참조하세요.
[in] vSwitch
가상 스위치에 대한 정보를 포함하는 NDIS_SWITCH_PARAMETERS 구조체에 대한 포인터입니다.
참고
NDIS_SWITCH_PARAMETERS 구조체의 정보는 가상 스위치의 초기 상태를 반영하며 반드시 현재 상태는 아닙니다. 특히 가상 스위치 PnP 이벤트가 트리거되지 않는 한 NumSwitchPorts 및 IsActive 멤버의 초기 값은 0일 수 있습니다. 현재 상태 정보는 이 콜백 함수의 다른 매개 변수에서 찾을 수 있습니다.
[in] portId
원본 스위치 포트 식별자입니다.
runtimeState
런타임 상태 출력 결과 버퍼의 위치입니다.
[out] runtimeStateLength
런타임 상태 버퍼의 런타임 상태 정보의 길이(바이트)입니다.
반환 값
설명선의 FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_SUCCESS | 설명선 드라이버는 필터 엔진의 알림을 수락합니다. |
STATUS_PENDING | 작업이 보류 중이며 나중에 완료됩니다. 설명선 드라이버는 FwpsvSwitchNotifyComplete0 함수를 호출하여 보류 중인 작업을 완료합니다. |
기타 상태 코드 | 오류가 발생했습니다. |
설명
설명선 드라이버는 FwpsvSwitchEventsSubscribe0 함수를 호출하여 vSwitchRuntimeStateSaveNotifyFn 함수를 등록합니다.
vSwitchRuntimeStateSaveNotifyFn 콜백이 등록된 경우 콜아웃에 원본 VM의 런타임 상태를 검색하고 라이브 마이그레이션 또는 로컬 저장 및 복원 작업 중에 대상 VM의 런타임 상태를 복원하라는 알림이 표시됩니다. 저장 사례에서 vSwitchRuntimeStateSaveNotifyFn의 eventType 매개 변수가 FWPS_VSWITCH_EVENT_RUNTIME_STATE_SAVE 설정됩니다.
가상 스위치 확장 프로토콜 드라이버는 가상 스위치 포트에 대한 런타임 데이터를 저장하는 작업 중에 OID_SWITCH_NIC_SAVE OID(개체 식별자) 메서드 요청을 실행합니다. 필터 드라이버는 가상 스위치 포트에 대한 런타임 데이터를 나중에 저장하고 복원할 수 있도록 이 데이터를 반환합니다.
모든 설명선의 런타임 데이터 Blob이 수집된 후 WFP는 NDIS_SWITCH_NIC_SAVE_STATE 구조를 수집된 데이터로 채우고 저장 상태 요청을 완료합니다.
설명선은 vSwitchRuntimeStateSaveNotifyFn에서 STATUS_PENDING 반환할 수 있습니다. 이 경우 WFP는 FilterOidRequest 처리기에서 STATUS_PENDING 반환하고 나중에 완료합니다. 설명선 드라이버는 FwpsvSwitchNotifyComplete0 함수를 호출하여 보류 중인 작업을 완료합니다.
런타임 상태 복원에 대한 자세한 내용은 vSwitchRuntimeStateRestoreNotifyFn (FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0) 함수를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 사용하여 사용할 수 있습니다. |
대상 플랫폼 | Windows |
헤더 | fwpsk.h(Fwpsk.h 포함) |
IRQL | <= DISPATCH_LEVEL |