You're right that the headers _are_ included in whp-dispatch.h, so yeah
they do provide WHV_PARTITION_HANDLE which is the only thing that needs
API includes.
But in turn whpx_state is only needed for whpx_apic_in_platform(), so
the main issue is that sysemu/whpx.h is exposing unnecessary application
details. We can make two changes. First, make whpx_apic_in_platform()
a function instead of a macro, so that whpx_state can be moved to a new
header whpx-internal.h.
In fact, whp-dispatch.h and the new header can be merged, too. I'll
send two patches.
Paolo