EVT_VMB_CHANNEL_PROCESS_PACKET 콜백 함수(vmbuskernelmodeclientlibapi.h)

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

패킷이 들어오는 링 버퍼에 도착하면 EvtVmbChannelProcessPacket 콜백 함수가 호출됩니다.

구문

EVT_VMB_CHANNEL_PROCESS_PACKET EvtVmbChannelProcessPacket;

void EvtVmbChannelProcessPacket(
  [in] VMBCHANNEL Channel,
  [in] VMBPACKETCOMPLETION Packet,
  [in] PVOID Buffer,
  [in] UINT32 BufferLength,
  [in] UINT32 Flags
)
{...}

매개 변수

[in] Channel

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

[in] Packet

트랜잭션을 사용 중지할 수 있는 경우 KMCL(커널 모드 클라이언트 라이브러리)에 이 패킷을 식별하는 완료 컨텍스트입니다.

[in] Buffer

반대 엔드포인트에서 보낸 패킷입니다. 이 값은 VMBus 및 KMCL 헤더를 포함하지 않습니다.

[in] BufferLength

Buffer 매개 변수의 길이(바이트)입니다.

[in] Flags

플래그. 가능한 값은 다음과 같습니다.

의미
VMBUS_CHANNEL_PROCESS_PACKET_FLAGS
0x1
패킷은 외부 데이터를 참조합니다. 이 데이터는 VmbChannelPacketGetExternalData 함수를 사용하여 검색할 수 있습니다.

반환 값

없음

설명

클라이언트 드라이버는 VmbChannelInitSetProcessPacketCallbacks 함수를 사용하여 이 콜백 함수의 구현을 등록합니다.

이 함수를 호출할 때마다 결국 VmbChannelPacketComplete 함수를 호출해야 합니다.

이 콜백 함수는 작업자 스레드에 대한 패킷 처리를 지연하도록 채널이 구성되지 않은 한 DISPATCH_LEVEL 이하에서 호출할 수 있습니다.

요구 사항

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

추가 정보

VmbChannelInitSetProcessPacketCallbacks

VmbChannelPacketComplete

VmbChannelPacketGetExternalData