Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menjalankan prosesor virtual dalam partisi, memungkinkannya untuk menjalankan kode tamu.
Syntax
// Exit reasons
typedef enum WHV_RUN_VP_EXIT_REASON
{
WHvRunVpExitReasonNone = 0x00000000,
// Standard exits caused by operations of the virtual processor
WHvRunVpExitReasonMemoryAccess = 0x00000001,
WHvRunVpExitReasonX64IoPortAccess = 0x00000002,
WHvRunVpExitReasonUnrecoverableException = 0x00000004,
WHvRunVpExitReasonInvalidVpRegisterValue = 0x00000005,
WHvRunVpExitReasonUnsupportedFeature = 0x00000006,
WHvRunVpExitReasonX64InterruptWindow = 0x00000007,
WHvRunVpExitReasonX64Halt = 0x00000008,
WHvRunVpExitReasonX64ApicEoi = 0x00000009,
// Additional exits that can be configured through partition properties
WHvRunVpExitReasonX64MsrAccess = 0x00001000,
WHvRunVpExitReasonX64Cpuid = 0x00001001,
WHvRunVpExitReasonException = 0x00001002,
WHvRunVpExitReasonX64Rdtsc = 0x00001003,
// Exits caused by the host
WHvRunVpExitReasonCanceled = 0x00002001
} WHV_RUN_VP_EXIT_REASON;
// WHvRunVirtualProcessor output buffer
typedef struct WHV_RUN_VP_EXIT_CONTEXT
{
WHV_RUN_VP_EXIT_REASON ExitReason;
UINT32 Reserved;
WHV_VP_EXIT_CONTEXT VpContext;
union
{
WHV_MEMORY_ACCESS_CONTEXT MemoryAccess;
WHV_X64_IO_PORT_ACCESS_CONTEXT IoPortAccess;
WHV_X64_MSR_ACCESS_CONTEXT MsrAccess;
WHV_X64_CPUID_ACCESS_CONTEXT CpuidAccess;
WHV_VP_EXCEPTION_CONTEXT VpException;
WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT InterruptWindow;
WHV_X64_UNSUPPORTED_FEATURE_CONTEXT UnsupportedFeature;
WHV_RUN_VP_CANCELED_CONTEXT CancelReason;
WHV_X64_APIC_EOI_CONTEXT ApicEoi;
WHV_X64_RDTSC_CONTEXT ReadTsc;
};
} WHV_RUN_VP_EXIT_CONTEXT;
HRESULT
WINAPI
WHvRunVirtualProcessor(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ UINT32 VpIndex,
_Out_writes_bytes_(ExitContextSizeInBytes) VOID* ExitContext,
_In_ UINT32 ExitContextSizeInBytes
);
Parameters
Partition
Tangani ke objek partisi.
VpIndex
Menentukan indeks prosesor virtual yang dijalankan.
ExitContext
Menentukan buffer output yang menerima struktur konteks yang memberikan informasi tentang alasan yang menyebabkan WHvRunVirtualProcessor fungsi kembali.
ExitContextSizeInBytes
Menentukan ukuran buffer yang menerima konteks keluar, dalam byte.
Mengembalikan Nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah S_OK.
Remarks
Prosesor virtual dijalankan (yaitu, diaktifkan untuk menjalankan kode tamu) dengan memanggil WHvRunVirtualProcessor fungsi . Panggilan memblokir secara sinkron sampai prosesor virtual melakukan operasi yang harus ditangani tumpukan virtualisasi (misalnya, mengakses memori di ruang IPK yang tidak dipetakan atau tidak dapat diakses) atau tumpukan virtualisasi secara eksplisit meminta keluarnya fungsi (misalnya, untuk menyuntikkan interupsi untuk prosesor virtual atau untuk mengubah status VM).
Requirements
| Persyaratan | Nilai |
|---|---|
| Windows minimum yang didukung | Windows 10, versi 1803 (x64); Windows 11, versi 24H2, build 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Perpustakaan | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64, Arm64 |
Baca juga
WHvCancelRunVirtualProcessor- Keluar dari Jenis Data Konteks
- Definisi API Platform Hypervisor Windows