Share via


FN_VMB_PACKET_SEND 콜백 함수(vmbuskernelmodeclientlibapi.h)

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

VmbPacketSend 함수는 패킷 버퍼 또는 외부 데이터 MDL(메모리 설명자 목록)의 데이터를 보냅니다. 함수는 해당 데이터를 트랜잭션 수명 동안 패킷을 나타내는 VMBus 패킷 개체와 연결합니다.

구문

FN_VMB_PACKET_SEND FnVmbPacketSend;

NTSTATUS FnVmbPacketSend(
  __drv_aliasesMem VMBPACKET PacketObject,
  PVOID Buffer,
  UINT32 BufferLength,
  PMDL ExternalDataMdl,
  UINT32 Flags
)
{...}

매개 변수

PacketObject

VMBus 패킷 개체에 대한 핸들입니다.

Buffer

VMBus 링 버퍼를 통해 전송되는 명령 패킷을 포함하는 버퍼입니다.

BufferLength

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

ExternalDataMdl

패킷과 연결된 데이터 버퍼를 설명하는 MDL입니다.

Flags

플래그. 관련 플래그는 다음과 같습니다.

의미
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
이 패킷은 완료된 것으로 간주할 수 없으며 완료 패킷이 반대 엔드포인트에서 돌아올 때까지 해당 리소스를 해제할 수 없습니다.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
인라인 버퍼는 페이징되며 그에 따라 처리되어야 합니다. 즉, DPC 수준을 입력하기 전에 복사해야 합니다. 사용자 모드 버퍼 검색 또는 액세스 위반 처리는 호출자의 책임입니다.

반환 값

작업이 성공하면 STATUS_SUCCESS 반환하고, 그렇지 않으면 적절한 NTSTATUS 오류 코드를 반환합니다.

설명

패킷을 보내는 다른 방법에 대한 자세한 내용은 VmbPacketSendWithExternalMdl, VmbChannelSendSynchronousRequestVmbPacketSendWithExternalPfns 함수를 참조하세요.

중요

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

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

요구 사항

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

추가 정보

VmbChannelSendSynchronousRequest

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns