다음을 통해 공유


HvCallPostMessage

HvCallPostMessage 하이퍼콜은 연결된 대상 포트가 있는 지정된 연결에 메시지를 게시(즉, 비동기적으로 전송)하려고 합니다. 메시지가 성공적으로 게시되면 포트와 연결된 파티션 내의 가상 프로세서에 배달하기 위해 큐에 대기합니다.

인터페이스

HV_STATUS
HvCallPostMessage(
   _In_ HV_CONNECTION_ID ConnectionId,
   _In_ HV_MESSAGE_TYPE MessageType,
   _In_ UINT32 PayloadSize,
   _In_reads_bytes_(PayloadSize) PCVOID Message
   );

호출 코드

0x005C (단순)

입력 매개 변수

이름 Offset 크기 제공된 정보
ConnectionId 0 4 연결의 ID를 지정합니다.
RsvdZ 4 4
MessageType 8 4 메시지 헤더 내에 나타날 메시지 유형을 지정합니다. 호출자는 0을 제외하고 가장 중요한 비트가 지워지는 32비트 메시지 유형을 지정할 수 있습니다.
PayloadSize 12 4 메시지에 포함된 바이트 수를 지정합니다.
Message 16 240 메시지의 페이로드를 총 240바이트까지 해독합니다. 첫 번째 n바이트만 실제로 대상 파티션으로 전송됩니다. 여기서 n은 PayloadSize 매개 변수에 제공됩니다.

반환 값

상태 코드 오류 조건
HV_STATUS_ACCESS_DENIED 호출자의 파티션에는 PostMessages 권한이 없습니다.
HV_STATUS_INVALID_CONNECTION_ID 지정한 연결 ID가 잘못되었습니다.
HV_STATUS_INVALID_PORT_ID 지정된 연결과 연결된 포트가 삭제되었습니다.
지정된 연결과 연결된 포트는 "활성" 상태가 아닌 파티션에 속합니다.
지정된 연결과 연결된 포트가 "메시지" 형식 포트가 아닙니다.
HV_STATUS_INVALID_PARAMETER 지정된 메시지 유형의 가장 중요한 비트가 설정됩니다.
MessageType 매개 변수는 0 값을 지정합니다.
지정된 페이로드 크기가 240바이트를 초과합니다.
HV_STATUS_INSUFFICIENT_BUFFERS 포트에 사용 가능한 게스트 메시지 버퍼가 없습니다.
HV_STATUS_INVALID_VP_INDEX 대상 VP가 더 이상 존재하지 않거나 메시지를 게시할 수 있는 사용 가능한 VP가 없습니다.
HV_STATUS_INVALID_SYNIC_STATE 대상 VP의 SynIC가 비활성화되어 게시된 메시지를 수락할 수 없습니다.
대상 VP의 SIM 페이지를 사용할 수 없습니다.