FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST 콜백 함수(vmbuskernelmodeclientlibapi.h)

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

VmbChannelSendSynchronousRequest 함수는 패킷을 반대 엔드포인트로 보내고 응답을 기다립니다.

구문

FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST FnVmbChannelSendSynchronousRequest;

NTSTATUS FnVmbChannelSendSynchronousRequest(
  VMBCHANNEL Channel,
  PVOID Buffer,
  UINT32 BufferSize,
  PMDL ExternalDataMdl,
  UINT32 Flags,
  PVOID CompletionBuffer,
  PUINT32 CompletionBufferSize,
  PLARGE_INTEGER Timeout
)
{...}

매개 변수

Channel

채널에 대한 핸들입니다.

Buffer

보낼 데이터입니다.

BufferSize

보낼 데이터의 크기(바이트)입니다.

ExternalDataMdl

보낼 추가 버퍼를 설명하는 MDL(메모리 설명자 목록)입니다.

Flags

표준 플래그.

CompletionBuffer

완료 패킷 결과를 저장할 버퍼입니다.

CompletionBufferSize

CompletionBuffer 값의 크기(바이트)입니다. 이 값은 가장 가까운 8바이트까지 반올림해야 합니다. 그렇지 않으면 함수가 실패합니다. 성공하면 CompletionBuffer에 기록된 바이트 수를 반환합니다.

Timeout

KeWaitForSingleObject 라우팅 스타일의 시간 제한입니다. 이 시간이 경과하면 패킷이 취소됩니다. 시간 제한이 0인 경우 패킷이 링 버퍼에서 전나무가 되지 않으면 큐에 대기되지 않습니다.

반환 값

반환 코드 설명
STATUS_SUCCESS
함수가 성공적으로 완료되었습니다.
STATUS_BUFFER_OVERFLOW
패킷이 버퍼에 맞지 않고 큐에 대기되지 않았습니다.
STATUS_CANCELLED
패킷이 취소되었습니다.
STATUS_DEVICE_REMOVED
채널이 종료되고 있습니다.

설명

클라이언트는 매개 변수의 조합으로 이 함수를 실행할 수 있습니다.

루트는 및 VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION 플래그가 설정되지 않은 경우에만 *Timeout == 0 호출할 수 있습니다.

중요

이 함수는 Vmbkmcl.sys 버스 드라이버에서 제공하는 KMCL(VMBus 커널 모드 클라이언트 라이브러리) 인터페이스를 통해 호출됩니다. KMCL_CLIENT_INTERFACE_V1 구조에서 액세스하는 클라이언트 함수입니다.

자세한 내용은 KMCL_CLIENT_INTERFACE_V1 설명 섹션을 참조 하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1803
머리글 vmbuskernelmodeclientlibapi.h

추가 정보

KeWaitForSingleObject