qga: added GuestPCIAddress information
commitc54e1eb4928d4e6762c7100d1d1ef5f08ddf922b
authorMichael Roth <mdroth@linux.vnet.ibm.com>
Wed, 8 Jul 2015 00:12:18 +0000 (7 19:12 -0500)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Wed, 8 Jul 2015 01:59:04 +0000 (7 20:59 -0500)
treec378054dd8a22f79aed04d7b031fb6eaa7a0515d
parenta3ef3b2272d8349c932f8c440bcaa31d8518b1c0
qga: added GuestPCIAddress information

PCIAddress inforfation is obtained via SetupApi, which provides the
information about address, bus, etc. We look throught entire device tree
in the system and try to find device object for given volume. For this PDO
SetupDiGetDeviceRegistryProperty is called, which reads PCI configuration
for a given devicei if it is possible.

This is the most convinient way for a userspace service. The lookup is
performed for every volume available. However, this information is
not mandatory for vss-provider.

In order to use SetupApi we need to notify linker about it. We do not need
to install additional libs, so we do not make separate configuration
option to use libsetupapi.su

SetupApi gives as the same information as kernel driver
with IRP_MN_QUERY_INTERFACE.
https://support.microsoft.com/en-us/kb/253232

Signed-off-by: Olga Krishtal <okrishtal@virtuozzo.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Eric Blake <eblake@redhat.com>
CC: Michael Roth <mdroth@linux.vnet.ibm.com>
* stub out get_pci_info if !CONFIG_QGA_NTDDSCSI
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
configure
qga/commands-win32.c