return win2qemu[(int)bus];
}
-DEFINE_GUID(GUID_DEVINTERFACE_DISK,
- 0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2,
- 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
-DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,
- 0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82,
- 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
-
static void get_pci_address_for_device(GuestPCIAddress *pci,
HDEVINFO dev_info)
{
DWORD last_err = GetLastError();
if (last_err == ERROR_MORE_DATA) {
/* Try once more with big enough buffer */
+ size = sizeof(VOLUME_DISK_EXTENTS) +
+ (sizeof(DISK_EXTENT) * (extents->NumberOfDiskExtents - 1));
g_free(extents);
extents = g_malloc0(size);
if (!DeviceIoControl(
fs = g_malloc(sizeof(*fs));
fs->name = g_strdup(guid);
fs->has_total_bytes = false;
+ fs->has_total_bytes_privileged = false;
fs->has_used_bytes = false;
if (len == 0) {
fs->mountpoint = g_strdup("System Reserved");
typedef struct _ga_matrix_lookup_t {
int major;
int minor;
- char const *version;
- char const *version_id;
+ const char *version;
+ const char *version_id;
} ga_matrix_lookup_t;
-static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][7] = {
- {
- /* Desktop editions */
- { 5, 0, "Microsoft Windows 2000", "2000"},
- { 5, 1, "Microsoft Windows XP", "xp"},
- { 6, 0, "Microsoft Windows Vista", "vista"},
- { 6, 1, "Microsoft Windows 7" "7"},
- { 6, 2, "Microsoft Windows 8", "8"},
- { 6, 3, "Microsoft Windows 8.1", "8.1"},
- { 0, 0, 0}
- },{
- /* Server editions */
- { 5, 2, "Microsoft Windows Server 2003", "2003"},
- { 6, 0, "Microsoft Windows Server 2008", "2008"},
- { 6, 1, "Microsoft Windows Server 2008 R2", "2008r2"},
- { 6, 2, "Microsoft Windows Server 2012", "2012"},
- { 6, 3, "Microsoft Windows Server 2012 R2", "2012r2"},
- { 0, 0, 0},
- { 0, 0, 0}
- }
+static const ga_matrix_lookup_t WIN_CLIENT_VERSION_MATRIX[] = {
+ { 5, 0, "Microsoft Windows 2000", "2000"},
+ { 5, 1, "Microsoft Windows XP", "xp"},
+ { 6, 0, "Microsoft Windows Vista", "vista"},
+ { 6, 1, "Microsoft Windows 7" "7"},
+ { 6, 2, "Microsoft Windows 8", "8"},
+ { 6, 3, "Microsoft Windows 8.1", "8.1"},
+ { }
+};
+
+static const ga_matrix_lookup_t WIN_SERVER_VERSION_MATRIX[] = {
+ { 5, 2, "Microsoft Windows Server 2003", "2003"},
+ { 6, 0, "Microsoft Windows Server 2008", "2008"},
+ { 6, 1, "Microsoft Windows Server 2008 R2", "2008r2"},
+ { 6, 2, "Microsoft Windows Server 2012", "2012"},
+ { 6, 3, "Microsoft Windows Server 2012 R2", "2012r2"},
+ { },
};
typedef struct _ga_win_10_0_t {
int first_build;
- char const *version;
- char const *version_id;
+ const char *version;
+ const char *version_id;
} ga_win_10_0_t;
-static ga_win_10_0_t const WIN_10_0_SERVER_VERSION_MATRIX[4] = {
+static const ga_win_10_0_t WIN_10_0_SERVER_VERSION_MATRIX[] = {
{14393, "Microsoft Windows Server 2016", "2016"},
{17763, "Microsoft Windows Server 2019", "2019"},
{20344, "Microsoft Windows Server 2022", "2022"},
- {0, 0}
+ {26040, "MIcrosoft Windows Server 2025", "2025"},
+ { }
};
-static ga_win_10_0_t const WIN_10_0_CLIENT_VERSION_MATRIX[3] = {
+static const ga_win_10_0_t WIN_10_0_CLIENT_VERSION_MATRIX[] = {
{10240, "Microsoft Windows 10", "10"},
{22000, "Microsoft Windows 11", "11"},
- {0, 0}
+ { }
};
static void ga_get_win_version(RTL_OSVERSIONINFOEXW *info, Error **errp)
return;
}
-static char *ga_get_win_name(OSVERSIONINFOEXW const *os_version, bool id)
+static char *ga_get_win_name(const OSVERSIONINFOEXW *os_version, bool id)
{
DWORD major = os_version->dwMajorVersion;
DWORD minor = os_version->dwMinorVersion;
DWORD build = os_version->dwBuildNumber;
int tbl_idx = (os_version->wProductType != VER_NT_WORKSTATION);
- ga_matrix_lookup_t const *table = WIN_VERSION_MATRIX[tbl_idx];
- ga_win_10_0_t const *win_10_0_table = tbl_idx ?
+ const ga_matrix_lookup_t *table = tbl_idx ?
+ WIN_SERVER_VERSION_MATRIX : WIN_CLIENT_VERSION_MATRIX;
+ const ga_win_10_0_t *win_10_0_table = tbl_idx ?
WIN_10_0_SERVER_VERSION_MATRIX : WIN_10_0_CLIENT_VERSION_MATRIX;
- ga_win_10_0_t const *win_10_0_version = NULL;
+ const ga_win_10_0_t *win_10_0_version = NULL;
while (table->version != NULL) {
if (major == 10 && minor == 0) {
while (win_10_0_table->version != NULL) {