[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 05/11] qga/vss-win32: check old VSS SDK headers
From: |
Paolo Bonzini |
Subject: |
[PULL 05/11] qga/vss-win32: check old VSS SDK headers |
Date: |
Wed, 2 Mar 2022 19:11:28 +0100 |
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The VssCoordinator & VssAdmin interfaces have been moved to vsadmin.h in
the Windows SDK.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20220222194008.610377-3-marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 3 +++
qga/vss-win32/install.cpp | 4 ++++
qga/vss-win32/provider.cpp | 4 ++++
qga/vss-win32/vss-common.h | 3 ++-
4 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index b871098dbb..101a3f2d31 100644
--- a/meson.build
+++ b/meson.build
@@ -1933,12 +1933,15 @@ config_host_data.set('CONFIG_AF_VSOCK',
cc.compiles(gnu_source_prefix + '''
}'''))
have_vss = false
+have_vss_sdk = false # old xp/2003 SDK
if targetos == 'windows' and link_language == 'cpp'
have_vss = cxx.compiles('''
#define __MIDL_user_allocate_free_DEFINED__
#include <vss.h>
int main(void) { return VSS_CTX_BACKUP; }''')
+ have_vss_sdk = cxx.has_header('vscoordint.h')
endif
+config_host_data.set('HAVE_VSS_SDK', have_vss_sdk)
have_ntddscsi = false
if targetos == 'windows'
diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp
index efc5bb9909..8076efe3cb 100644
--- a/qga/vss-win32/install.cpp
+++ b/qga/vss-win32/install.cpp
@@ -13,7 +13,11 @@
#include "qemu/osdep.h"
#include "vss-common.h"
+#ifdef HAVE_VSS_SDK
#include <vscoordint.h>
+#else
+#include <vsadmin.h>
+#endif
#include "install.h"
#include <wbemidl.h>
#include <comdef.h>
diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp
index fd187fb66f..1b885e24ee 100644
--- a/qga/vss-win32/provider.cpp
+++ b/qga/vss-win32/provider.cpp
@@ -12,7 +12,11 @@
#include "qemu/osdep.h"
#include "vss-common.h"
+#ifdef HAVE_VSS_SDK
#include <vscoordint.h>
+#else
+#include <vsadmin.h>
+#endif
#include <vsprov.h>
#define VSS_TIMEOUT_MSEC (60*1000)
diff --git a/qga/vss-win32/vss-common.h b/qga/vss-win32/vss-common.h
index 54f8de8c88..0e67e7822c 100644
--- a/qga/vss-win32/vss-common.h
+++ b/qga/vss-win32/vss-common.h
@@ -64,12 +64,13 @@ const CLSID CLSID_QGAVSSProvider = { 0x6e6a3492, 0x8d4d,
0x440c,
const TCHAR g_szClsid[] = TEXT("{6E6A3492-8D4D-440C-9619-5E5D0CC31CA8}");
const TCHAR g_szProgid[] = TEXT("QGAVSSProvider");
+#ifdef HAVE_VSS_SDK
/* Enums undefined in VSS SDK 7.2 but defined in newer Windows SDK */
enum __VSS_VOLUME_SNAPSHOT_ATTRIBUTES {
VSS_VOLSNAP_ATTR_NO_AUTORECOVERY = 0x00000002,
VSS_VOLSNAP_ATTR_TXF_RECOVERY = 0x02000000
};
-
+#endif
/* COM pointer utility; call ->Release() when it goes out of scope */
template <class T>
--
2.34.1
- [PULL 00/11] QEMU changes for 2021-03-02, Paolo Bonzini, 2022/03/02
- [PULL 02/11] whpx: Fixed incorrect CR8/TPR synchronization, Paolo Bonzini, 2022/03/02
- [PULL 03/11] vmxcap: Add 5-level EPT bit, Paolo Bonzini, 2022/03/02
- [PULL 04/11] meson: fix generic location of vss headers, Paolo Bonzini, 2022/03/02
- [PULL 01/11] whpx: Fixed reporting of the CPU context to GDB for 64-bit, Paolo Bonzini, 2022/03/02
- [PULL 06/11] qga/vss: update informative message about MinGW, Paolo Bonzini, 2022/03/02
- [PULL 05/11] qga/vss-win32: check old VSS SDK headers,
Paolo Bonzini <=
- [PULL 07/11] update meson-buildoptions.sh, Paolo Bonzini, 2022/03/02
- [PULL 08/11] kvm-irqchip: introduce new API to support route change, Paolo Bonzini, 2022/03/02
- [PULL 09/11] kvm/msi: do explicit commit when adding msi routes, Paolo Bonzini, 2022/03/02
- [PULL 11/11] target/i386: Throw a #SS when loading a non-canonical IST, Paolo Bonzini, 2022/03/02
- [PULL 10/11] target/i386: only include bits in pg_mode if they are not ignored, Paolo Bonzini, 2022/03/02
- Re: [PULL 00/11] QEMU changes for 2021-03-02, Peter Maydell, 2022/03/02