HvCallSignalEvent 하이퍼콜은 지정된 연결과 연결된 포트를 소유하는 파티션의 이벤트에 신호를 보냅니다.
이벤트는 수신 파티션의 가상 프로세서 중 하나의 SIEF 페이지 내에서 비트를 설정하여 신호를 받습니다. 호출자는 상대 플래그 번호를 지정합니다. 실제 SIEF 비트 번호는 지정된 플래그 번호를 포트와 연결된 기본 플래그 번호에 추가하여 하이퍼바이저에서 계산합니다.
인터페이스
HV_STATUS
HvCallSignalEvent(
_In_ HV_CONNECTION_ID ConnectionId,
_In_ UINT16 FlagNumber
);
호출 코드
0x005D (단순)
입력 매개 변수
| 이름 | Offset | 크기 | 제공된 정보 |
|---|---|---|---|
ConnectionId |
0 | 4 | 연결의 ID를 지정합니다. |
FlagNumber |
4 | 2 | 호출자가 대상 SIEF 영역 내에서 설정하려는 이벤트 플래그의 상대 인덱스를 지정합니다. 이 숫자는 포트와 연결된 기본 플래그 번호를 기준으로 합니다. |
| RsvdZ | 6 | 2 |
반환 값
| 상태 코드 | 오류 조건 |
|---|---|
HV_STATUS_ACCESS_DENIED |
호출자의 파티션에는 SignalEvents 권한이 없습니다. |
HV_STATUS_INVALID_CONNECTION_ID |
지정한 연결 ID가 잘못되었습니다. |
HV_STATUS_INVALID_PORT_ID |
지정된 연결과 연결된 포트가 삭제되었습니다. |
| 지정된 연결과 연결된 포트는 "활성" 상태가 아닌 파티션에 속합니다. | |
| 지정된 연결과 연결된 포트가 "이벤트" 형식 포트가 아닙니다. | |
HV_STATUS_INVALID_PARAMETER |
지정된 플래그 번호가 포트의 플래그 수보다 크거나 같습니다. |
HV_STATUS_INVALID_VP_INDEX |
대상 VP가 더 이상 없거나 메시지를 게시할 수 있는 사용 가능한 VP가 없습니다. |
HV_STATUS_INVALID_SYNIC_STATE |
대상 VP의 SynIC가 비활성화되어 신호 이벤트를 수락할 수 없습니다. |
| 대상 VP의 SIEF 페이지를 사용할 수 없습니다. |