From nobody Mon Feb 9 11:46:44 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1641823311; cv=none; d=zohomail.com; s=zohoarc; b=TMaO4d4Z9PLpRNF/C7zSUVdu09jrFVPLV8JiLnnBgPnTBGIZg04HF9B0C28Bhyj3K15tf5hKSaGPSt2KWafdZUqUgOM/HpRttoZH7LtPAIH9Mj15567O8brGTwY9hf+3cDFHfk5YjWNPiFsBsXwdxuBuD7HPhZoH7cs+sm64GTI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641823311; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=B/PuiaiPTEsCHacu0SBkdgDPgiVpur/KjjkCy3lBTeA=; b=m2x756UUazo02MXbIzEUsuVJ2IVXFWQ90tL3yjO0OLFAXrxWp02mekkia433QUxRmOGFEVpZsSbQAApvl12ClSeb+6ml6zVgXIH3R7cyB5oyneafT0uvO/oBcvS3A+HsBP+9ubJTyp4QzMOQGiGS2LXtWW7yrlDjriT8avIie00= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1641823311217423.2081896063527; Mon, 10 Jan 2022 06:01:51 -0800 (PST) Received: from localhost ([::1]:43240 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6vF8-0003Kr-4J for importer@patchew.org; Mon, 10 Jan 2022 09:01:50 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39106) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6v0o-0002MV-Fl for qemu-devel@nongnu.org; Mon, 10 Jan 2022 08:47:02 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:22406) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6v0m-00073E-Mx for qemu-devel@nongnu.org; Mon, 10 Jan 2022 08:47:02 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-628-ZdBV6euUObihQaRL8Wl7RQ-1; Mon, 10 Jan 2022 08:46:59 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4660681CCB7; Mon, 10 Jan 2022 13:46:58 +0000 (UTC) Received: from kostyanf14nb.Dlink (unknown [10.40.193.252]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 609487BB41; Mon, 10 Jan 2022 13:46:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1641822420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=B/PuiaiPTEsCHacu0SBkdgDPgiVpur/KjjkCy3lBTeA=; b=e8K+ZWTT8VuRYUxg8FuTXx/r3FWC5oATBd7/e/d6xPiwTFndWm8N9rqbJnFIQmyI/f5RNH N5JCKGa4XDZZurteUobBFkzxGERIgWyE/Q8XeLrURBA7SCZiO+u8thglQPO0RXTmBUm+9u aq3u8Ctq5tm5dN3p9Goohvf7/IUOUFs= X-MC-Unique: ZdBV6euUObihQaRL8Wl7RQ-1 From: Konstantin Kostiuk To: qemu-devel@nongnu.org, Peter Maydell Subject: [PULL 8/9] qga-win: Detect OS based on Windows 10 by first build number Date: Mon, 10 Jan 2022 15:46:43 +0200 Message-Id: <20220110134644.107375-9-kkostiuk@redhat.com> In-Reply-To: <20220110134644.107375-1-kkostiuk@redhat.com> References: <20220110134644.107375-1-kkostiuk@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kkostiuk@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=kkostiuk@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.597, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1641823316612100005 From: Kostiantyn Kostiuk Windows Server 2016, 2019, 2022 are based on Windows 10 and have the same major and minor versions. So, the only way to detect the proper version is to use the build number. Before this commit, the guest agent use the last build number for each OS, but it causes problems when new OS releases. There are few preview versions before release, and we can't update this list. After this commit, the guest agent will use the first build number. For each new preview version or release version, Microsoft increases the build number, so we can add the number of the first preview build and this will work until the new OS release. Signed-off-by: Kostiantyn Kostiuk Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Kostiantyn Kostiuk --- qga/commands-win32.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/qga/commands-win32.c b/qga/commands-win32.c index 892082504f..3f60419419 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -2195,7 +2195,7 @@ static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2]= [8] =3D { }; =20 typedef struct _ga_win_10_0_server_t { - int final_build; + int first_build; char const *version; char const *version_id; } ga_win_10_0_server_t; @@ -2235,18 +2235,22 @@ static char *ga_get_win_name(OSVERSIONINFOEXW const= *os_version, bool id) int tbl_idx =3D (os_version->wProductType !=3D VER_NT_WORKSTATION); ga_matrix_lookup_t const *table =3D WIN_VERSION_MATRIX[tbl_idx]; ga_win_10_0_server_t const *win_10_0_table =3D WIN_10_0_SERVER_VERSION= _MATRIX; + ga_win_10_0_server_t const *win_10_0_version =3D NULL; while (table->version !=3D NULL) { if (major =3D=3D 10 && minor =3D=3D 0 && tbl_idx) { while (win_10_0_table->version !=3D NULL) { - if (build <=3D win_10_0_table->final_build) { - if (id) { - return g_strdup(win_10_0_table->version_id); - } else { - return g_strdup(win_10_0_table->version); - } + if (build >=3D win_10_0_table->first_build) { + win_10_0_version =3D win_10_0_table; } win_10_0_table++; } + if (win_10_0_table) { + if (id) { + return g_strdup(win_10_0_version->version_id); + } else { + return g_strdup(win_10_0_version->version); + } + } } else if (major =3D=3D table->major && minor =3D=3D table->minor)= { if (id) { return g_strdup(table->version_id); --=20 2.25.1