HvlQueryHypervisorProcessorNodeNumber

The HvlQueryHypervisorProcessorNodeNumber function obtains the node number for a logical processor.

Declaration

NTSTATUS 
HvlQueryHypervisorProcessorNodeNumber (
    ULONG LpIndex, 
    USHORT *NodeNumber);

Parameters

The LpIndex argument specifies which logical processor to look up.

The NodeNumber argument provides the address of a variable that is to receive the node number.

Return Value

The function returns STATUS_SUCCESS if successful, else a negative error code.

Availability

The HvlQueryHypervisorProcessorNodeNumber function is exported by name from the kernel in version 6.2 and higher.

Documentation Status

The HvlQueryHypervisorProcessorNodeNumber function is not documented. It is, however, declared in the NTOSP.H from the Windows Driver Kit (WDK) for Windows 10.

Behaviour

The function depends on the CPU Management feature of the hypervisor. If this is not enabled, the function fails, returning STATUS_UNSUCCESSFUL.

The function also fails, again returning STATUS_UNSUCCESSFUL, if it cannot find the given logical processor index in the kernel’s array of logical processor control blocks. If only for now, this array provides for 0x0200 logical processors: the given index must be smaller.

Otherwise, the function copies the node number from the control block to the given address, and returns STATUS_SUCCESS.