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 |