다음을 통해 공유


EVT_VMB_CHANNEL_SUSPEND 콜백 함수(vmbuskernelmodeclientlibapi.h)

[일부 정보는 상업적으로 출시되기 전에 실질적으로 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보와 관련하여 명시적이거나 묵시적인 보증을 하지 않습니다.]

클라이언트 엔드포인트에서 채널을 닫거나 삭제할 때 EvtVmbChannelSuspend 콜백 함수가 서버 엔드포인트에서 호출되어 서버를 중지됨 상태로 이동합니다.

통사론

EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;

VOID EvtVmbChannelSuspend(
  [in] VMBCHANNEL Channel
)
{...}

매개 변수

[in] Channel

일시 중단된 채널입니다.

반환 값

없음

발언

채널을 만든 후 클라이언트 드라이버는 VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT 함수를 사용하여 EvtVmbChannelSuspend포함하여 상태 변경에 대한 콜백 함수를 지정할 수 있습니다.

실행 중인 채널이 VmbChannelPause 함수를 사용하여 일시 중단되거나 VmbChannelDisable 함수를 사용하거나 반대 엔드포인트에 의해 닫힌 경우 KMCL(커널 모드 클라이언트 라이브러리)은 EvtVmbChannelSuspend호출합니다. 이 콜백은 더 이상 EvtVmbChannelProcessPacket 콜백이 실행 중이거나 큐에 대기되지 보장합니다.

EvtVmbChannelSuspend 또한 KMCL 클라이언트가 EvtVmbChannelProcessPacket을 사용하여 표시된 모든 미해결 패킷을 결국 완료해야 한다는 알림이기도 이러한 패킷을 동기적으로 완료할 필요가 없습니다. KMCL 블록이 완료될 때까지 차단합니다.

또한 KMCL 클라이언트는 VmbPacketSend, VmbPacketSendWithExternalMdl또는 VmbPacketSendWithExternalPfns 함수를 패킷 전송을 중지해야 합니다.

VmbChannelPause에 대한 호출은 EvtVmbChannelSuspend 호출되고 더 이상 미해결 수신 패킷이 존재하지 않을 때까지 활성 채널 블록에서.
채널이 일시 중지되고 닫힐 때까지 VmbChannelDisable 블록에 대한 호출입니다.

이 함수는 미해결 트랜잭션의 완료를 보장합니다. 클라이언트가 버그가 있거나 악의적이거나 게스트 가상 머신이 충돌했을 수 있습니다. 서버는 미해결 트랜잭션을 취소하여 사용 중지해야 합니다.

요구 사항

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

참고 항목

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns