VirtualProcessor

final class ntoseye.VirtualProcessor

A virtual processor of a Windows hypervisor partition.

property address: int

The address of the hypervisor’s VP object.

ept_differences() → list[EptDifference]

The guest physical ranges that VTL0’s and VTL1’s EPTs map differently, in order, as !hveptdiff lists them. Raises NtoseyeError unless both VTLs have eVMCS state and readable EPTs.

property index: int

The VP index in its partition.

property processors: list[HypervisorProcessor]

The processors whose current VP this is (the one that runs it, or ran it last).

registers(vtl: int | None = None) → VpRegisters

The registers of VTL vtl of this VP, by default the VTL it runs in, as !hvr shows them, whether or not a processor runs it: those of a vCPU that runs it now, those of the exit a vCPU in the hypervisor handles for it, or those it saved at its last exit, which it resumes with but for the exit’s result, such as a hypercall’s status in RAX (source says which). The general-purpose registers are shared by a VP’s VTLs and belong to the one it runs in; another VTL’s are its eVMCS state alone, and missing says why. Reads the target now, so it must be halted. This feature is experimental.

to_dict() → dict[str, Any]

Return the VP as a plain dict (index, address, processors, vtl, and vtls, a dict from each VTL to its dict).

property vtl: int

The VTL that the VP runs, or last ran, in.

property vtls: dict[int, HypervisorVtl]

Each VTL enabled on the VP, keyed by VTL ({0: ..., 1: ...} under VBS).