EVT_VMB_CHANNEL_SAVE_PACKET 콜백 함수(vmbuskernelmodeclientlibapi.h)

[일부 정보는 상업용으로 출시되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 명시적 또는 묵시적 보증을 하지 않습니다.]

VSP(가상화 서비스 공급자) 엔드포인트가 패킷과 연결된 상태를 저장해야 하는 경우 EvtVmbChannelSavePacket 콜백 함수가 호출됩니다.

구문

EVT_VMB_CHANNEL_SAVE_PACKET EvtVmbChannelSavePacket;

NTSTATUS EvtVmbChannelSavePacket(
  [in]  VMBCHANNEL Channel,
  [in]  VMBPACKET Packet,
  [out] PVOID SaveBuf,
  [in]  UINT32 SaveBufSize,
  [out] PUINT32 BytesNeeded
)
{...}

매개 변수

[in] Channel

패킷이 도착하는 채널입니다.

[in] Packet

VSP가 상태를 저장하는 패킷입니다.

[out] SaveBuf

상태를 저장할 버퍼입니다.

[in] SaveBufSize

SaveBuf 매개 변수의 크기(바이트)입니다.

[out] BytesNeeded

트랜잭션 상태를 저장하는 데 필요한 크기(바이트)입니다.

반환 값

EvtVmbChannelSavePacket은 상태 코드를 반환합니다.

설명

VmbServerChannelInitSetSaveRestorePacketCallbacks 함수는 각 채널에 대한 패킷을 저장하기 위한 콜백 함수를 설정합니다.

VSP는 VSP에 고유한 트랜잭션과 연결된 상태를 저장합니다. KMCL(커널 모드 클라이언트 라이브러리)은 자체 상태를 저장합니다.

이 함수는 현재 사용 중인 각 패킷 개체에 대해 호출됩니다. 첫 번째 호출은 SaveBufSize 매개 변수에 대해 0 값을 전달합니다. 저장해야 하는 상태가 있으면 이 호출이 실패합니다. 그러면 BytesNeeded 가 실제 크기 요구 사항으로 채워집니다. 이 첫 번째 호출이 실패 코드를 반환하는 경우 KMCL은 첫 번째 호출에 규정된 길이 이상의 버퍼를 사용하여 두 번째로 호출합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 vmbuskernelmodeclientlibapi.h(VmbusKernelModeClientLibApi.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

VmbServerChannelInitSetSaveRestorePacketCallbacks