From win-pv-devel-bounces@lists.xenproject.org Wed Oct 05 13:15:16 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 05 Oct 2022 13:15:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.416181.660827 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1og4F0-0001Nf-As; Wed, 05 Oct 2022 13:15:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 416181.660827; Wed, 05 Oct 2022 13:15:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1og4F0-0001NY-84; Wed, 05 Oct 2022 13:15:14 +0000
Received: by outflank-mailman (input) for mailman id 416181;
 Wed, 05 Oct 2022 13:15:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iNgc=2G=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1og4Ey-0001NS-Kt
 for win-pv-devel@lists.xenproject.org; Wed, 05 Oct 2022 13:15:12 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd8d805a-44af-11ed-9377-c1cf23e5d27e;
 Wed, 05 Oct 2022 15:15:11 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id j7so20556284wrr.3
 for <win-pv-devel@lists.xenproject.org>; Wed, 05 Oct 2022 06:15:10 -0700 (PDT)
Received: from [192.168.6.151] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 u12-20020adfc64c000000b00225307f43fbsm16693860wrg.44.2022.10.05.06.15.09
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Oct 2022 06:15:09 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd8d805a-44af-11ed-9377-c1cf23e5d27e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:from:to:cc:subject:date;
        bh=pRX99Gw1XuxaZrqARkgnufAmWZkXSxDTiT704awcPyA=;
        b=MNR+lBCen6dAjS0yPabdKiYClKElIhHhPMjZS/JqG0QVpmKUjQkANubgoevJH0WCs7
         Pfhn4BGHSaJ1Rvb7ll5/BqdG8AzfYHa66EJobckhfe+d41mm0tg6noPNHjHyg5yZDuk4
         OFvleojGET3UqdD2Fp2CoJ0zY/VE2E+58h3vJ0GsJnYs44mKrs93lF1iz897vBUl9TW4
         J4nmFx/E9C3NO4vz2Hniaj2GjkrXgQSs7q7z8B4Y3jkkpj9j00FIsBWCZgAqFkeZ+N1j
         73E/bD9EwGDaUXVwNaVvnIalFbf8FhMZaiAM6ym+ZoR1UOszfdIxMBaCaNsSuioPoSfZ
         Yljw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:x-gm-message-state:from:to:cc:subject:date;
        bh=pRX99Gw1XuxaZrqARkgnufAmWZkXSxDTiT704awcPyA=;
        b=hULB/PSszVl/ZTEb8sBTXxMwquxifg4yniYRI90bKzdkBs/Em554GzuVipnDZsWoE1
         2NQuKU+I5P80uXZSrBWDibm/FjorVGW7seesxRpIt4ywuVjNPkRaXl7yzwKx35RsH+/H
         JDYTljGwGNaGFs6Qo3+Aow4OPfxINKn5Pma4K+jyM2RhNBlETiN92dF7TJlAWpYG9wiN
         F01zJDsulDoTHT2DMb2IA9x9IrUulKVMZ3du8pbxzehNsZHRNf4tR8vMmkOrNEGJQh74
         pLQ5YzhBB2f9mFL0O36/NNnIOE6XLmYj3qnTS9SSjUEiY16zwrL1GQQzj4GzGNnj6pUD
         lhiA==
X-Gm-Message-State: ACrzQf1TEzC/8LGrW1VBaFyHv5fgoa50ZQ+5banymW6+14s7W2GrkgMt
	jpNxxTM7CCplQL6c3PPvhc75GZvHLFF41g==
X-Google-Smtp-Source: AMsMyM5xZvepQKVjs+3q6pfd3+iHY+voFstUQRmbhZPDmY2E0QITkUz2KAXStF2juagMTboAvLDjug==
X-Received: by 2002:a05:6000:4084:b0:22e:5b99:4c4a with SMTP id da4-20020a056000408400b0022e5b994c4amr3485670wrb.538.1664975710494;
        Wed, 05 Oct 2022 06:15:10 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <70c777b4-787d-7a68-f722-c7e147a76e8c@xen.org>
Date: Wed, 5 Oct 2022 14:15:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.0
Subject: Re: [PATCH 1/2] Store the current network IDs before upgrade
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20220926095526.1376-1-owen.smith@citrix.com>
Organization: Xen Project
In-Reply-To: <20220926095526.1376-1-owen.smith@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 26/09/2022 10:55, Owen Smith wrote:
> Write the current NetCfgInstanceId and NetLuid to a store location during
> the install preprocess step, so that XenVif can restore settings if the
> network IDs are changed.
> Write NetLuid and NetCfgInstanceId to XenVif's Settings key for this VIF index
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul@xen.org>



From win-pv-devel-bounces@lists.xenproject.org Wed Oct 05 13:16:00 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 05 Oct 2022 13:16:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.416186.660832 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1og4Fk-0001Ro-Dr; Wed, 05 Oct 2022 13:16:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 416186.660832; Wed, 05 Oct 2022 13:16:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1og4Fk-0001Rh-BB; Wed, 05 Oct 2022 13:16:00 +0000
Received: by outflank-mailman (input) for mailman id 416186;
 Wed, 05 Oct 2022 13:15:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iNgc=2G=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1og4Fi-0001Pz-Fa
 for win-pv-devel@lists.xenproject.org; Wed, 05 Oct 2022 13:15:58 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8cdbf14-44af-11ed-964a-05401a9f4f97;
 Wed, 05 Oct 2022 15:15:57 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id bu30so6031168wrb.8
 for <win-pv-devel@lists.xenproject.org>; Wed, 05 Oct 2022 06:15:56 -0700 (PDT)
Received: from [192.168.6.151] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 f13-20020a5d568d000000b0022584c82c80sm15300879wrv.19.2022.10.05.06.15.55
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Oct 2022 06:15:56 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8cdbf14-44af-11ed-964a-05401a9f4f97
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:from:to:cc:subject:date;
        bh=Qyemunbd8ipB1YjoGBVcLxwSufn/GOEyUjEgZX+ARWY=;
        b=IXfAzyM2dxcJ93NKCoJVDXkuiumtY67VNDb4PHqT6vBs6WfeObmgvnqXGBMWXiadFl
         53yKnGc9dIINftwpPCGpR0CGADuIuRHuXLbQC9XvYiKpSaH2XqtX57XK80KRO+Xsa/yr
         9MpCASSmWWQI9ReuIBBytvLwvlTuEYONyvNaPU2XLPWSMjCKW8Lsv2+zx6WCtRosktnY
         LSIscJrBvao9/vU54+YK/HzoDoIwMPdWbxXsskALFpy1nYE2QgYbHOqhlM2ad4XiVMgt
         BnWpu8+eROC27qmffWQQGXJ5MIG5Ms6dM9CEO8LsMplxNrTe51QvA13864z7EltPoNCB
         L9Dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:x-gm-message-state:from:to:cc:subject:date;
        bh=Qyemunbd8ipB1YjoGBVcLxwSufn/GOEyUjEgZX+ARWY=;
        b=0rb3szcd5Jpi3SKntKKOohgsjq3abBy1FuSZAYpChlSsx4F3qaXFqculdHgkK0+DjY
         WeQktgbJawrcbvuuZOMDOs9Vcy7aJQYL9PlakPni6GYnukFxMq5HT4fSKKR/S4v4xKLX
         e7S17lhmWuyr4iN8A0TOfpkWQib+NqzpOqRM+falLXCLLqc1cjjXECuvf5ysot4pLMi6
         zSdhWFB4W01030C2QKKQEXDcrc+6EtJRzBwWz6chopiKRIFUoKPtE2nNfQ/PlOKLgc1c
         lQMZL/AnO+7GpW/TpGOOr9FdP4utwcqoaneIUgS9onTkAd6HUVsqp1gwEzadDCQVLMWY
         6ASA==
X-Gm-Message-State: ACrzQf18ilnD32iy+uGy7yVJpvrrAcdTSrfpRWP5OPgI/FqzFvDuSB5B
	J1LMZ0o7G8HMbpFNMxUWm4X8wp+fL26SEQ==
X-Google-Smtp-Source: AMsMyM4YgJorde5lLl9raxv2xCvZvX65wIy1Wmfn3tgBtNzn+2CHe7xgUg6sr1LGCGuVI1j/EvJbEg==
X-Received: by 2002:a5d:688d:0:b0:22e:5fe2:35da with SMTP id h13-20020a5d688d000000b0022e5fe235damr2151730wru.660.1664975756516;
        Wed, 05 Oct 2022 06:15:56 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <964ded14-c743-a1bd-d811-a1028917cf88@xen.org>
Date: Wed, 5 Oct 2022 14:15:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.0
Subject: Re: [PATCH 2/2] Rework network settings copy code.
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20220926095526.1376-1-owen.smith@citrix.com>
 <20220926095526.1376-2-owen.smith@citrix.com>
Organization: Xen Project
In-Reply-To: <20220926095526.1376-2-owen.smith@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 26/09/2022 10:55, Owen Smith wrote:
> Rather than copying network settings twice (once on save and once on restore),
> stash the current network interface Guid and network Luid on save and copy
> settings from the previous Guid and Luid to the new location on restore.
> By relying on the current settings, the copy code will always restore the
> settings that are current. This will pick up any changes that are made without
> requiring a copy from the save.
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul@xen.org>



From win-pv-devel-bounces@lists.xenproject.org Sat Oct 08 01:49:45 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 08 Oct 2022 01:49:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.418414.663229 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ogyyF-00021j-OR; Sat, 08 Oct 2022 01:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 418414.663229; Sat, 08 Oct 2022 01:49:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ogyyF-00021c-LY; Sat, 08 Oct 2022 01:49:43 +0000
Received: by outflank-mailman (input) for mailman id 418414;
 Sat, 08 Oct 2022 01:49:42 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul.durrant@xenproject.org>) id 1ogyyE-00021O-DK
 for win-pv-devel@lists.xenproject.org; Sat, 08 Oct 2022 01:49:42 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Date: Sat, 8 Oct 2022 01:49:23 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <1079370.1.1665193769566.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
Subject: XENVIF-master - Build #198 - Successful
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_0_29628460.1665193768597"
X-Jenkins-Job: XENVIF-master
X-Jenkins-Result: SUCCESS


------=_Part_0_29628460.1665193768597
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #198.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-master/198/console to view the results.
------=_Part_0_29628460.1665193768597--


From win-pv-devel-bounces@lists.xenproject.org Tue Oct 11 14:33:20 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 11 Oct 2022 14:33:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.420336.665176 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiGJp-0005UL-L7; Tue, 11 Oct 2022 14:33:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 420336.665176; Tue, 11 Oct 2022 14:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiGJp-0005UE-IF; Tue, 11 Oct 2022 14:33:17 +0000
Received: by outflank-mailman (input) for mailman id 420336;
 Tue, 11 Oct 2022 14:33:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GM5Y=2M=citrix.com=prvs=27680cf69=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1oiGJn-0005U8-Jb
 for win-pv-devel@lists.xenproject.org; Tue, 11 Oct 2022 14:33:16 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0bf6cc6-4971-11ed-91b4-6bf2151ebd3b;
 Tue, 11 Oct 2022 16:33:13 +0200 (CEST)
Received: from mail-dm6nam10lp2103.outbound.protection.outlook.com (HELO
 NAM10-DM6-obe.outbound.protection.outlook.com) ([104.47.58.103])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 11 Oct 2022 10:33:08 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by CO3PR03MB6710.namprd03.prod.outlook.com (2603:10b6:303:179::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Tue, 11 Oct
 2022 14:33:06 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc%7]) with mapi id 15.20.5676.032; Tue, 11 Oct 2022
 14:33:06 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0bf6cc6-4971-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665498793;
  h=from:to:subject:date:message-id:mime-version;
  bh=pNbAEI7DBq2dM/mtKMuJfcXn5krEvmF7cXoZ2QnLOb8=;
  b=JxLJIyEh0WbV1HAS7uPRzdsPxmHB36IvGMvuDdl03raXPBQSpQgm1eBW
   DB6kNRIr70GrNfbN2b+cZZ+AwY7wpA1dnBeM6uTtYkMmGR2WYLaL1od/H
   LeGdClawitiBRp9utb0XcQZQH4H2fkBGlHOICx57xhJ01CxLUKWJQjnHC
   k=;
X-IronPort-RemoteIP: 104.47.58.103
X-IronPort-MID: 82897394
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:5LrG3aBlkZ6E3hVW/yriw5YqxClBgxIJ4kV8jS/XYbTApDMlg2MHn
 zEXUDvXbveIZGumct4iO42z9EMH6seDyIBgQQY4rX1jcSlH+JHPbTi7wuUcHAvJd5GeExg3h
 yk6QoOdRCzhZiaE/n9BCpC48T8mk/ngqoPUUIbsIjp2SRJvVBAvgBdin/9RqoNziJ2yDhjlV
 ena+qUzA3f4nW8pWo4ow/jb8kk25K2r4GlwUmEWPpingnePzxH5M7pHTU2BByOQapVZGOe8W
 9HCwNmRlo8O105wYj8Nuu+TnnwiGtY+DyDX4pZlc/HKbix5jj4zys4G2M80Mi+7vdkrc+dZk
 72hvbToIesg0zaldO41C3G0GAkmVUFKFSOuzdFSfqV/wmWfG0YAzcmCA2kdPdE0yuJKDVoS1
 uITBhMDPk3Al8CplefTpulE3qzPLeHNFaZG4jRM6G+cCvwrB5feX6/N+NlUmi8qgdxDFurfY
 MxfbidzaBPHYFtEPVJ/5JAWxb/0wCWgNWAI7gvN/sLb4ECKpOB1+L3kKsbUfJqKTN9Lk1ewr
 WPa5WXpRBodMbRzzBLVqCL92bSewUsXXqoeML6f9fNVoWSo/VY9CSVKT3Djg9S23xvWt9V3b
 hZ8FjAVhbcz8gmzUJzxUgO1pFaAvwUAQJxAHusi8gaPx6HIpQGDCQA5oiVpbdUnsIo6QGIs3
 1rQx9fxX2U36/uSVG6X8aqSoXWqIy8JIGQeZCgCCwwY/93kp4J1hRXKJjp+LJOIYhTOMWmY6
 1i3QOIW3N3/UeZjO32HwG36
IronPort-HdrOrdr: A9a23:GxDleKjEjaX4FM57UBHwMpuT+XBQX1Z13DAbv31ZSRFFG/FwyP
 rCoB1L73XJYWgqM03IwerwXpVoMkmsjKKdgLNhS4tKOTOLhILGFvAH0WKP+Vzd8k7Fh6dgPM
 VbAs9D4bTLZDAU4/oSizPIcOrIteP3lZxA8t2urUuFIzsLV4hQqyNCTiqLGEx/QwdLQbAjEo
 CH28ZBrz28PVwKc8WSHBA+LqP+juyOsKijTQ8NBhYh5gXLpyiv8qTGHx+R2Qpbey9TwI0l7X
 POn2XCl++eWrCAu1LhPl3onttrcejau5V+7Qu3+4kowwDX+0qVjUJaKv2/VX4O0aKSAR0R4a
 HxSl8bTr9OAjXqDymISFLWqnPd+Sdr5Hn4xVCCh3z/5cT/WTIhEsJEwZlUax3D9iMbzaRBOY
 9wrhGkXqBsfGH9tTW448KNWwBhl0Kyr3ZnmekPj2ZHWY9bbLNKt4QQ8E5cDZ9FRUvBmfcaOf
 grCNuZ6OddcFucYXyctm5zwMa0VnB2GhudWEANtsGczjATlnFkyEkTwtAZgx47heYAYogB4/
 6BPrVjlblIQMNTZaVhBP0ZSc/yEWDJSQKkChPjHb0mLtB3B5vgke+J3Fxu3pDWRHUh9upPpL
 3RFFVFqGU1Z0XiTcWTwZwjyGGyfFmA
X-IronPort-AV: E=Sophos;i="5.95,176,1661832000"; 
   d="scan'208,217";a="82897394"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=A0cg2k9ISroLV9Yh/pw/lIdDG5PxEDvZ64bRBlBFcvH5d9MRuIRXASiu5kkexDITiq+ZVjwsvs9buwBYJIF9h+XbcH1J/xJUTQGFlYLJcr/aZYuwc/lrSrkCOOKNKTA+86X9HMNRMoVHc6+DteZivfI2vYjhCbMZWPYsKvpize0rEZKF8VFc3F9E3Dj9FSGNfYhQgdqL7uAUeq2kx351+PeRkHJopGXloS1n0WjD4SlfqygGUeqJzya0D+ATW5vm29vIRKpcM/XC8VDhoeeIhA4OXIKhLGJo85J5DGqM1pu8Bfs7F4yKZK9iBnSqIteQAXW13e6hmbfI0D8t6Fb6Gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2SRFancduubGmpk57L3p9I+Oeb511PpQerivMrBTpno=;
 b=KPhGC+CqibBrupvMonTWZ+tChcDyftIN83AaayoetchN9mE0pJ/lWTUpFd/XsbU/v+JxWFHHkiDDkE4xbDsh1c6puFFQYNxVXjF7DkIs2GFAuSjEDtOZbF6djEbWBdtNOPbkSBp3lHqhe6S1s4iXWu0YRPhQpyJZJ26y0x+/CuISx5NIrIDmiZes6I6GW6f2Tv0aVhVBtJA/yYkm1jtBI/qz1oyLLNXGmOZCDOS03foqT3p5LyC6fyZ/Og2DWogWHGH+XYcCDd1/90rr9/oCiVr8ta4JDWwmjl4LFO0msM1I/pCdPzSWqBdCxAeNW2BEe+JGJOuv3BgUJ0xD7NmXkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2SRFancduubGmpk57L3p9I+Oeb511PpQerivMrBTpno=;
 b=n8ThtqEnuamX9X/HAkzY12vPYq127q/OpKHxf5oJkCRIcbrOycJtgGjLprjIWl4HZdcFxYOCtgZBTEX6NiK/B3xuFl53k9HTVwBV8UsouVcyxXNS5QNU3+zluS8LEXegqFFxfXUP+E1thN/OBr54sjB+a9sFykXKqziVx/jxPwk=
From: Martin Harvey <martin.harvey@citrix.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Races in power IRP handling path.
Thread-Topic: Races in power IRP handling path.
Thread-Index: AdjdfgIYsgA4b4/cQtWn6fzH2WpcQg==
Date: Tue, 11 Oct 2022 14:33:06 +0000
Message-ID:
 <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MW4PR03MB6347:EE_|CO3PR03MB6710:EE_
x-ms-office365-filtering-correlation-id: a70ce43e-caae-41d6-4e76-08daab958340
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 CaImnxbxRIpIB+2SbVk/GlFURboD80RFYb4mVLFq/DJ4fnuxDLV5ag139lgGpIFQvCT0fRm2ao5kP/l+JLmTFiwCkWhVpguslZU7+8pKHpvhd7gfqNxfn/vwvgte2bIg8PW6omi1D70NIup3MHCIw0eL+8ijEUsqnf3Exatjkf8cO1NQ2YOk1vuw6kh7akjiyGBHxziQZPswMx+Wa4tgNYxSQcswgGW8vGW981n3I8815VfPuvHvXXBYfjih2VMZDYqoY52xKfuieFa1CezdmX5ZjxKoouvlVRhX4VXu9eFp2TTfNtRg496TCe+hUH5Bj5NWqmEiFhdUIcGD1ROaS9UdWXeZpXgMXkKiKWrBcF8V1byS+iYE4nLmnNZ4zhS7OT5Uszu3LY+ni7kgHKod5nHSSLYlWCw68NLCGMJwpNOj8GXQcfjpmqM4Az1J7jspxpTiXORxxhaRXugILiI7si5oUW7ix8IUjNDMMiKZl3e+XVDof1jnCF8Rh8OgXxYOwgnLKIWBpJs/SfJJVT7OJVcN886ZNwNMahQmCgURr1bwjhQ6hekBmF3EgX210zXMUc+Naq7wLyBA/f7CZ9BaL8KkjMU9uJr9lwhKmt97McC3l6hmeze8kw3HCOz9sUgP52HHgH6NUVoId55NIkK58Y0Xm2pBQjDmnpJRjn5uubaoZLvg5J9pFH2h7kK1szDKz2/DQisxm9T9DV/XFq3MpD5pwHrTsR4sahSrimfMoBlGwGZWMzO3/2bYIG85p9WMNFBMYAXCFbq9483XtS6fPg==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(346002)(136003)(366004)(39860400002)(396003)(451199015)(66476007)(4744005)(66556008)(6506007)(66946007)(8676002)(44832011)(41300700001)(2906002)(76116006)(122000001)(66446008)(186003)(38100700002)(9326002)(8936002)(6916009)(83380400001)(86362001)(9686003)(26005)(64756008)(33656002)(5660300002)(52536014)(55016003)(38070700005)(7696005)(316002)(71200400001)(82960400001)(478600001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?JgXBACOcAlxDsgrI5AFQMe81PzyNcEb2Pf+4XyQRbTiRGkqStFVTHzCoZEYC?=
 =?us-ascii?Q?Nenn5wB/CCxUvYnnhsbscBuAHO0NPn0uHzt/MC8Jb9/A4PtcBK2Tb3FuDaqV?=
 =?us-ascii?Q?HrRL/QbnGsGQHCY/F04Optg+l6u/kNr11gIjnEI3KU3soFO7gOKT/zoPZ0Wz?=
 =?us-ascii?Q?lpHSAfcMYfXL1a+pYwu7KYls83rBf8BENaU1QH3Rm4TAZ1jTUN9FTlL+KWUp?=
 =?us-ascii?Q?a80EznU/uEChTo5YiNrPnt3lpppYtJN0JwJAhxUCZjnMn2U31N71g8TyLkz6?=
 =?us-ascii?Q?WskICupXKM1YVwEA8X1nRt4iUyEsY9KHLpC1h67XpNqjddLVTV9kMK4+/DOs?=
 =?us-ascii?Q?MGtKyUocmS8b3VTbxm0Wbqg2YWgtojyW9YQSCAxUjhwGn9C15vpLpVc5nSQM?=
 =?us-ascii?Q?2Ogtx97Oku3UZm00Y7MA1AUBYsUQkzeDWryVDvJgaTYffh0NkhyttF7p4blT?=
 =?us-ascii?Q?JWugRIa7v7zpwMvHJWYIDqIx//nmmi+w9jvnAXdXIUe6MxiyccpgpHgGMikP?=
 =?us-ascii?Q?jNE/59LOWWsk+Vs0EBQy2G84Pik/+OMl/VR4MpOgGCgijqJUodVyBMmzaq0G?=
 =?us-ascii?Q?EMouGK/RfMOp1QsTjl5UcMhNUWpTEK+z6BG9E7084r3oT4bjgReTXAdIHe0L?=
 =?us-ascii?Q?4b0fHmEhREJ6RLiIWJkiEYrgo0EDzAnC2zF8kZDbeU5+Ley5k0fO3cInYuCM?=
 =?us-ascii?Q?wrA0DCefmeKWAgU3+lkMeMLUdnoyD229jTwVetX0tVoIMVkjK0bBPWMZ+DOW?=
 =?us-ascii?Q?woAcG1CTpVUiapDU7IkEU+R6E51SJRYMoYZnRJPphrYO+uKkemWw7mV9xq7O?=
 =?us-ascii?Q?9NR5OlGzZDiZUe3+gFfOfioUOMoGe5ke0yYXcLPoEgzbx4Oj8tQVg7NR+zvB?=
 =?us-ascii?Q?F3CaOJL715OGUtyQ/pOoMbpfKQXtCHY8UWnA/XGtHq7cqGclHDG4i6fsWwrR?=
 =?us-ascii?Q?SjZXVxefGCcfpdfyYwvmtW8t4ImSz4ASiNe62NskOntSIqVXReHRdc/V9vqr?=
 =?us-ascii?Q?xQmkoDBcfU7o79TLpY2mYeiafa7fNFgV4imNeUlGqy1CmyM1702TjPmbBTYW?=
 =?us-ascii?Q?0ImN2NoCGBMDuPSaC194Wfbo2pQ6EABku/pl48ROyGdfraNCKPMbhzB6E8ZN?=
 =?us-ascii?Q?pIf+KXM9GG2J8TPSi89SJpg71dxxpaJPjqykn5sK31GyaOK75nU7e8rVa0/O?=
 =?us-ascii?Q?s0opyXZ1u6uvb7aPv7Lb7FDs0j3P2d0XzqgY4XxlAnzcyt2tKVq980V0JUqs?=
 =?us-ascii?Q?QMMxpTgy91evCryEaFS623hA8eh0z5dZDk8qoxiyNilMKCrWgu6DqHx1mFQH?=
 =?us-ascii?Q?MlUlTRT7y60Vl85BqJhxVURHunKTc9eBX00I2W4NGEtMh3IZ/hMZWyrt8OVD?=
 =?us-ascii?Q?80pfdhBNwGTTVwnbvQtLg0ag29vLm86+rt8La5DNhhazbmriMDgLXlpdNHjK?=
 =?us-ascii?Q?HRIUwzcSDxdcBxcDMwFvS1MGqsBCjTawADmGimwoq+0hS9pT/DzZ7gyBZ4jo?=
 =?us-ascii?Q?wisa0aX8VowTb6W0ngPE7s46Qy531SJFBR4V7wPABRCLUslLm1gE7Pu6EWA/?=
 =?us-ascii?Q?OphhX2h0zeiUysyI5AI+cEAzojUm9D5Mvfiv1et9?=
Content-Type: multipart/alternative;
	boundary="_000_MW4PR03MB6347A1C2AE66C2A5778F25E49A239MW4PR03MB6347namp_"
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a70ce43e-caae-41d6-4e76-08daab958340
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2022 14:33:06.6540
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ruSMdEacT8wze77KMD+Vl2PoJHYG8dDySwOePDPZkFym35R/beng+MMDU0cVwL4U0aL9lqR+vwWe84vCwuQsp+bSeltY104FLVUhegoe7wE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO3PR03MB6710

--_000_MW4PR03MB6347A1C2AE66C2A5778F25E49A239MW4PR03MB6347namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable


Hi,

Been debugging power IRP handling. I notice that we not only pend power IRP=
s on the dispatch path, but also use completion routines to try to force a =
synchronous completion (Forward irp synchronously). You might want to consi=
der that setting a completion routine *outside* the dispatch handler on a p=
ended IRP is likely to be a racey operation in and of itself.

MH.

--_000_MW4PR03MB6347A1C2AE66C2A5778F25E49A239MW4PR03MB6347namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:DengXian;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"\@DengXian";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-GB" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Been debugging power IRP handling. I notice that we =
not only pend power IRPs on the dispatch path, but also use completion rout=
ines to try to force a synchronous completion (Forward irp synchronously). =
You might want to consider that setting
 a completion routine *<b>outside</b>* the dispatch handler on a pended IRP=
 is likely to be a racey operation in and of itself.<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;
<o:p></o:p></p>
<p class=3D"MsoNormal">MH.<o:p></o:p></p>
</div>
</body>
</html>

--_000_MW4PR03MB6347A1C2AE66C2A5778F25E49A239MW4PR03MB6347namp_--


From win-pv-devel-bounces@lists.xenproject.org Tue Oct 11 14:47:06 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 11 Oct 2022 14:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.420342.665179 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiGXA-0006z5-KC; Tue, 11 Oct 2022 14:47:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 420342.665179; Tue, 11 Oct 2022 14:47:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiGXA-0006yy-HV; Tue, 11 Oct 2022 14:47:04 +0000
Received: by outflank-mailman (input) for mailman id 420342;
 Tue, 11 Oct 2022 14:47:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=shED=2M=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1oiGX9-0006ys-Ne
 for win-pv-devel@lists.xenproject.org; Tue, 11 Oct 2022 14:47:03 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 914d4c23-4973-11ed-91b4-6bf2151ebd3b;
 Tue, 11 Oct 2022 16:47:02 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id n9so3198742wms.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 11 Oct 2022 07:47:02 -0700 (PDT)
Received: from [192.168.23.86] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 f8-20020a5d50c8000000b0022e36c1113fsm11589271wrt.13.2022.10.11.07.47.01
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 11 Oct 2022 07:47:01 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 914d4c23-4973-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :from:to:cc:subject:date:message-id:reply-to;
        bh=zptngtVv1Z9K0ABqqDFionBi01xRSE/zb3kp7En34To=;
        b=Ibnkt0xhKZHTW1HKYOsCiLl3b2+iqD9Ex+anH5ZXYhyC2wsg9VXeuwKi0q9HpNq7+E
         PGBMcCqRQXNR1Np62zy6iVduv5PetTJ+ez0FadHj9OJKHRyqu+91uB2XFx5wJvXQUvzl
         glYuQeO/DzjPkjNnmzz1oRypuGNu1d9NbFxUmq9wjpkLTT6iKUBSKPDrnpEQ6a7xdjmx
         Su2V4vtRIb9aKKlsspKGs5QjZQRi0XkNjqfVhI9Vp3QjXCWy2tvebcIf9MqfE7WGMzqI
         NGX0qZjiG4hrDGz2YFPoQf5nHGUGs5zRXADzA6nrZgz9M2HNlnud8uwdRpX+7aoDPFE7
         5aFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=zptngtVv1Z9K0ABqqDFionBi01xRSE/zb3kp7En34To=;
        b=U4K2cSGvNmuVwufHHlhXH9V5EwaAgfhib79e1/c9qrMELKePUH24JRXPcavfQWM2Ic
         ZCoPQiCwTRvAVJ5eMYwdwWR6+1l/IJ6Qow2btuzIYbOtz1S3KjOUmnQnwZvioHIbvpiS
         YYFBSkpcbXADaMGV98dbbeGZp9YWdm9LoROrGgB1i2bNXjbOwIyI7jeprwnco4QTErBL
         OoT4iVMhDfNJSJJ/0XbPiY4vbYRlJGGHKu5ge4u26rJv6yeryi5nod7GpBwmws3h5i0Z
         xaxfqEeY+i+ESewg2JkNJEKmReCk8GUzFFB9Ffc1fydIf0LtmQLj/+e30NfarRM0BM9G
         nWqw==
X-Gm-Message-State: ACrzQf2dTNA0LQdwVG7HhpmNseu6/9g6SlN1qi8GAy3sPUZvoXE+yq7d
	BkK9QtTkTXcSVjcNFOXidq5tHfjBljdgJQ==
X-Google-Smtp-Source: AMsMyM73imjb3kipiUs/khuHugaB13w1GirtZTPbDY+A0aVc/+G4LGsIcz3wurOjVQ773BA1C41VOA==
X-Received: by 2002:a05:600c:502a:b0:3be:48ac:bee7 with SMTP id n42-20020a05600c502a00b003be48acbee7mr23430255wmr.83.1665499622291;
        Tue, 11 Oct 2022 07:47:02 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
Date: Tue, 11 Oct 2022 15:47:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.1
Subject: Re: Races in power IRP handling path.
To: win-pv-devel@lists.xenproject.org
References: <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Language: en-US
Organization: Xen Project
In-Reply-To: <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/10/2022 15:33, Martin Harvey wrote:
> Hi,
> 
> Been debugging power IRP handling.

Which driver?

> I notice that we not only pend power 
> IRPs on the dispatch path, but also use completion routines to try to 
> force a synchronous completion (Forward irp synchronously). You might 
> want to consider that setting a completion routine **outside** the 
> dispatch handler on a pended IRP is likely to be a racey operation in 
> and of itself.
> 

Racey in what way? Power IRPs are special... there can only be one 
outstanding.

   Paul



From win-pv-devel-bounces@lists.xenproject.org Tue Oct 11 15:20:57 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 11 Oct 2022 15:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.420352.665184 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiH3w-0002q0-1T; Tue, 11 Oct 2022 15:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 420352.665184; Tue, 11 Oct 2022 15:20:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiH3v-0002pt-Um; Tue, 11 Oct 2022 15:20:55 +0000
Received: by outflank-mailman (input) for mailman id 420352;
 Tue, 11 Oct 2022 15:20:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GM5Y=2M=citrix.com=prvs=27680cf69=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1oiH3v-0002pn-HI
 for win-pv-devel@lists.xenproject.org; Tue, 11 Oct 2022 15:20:55 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4afad2aa-4978-11ed-91b4-6bf2151ebd3b;
 Tue, 11 Oct 2022 17:20:53 +0200 (CEST)
Received: from mail-dm6nam10lp2104.outbound.protection.outlook.com (HELO
 NAM10-DM6-obe.outbound.protection.outlook.com) ([104.47.58.104])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 11 Oct 2022 11:20:50 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by MW4PR03MB6967.namprd03.prod.outlook.com (2603:10b6:303:1a6::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Tue, 11 Oct
 2022 15:20:48 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc%7]) with mapi id 15.20.5676.032; Tue, 11 Oct 2022
 15:20:48 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4afad2aa-4978-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665501653;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=AjoeCsfUAUjKUrw+DjgbqUXyjK7nRCXGnOexLwTFCbQ=;
  b=JujZ/c69gJap3qu+z/gvag2XECK2xoquH2O8QZN0rP2MqQDwnEwojE/A
   RaHZSN86ZlrWxAbhvYjxKcFJrL2k1y1/17oY11f33tTBU9tTDSkYeUD3l
   OlZnTU6WRrZlSRjFi0KQIwoQTOfUIHpNTDhl+vrivn3YNG4mnqOJCuUZ1
   E=;
X-IronPort-RemoteIP: 104.47.58.104
X-IronPort-MID: 82903060
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:K0XvIqyLvYYup++zAwB6t+cpxyrEfRIJ4+MujC+fZmUNrF6WrkUFn
 2QXXDuOb/mJZ2Lzftsnb4+/pktQ78fQx4ViTAdtqiAxQypGp/SeCIXCJC8cHc8wwu7rFxs7s
 ppEOrEsCOhuExcwcz/0auCJQUFUjP3OHPykYAL9EngZbRd+Tys8gg5Ulec8g4p56fC0GArIs
 t7pyyHlEAbNNwVcbyRFtspvlDs15K6o4WtB5wRkDRx2lAS2e0c9Xcp3yZ6ZdxMUcqEMdsamS
 uDKyq2O/2+x13/B3fv8z94X2mVTKlLjFVDmZkh+AsBOsTAbzsAG6Y4pNeJ0VKtio27hc+ada
 jl6ncfYpQ8BZsUgkQmGOvVSO3kW0aZuoNcrLZUj2CA6IoKvn3bEmp1T4E8K0YIw96FRMTxCy
 MwkdBsSRDut2cyb4oi3Y7w57igjBJGD0II3nFhFlGmcIdN4BJfJTuPN+MNS2yo2ioZWB/HCa
 sEFaD1pKhPdfxlIPVRRA5U79AuqriCnL3sE9xTI9exuuzS7IA9ZidABNPLQc8aWRMMTnk+Cu
 G/X12/4HgsbJJqUzj/tHneE1rWexXijBtp6+LuQ76JqnEKS6zAqFT46R0qch/K0rGjnVIcKQ
 6AT0m90xUQoz2S7R9X8WhK+oX2ssRsVWt4WGOo/gCmSy6yR+xjcCmUaQzppbN09qNRwVTEsz
 kWOnd7iGXpoqrL9dJ6G3rKdrDf3NS1LK2YHPHcAVVFcu4Wlp5wvhBXSSNolCLSyktD+BTD3x
 XaNsTQ6gLIQy8UM0s1X4Gz6vt5lnbCRJiZd2+kddjvNAt9RDGJ9W7GV1A==
IronPort-HdrOrdr: A9a23:3s5wjK4TThRkkM8m6gPXwXaBI+orL9Y04lQ7vn2ZFiY5TiXIra
 qTdaogviMc0AxhIE3I6urwQ5VoJkmsvqKdgLNhdYtKOTOLhILGFvAH0WKP+Vzd8mjFh5dgPM
 RbAuJD4b/LfD9HZK/BiWHWferIguP3lpxA7t2urEuFODsaDp2ImD0JaDpzfHcXeCB2Qb4CUL
 aM7MtOoDStPV4NaN6gO3UDV+/f4/XWiZPPe3c9dlIawTjLqQntxK/xEhCe0BtbeShI260e/W
 /MlBG8zrm/ssu81gTX2wbonttrcZrau5V+7f63+4gowwbX+0WVjUNaKv+/VQUO0aCSAZAR4Z
 zxSlkbToBOAjjqDxuISFPWqnTdOXAVmjLfIBaj8AfeiN28SzQgB8Vbg4VFNhPf9ko7pdl5lL
 lGxmSDqvNsfGT9dQnGlq31vitR5z6JiGtnlfRWg21UUIMYZrMUpYsD/FlNGJNFGC7h8ogoHO
 RnEcmZvZ9tABqnRmGcunMqzM2nX3w1EBvDSk8eutaN2zwTmHxi1UMXyMEWg39F/pMgTJtP4f
 jCL81T5cdzZ95Tabg4CPYKQMOxBGCISRXQMHiKKVCiD60DM2Klke+E3Fz03pDYRHUl9upCpH
 2aaiImiYcbQTORNeSemJtW7xvKXGKxGTzw18A23ekIhoHB
X-IronPort-AV: E=Sophos;i="5.95,176,1661832000"; 
   d="scan'208";a="82903060"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Y3f4Sw6NHVpAwu29DqY6Ptc2Ljs3tLqktEhBzS/VzIG0H2WOCrnk1o/AakHDSV/DAiZ+FY2WJ0e2JbNZ148/n+2MPSUOeySRlJcCP2evwOH/fUng5G3B2eUVcAnaczLyapZ95uxWCdjGnJIkhfEB6ioYG/sNNzRIrlQ7og7jrCvhvLb2PTrJo1wCLu7NXvqqUb9Ht5BQa/4eTpBpwlHFUBnpjnKMhuowxZqHukTgx+w1CU6PX3DQO2B6gwJaKfofNRRlNroSQPc6eChvsvmUWGGvlpJ4a/KaxNwiMC3fblXE5yQhAZYUth3f8CveMWhXeYiTNevwF0rEC2dgNBP3Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AjoeCsfUAUjKUrw+DjgbqUXyjK7nRCXGnOexLwTFCbQ=;
 b=Z0lxkflhPVP+ieXJeP/XSaVCXPepd7D0CrI+he0u73lJTsw8qPux/r24Q44g0mPVYPAZQaMOsDSNSuKaV8aX3iwWLvWhCanMNjRnKTHUCYQMpBWB/WqrEF2nENZITpiKeKZTmb/TO115Uly951OwNGMZlqNr5evkIp4WFbmvghxF5yYMmw0Ac7VMYzkjWXnXTQTk8kUj9nPk8cHeXRAHBvfhX3/AF1bd9z1C709EKBPEgBUXZIZp+TR/sETdliLbMBCH6rXAPw/IugswnhWD0NqAR+3tH+j8rQ4llouVQalI3eoash+BPnvcFhGyUeffS+Ni9pZBXXtuyMVh7JKhfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AjoeCsfUAUjKUrw+DjgbqUXyjK7nRCXGnOexLwTFCbQ=;
 b=RdxGfXb9wieSge/JIMoedT8GLLrFrf4f+2kzPKGIZa9tybmt4Q27lzpzs5LmUgBeTwGpUNWUf3sGCXD5UOHQW+ufWkEwhRhUUsNmFa3L+f3sO5xhMlQZSXxrkf8xHOA62HeaDyT/n4cugAdPTFOt37TtANAnzpUxL3rRlkSnmkI=
From: Martin Harvey <martin.harvey@citrix.com>
To: Paul Durrant <xadimgnik@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: Races in power IRP handling path.
Thread-Topic: Races in power IRP handling path.
Thread-Index: AdjdfgIYsgA4b4/cQtWn6fzH2WpcQgAAk9gAAAClttAAAGAPUA==
Date: Tue, 11 Oct 2022 15:20:48 +0000
Message-ID:
 <MW4PR03MB634781529C1027FBFC8DEAF59A239@MW4PR03MB6347.namprd03.prod.outlook.com>
References:
 <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
 <MW4PR03MB63475F7BD2D17CE990C944749A239@MW4PR03MB6347.namprd03.prod.outlook.com>
In-Reply-To:
 <MW4PR03MB63475F7BD2D17CE990C944749A239@MW4PR03MB6347.namprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MW4PR03MB6347:EE_|MW4PR03MB6967:EE_
x-ms-office365-filtering-correlation-id: c695485c-bf35-4088-5d92-08daab9c2ccc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 A0R92ZT4cfrexRowpMniyLX4tYU3druFW0JYGNT6MtrLFTc2oRTJnYYM0dGbpX0GRsFakZezfDJPj4snmXEMoH46qPZOTiJE2KQY0XLVnqU5g1m5ny7Cy2JTPva++ORiS0psDMSY7QHAJZRJvkxP1x7hh2OgqSmMmVux72WoZVBubo9FNDf2DpH6FF2ZrWEBJ1k4luv65lNWQwaK7lcep/XX8JxwslcA2iRpVaDSzVsb7unsZVo7Gfs26SXYLECEzfXKJp0aayZAnI0o5qk+VnqkmVhw8x+pEVW09S9wLaL1iyFLpSSIR1XO2/mYBwh0fL7wuIeh38HwciZSyc2KnVwTQ+5uL1tvLVPXqiwID2n627Bw830sP0lrr6Z0aDhKhho3wLK5mPRc7+v8hdUD3Ddu5flREJ7lvKeAOY3MK3ZBXE3tIbQ6jlu63QyCPubU5CfY4qQAXtmGMrcNmdciMO3vohv0Wbw42PobTRKH+qG3LTbjrevCRtReJ+a9woSkA05f9+E6m74DdDNJ1vCGuShb868jggc6vbsLOoeHK0r913C2rjSnOWCs+nP2g3pL10IP2M/L796ceIz1kqYxbILrtxJkb9CDX5TzTRdMxOvsm9xR8MrGHrxOvATDkv8wIad6dYfgL1+PBKzUqPNVfEuSXTpoHVoq617g66rw0rJKYaew/I2p/YfPtND25WgrUnTxl2pwz6wT2Lga42Vf7lXagA/yZtBH4UaRn6T1mR9CuNZC+ay6YWCj7kK2Ine1XDCTPxYg75RG6N/nrcceuQ==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(346002)(366004)(136003)(396003)(39860400002)(451199015)(122000001)(8936002)(9686003)(52536014)(5660300002)(26005)(44832011)(4744005)(86362001)(66556008)(64756008)(76116006)(8676002)(55016003)(33656002)(7696005)(6506007)(2940100002)(478600001)(186003)(316002)(66946007)(66476007)(41300700001)(110136005)(66446008)(82960400001)(71200400001)(2906002)(38100700002)(38070700005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NjFKbDZYOHA0ZWVTTTd5RHQwTFlkdXVyelQ4RzIrYkFhMHVPWlJwajExOWZK?=
 =?utf-8?B?cWpDbEIwQjd3Q2hETzhOYXpSVTdnL0Q1WFhJZEtXZ21WM0RJTGlVdS94OXhQ?=
 =?utf-8?B?bzN3Ylg4bGc1dTBDQ3ZTcTV1TUc0UjVsQlJmNnJ2Ykp2bEdBdFBVSUxpTkRp?=
 =?utf-8?B?L0gwMXY5RnlxUUlXby81bXlLL0NVVnNaQ05iM1AzMU9HbHlxOENjQ2Rzd0xi?=
 =?utf-8?B?czRIRVVsTTR4blFOQWJmU3RVbkhNdksxQ25nYUw5b21ZcWhsQkROTWtzNUll?=
 =?utf-8?B?RDA5TXdJdWsvSmw0MHRpcXdXcHBNeVNQVGdSRHlUbWZnMnJpaFZnVGNIKzc3?=
 =?utf-8?B?d2VlUXVtRFJraXNLUWhEWVQwa2pmN2d4Q1JqRU9RVFAzM0JVK3pjYWhOcFVV?=
 =?utf-8?B?RDd3UDh6VXNaSFpiR1gyQTl5cGlGTXJGS09DTnEwdGdOekdhc2ZscTN3R0k2?=
 =?utf-8?B?ekNLUnRXZkhMT1pNempPZURqdzFnSEVBd3h2M2FDcjQzT0tZVVkrVjJlK2Vw?=
 =?utf-8?B?cGx6R1FHUDNxbHl4YWZpeW1ncGtiSFQyNGo3NmpJUndpQkF6b2RCVUVuazIw?=
 =?utf-8?B?NU4xcHpWa1lRUm5SNThzd0R2YTFlOTlTWnNibXJmU3dDVHBnMVB3dFNtUEVs?=
 =?utf-8?B?TGZGWXFwQTd3VTRWZG9LSmY2cDBGV0tSbFJsYWJ3NTlVUDEvVWtyK1dGdmhO?=
 =?utf-8?B?TmszODVzeGZGOVZKdEVFcjR0YndYUnBqWlRDVnFUbDB4djVqZzN3ZHZFOVRt?=
 =?utf-8?B?OGNmQTZXKzkxcWtGR1RYOTQxRjdvc1NqRXZtaUdLcnZWUXZnaUNwdWFwcW5r?=
 =?utf-8?B?TEZKd3hZNGFFUlBxa3FnNy9jdFJleXNUcFlydzB5Y0MvYTlGVG5jVU96OHJN?=
 =?utf-8?B?UVozNDNabXNQYlUzUEhiNFNwd09FMGxhR0dEdmFYK0RIQWdTMkw1ZUYvRENy?=
 =?utf-8?B?UFIvNStlNDhpN3NwQjE2NjdzbG1odml6d0RGcVA1OHVtRENUc2d3QytKU0Q1?=
 =?utf-8?B?ZnFuRjlJcWNqSDIxZ1ZwRUZocTkvQkhWdlNnb3VJK3FMTWw4bmYvRmNpWWcy?=
 =?utf-8?B?OVU3b0NhOWZuRzVDblBlcmY1YUZKVU1IQUNXVTVMZTAzY0hMNXRtUTlsei9y?=
 =?utf-8?B?VEc0eVZHb093c2dDeEhtZjgzTTZLbEtMMjFDc0V0VzJnVFZpMmJ3Y25DVU95?=
 =?utf-8?B?a0xNY0lMTmtvZU0zRjI3cnJmZTJoNGxHV1FjbkdmUmVuYjl2czdMUzZWZkRm?=
 =?utf-8?B?NkQyUWtPWWZDektQeDRkRkdxV1hlWlNNL2R1bkpRUERiaWJHZjlYamUrV05L?=
 =?utf-8?B?ODhSbTFwZm1jVmdaUjJGcGhjeUZ0M283VWxYdVFaNGNYbnZBR29RTE5YWVI1?=
 =?utf-8?B?SnlvOUtmRm5keHBMSjNnMk9hNkFjdzBuRWZWYmt4dGZsSGE5MTY0QlBJNWgy?=
 =?utf-8?B?T1oxN1paVGxNSEFMUGJhTXlNREVHeE1QVU45NTl5emxYdEp5RjRreGUyc3Fy?=
 =?utf-8?B?RkpoQVpCMjNaOUxxYldEeXF0QWxEa3BBKzdqMUwwZkMxT1BYQXIxcXRqNkc5?=
 =?utf-8?B?eHd3UmdjNXhheEd5ZWgwR2tNaDRtc1BnM1IxZDIyenR6Y0RhQmQybFZZZ0lp?=
 =?utf-8?B?V05zM3E1VEhCT3A5WDBTKy93dGwvSlRlK2ZaSVQ1WDFtemhZMjlia3NvZDVa?=
 =?utf-8?B?QzBldWUzOFIzbXhzVDJhaFJmL2hMSXFvMTNhYUJBSkFYOG9paHdhdXNJSnRk?=
 =?utf-8?B?MXZTL2o5d0tOalUvTXVhL0liY2docWFSRjgrdUxYdjY2T0U4ZHNaK2FqbEFN?=
 =?utf-8?B?N0h3TDdSR201TUs2dGpKTi9DM2toR2x4T0tEYjV6TWVaZ1hwdUpPaUUyY1BI?=
 =?utf-8?B?eGYraTJkVXJwNmIrOFJVdC82MUV5ZGcrMm52ZG1VcnJFOWFTdGg3VnlBaXZE?=
 =?utf-8?B?YnNtR3MxQzJndmxNcWtTM1gvUmhJalM0K2I4WTVzK2JJTFFkNnpyd2p6cDRP?=
 =?utf-8?B?aklPaUthMjZXTnc3ZEt5ajdhWU9kRi9ieVpzL3R0aUVOeVdhNHkxZDRJbndH?=
 =?utf-8?B?MEY1NDJ2M1ByeHE5OUxKYjZ6RkQ1eHc5U3lMZklFWjZ1SG5icVh4dUlNT1Vu?=
 =?utf-8?Q?Ub31ansp9UvZnwWkDVEGdOvYL?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c695485c-bf35-4088-5d92-08daab9c2ccc
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2022 15:20:48.1028
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5sQNqnXMqbbIGGw0zeDtQvfV7SOmmn/VbpmZwG7nKUgRs0+a37BOJ/TWH9qUmr1GhJRZKIYh/R4F8lCrM0q2Kn/DNT6GVR4CkhY0u5F+03Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6967

T2gsIG15IGFwb2xvZ2llcy4gV2UgaGF2ZSB0aG9zZSBwb3dlciB0aHJlYWRzIHdoZW4gd2UncmUg
cnVubmluZyBhcyBhIGZpbHRlciBkcml2ZXIgYW5kIGhlbmNlIGNhbid0IHNldCBET19QT1dFUl9Q
QUdFQUJMRS4NCg0KV291bGQgYmUgbmljZSB0byBnZXQgcmlkIG9mIHRoZW0sIHNldCBET19QT1dF
Ul9QQUdFQUJMRSBpbiBvdXIgUERPJ3MgZXRjIGV0YyAuLi4uDQoNCkknbGwgc2VlIGlmIG1hY2hp
bmUgZ2V0cyBhbnkgaGFwcGllciB3aXRob3V0IHhlbmZpbHQgcG93ZXIgaGFuZGxpbmcgY29kZSAu
Li4gaXQgKnNob3VsZCogZG8gLi4uIGF0IHdoaWNoIHBvaW50LCBtaWdodCBub3QgbmVlZCB0aG9z
ZSBwb3dlciB0aHJlYWRzLg0KDQpNSC4NCg0K


From win-pv-devel-bounces@lists.xenproject.org Tue Oct 11 15:46:15 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 11 Oct 2022 15:46:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.420366.665188 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiHSO-0005SY-Pf; Tue, 11 Oct 2022 15:46:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 420366.665188; Tue, 11 Oct 2022 15:46:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiHSO-0005SR-N4; Tue, 11 Oct 2022 15:46:12 +0000
Received: by outflank-mailman (input) for mailman id 420366;
 Tue, 11 Oct 2022 15:46:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kOwr=2M=amazon.co.uk=prvs=2768d130c=pdurrant@srs-se1.protection.inumbo.net>)
 id 1oiHSN-0005SL-OU
 for win-pv-devel@lists.xenproject.org; Tue, 11 Oct 2022 15:46:12 +0000
Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d213416f-497b-11ed-8fd0-01056ac49cbb;
 Tue, 11 Oct 2022 17:46:09 +0200 (CEST)
Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO
 email-inbound-relay-pdx-2a-7d84505d.us-west-2.amazon.com) ([10.43.8.6])
 by smtp-border-fw-6002.iad6.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Oct 2022 15:45:52 +0000
Received: from EX13D12EUC004.ant.amazon.com
 (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194])
 by email-inbound-relay-pdx-2a-7d84505d.us-west-2.amazon.com (Postfix) with
 ESMTPS id 844E824227B; Tue, 11 Oct 2022 15:45:50 +0000 (UTC)
Received: from EX19D032EUC002.ant.amazon.com (10.252.61.185) by
 EX13D12EUC004.ant.amazon.com (10.43.164.129) with Microsoft SMTP Server (TLS)
 id 15.0.1497.38; Tue, 11 Oct 2022 15:45:49 +0000
Received: from EX19D032EUC002.ant.amazon.com (10.252.61.185) by
 EX19D032EUC002.ant.amazon.com (10.252.61.185) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1118.12; Tue, 11 Oct 2022 15:45:49 +0000
Received: from EX19D032EUC002.ant.amazon.com ([fe80::1cb6:b643:ef13:20ef]) by
 EX19D032EUC002.ant.amazon.com ([fe80::1cb6:b643:ef13:20ef%3]) with
 mapi id 15.02.1118.012; Tue, 11 Oct 2022 15:45:49 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d213416f-497b-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazon201209; t=1665503170; x=1697039170;
  h=from:to:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version:subject;
  bh=fHd3mEo3ZxljsK+pzbPPnKOou/8eUxOkpRifLfUB5Wg=;
  b=I8j/cCxWFi1rJsERGEe5RTFxwzHIz16QGhP0oBAjmXg9/8D4BQLQbQ1i
   SKZ7afquzXwHmVHC7Flw2hfMEd9HkcGfPIvZ+9FxoBSNiSDwoW1yL8KjG
   YRmfPJ8PvEn9vDBbqa46+KMQ6CEJbZF2MRqnu61Oac9De1Gu9ncjxOVfb
   Q=;
X-IronPort-AV: E=Sophos;i="5.95,176,1661817600"; 
   d="scan'208";a="254252218"
Subject: RE: Races in power IRP handling path.
Thread-Topic: Races in power IRP handling path.
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Martin Harvey <martin.harvey@citrix.com>, Paul Durrant
	<xadimgnik@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Thread-Index: AQHY3YBlNQXbL3sjPEWXtu/ML+SmSAAAk9gAAAClttAAAGAPUK4JSORg
Date: Tue, 11 Oct 2022 15:45:48 +0000
Message-ID: <907897da9757461d8e9a6b902c72fb51@amazon.co.uk>
References: <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
 <MW4PR03MB63475F7BD2D17CE990C944749A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <MW4PR03MB634781529C1027FBFC8DEAF59A239@MW4PR03MB6347.namprd03.prod.outlook.com>
In-Reply-To: <MW4PR03MB634781529C1027FBFC8DEAF59A239@MW4PR03MB6347.namprd03.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.106.82.30]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0

SUlSQyB3ZSBjYW4ndCBzZXQgRE9fUE9XRVJfUEFHRUFCTEUgb24gYSBkZXZpY2UgdGhhdCBpcyBp
biB0aGUgcGF0aCB0byB0aGUgc3lzdGVtIGRpc2sgKG9yIHBhZ2UgZmlsZSkgY2FuIHdlPw0KDQot
LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogd2luLXB2LWRldmVsIDx3aW4tcHYtZGV2
ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZz4gT24gQmVoYWxmIE9mIE1hcnRpbiBIYXJ2
ZXkNClNlbnQ6IDExIE9jdG9iZXIgMjAyMiAxNjoyMQ0KVG86IFBhdWwgRHVycmFudCA8eGFkaW1n
bmlrQGdtYWlsLmNvbT47IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KU3ViamVj
dDogUkU6IFtFWFRFUk5BTF1SYWNlcyBpbiBwb3dlciBJUlAgaGFuZGxpbmcgcGF0aC4NCg0KQ0FV
VElPTjogVGhpcyBlbWFpbCBvcmlnaW5hdGVkIGZyb20gb3V0c2lkZSBvZiB0aGUgb3JnYW5pemF0
aW9uLiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGNh
biBjb25maXJtIHRoZSBzZW5kZXIgYW5kIGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZS4NCg0KDQoN
Ck9oLCBteSBhcG9sb2dpZXMuIFdlIGhhdmUgdGhvc2UgcG93ZXIgdGhyZWFkcyB3aGVuIHdlJ3Jl
IHJ1bm5pbmcgYXMgYSBmaWx0ZXIgZHJpdmVyIGFuZCBoZW5jZSBjYW4ndCBzZXQgRE9fUE9XRVJf
UEFHRUFCTEUuDQoNCldvdWxkIGJlIG5pY2UgdG8gZ2V0IHJpZCBvZiB0aGVtLCBzZXQgRE9fUE9X
RVJfUEFHRUFCTEUgaW4gb3VyIFBETydzIGV0YyBldGMgLi4uLg0KDQpJJ2xsIHNlZSBpZiBtYWNo
aW5lIGdldHMgYW55IGhhcHBpZXIgd2l0aG91dCB4ZW5maWx0IHBvd2VyIGhhbmRsaW5nIGNvZGUg
Li4uIGl0ICpzaG91bGQqIGRvIC4uLiBhdCB3aGljaCBwb2ludCwgbWlnaHQgbm90IG5lZWQgdGhv
c2UgcG93ZXIgdGhyZWFkcy4NCg0KDQo=


From win-pv-devel-bounces@lists.xenproject.org Tue Oct 11 15:48:01 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 11 Oct 2022 15:48:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.420373.665192 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiHU8-0005ZD-V7; Tue, 11 Oct 2022 15:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 420373.665192; Tue, 11 Oct 2022 15:48:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiHU8-0005Z6-SY; Tue, 11 Oct 2022 15:48:00 +0000
Received: by outflank-mailman (input) for mailman id 420373;
 Tue, 11 Oct 2022 15:47:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GM5Y=2M=citrix.com=prvs=27680cf69=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1oiHU7-0005Yv-An
 for win-pv-devel@lists.xenproject.org; Tue, 11 Oct 2022 15:47:59 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12e79630-497c-11ed-8fd0-01056ac49cbb;
 Tue, 11 Oct 2022 17:47:58 +0200 (CEST)
Received: from mail-bn8nam12lp2171.outbound.protection.outlook.com (HELO
 NAM12-BN8-obe.outbound.protection.outlook.com) ([104.47.55.171])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 11 Oct 2022 11:47:55 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by SJ0PR03MB5533.namprd03.prod.outlook.com (2603:10b6:a03:28e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.19; Tue, 11 Oct
 2022 15:47:51 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc%7]) with mapi id 15.20.5676.032; Tue, 11 Oct 2022
 15:47:51 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12e79630-497c-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665503278;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=K3r6NyQxndIE5e66k/pL8NGZc5wytjCAxG5MoLZqSig=;
  b=RZ1nKMuyssjB55YVZwSImFxIdTYs/1EEPnbUAQzNARgu6rgzPSZxb1AW
   8PVIeccGt3gQp5zdfc4pZbeZCKilQxWg484Wxxx4dN2c6rpPBFoBKltK7
   MRelOG4H9kC1uAdQJJx78FF8LTUlQZ0GqQ7R2S+6m5Ts/PUAbk5vo1V7g
   k=;
X-IronPort-RemoteIP: 104.47.55.171
X-IronPort-MID: 82495430
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: =?us-ascii?q?A9a23=3AcJVoVKjTTkP6+kSSkKkRPPXKX17brhtdStVqu?=
 =?us-ascii?q?6uckGbUl+go9fh2SXK5BX4HoWnQcstd++B1YKSdMZikrGOzboKUZ7KlaMI3V?=
 =?us-ascii?q?72UL2F7u4Khln0zIrFmUHh3KbGV9ik02MQ80fLEiEJW+BtQo0CMehytkY07V?=
 =?us-ascii?q?4zsq/pjm6fF0bHDEailAkz8a0kpxP6/JG0qq4jrLvPG2h2OJnSUYGC/JiWnK?=
 =?us-ascii?q?dNZViqUYW6+9C3y7dA1jEn6keTVWVSmtrjrUJU9vmRodFkUwv2tX+vWBwN9g?=
 =?us-ascii?q?MZkyB0aAsQ5MPWt5lZ9E1g6gRSnUa9WaZlTMWBTnXgvOJ6k9gFilysgzPF6f?=
 =?us-ascii?q?U+1a4ONS55gKioKcYkQgDaQdlc8ttz2R5z2/YI4HBu8XJAZvf2l5npkiGK8z?=
 =?us-ascii?q?0GFMHer7r9ZZ0soi1x5m8KPiu1pAi71OKFlySuRc3BAXaGXKLUcKa8eCepR5?=
 =?us-ascii?q?y6jA67pawQQG11q/eeC/+n+dLDVoNMzdU1F/uUCoSh4NaKrwhBtffNbUcz/X?=
 =?us-ascii?q?8hhCCL0PR4IlCC2a1wJGPh9bqJToGiVOJU4VV/2RCaRQRjWzAPpMB8rUXaG6?=
 =?us-ascii?q?y3q+RolkfugKhXqj38nuxCsUMnjgGOrmTldkwlr3orDCcbISsXcGi0TvYnBg?=
 =?us-ascii?q?7Y4CH09m2sAutUNzbyfUwctzqExArOA/REtuep30dRRa62vvc2yTmN5iyHGv?=
 =?us-ascii?q?7R90xxX9JKOT0tQJ32SMNk+rollDysqqCMYAChT+4WLw43CtRxBf8YxgMm45?=
 =?us-ascii?q?020gAkgHG6qkcTTNREh7k1Urbk+4uaPOmiDAN8oQIPvDGNYzBgPaw+1xO+Y6?=
 =?us-ascii?q?ZMFJlX20IQXLfDgDR7Jse6s7sBPCs24BAceigmy1zRL+wPwHRhPj7EBUB0yF?=
 =?us-ascii?q?XJ5XZLKKf2WBrDf6qJqybhzpranW9efMZe+fCbMzoqYFYMlSRsWLWj52VdGS?=
 =?us-ascii?q?i81uBuZFaqCVYC0Jw0RXWPVYKIT1obWvEmwlJq5rkdnpy/X3Y+nnu7V48eDu?=
 =?us-ascii?q?/gdBd8AXWLlkzEMdzygADcrMR5QyU3KgCc3dVgph/NjSQr/r5m+PWIsaRdbQ?=
 =?us-ascii?q?TebIueW8vqfkdATQeodvz8Vas47uYlIG1/grjf/razZHclSq0T3VC+PZwC3e?=
 =?us-ascii?q?r7cqIQilYifhq+YT+g9mu9SSbJ6HWEKuU8zJhIXArz0KX2qEUFkTMxq0iJXp?=
 =?us-ascii?q?vDiYZpD/IZA5RgRBkIvDhYoLvRf+8l+X9fy/7u5tNoWOFajA0H+QuWF6mkHr?=
 =?us-ascii?q?nqZ92stgdLdOeSPaYPZEsKL7hkVMlGlr2XozWxzxTVn5z/lXbFnohDteNELy?=
 =?us-ascii?q?40HgqduLeNBpjPXYPSotrYtNbeqECUFvQDKqpcgJph+48QqVkatE2IiHrFPR?=
 =?us-ascii?q?5SYKEzzYVc6VOrW34P9FWxZiyjEyOFP5Sc6W7EWs9gpzXjzREPy59He/Nyvj?=
 =?us-ascii?q?Q4lqAwyAYgT18djGrhNUD3yJM10HMlq9AO8WfElWrENjCVTMzq+2g7P2iUXN?=
 =?us-ascii?q?9ktImkoVPJup/ybormsiCPorTwdVtk+YpBlz28x0YYd1qGj48zi+71L4k2Nz?=
 =?us-ascii?q?cmZ07FR+ggllEUIjaIomGAijyQReEqDCiibnI4QBAViqiWF2KI7YQtsq/Dw1?=
 =?us-ascii?q?zXJXuc9yMi6sspsNPuUsnbO6wCgcd9RtXAzv9e8hyW7+zHLU/M2tdL348mYg?=
 =?us-ascii?q?55M3v+hAFRhPtKT+kYDtrodn49XCW3RFOsOyWMPfayyB2fBbEpMCIIefE7ug?=
 =?us-ascii?q?LGhtDv1aJcowmQx+evnnoiOeTNctiiQM+iP13DqiJzm+gznr+mb6TOO/zu64?=
 =?us-ascii?q?Tk249wA/mwlFr5RodW9u87MNs3CIqhz/sxiVqp0911UL9Dwxo3e5uMOkmJ/y?=
 =?us-ascii?q?bGP0IFqpw4nyRhcuDH3X0FiaE7uuTEbKFZwm8JZWoS38akqJ+nRreVo686Q4?=
 =?us-ascii?q?RBBJo+l2KMbQTMp1/0qJJcFXPojMBj5uxzbPsbYZ5qRmEaVhitCIkj5GIi5z?=
 =?us-ascii?q?XIFi0D7+0s/8qcnebrUJj+cU2/vxHkEZJV5YVEotBJI9zc5wsqrM8CIaBYpj?=
 =?us-ascii?q?jsyqC/eM1qTYB0J//xdp3V8pur+JxGzbZooYjOn8+h854MEaT1gw5DViCBcc?=
 =?us-ascii?q?GZ1UdN9gFLdlD5c27ey17XWgW7N4nJjlcDm0OZxGRhVBVEnF8HQDuc5quC+/?=
 =?us-ascii?q?eMgsrEUAzvUqtajisG/DFZcag/0w33etRGY70IH3qs88CyrpJg4Fnd/6mMAg?=
 =?us-ascii?q?vzKU4EUpGfSVvYAIEMkZtYCu+pAdEGrk9lyF0gXksQLP5uaEqGBCHVpL+l0Y?=
 =?us-ascii?q?dGRBL9KrWh/oEpPQkasIhWbrwb89W3UhtI8lKreuknbbYsil/jNAe9tKYkgS?=
 =?us-ascii?q?Bx6L+LkestuxupygOEFstmxr1w94L1NGXA3knaoVAqN49RIU8QC2zz9bQ9af?=
 =?us-ascii?q?KN7dhwAJs2LqxZE0RQUM4d4lo8qDOqn1lCpmrYrOiwkwLPlVw/mAGyVg8mQb?=
 =?us-ascii?q?2nJ7fWi9tlaRkiiLkxrvgopggXKVmXzOHUI4XNntRL9ZibU1vcbSYM5CH3Sc?=
 =?us-ascii?q?8vTsNZLmgBeV3zZqg=3D=3D?=
X-IronPort-AV: E=Sophos;i="5.95,176,1661832000"; 
   d="scan'208";a="82495430"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=H7H8VgwWaDyW2EeOuZMUzjTAGkDwnOkVDqS6o67GaIaJa5rOvk3vIARKdqSH4vIU7Jf/xdmmEAma8RxOuTA9VMzK+nlV1QgjwmU14M/BtebjtPhpB6N6bLDvlO9Q+Y8d6mrbT8QqeGQXpxlA/RXiKJE1WBHPnZuNysIHv3MJ5C0fYfNP46As45VWO9p+plqc5y4iEP1q+tIROlW+aN5+ZvTSEK2sxITPF6eXCupbrPwk3tpMom7bwf7Zz6R0+xcc7shS2nAYrEHFoEiq8/h86vYxMs/XBYksRxo4ViEHWyYvg/k9m8qtpJxHtNds0nDE6uLrVbeVCtkXwA7Nf5soVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=K3r6NyQxndIE5e66k/pL8NGZc5wytjCAxG5MoLZqSig=;
 b=c7GtPaiYts0dBDynxszmiXPMKpLgHdCXV5SS56DYPuJuMVE67E4Rf8lUe9BZcn3dg5HOrOmdLEgYdirKxOZb6k2hkg9nwThwx7HxNvv84S5rMWK7y7LMzVZninOnEUjJrc/kwIInqiLTUD9/lpBV+T2SItQNRkwp3sXZ/L6akYFXLVzMQNDOsTA8GnaKq02Zhb/B7m+rQDACI+/PhAIro2rSGo5FxxL3qlKfpgbYZVCe7vfDBRxUAbQSMhwMyP5fZRry3K24d9F3NyVzXlcojPo7xzQHKJoJpmvyRiO2jDHbxVm20m+a3R4tTosUBtEVTRNhDTvyZdHTaJZnTDQHWQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=K3r6NyQxndIE5e66k/pL8NGZc5wytjCAxG5MoLZqSig=;
 b=gV3OBfCxp8sRwwu+soMqrWdcwyIxi3/bvMAhehPGH11rQSHtHJkcwfLN8CSKl8iF6t2oTXEUgKELev0q1kxx1XeW6tlwZAjEyjZYMQRI9/KCFivFi/qGetSGsHkJQNTKhOywePr9p+1qz0BMvSN0dqBGglEWDYkK1w/ng9lcKM4=
From: Martin Harvey <martin.harvey@citrix.com>
To: "Durrant, Paul" <pdurrant@amazon.co.uk>, Paul Durrant
	<xadimgnik@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: Races in power IRP handling path.
Thread-Topic: Races in power IRP handling path.
Thread-Index: AdjdfgIYsgA4b4/cQtWn6fzH2WpcQgAAk9gAAAClttAAAGAPUAABB/IAAAAIrqA=
Date: Tue, 11 Oct 2022 15:47:51 +0000
Message-ID:
 <MW4PR03MB63472185E74C91B1F7C39AD09A239@MW4PR03MB6347.namprd03.prod.outlook.com>
References:
 <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
 <MW4PR03MB63475F7BD2D17CE990C944749A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <MW4PR03MB634781529C1027FBFC8DEAF59A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <907897da9757461d8e9a6b902c72fb51@amazon.co.uk>
In-Reply-To: <907897da9757461d8e9a6b902c72fb51@amazon.co.uk>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MW4PR03MB6347:EE_|SJ0PR03MB5533:EE_
x-ms-office365-filtering-correlation-id: 963e6574-8201-4382-64d2-08daab9ff447
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 miBSV53Rx2rEaRfiW7jlzAJhydaHGfW46v6Qvn50v63K8pwYRz9RCvPrvj256jKL+P+zhtpBEtWTu+LiCf9EkdTN86xEDfBmJZMp/P9VeD8M+efV5yfxXvznvoY52lS6zHQVISGLvBj3juYcjSUS+xmzO+G+JDTErdngcScc3mK4s3XXqZvzy6gCkakAhtxK8T+5f3ZiL8WZ1jhVwIgTzsUeM4F3uB/yvFUFowfNwcsmpY88+HarIezYcq+6oTwfeXQ7Xp/SpSdmPOf8ZyQeb8fEqyG8qWIRL9Qt/SPNmG2qYzwx7Mp7EbPCosIzzDVqRZpzAxoaMCbyDFGnJHrS586JI2DkjM5sKTbNlP8wrFVwhpKOeBsmoeA6clO50SOJTWRVukJjLaCgkjH18JDUfzHRWKUMb3o9Ar6cB78Cy9r90QATRexk2php/JtuExHRHqnvl30jVdV6gSOeuyDbAsBo/Z6vH6TRctKTxJoD6X3YW2k9k3JKnkMZ6t/OWjWi7jgvtoc1ZaCmscl3fJYsgWcLHbXufdqKB4F/CJd3Y6jbbR59dZ3AdhPdbKrjPQ/lF1fG41WCwL8g3NVbBuWmWQX3X57jL9eQY7moxqASDfaYllbOzNZ1Avje46fcJRRIEx430ZB8a84B0Hgrc8UeTFy7TMyyDva0RNmdqvbvNAvkeTgUf4s6t4d2QAXjiJtyHL9CHXNQrYzjvfYGo6iDOoZJ68M8H/rUNQu3wreLwGhQfGEoV5kn4Os8vhBsu+tjbzc8Be69iipvD1eGh0H0oQ==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(39860400002)(376002)(136003)(346002)(396003)(451199015)(33656002)(558084003)(86362001)(5660300002)(38100700002)(82960400001)(122000001)(38070700005)(186003)(9686003)(7696005)(6506007)(41300700001)(26005)(71200400001)(8676002)(316002)(76116006)(66946007)(66556008)(66476007)(66446008)(64756008)(478600001)(52536014)(8936002)(44832011)(2906002)(55016003)(110136005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bmhsTnUwdnkyTjJtbTVodUV2eXZIdHkxc1NoOUdwd3UzdDFzZDhaZVN5aUxU?=
 =?utf-8?B?WCtSMjZUQlJGRWtMNTFaY3NYQUx1TXl0bENGWWtrYllOT1ZJUHovLzZOL3Qv?=
 =?utf-8?B?R0RaSEpHMDlTdG85R2F4aFA2dW1oWjlxYTRFenRhWjJPN3hxY0VmaXE2cjQ0?=
 =?utf-8?B?VFlYNm4vRGFLWlI4U0hQSW5aY2h3MXM1ZGc1VGRNYU8xMkhnVXFzTEtJdUxw?=
 =?utf-8?B?RnQzQmNJR2lheUR4N2Y0YUs5VENMK1ROZDEvNDdJbEFYZnBhVUkyN1Izci9G?=
 =?utf-8?B?amxyUzJTMmxoczRybTJJOTV0NWd2WFczQkpYZWRwUnBKN3U0ekM3NHBOaEtE?=
 =?utf-8?B?WDY5bDlVWFdvMTE5MEo2WTRMTU5HdFByZTF3cmVBZnZIK2VpOTFubTRaL2Rx?=
 =?utf-8?B?N0ZYWmJ1OExWbW9UL1JOMVp1VVdrdWJaQWczZnJ0TXpZdk1JMUs3VGdDSVJL?=
 =?utf-8?B?bzUrNFNWVkYraTAwaG5XZnZTZ1NKell2UWJ4OHJEVWFuN2lpWHpFN3gzcnQx?=
 =?utf-8?B?ZnJJd0J6RlUrd0xsMW52ZC9vR0dId21YVitxQ3ZTM2QyOU0rdVBJVXNIUlYv?=
 =?utf-8?B?WDdYUnZCTm42VUd1a1VNeGhoT1ZqYVorRVhBWk51VWkrTkVNeFM3RVpDSE9a?=
 =?utf-8?B?UzdsMUV2N2o1SFNtcGV3Mk13aHBXSHNWWkxMY0phd3UxdUw0YWJUMWU4MjlV?=
 =?utf-8?B?QTBNeVVUVHNFVEV5UEJma2pscTBzbzJFb0tZRUZpUWVHMnIvVlZEdjlOT29j?=
 =?utf-8?B?RVBDSjY3czlMTmt6VjRuQ3ZVc1dua3VsaXhFVW52VXVsRjZHVkY4eFNOOEM2?=
 =?utf-8?B?eVRkZVc5cUVKcXpWUERWV0pXQkdZRXlIN21IeWJORmJxcm12bDFyRlhGNzdY?=
 =?utf-8?B?V24vTXUyeVhHcW4wVkJRWW0rRUR4NUZsRlN5OGlBaW9Vd0JBVDhDK1JvaDFq?=
 =?utf-8?B?RDVaTkJWZXdWT0lTcEJHYS93WDJXdGxxV3hJM21zbzFnYUJ0azBUR0wvNWw0?=
 =?utf-8?B?ck1yNlBReUZRRUhZeXpXOG9CZi94bUo5ZGlrODFmMVZ4NTFvNWNHK1ZQTE9N?=
 =?utf-8?B?dWNTWWQ1MkhuNlZVNzVha3JzdXNQaEtpdloyUmRxS1dPZWVjZ0F3dktzNzBi?=
 =?utf-8?B?czV0VUpkSHp1RHdoUWFzN0VLNHd6Ly9JTXJEWnRic3VpZFFqbnF3a0NlT0VC?=
 =?utf-8?B?UUlMaDlsRmpEbkRMOENxTUFISlZFVTB5M1FtY290b0RUZ1dGUVhlM25oY0ht?=
 =?utf-8?B?c0puRGtsdGIwSm1UcU44VnpyT0pzS3ZaWlk5MWE5ZncyZ04vQldhdGJtRUxS?=
 =?utf-8?B?cDRQUy94ekYvbGtNazdYcTV3M2M4dW1TL2pJMVJiZDBJVzA3MXYzOVlXYklO?=
 =?utf-8?B?eFc3UEtYS1Fqd2tCR3hkWldRUC9zVkxNV1Y1S3daQk5BdDZaaHpuS0RZcWxH?=
 =?utf-8?B?T29UWkNKRCtIVHlqUURuWDJyb1JVRXBMdU5leGYrT09BalptdHVOT3drcmo4?=
 =?utf-8?B?RjRJbnB4YXV2UCsyNS81VlNZZTZQWjBnanJaTWdqbEJhaElKSExXR21POHp4?=
 =?utf-8?B?djdqT0ZEY1hnMDhSM2RnWW01R1VCV0hna2dnd0l1QXd2WG56c255Y0hrVzRM?=
 =?utf-8?B?dytSUjlwMVZKQmE2VFRSNE9aUEh2OXd4elZ3aVBYRE5pQ044ZVNtQ2Y1cE1h?=
 =?utf-8?B?NysvdWVENEo1OCthdURzWWsvSHFWYnVjTXdZZmRzQjdMN04xbDQvbGxyeGtL?=
 =?utf-8?B?dmV5OXFwd2x5TTJRQi9QQ05LVnVhM3lHRkl5dXFnZXdNckNMbGFRK1UwRnFQ?=
 =?utf-8?B?R3ZTOVpPZzFWYWw1UmxlS3JoQm4zTU9sb0hIdUlNcmxsMElDVnIwcFpURWF2?=
 =?utf-8?B?V0VmSmtCaDVjRkc5cTlkc3U4U29uby85Vk1EekNsYk94WmJCVzRFWFFiOE5Y?=
 =?utf-8?B?b0ZVU0JsVkdpWWZsSG9WR1V4ZVhHc0hSN3g0TzBQSDBTWnlWNXJiRjBscVhL?=
 =?utf-8?B?ak80YVNnZjh3a05CaktERWVGL2NkM1hvQk1sN1ZGNnBBalptbThJc0VtSFZS?=
 =?utf-8?B?UWFrZlNaVVhhWnBDclA1NWQzTnZaalRjaU1UOHp1bjVyOGZGWG4xZVZSNUwy?=
 =?utf-8?B?MlBmSmF0d3dkakVBSXNNMVNvOGdCeng0ZjBHcnJBZFAwVVhIVXp0WDFJQXdT?=
 =?utf-8?B?aUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 963e6574-8201-4382-64d2-08daab9ff447
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Oct 2022 15:47:51.2347
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GD2UGtXqWPlLdsFM8lT3VnTzAfTP555OEAAHGIlQV/jsZ0pCAyCzHFV41iwfH3/JZm7IL5fyfpCHU2rhDJWD9ZwrdOPMJv9sY1mHkETdZhs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5533

DQo+IElJUkMgd2UgY2FuJ3Qgc2V0IERPX1BPV0VSX1BBR0VBQkxFIG9uIGEgZGV2aWNlIHRoYXQg
aXMgaW4gdGhlIHBhdGggdG8gdGhlIHN5c3RlbSBkaXNrIChvciBwYWdlIGZpbGUpIGNhbiB3ZT8N
Cg0KQWguIFRoYW5rcyBmb3IgcmVtaW5kaW5nIG1lIG9mIHRoYXQgb25lIGNydWNpYWwgYml0IG9m
IGluZm9ybWF0aW9uIDxjcnk+LiBJIGJlbGlldmUgd2UgY2FuJ3QuDQoNCk1ILg0K


From win-pv-devel-bounces@lists.xenproject.org Wed Oct 12 10:21:51 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Oct 2022 10:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.420958.666114 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiYs0-0002lZ-Nd; Wed, 12 Oct 2022 10:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 420958.666114; Wed, 12 Oct 2022 10:21:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiYs0-0002lS-KV; Wed, 12 Oct 2022 10:21:48 +0000
Received: by outflank-mailman (input) for mailman id 420958;
 Wed, 12 Oct 2022 10:21:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Lyo=2N=citrix.com=prvs=2776d84d2=owen.smith@srs-se1.protection.inumbo.net>)
 id 1oiYrz-0002lM-D8
 for win-pv-devel@lists.xenproject.org; Wed, 12 Oct 2022 10:21:47 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a93088ba-4a17-11ed-8fd0-01056ac49cbb;
 Wed, 12 Oct 2022 12:21:43 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a93088ba-4a17-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665570103;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=jeoka2H3mjp1GjCmGCBF81f6JZjL1RcRrp8dIUrlmew=;
  b=NhKQNZHPNd8MAry0acJ7NBovOIs0cjgIFIbST7TtJaD2jGbWlAYw22Fn
   HnIRYl4i4c/QR8oNu/ca9opf8ukt91HNPrmuSh7YH9NlUTL+dKdnYywPm
   WwS0s1MC/4kO2FXxMNzbBVnd8iYYMLSBsUVraYP3lpJmdkcniem2lyKlB
   E=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 2.7
X-MesageID: 82531857
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:87KsPa9YnyH1om10QXD8DrUD6n6TJUtcMsCJ2f8bNWPcYEJGY0x3y
 DcfX2rUb/eLZjT0eN93a9nl9EMHusfUn4RhTwRsqn88E34SpcT7XtnIdU2Y0wF+jCHgZBk+s
 5hBMImowOQcFCK0SsKFa+C5xZVE/fjUAOC6UIYoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE/
 Nj/uKUzAnf8s9JPGj9Suv/rRC9H5qyo4mpA5wZmP5ingXeF/5UrJMNHTU2OByOQrrl8RoaSW
 +vFxbelyWLVlz9F5gSNy+uTnuUiG9Y+DCDW4pZkc/HKbitq/0Te5p0TJvsEAXq7vh3S9zxHJ
 HehgrTrIeshFvWkdO3wyHC0GQkmVUFN0OevzXRSLaV/ZqAJGpfh66wGMa04AWEX0v9nPkIQ+
 q0cEhxOPjqCitOGwuKVavY506zPLOGzVG8eknRpzDWfBvc6W5HTBa7N4Le03h9p2JoIR6yHI
 ZNEN3w/N3wsYDUWUrsTIJUhkeHunXz+bz1wo1OJv6snpWPUyWSd1ZC9aoeOI4zXGq25mG7Hj
 Uf4wUrzOi1KF86GkD206yust+L2yHaTtIU6S+Tjq68CbEeo7nMSDlgOSx63rOe0jma6WslDM
 AoE9yw2t68w+Ue3CN7nUHWFTGWs50BGHYAKSqtjtV/LmvG8Dxul6nYsVy5+S4Ip5csMaX96/
 F6EruPrVRJPr+jAIZ6CzYu8oTS3MCkTCGYNYy4YUAcIi+XeTJEPYgHnFYg6TvPs5jHhMXSpm
 m3R8nBi71kGpZRTv5hX62wrlN5FSnLhagcurjvaUWu+hu+STN70Ptf4gbQ3ABspEWp4crVjl
 CJY8yR9xLpUZX1oqMBraL9UdF1Oz6/dWAAweXY1Q/EcG82FohZPh7x47jBkP1tOOc0ZYzLva
 0K7kVoPusIOZSDzMv4nMtvZ5yEWIU7IT42Nuhf8N4MmX3SMXFXfoHEGibC4hQgBb3TAYYlgY
 MzGIK5A/F4RCLh9zSreetrxJYQDn3lmrV4/sLihkHxLJ5LCOyPOIVrEWXPSBt0EAFSs+l+Mo
 o4CaprQkX2ykoTWO0HqzGLaFnhSRVBTOHw8g5U/mjKrSua+JFwcNg==
IronPort-HdrOrdr: A9a23:fWjfkq0GNmJOV6g5TIa5bgqjBL4kLtp133Aq2lEZdPRUGvb3qy
 nIpoV+6faUskd2ZJhOo7C90cW7LU80lqQFhLX5X43SPzUO0VHAROoJgLcKqweQfBEWndQ96U
 4PScdD4aXLfDpHsfo=
X-IronPort-AV: E=Sophos;i="5.95,179,1661832000"; 
   d="scan'208";a="82531857"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Wed, 12 Oct 2022 11:21:34 +0100
Message-ID: <20221012102134.1087-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.32.0.windows.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

VisualStudioVersion = 17.0 maps to Visual Studio 2022
* Adds project files for vs2022
* Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
* Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
* Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
* Adds include directive where compiler intrinsics are used

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 build.ps1                                     |  16 +-
 src/common/util.h                             |  11 +-
 src/xen/hypercall.c                           |   1 +
 src/xen/process.c                             |   1 +
 vs2022/configs.props                          |  45 +++++
 vs2022/package/package.vcxproj                |  79 ++++++++
 vs2022/package/package.vcxproj.user           |   8 +
 vs2022/targets.props                          |  35 ++++
 vs2022/version/version.vcxproj                |  22 +++
 vs2022/xen/xen.vcxproj                        |  99 ++++++++++
 vs2022/xen/xen.vcxproj.user                   |   8 +
 vs2022/xenbus.sln                             | 175 ++++++++++++++++++
 vs2022/xenbus/xenbus.vcxproj                  |  98 ++++++++++
 vs2022/xenbus/xenbus.vcxproj.user             |   8 +
 vs2022/xenbus_coinst/xenbus_coinst.vcxproj    |  67 +++++++
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |   8 +
 vs2022/xenbus_monitor/xenbus_monitor.vcxproj  |  83 +++++++++
 .../xenbus_monitor.vcxproj.user               |   8 +
 vs2022/xenfilt/xenfilt.vcxproj                |  81 ++++++++
 vs2022/xenfilt/xenfilt.vcxproj.user           |   8 +
 20 files changed, 849 insertions(+), 12 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xen/xen.vcxproj
 create mode 100644 vs2022/xen/xen.vcxproj.user
 create mode 100644 vs2022/xenbus.sln
 create mode 100644 vs2022/xenbus/xenbus.vcxproj
 create mode 100644 vs2022/xenbus/xenbus.vcxproj.user
 create mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj
 create mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user
 create mode 100644 vs2022/xenbus_monitor/xenbus_monitor.vcxproj
 create mode 100644 vs2022/xenbus_monitor/xenbus_monitor.vcxproj.user
 create mode 100644 vs2022/xenfilt/xenfilt.vcxproj
 create mode 100644 vs2022/xenfilt/xenfilt.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 346d187..88d57a6 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/src/common/util.h b/src/common/util.h
index 31a224d..61ae403 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -33,6 +33,7 @@
 #define _COMMON_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/src/xen/hypercall.c b/src/xen/hypercall.c
index 54f3a10..c56f218 100644
--- a/src/xen/hypercall.c
+++ b/src/xen/hypercall.c
@@ -34,6 +34,7 @@
 
 #include <ntddk.h>
 #include <xen.h>
+#include <intrin.h>
 
 #include "hypercall.h"
 #include "dbg_print.h"
diff --git a/src/xen/process.c b/src/xen/process.c
index 7d6dc74..db3b1f7 100644
--- a/src/xen/process.c
+++ b/src/xen/process.c
@@ -33,6 +33,7 @@
 
 #include <ntddk.h>
 #include <xen.h>
+#include <intrin.h>
 
 #include "process.h"
 #include "dbg_print.h"
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 0000000..cdbb3c8
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 0000000..00af1a3
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{92E5A46B-913C-45C6-B6F8-7E062D85279F}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyDrivers />
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xenfilt\xenfilt.vcxproj">
+      <Project>{d7411b2c-2c43-434d-9f56-e10a3d2f5bad}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenbus_coinst\xenbus_coinst.vcxproj">
+      <Project>{4bf41378-c01b-4002-8581-563c5f703362}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenbus\xenbus.vcxproj">
+      <Project>{14c16c29-77c9-475b-a618-1b01e67cf985}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xen\xen.vcxproj">
+      <Project>{9c6a5d48-a331-4b1f-a004-7bb67ba5be1c}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenbus_monitor\xenbus_monitor.vcxproj">
+      <Project>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xenbus.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets"></ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+	SourceFiles="@(PackageFiles)"
+	DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 0000000..64598fc
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 0000000..b6ec6f3
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xen/xen.vcxproj b/vs2022/xen/xen.vcxproj
new file mode 100644
index 0000000..f0e1b98
--- /dev/null
+++ b/vs2022/xen/xen.vcxproj
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4146;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      <AdditionalDependencies>$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <ModuleDefinitionFile>../../src/xen/xen.def</ModuleDefinitionFile>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\common\registry.c" />
+    <ClCompile Include="..\..\src\xen\driver.c" />
+    <ClCompile Include="..\..\src\xen\event_channel.c" />
+    <ClCompile Include="..\..\src\xen\grant_table.c" />
+    <ClCompile Include="..\..\src\xen\hvm.c" />
+    <ClCompile Include="..\..\src\xen\xen_version.c" />
+    <ClCompile Include="..\..\src\xen\hypercall.c" />
+    <ClCompile Include="..\..\src\xen\memory.c" />
+    <ClCompile Include="..\..\src\xen\sched.c" />
+    <ClCompile Include="..\..\src\xen\log.c" />
+    <ClCompile Include="..\..\src\xen\bug_check.c" />
+    <ClCompile Include="..\..\src\xen\module.c" />
+    <ClCompile Include="..\..\src\xen\process.c" />
+    <ClCompile Include="..\..\src\xen\acpi.c" />
+    <ClCompile Include="..\..\src\xen\system.c" />
+    <ClCompile Include="..\..\src\xen\unplug.c" />
+    <ClCompile Include="..\..\src\xen\vcpu.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <MASM Include="..\..\src\xen\amd64\hypercall_thunk.asm">
+      <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
+    </MASM>
+    <MASM Include="..\..\src\xen\i386\hypercall_thunk.asm">
+      <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild>
+    </MASM>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xen\xen.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\xen\xen.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xen/xen.vcxproj.user b/vs2022/xen/xen.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xen/xen.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenbus.sln b/vs2022/xenbus.sln
new file mode 100644
index 0000000..4ced8db
--- /dev/null
+++ b/vs2022/xenbus.sln
@@ -0,0 +1,175 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus_coinst", "xenbus_coinst\xenbus_coinst.vcxproj", "{4BF41378-C01B-4002-8581-563C5F703362}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus_monitor", "xenbus_monitor\xenbus_monitor.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xen", "xen\xen.vcxproj", "{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenfilt", "xenfilt\xenfilt.vcxproj", "{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenbus", "xenbus\xenbus.vcxproj", "{14C16C29-77C9-475B-A618-1B01E67CF985}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{92E5A46B-913C-45C6-B6F8-7E062D85279F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{14C16C29-77C9-475B-A618-1B01E67CF985} = {14C16C29-77C9-475B-A618-1B01E67CF985}
+		{4BF41378-C01B-4002-8581-563C5F703362} = {4BF41378-C01B-4002-8581-563C5F703362}
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} = {9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD} = {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {B401BB41-D030-43B6-B5FD-9ADFE9A6648E}
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xenbus/xenbus.vcxproj b/vs2022/xenbus/xenbus.vcxproj
new file mode 100644
index 0000000..d7b94bd
--- /dev/null
+++ b/vs2022/xenbus/xenbus.vcxproj
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{14C16C29-77C9-475B-A618-1B01E67CF985}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4146;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xen.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/procgrp.lib;$(DDK_LIB_PATH)/rtlver.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\common\registry.c" />
+    <ClCompile Include="..\..\src\xenbus\bus.c" />
+    <ClCompile Include="..\..\src\xenbus\console.c" />
+    <ClCompile Include="..\..\src\xenbus\dma.c" />
+    <ClCompile Include="..\..\src\xenbus\debug.c" />
+    <ClCompile Include="..\..\src\xenbus\driver.c" />
+    <ClCompile Include="..\..\src\xenbus\evtchn.c" />
+    <ClCompile Include="..\..\src\xenbus\evtchn_2l.c" />
+    <ClCompile Include="..\..\src\xenbus\evtchn_fifo.c" />
+    <ClCompile Include="..\..\src\xenbus\fdo.c" />
+    <ClCompile Include="..\..\src\xenbus\filters.c" />
+    <ClCompile Include="..\..\src\xenbus\gnttab.c" />
+    <ClCompile Include="..\..\src\xenbus\pdo.c" />
+    <ClCompile Include="..\..\src\xenbus\shared_info.c" />
+    <ClCompile Include="..\..\src\xenbus\store.c" />
+    <ClCompile Include="..\..\src\xenbus\suspend.c" />
+    <ClCompile Include="..\..\src\xenbus\sync.c" />
+    <ClCompile Include="..\..\src\xenbus\thread.c" />
+    <ClCompile Include="..\..\src\xenbus\range_set.c" />
+    <ClCompile Include="..\..\src\xenbus\balloon.c" />
+    <ClCompile Include="..\..\src\xenbus\cache.c" />
+    <ClCompile Include="..\..\src\xenbus\hash_table.c" />
+    <ClCompile Include="..\..\src\xenbus\unplug.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenbus\xenbus.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenbus/xenbus.vcxproj.user b/vs2022/xenbus/xenbus.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenbus/xenbus.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenbus_coinst/xenbus_coinst.vcxproj b/vs2022/xenbus_coinst/xenbus_coinst.vcxproj
new file mode 100644
index 0000000..b37e1a5
--- /dev/null
+++ b/vs2022/xenbus_coinst/xenbus_coinst.vcxproj
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{4BF41378-C01B-4002-8581-563C5F703362}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5045;6001;6054;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xenbus_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xenbus_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user b/vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenbus_monitor/xenbus_monitor.vcxproj b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj
new file mode 100644
index 0000000..54272ec
--- /dev/null
+++ b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <PropertyGroup>
+    <CustomBuildAfterTargets>Link</CustomBuildAfterTargets>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5045;6001;6054;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>wtsapi32.lib;cfgmgr32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x86 -dll -noentry -out:%(Outputs) %(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x64 -dll -noentry -out:%(Outputs) %(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
+    <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
+  </ItemGroup>
+  <ItemGroup>
+    <MessageCompile Include="..\..\src\monitor\messages.mc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\monitor\monitor.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\monitor\xenbus_monitor.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenbus_monitor/xenbus_monitor.vcxproj.user b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenfilt/xenfilt.vcxproj b/vs2022/xenfilt/xenfilt.vcxproj
new file mode 100644
index 0000000..270d2e4
--- /dev/null
+++ b/vs2022/xenfilt/xenfilt.vcxproj
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xen.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD64_</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/common/registry.c" />
+    <ClCompile Include="../../src/xenfilt/driver.c" />
+    <ClCompile Include="../../src/xenfilt/emulated.c" />
+    <ClCompile Include="../../src/xenfilt/fdo.c" />
+    <ClCompile Include="../../src/xenfilt/pdo.c" />
+    <ClCompile Include="../../src/xenfilt/thread.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenfilt\xenfilt.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenfilt/xenfilt.vcxproj.user b/vs2022/xenfilt/xenfilt.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenfilt/xenfilt.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.32.0.windows.1



From win-pv-devel-bounces@lists.xenproject.org Wed Oct 12 10:24:13 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Oct 2022 10:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.420967.666118 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiYuK-0002sg-W3; Wed, 12 Oct 2022 10:24:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 420967.666118; Wed, 12 Oct 2022 10:24:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiYuK-0002sZ-So; Wed, 12 Oct 2022 10:24:12 +0000
Received: by outflank-mailman (input) for mailman id 420967;
 Wed, 12 Oct 2022 10:24:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Lyo=2N=citrix.com=prvs=2776d84d2=owen.smith@srs-se1.protection.inumbo.net>)
 id 1oiYuJ-0002sO-9n
 for win-pv-devel@lists.xenproject.org; Wed, 12 Oct 2022 10:24:11 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff837060-4a17-11ed-91b4-6bf2151ebd3b;
 Wed, 12 Oct 2022 12:24:07 +0200 (CEST)
Received: from mail-bn8nam04lp2046.outbound.protection.outlook.com (HELO
 NAM04-BN8-obe.outbound.protection.outlook.com) ([104.47.74.46])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 12 Oct 2022 06:24:03 -0400
Received: from DM5PR03MB2921.namprd03.prod.outlook.com (2603:10b6:3:11c::19)
 by PH0PR03MB6368.namprd03.prod.outlook.com (2603:10b6:510:aa::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.21; Wed, 12 Oct
 2022 10:24:00 +0000
Received: from DM5PR03MB2921.namprd03.prod.outlook.com
 ([fe80::fd4e:9ec6:7a13:465]) by DM5PR03MB2921.namprd03.prod.outlook.com
 ([fe80::fd4e:9ec6:7a13:465%6]) with mapi id 15.20.5709.021; Wed, 12 Oct 2022
 10:23:59 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff837060-4a17-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665570247;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=4oYDufjYaHAJQYGWVyezdO7NOWzsjz9xJJ+YTaivH3U=;
  b=WUJ7R+MHrONkKM3JDfosefRfeBzepf905lG0wfF9eYO2rd7UUK2uWDyV
   Qtjpa10KP0pr22QQtWt8UaalOKqoWvPKJHK3mUOS4bK5+1+VePbiFO8yX
   Il4Cofonhobm/NQKZoAoVp+WAce8u/8X9Fg5jHNaxUhgVTj3cVilM/DbL
   o=;
X-IronPort-RemoteIP: 104.47.74.46
X-IronPort-MID: 82555228
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: =?us-ascii?q?A9a23=3AWSxWC6nHS7Jd3B1o/stTVKzo5mJPLROZ8wNM2?=
 =?us-ascii?q?KgKY136VjIFGUQMpFpP7MB4pnnN45wTJkRxMAO25PMkxCZ++vMshaz8836b2?=
 =?us-ascii?q?urOvwpISZsWo5U263vVLM9heB0tQb0sKu+yaVF0hEIN20Tz0EhRtHxogqt0q?=
 =?us-ascii?q?gZP7gQwP7GBKll3ZGxR/f+l6D5yxRKZKgZYrCjKluW+oQeEkrmP5BuLM0C2z?=
 =?us-ascii?q?0Hg17MOy0Gaob8uiyBvahJImUFKFfHEGgr/ixWqZChnd7bqQNS1GuFFWtvUi?=
 =?us-ascii?q?g4MwCH0jCQ+VD3jcmiPYqBe2Haz25hiTEhMpGiDmF47cdyzv9UBUp6peTGqY?=
 =?us-ascii?q?yjEw3kQxKR2QNonGwPvYse7vxr7rRxLAd/o5nVLvtCpzag4ZyhAqIHsOJRgn?=
 =?us-ascii?q?2yWILmIVdM4uzx3hLlIfVDqvaY+QaHzJOKhM8MtBpbtH/zwPocGs71F4FK5T?=
 =?us-ascii?q?fbooFIOqxmsgpQzwcpuY7uflpZswMYkHIg9Nz5ZoUDlX1OAFli3gclgjYYU/?=
 =?us-ascii?q?OTqwg/RrsLfr+Bg5NzCyLuvKLjG8e5KRlyM0BGjF9DIIvgz4dGLP4tLkkB32?=
 =?us-ascii?q?1SrEgRpzpQkKEAYHg4NSC7V3ThEXeSmDB2yfS3i12hHIPe7y24/gF/mV53lY?=
 =?us-ascii?q?6hirZORu8qMgKQ/gLiD9fvXYGy4V+6zgX5BLNyileJbce5kd3/pfxxlpqd0Y?=
 =?us-ascii?q?mit+Yg4QK5Co3wq64A04f0uVKlRpZNV69fq2jjkEijHeo508t1A3tZNgIhTI?=
 =?us-ascii?q?gY4ufSMNP+c8EnBOVbIMuPUJBd0R2OHYjzURv3Xu7+4xgREcz3vr0VsajkVt?=
 =?us-ascii?q?yDhHMTt19lglOdCAmDLtP+PYfFdBMkRru9UpsoAvv85Iezf2f/N4ekEYMp1H?=
 =?us-ascii?q?snZ8RlV9Xh4ld7FUojQUqLXZtRu/08rBNH3btJcbtwblZxD8gcFy42EVBLzS?=
 =?us-ascii?q?567sx8Yzh46F+z9/PiXTlJWNwgbFWh5i4aFaU95OBpwguAbKubrD4mKLpd5G?=
 =?us-ascii?q?ue8mgeu2S1Hw7HmTjFwd4iJyfzIG8fxgkmR7Gm5S7jDvG4jvA8vzQ3qrdyXY?=
 =?us-ascii?q?sl9sAPMCwyXvfoZQyzg5dZ2cCkVH1qmf4bh/21X3TN0mtcKGjdayQ6/D35b0?=
 =?us-ascii?q?QIoh/hVi1pFyPhg4EFvokumiC4Q45MaeDdgP08QLzI3H0QL0A+HBtW8Wc/SY?=
 =?us-ascii?q?Otgqp5epFOVLH7IMCfZlqfXNy6klyVFuhpACjAkmfqneQ30gYm7AAtCFokHj?=
 =?us-ascii?q?C+A3gEvY2z/4vb9mlz8Kg7G4E8qiceaVj397PWGRPf7dsrDKseqoeuWVKRLX?=
 =?us-ascii?q?MKb808Eeq+DUxwogN7jpyHEiIoBPFNVBhb1F/9+1MvNSoDjZgymiRFwyeGr8?=
 =?us-ascii?q?dRuQUWy4Tszfw08OAMbdMXkNgMN/kKwcENxqCPHI202PLRhXvNcy/593sycD?=
 =?us-ascii?q?6gNb9vYt4Zb/kNwpf61oRHGBV38YCyZWGPY8IjmcPMm/8pBD4pBHPr3thEW7?=
 =?us-ascii?q?3onIFN69UjfKuam9tF4a+XsqOU7LJJPBQlBKuy4yV91ohKRe5caihd6OKhxK?=
 =?us-ascii?q?GM1rYLXSdKMBMGH7LW1z6f0vIJvWluTma9AK9OwOhjgnNeMhjV1VAgGJxfeZ?=
 =?us-ascii?q?uIGAh5xFVaNFjsRp0GG8oo7NbrEdO8xddV4htp5K5xrjn/ULyOw+yBfeMJof?=
 =?us-ascii?q?i0aNzzFZHzYuXLRejWaE8obd8wBg2ZfyWAcwpNQQlrQV30TmpXra1vVYlsXv?=
 =?us-ascii?q?ZiR6km6K6eyndfr2746mBoInopiSGyA+fjIVDqfPcLyemai1V0nel3KpGbIn?=
 =?us-ascii?q?bX4fhyauqGaDwFf/3J3CX2EvIn4135kzo3A5xNv85yRo9EQnNiGhp1tBZ16b?=
 =?us-ascii?q?aXgfb2YoQwi0V/kZqaK8/0rqpIjulDnlKXED1dGSIRj7vMxr9/B22H4pz8Rn?=
 =?us-ascii?q?+bKMk6wa73Yofa3e8Qy3Jkw6fGYnKuzdkwMYMPrc3N0PN69W8AUy2T+yF8i9?=
 =?us-ascii?q?dPZ5U1EBE0Dp2iAWNEija4EI9xpZ/gsVIceQduX1yzdMfzBqry7czTfT7Amj?=
 =?us-ascii?q?87TyuzZlQYIsQ6jnLzC44DcU2amoqA7TzqhBxxhbuCDGkuNHMVMo06O+W2nZ?=
 =?us-ascii?q?xkGrsjpNd4EGZ7MRNoREJtEoofjfDTt8i9JdMvDlnytT2j6FVZypTXTtYNRk?=
 =?us-ascii?q?z3x8in8PpzzReGxJirr4FTfGBI+Qt0JStGlg4mGEz0NzlGzxY+tig9li92S4?=
 =?us-ascii?q?LhXR+tY6I6BCIZmyCb3Ua0y/jaMECiK57SwHd5PcqmWfWJYJxPBMEheUOzpB?=
 =?us-ascii?q?8Ucu9MQur22pBHcP7efj6TvrSorCHjg9iI+ytWfuirJl/5x61Og67+o+KpDD?=
 =?us-ascii?q?5euvWHpRDZPPN8yASAjbMfrrBkyicSrPEVQGSyIhItVcW9XjOCx28mg?=
X-IronPort-AV: E=Sophos;i="5.95,179,1661832000"; 
   d="scan'208";a="82555228"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=eq9+nEo3QDinyuWCEy5zxYWzY8LynyeH2ZgKt8PAoOpY8448BuVDRJvLDF4nI+51EBZqx2/pfT/blmKZyQAp/cCk0Ook4NCwZxzVtx2fY45rs9I0B1jYkJfRRE+j7igYRd+8X/HH0PrqAh7HmedmCt28cetU3neRazvl5fB6RQ2FHkIy/Z3Q5x0JXIZYJ2p+E3RDYcjZ/6cWwirgElmVgNobIJ4m6YiSSZ3be7UYIQIgbo9N1kQwKKee5qVwUuEC9qQAYt3x+PQbn6bVU7Oz9wvixYpRRJZXlRtIrpHa7nvgP/++3PQ2zC2D7/G48b2K6mCdyZyD5ZMCGugqcmRLTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TtL59qQgHR1rOq3rhtgq/WuD3FeZ+H/fu2Gd/Y8fQ6E=;
 b=aDWCg25i3Ws8guc9oSVDj45bvIAzZDwZbLIPhbsAWutgrGiDBxze32561V0A6BJBfcoKG6XK9L9LyTquNFSEUFmH9NVOzee2URMII/NiDzpzeT/Nc4JnUJYiWDUEjIa6CmhKgwwvGJ+Ls/QoSw5l3EwFP8mxi1oulFl3oisD5Lwn2QTmXRhXpIK449P39Uk2g2Vc8d75WeggRJsdo6je978SYtsUzNx75jgbGdg9HznKSHnix/Xv9enCdlt1BEYny41G20YMsgV2/SX2NvKjasg9i/5qtK8skm5sRDoNQy2Sg2p4XqfaxKSwOTb52u5G+R1jHIQeFUszNIqGPnJNKQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TtL59qQgHR1rOq3rhtgq/WuD3FeZ+H/fu2Gd/Y8fQ6E=;
 b=O9Ep3DsXiYp9M9d7Bt0QUnSvk7uE4b1Ypdo6jm9fKEB2wp0FCfCLxtzwQm4Yl0NcFmOX2Ai79u50APzMpApgNuL9z8jOUHwJxC6idUuwsVCExrByymsWdIKJgYEq92eV+AJuPE9SAgR3Nxb0UejzRLEGfudWUfvpnordpbkURQI=
From: Owen Smith <owen.smith@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH] Add build options for EWDK 22621
Thread-Topic: [PATCH] Add build options for EWDK 22621
Thread-Index: AQHY3iRv/wbTGA0NIE+G0dBDJXqaea4KjNMQ
Date: Wed, 12 Oct 2022 10:23:59 +0000
Message-ID:
 <DM5PR03MB29211675AF151751FD1B8D47FE229@DM5PR03MB2921.namprd03.prod.outlook.com>
References: <20221012102134.1087-1-owen.smith@citrix.com>
In-Reply-To: <20221012102134.1087-1-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM5PR03MB2921:EE_|PH0PR03MB6368:EE_
x-ms-office365-filtering-correlation-id: 9f838301-b608-4b86-00e9-08daac3be0aa
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 8FyuxNqDu2OWTfPLEVX+t4qTthn45GRs9reRMUJ2QgPQ62vqaTlaRCaO93nLwBzNIfotniSS40GeBxGkuOGGcrjTWkjk6tUUEBzUSI8skM1kRWrB3Bjnvhx3FoHVgNnVQxmbLsXcRNCkUbFGQuFvNmkk4OQKFDFSZzLF216wsAiCQH7w1CL/BdhO28jR5JAB9PeyFbOldMiIxoIpuUWId4lYMD/QfBBqdONCneG0PEKvWvIkerOf1yDoktHp7hWBwFk4GqbFMeHXol+eGQdrOCNT/4zs9IT5BxTstCC/hjX4ERLWxY0hz3n1xd5jsFTBqab/rhQZ+ps7g74Gg2pGprcYTFoKV1O5jiuirGfcPJUTNHdaYbfebb3Ktp1Tl3drD/2548vZlGj90ppwK4IDdhp72bWB3My23fc35L4yF7j2AwrqHegXRxC+gBM0O2e7MBKhBiHFPcVa82WgxwaJhcvfM7j9RZmMub5BQ9eGK0w9ji812n8iNqqhapPwwqQV+JkONPwMzKbp3dJY3NcjFBB628QvFGRa+NDocb7g46podV8hkCXtAjyk9PFuSAeUf6h0/A0j/zMfbWK023bxEDNN5SGGMZMyjgwWj4GFB/gcscGYQ7fZWLtN6//+9WaTYf01THj5sh2eMua8u6jQRO5IYQNNL9oU3HqMIGE2zmwrp3a7gQctcFNnJ4YkLTF0oKIAN+yGweBZuyo2+sbqVR8/jhWgfDsszSXhNvbGhOWxRLtK0UWUIo7ZLGZW8qfCj/Fp3BR36OAHRcU95lf/I6TIomyKEwDzmfBhdIHlxAAt7WQ3An90ylTsmSuZCGaH
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR03MB2921.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(396003)(136003)(376002)(39860400002)(346002)(451199015)(478600001)(33656002)(82960400001)(38100700002)(2906002)(8936002)(44832011)(41300700001)(5660300002)(30864003)(52536014)(8676002)(64756008)(66476007)(76116006)(66556008)(66446008)(66946007)(45080400002)(9686003)(55016003)(122000001)(83380400001)(966005)(71200400001)(110136005)(26005)(186003)(86362001)(316002)(38070700005)(7696005)(53546011)(6506007)(579004)(559001)(460985005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?HaBdT7DvER8ZIeeaNXRojpPTfbOB00bcT5mfdsXQFkYlb5kApWkcj6IlJKkn?=
 =?us-ascii?Q?v2mxo255yQAhe2KVumwU0NSihqE3LXTrXMLK9c8p4giGORmDt44l5Aw4g1RD?=
 =?us-ascii?Q?L8J8KSWIvq/oMmRn1yvr/pA66CosXxPfRNnUH6FyBLtIacYC1NMV8aOzJSH7?=
 =?us-ascii?Q?S5P/CrVY9nNIn2TwLflyghafuR9C7DohoZHKu28PjgiQamaRRUbAZFSl0RoL?=
 =?us-ascii?Q?ZHEnnEGjdZV0R32oLQidKRyHQYPL5DZ4Z2cna/ELIiHHGoW4DZoCC7d9/5XG?=
 =?us-ascii?Q?V2d/khU9ajNavMtVeA5dnA5LCPdYGtA3TAiq3QBfJD58cCtj+SISwL49rTPO?=
 =?us-ascii?Q?WrYx1um4fB/GuFPDvIbuESE1Shw1DtCz+htZHDytEeOHASWTzAtKO4/S5OuO?=
 =?us-ascii?Q?PY+qE4GwQ9anEdKbMwQwqOQSrA1Z/3ywOJp2OSq9sX0vihIuUWgExw25LCiZ?=
 =?us-ascii?Q?P+/1uvRJWj2XAx8h9taO7jDaMbK6xmsxq2WmfDdGiiHwYdGjtBUhVhng64NX?=
 =?us-ascii?Q?mv9og1mfAE7VMo1qXotEncUBAundQJIqsWQS53hERRZvHJm7y1jHGXR1ziPI?=
 =?us-ascii?Q?06CnPUFx7k8M4DtUDI4MHUuar1NchLgJQxpGVS5LEssMSVIAXqCFST0iKSqN?=
 =?us-ascii?Q?ObCxLXTFBkVYNo5Dfdwa1kYdcemvFhf1BlVTNLJQi9uWhiOwApQtFwUTjdBp?=
 =?us-ascii?Q?oYbwm/VjXJp7wO5YZ1Ojm4DzpNHEChNessvW6dL3cuKuMIohSsMnMHTxfJIu?=
 =?us-ascii?Q?YsEYAeNo3j4L/jHws3k0Bpn3QcfjmY4k0bYTjDVweS+D9v/bHjZ9/LL3P0wp?=
 =?us-ascii?Q?WUkH2+vyISkSDQgbB1YYs3jxsZVmVRZInQB/CIwBAd3/ifzsmokHxgCoLxn4?=
 =?us-ascii?Q?EysubKNSdSbjqzepH4qEjzVyyls2UhX2yVNnp8I0LHHG11jKztcaUiBEAYJe?=
 =?us-ascii?Q?8jbfuaGumBAPAIkYoOHWLYtDUPkeaaFuw/aCantkbmIuKzbxszxUXFZphMg+?=
 =?us-ascii?Q?pJkyb24C9Urgpv8kWPtihj1/9eNLfXDbM5P7qPTjKvxoseUZ8YnO9rApGqWG?=
 =?us-ascii?Q?K2QWdN0QoQLwcJ9JJjx09O85UDC8j5QyjhuQmeNkqfLgpQtjmUUQmuovSo7A?=
 =?us-ascii?Q?pAPAll343TwrIptPoZW9LZrVbBOI6+TmFx+Px2Z6RYrAjzFBDZ8sPEjhcRC/?=
 =?us-ascii?Q?vuw5FhrXuhYe7M8PMYmUJdSQ6mYfj0u0P/wZYqvCg7sxNgiIL6nOoYy4jNTT?=
 =?us-ascii?Q?rCcLGXLIsDjZRPfNj/trJiIlphAQFlDWPF1KotPANfNEK3xmhQ5m4rRHc+0X?=
 =?us-ascii?Q?K/MiyOEVb/aATM4V1I/7pHaGPU18WjFfEBQBviIJTDl0JPLhLJdfkr38FWyT?=
 =?us-ascii?Q?eHxITa4z2oVT939XcvIPMNMGrlbEy3lZ0LR3BMr4x2143L/WVzPqCqYFFLS+?=
 =?us-ascii?Q?q96Z5E/WhgFXSiaC7Na9S1U1jBXAMa/fUzJN7dVG9NxYRmJucLp09rU2szF9?=
 =?us-ascii?Q?kI+ecls+KA72anJHxPoIrrm0VYRPyzrXw6vQ1dpUDlZlKwZvElayC7WQm5NO?=
 =?us-ascii?Q?5SkXt7XiUYF09E+aZg31gUvLlQuou9MI7iTgyFkU?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM5PR03MB2921.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f838301-b608-4b86-00e9-08daac3be0aa
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2022 10:23:59.8319
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Q0M8ojg7zqdqypzBDKvrqfHyHEEiN8ua97QUGXiVkMxoveyy9f4vRZ3AdP1Tv2022kS5Gmf0IHbkupG9D9XVeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6368

Similar changes will be needed to all driver repos

I've only tested these drivers build with the later kits - I'm still using =
EWDK 22000 for internal Citrix builds

Owen

-----Original Message-----
From: Owen Smith <owen.smith@citrix.com>=20
Sent: 12 October 2022 11:22
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621

VisualStudioVersion =3D 17.0 maps to Visual Studio 2022
* Adds project files for vs2022
* Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
* Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
* Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
* Adds include directive where compiler intrinsics are used

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 build.ps1                                     |  16 +-
 src/common/util.h                             |  11 +-
 src/xen/hypercall.c                           |   1 +
 src/xen/process.c                             |   1 +
 vs2022/configs.props                          |  45 +++++
 vs2022/package/package.vcxproj                |  79 ++++++++
 vs2022/package/package.vcxproj.user           |   8 +
 vs2022/targets.props                          |  35 ++++
 vs2022/version/version.vcxproj                |  22 +++
 vs2022/xen/xen.vcxproj                        |  99 ++++++++++
 vs2022/xen/xen.vcxproj.user                   |   8 +
 vs2022/xenbus.sln                             | 175 ++++++++++++++++++
 vs2022/xenbus/xenbus.vcxproj                  |  98 ++++++++++
 vs2022/xenbus/xenbus.vcxproj.user             |   8 +
 vs2022/xenbus_coinst/xenbus_coinst.vcxproj    |  67 +++++++
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |   8 +
 vs2022/xenbus_monitor/xenbus_monitor.vcxproj  |  83 +++++++++
 .../xenbus_monitor.vcxproj.user               |   8 +
 vs2022/xenfilt/xenfilt.vcxproj                |  81 ++++++++
 vs2022/xenfilt/xenfilt.vcxproj.user           |   8 +
 20 files changed, 849 insertions(+), 12 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xen/xen.vcxproj
 create mode 100644 vs2022/xen/xen.vcxproj.user
 create mode 100644 vs2022/xenbus.sln
 create mode 100644 vs2022/xenbus/xenbus.vcxproj
 create mode 100644 vs2022/xenbus/xenbus.vcxproj.user
 create mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj
 create mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user
 create mode 100644 vs2022/xenbus_monitor/xenbus_monitor.vcxproj
 create mode 100644 vs2022/xenbus_monitor/xenbus_monitor.vcxproj.user
 create mode 100644 vs2022/xenfilt/xenfilt.vcxproj
 create mode 100644 vs2022/xenfilt/xenfilt.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 346d187..88d57a6 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
=20
 	$visualstudioversion =3D $Env:VisualStudioVersion
-	$solutiondir =3D @{ "14.0" =3D "vs2015"; "15.0" =3D "vs2017"; "16.0" =3D =
"vs2019"; }
-	$configurationbase =3D @{ "14.0" =3D "Windows 8"; "15.0" =3D "Windows 8";=
 "16.0" =3D "Windows 8"; }
+	$solutiondir =3D @{ "14.0" =3D "vs2015"; "15.0" =3D "vs2017"; "16.0" =3D =
"vs2019"; "17.0" =3D "vs2022"; }
+	$configurationbase =3D @{ "14.0" =3D "Windows 8"; "15.0" =3D "Windows 8";=
 "16.0" =3D "Windows 8"; "17.0" =3D "Windows 10"; }
=20
 	$params =3D @{
 		SolutionDir =3D $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
=20
 Function SdvBuild {
 	$visualstudioversion =3D $Env:VisualStudioVersion
-	$solutiondir =3D @{ "14.0" =3D "vs2015"; "15.0" =3D "vs2017"; "16.0" =3D =
"vs2019"; }
-	$configurationbase =3D @{ "14.0" =3D "Windows 10"; "15.0" =3D "Windows 10=
"; "16.0" =3D "Windows 10"; }
+	$solutiondir =3D @{ "14.0" =3D "vs2015"; "15.0" =3D "vs2017"; "16.0" =3D =
"vs2019"; "17.0" =3D "vs2022"; }
+	$configurationbase =3D @{ "14.0" =3D "Windows 10"; "15.0" =3D "Windows 10=
"; "16.0" =3D "Windows 10"; "17.0" =3D "Windows 10"; }
 	$arch =3D "x64"
=20
 	$params =3D @{
@@ -54,8 +54,8 @@ Function SdvBuild {
=20
 function CodeQLBuild {
 	$visualstudioversion =3D $Env:VisualStudioVersion
-	$solutiondir =3D @{ "14.0" =3D "vs2015"; "15.0" =3D "vs2017"; "16.0" =3D =
"vs2019"; }
-	$configurationbase =3D @{ "14.0" =3D "Windows 10"; "15.0" =3D "Windows 10=
"; "16.0" =3D "Windows 10"; }
+	$solutiondir =3D @{ "14.0" =3D "vs2015"; "15.0" =3D "vs2017"; "16.0" =3D =
"vs2019"; "17.0" =3D "vs2022"; }
+	$configurationbase =3D @{ "14.0" =3D "Windows 10"; "15.0" =3D "Windows 10=
"; "16.0" =3D "Windows 10"; "17.0" =3D "Windows 10"; }
 	$arch =3D "x64"
=20
 	$params =3D @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
=20
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win3=
2") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
=20
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/src/common/util.h b/src/common/util.h
index 31a224d..61ae403 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -33,6 +33,7 @@
 #define _COMMON_UTIL_H
=20
 #include <ntddk.h>
+#include <intrin.h>
=20
 #include "assert.h"
=20
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] =3D {0};
+    int         Value[4] =3D {0};
=20
     __cpuid(Value, Leaf);
=20
     if (EAX)
-        *EAX =3D Value[0];
+        *EAX =3D (ULONG)Value[0];
=20
     if (EBX)
-        *EBX =3D Value[1];
+        *EBX =3D (ULONG)Value[1];
=20
     if (ECX)
-        *ECX =3D Value[2];
+        *ECX =3D (ULONG)Value[2];
=20
     if (EDX)
-        *EDX =3D Value[3];
+        *EDX =3D (ULONG)Value[3];
 }
=20
 static FORCEINLINE LONG
diff --git a/src/xen/hypercall.c b/src/xen/hypercall.c
index 54f3a10..c56f218 100644
--- a/src/xen/hypercall.c
+++ b/src/xen/hypercall.c
@@ -34,6 +34,7 @@
=20
 #include <ntddk.h>
 #include <xen.h>
+#include <intrin.h>
=20
 #include "hypercall.h"
 #include "dbg_print.h"
diff --git a/src/xen/process.c b/src/xen/process.c
index 7d6dc74..db3b1f7 100644
--- a/src/xen/process.c
+++ b/src/xen/process.c
@@ -33,6 +33,7 @@
=20
 #include <ntddk.h>
 #include <xen.h>
+#include <intrin.h>
=20
 #include "process.h"
 #include "dbg_print.h"
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 0000000..cdbb3c8
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"12.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077006963%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DlNH=
7C4jNZfn6GKjV0JGhdqUGmGMbbjxGsZiMrLvk4d8%3D&amp;reserved=3D0">
+	<ItemGroup Label=3D"ProjectConfigurations">
+		<ProjectConfiguration Include=3D"Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include=3D"Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include=3D"Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include=3D"Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include=3D"Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include=3D"Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include=3D"Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include=3D"Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxpro=
j
new file mode 100644
index 0000000..00af1a3
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,79 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"14.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077006963%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DlNH=
7C4jNZfn6GKjV0JGhdqUGmGMbbjxGsZiMrLvk4d8%3D&amp;reserved=3D0">
+  <Import Project=3D"..\configs.props" />
+  <PropertyGroup Label=3D"PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label=3D"Globals">
+    <ProjectGuid>{92E5A46B-913C-45C6-B6F8-7E062D85279F}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project=3D"..\targets.props" />
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition=3D"'$(Platform)'=3D=3D'x64'">8_x6=
4;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf=
2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition=3D"'$(Platform)'=3D=3D'Win32'">8_=
x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyDrivers />
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition=3D"'$(Platform)'=3D=3D'Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition=3D"'$(Platform)'=3D=3D'x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include=3D"..\xenfilt\xenfilt.vcxproj">
+      <Project>{d7411b2c-2c43-434d-9f56-e10a3d2f5bad}</Project>
+    </ProjectReference>
+    <ProjectReference Include=3D"..\xenbus_coinst\xenbus_coinst.vcxproj">
+      <Project>{4bf41378-c01b-4002-8581-563c5f703362}</Project>
+    </ProjectReference>
+    <ProjectReference Include=3D"..\xenbus\xenbus.vcxproj">
+      <Project>{14c16c29-77c9-475b-a618-1b01e67cf985}</Project>
+    </ProjectReference>
+    <ProjectReference Include=3D"..\xen\xen.vcxproj">
+      <Project>{9c6a5d48-a331-4b1f-a004-7bb67ba5be1c}</Project>
+    </ProjectReference>
+    <ProjectReference Include=3D"..\xenbus_monitor\xenbus_monitor.vcxproj"=
>
+      <Project>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</Project>
+    </ProjectReference>
+    <FilesToPackage Include=3D"..\xenbus.inf" />
+  </ItemGroup>
+  <ItemGroup Condition=3D"Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include=3D"$(DPINST_REDIST)\x86\dpinst.exe" Condition=
=3D"'$(Platform)'=3D=3D'Win32'" />
+    <FilesToPackage Include=3D"$(DPINST_REDIST)\x64\dpinst.exe" Condition=
=3D"'$(Platform)'=3D=3D'x64'" />
+  </ItemGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label=3D"ExtensionTargets"></ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include=3D"$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name=3D"Archive" AfterTargets=3D"TestSign">
+    <Copy
+	SourceFiles=3D"@(PackageFiles)"
+	DestinationFiles=3D"@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension=
)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.v=
cxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project ToolsVersion=3D"14.0" xmlns=3D"https://nam04.safelinks.protection=
.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft.com%2Fdeveloper%2Fmsbuil=
d%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8=
508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C6380116690770069=
63%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h=
aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DlNH7C4jNZfn6GKjV0JGhdqUGmGMb=
bjxGsZiMrLvk4d8%3D&amp;reserved=3D0">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>https://nam04.safelinks.protection.outlook.com/?url=
=3Dhttp%3A%2F%2Ftimestamp.verisign.com%2Fscripts%2Ftimstamp.dll&amp;data=3D=
05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8508daac3b8e3a%7C3358=
36de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C638011669077006963%7CUnknown%7CTWFpb=
GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7=
C3000%7C%7C%7C&amp;sdata=3DubWExtUVd%2FOhyVWmlBpDK5yJzit28k55dFVkoxZ5Ly4%3D=
&amp;reserved=3D0</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 0000000..64598fc
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"12.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077006963%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DlNH=
7C4jNZfn6GKjV0JGhdqUGmGMbbjxGsZiMrLvk4d8%3D&amp;reserved=3D0">
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label=3D"Configuration" Condition=3D"'$(Configuration)|$(P=
latform)'=3D=3D'Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxpro=
j
new file mode 100644
index 0000000..b6ec6f3
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"14.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077006963%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DlNH=
7C4jNZfn6GKjV0JGhdqUGmGMbbjxGsZiMrLvk4d8%3D&amp;reserved=3D0">
+  <Import Project=3D"..\configs.props" />
+  <PropertyGroup Label=3D"Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name=3D"Build">
+    <Exec Command=3D"powershell.exe -ExecutionPolicy Bypass -NoProfile -No=
nInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(Sou=
rceDir)" />
+  </Target>
+  <Target Name=3D"GetProjectInfoForReference"
+          Returns=3D"@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include=3D"@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xen/xen.vcxproj b/vs2022/xen/xen.vcxproj
new file mode 100644
index 0000000..f0e1b98
--- /dev/null
+++ b/vs2022/xen/xen.vcxproj
@@ -0,0 +1,99 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"14.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077006963%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DlNH=
7C4jNZfn6GKjV0JGhdqUGmGMbbjxGsZiMrLvk4d8%3D&amp;reserved=3D0">
+  <Import Project=3D"..\configs.props" />
+  <PropertyGroup Label=3D"PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label=3D"Globals">
+    <ProjectGuid>{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project=3D"..\targets.props" />
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptio=
ns>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\incl=
ude;..\..\include\xen;..\..\src\common;%(AdditionalIncludeDirectories)</Add=
itionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=3D$(ProjectName);POOL_NX_OPTIN=3D1;=
NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4146;4464;4711;4770;4548;4820;4668;425=
5;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</Disabl=
eSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirec=
tories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      <AdditionalDependencies>$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)=
/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</Additi=
onalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGener=
ation>
+      <ModuleDefinitionFile>../../src/xen/xen.def</ModuleDefinitionFile>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</=
PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD6=
4_</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Configuration)'=3D=3D'Windows 8 Rel=
ease'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions=
>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include=3D"$(TargetPath)" />
+    <FilesToPackage Include=3D"$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include=3D"..\..\src\common\registry.c" />
+    <ClCompile Include=3D"..\..\src\xen\driver.c" />
+    <ClCompile Include=3D"..\..\src\xen\event_channel.c" />
+    <ClCompile Include=3D"..\..\src\xen\grant_table.c" />
+    <ClCompile Include=3D"..\..\src\xen\hvm.c" />
+    <ClCompile Include=3D"..\..\src\xen\xen_version.c" />
+    <ClCompile Include=3D"..\..\src\xen\hypercall.c" />
+    <ClCompile Include=3D"..\..\src\xen\memory.c" />
+    <ClCompile Include=3D"..\..\src\xen\sched.c" />
+    <ClCompile Include=3D"..\..\src\xen\log.c" />
+    <ClCompile Include=3D"..\..\src\xen\bug_check.c" />
+    <ClCompile Include=3D"..\..\src\xen\module.c" />
+    <ClCompile Include=3D"..\..\src\xen\process.c" />
+    <ClCompile Include=3D"..\..\src\xen\acpi.c" />
+    <ClCompile Include=3D"..\..\src\xen\system.c" />
+    <ClCompile Include=3D"..\..\src\xen\unplug.c" />
+    <ClCompile Include=3D"..\..\src\xen\vcpu.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <MASM Include=3D"..\..\src\xen\amd64\hypercall_thunk.asm">
+      <ExcludedFromBuild Condition=3D"'$(Platform)'=3D=3D'Win32'">true</Ex=
cludedFromBuild>
+    </MASM>
+    <MASM Include=3D"..\..\src\xen\i386\hypercall_thunk.asm">
+      <ExcludedFromBuild Condition=3D"'$(Platform)'=3D=3D'x64'">true</Excl=
udedFromBuild>
+    </MASM>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include=3D"..\..\src\xen\xen.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include=3D"..\..\src\xen\xen.def" />
+  </ItemGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xen/xen.vcxproj.user b/vs2022/xen/xen.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xen/xen.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project ToolsVersion=3D"14.0" xmlns=3D"https://nam04.safelinks.protection=
.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft.com%2Fdeveloper%2Fmsbuil=
d%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8=
508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C6380116690770069=
63%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h=
aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DlNH7C4jNZfn6GKjV0JGhdqUGmGMb=
bjxGsZiMrLvk4d8%3D&amp;reserved=3D0">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>https://nam04.safelinks.protection.outlook.com/?url=
=3Dhttp%3A%2F%2Ftimestamp.verisign.com%2Fscripts%2Ftimstamp.dll&amp;data=3D=
05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8508daac3b8e3a%7C3358=
36de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C638011669077163205%7CUnknown%7CTWFpb=
GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7=
C3000%7C%7C%7C&amp;sdata=3D8%2F1%2B8qxJXseE158n1Hw9Q1bo14agIrPEA3NyqipE7sU%=
3D&amp;reserved=3D0</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenbus.sln b/vs2022/xenbus.sln
new file mode 100644
index 0000000..4ced8db
--- /dev/null
+++ b/vs2022/xenbus.sln
@@ -0,0 +1,175 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion =3D 16.0
+MinimumVisualStudioVersion =3D 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "version", "version\=
version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "xenbus_coinst", "xe=
nbus_coinst\xenbus_coinst.vcxproj", "{4BF41378-C01B-4002-8581-563C5F703362}=
"
+	ProjectSection(ProjectDependencies) =3D postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} =3D {65FA97EA-A569-4FC1-BFE7-D68E=
109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "xenbus_monitor", "x=
enbus_monitor\xenbus_monitor.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD=
3B}"
+	ProjectSection(ProjectDependencies) =3D postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} =3D {65FA97EA-A569-4FC1-BFE7-D68E=
109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "xen", "xen\xen.vcxp=
roj", "{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}"
+	ProjectSection(ProjectDependencies) =3D postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} =3D {65FA97EA-A569-4FC1-BFE7-D68E=
109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "xenfilt", "xenfilt\=
xenfilt.vcxproj", "{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}"
+	ProjectSection(ProjectDependencies) =3D postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} =3D {65FA97EA-A569-4FC1-BFE7-D68E=
109143F7}
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} =3D {9C6A5D48-A331-4B1F-A004-7BB6=
7BA5BE1C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "xenbus", "xenbus\xe=
nbus.vcxproj", "{14C16C29-77C9-475B-A618-1B01E67CF985}"
+	ProjectSection(ProjectDependencies) =3D postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} =3D {65FA97EA-A569-4FC1-BFE7-D68E=
109143F7}
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} =3D {9C6A5D48-A331-4B1F-A004-7BB6=
7BA5BE1C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =3D "package", "package\=
package.vcxproj", "{92E5A46B-913C-45C6-B6F8-7E062D85279F}"
+	ProjectSection(ProjectDependencies) =3D postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} =3D {65FA97EA-A569-4FC1-BFE7-D68E=
109143F7}
+		{14C16C29-77C9-475B-A618-1B01E67CF985} =3D {14C16C29-77C9-475B-A618-1B01=
E67CF985}
+		{4BF41378-C01B-4002-8581-563C5F703362} =3D {4BF41378-C01B-4002-8581-563C=
5F703362}
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C} =3D {9C6A5D48-A331-4B1F-A004-7BB6=
7BA5BE1C}
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD} =3D {D7411B2C-2C43-434D-9F56-E10A=
3D2F5BAD}
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} =3D {2E61D2CC-865E-442C-8C83-B8DA=
FD7BBD3B}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) =3D preSolution
+		Windows 10 Debug|Win32 =3D Windows 10 Debug|Win32
+		Windows 10 Debug|x64 =3D Windows 10 Debug|x64
+		Windows 10 Release|Win32 =3D Windows 10 Release|Win32
+		Windows 10 Release|x64 =3D Windows 10 Release|x64
+		Windows 8 Debug|Win32 =3D Windows 8 Debug|Win32
+		Windows 8 Debug|x64 =3D Windows 8 Debug|x64
+		Windows 8 Release|Win32 =3D Windows 8 Release|Win32
+		Windows 8 Release|x64 =3D Windows 8 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) =3D postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg =
=3D Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 =
=3D Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg =
=3D Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 =3D =
Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCf=
g =3D Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 =
=3D Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg =
=3D Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 =
=3D Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg =
=3D Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 =3D=
 Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg =3D=
 Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 =3D W=
indows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg=
 =3D Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 =
=3D Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg =
=3D Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 =3D=
 Windows 8 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|Win32.ActiveCfg =
=3D Windows 10 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|Win32.Build.0 =
=3D Windows 10 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|x64.ActiveCfg =
=3D Windows 10 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Debug|x64.Build.0 =3D =
Windows 10 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|Win32.ActiveCf=
g =3D Windows 10 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|Win32.Build.0 =
=3D Windows 10 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|x64.ActiveCfg =
=3D Windows 10 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 10 Release|x64.Build.0 =
=3D Windows 10 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|Win32.ActiveCfg =
=3D Windows 8 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|Win32.Build.0 =3D=
 Windows 8 Debug|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|x64.ActiveCfg =3D=
 Windows 8 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Debug|x64.Build.0 =3D W=
indows 8 Debug|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|Win32.ActiveCfg=
 =3D Windows 8 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|Win32.Build.0 =
=3D Windows 8 Release|Win32
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|x64.ActiveCfg =
=3D Windows 8 Release|x64
+		{4BF41378-C01B-4002-8581-563C5F703362}.Windows 8 Release|x64.Build.0 =3D=
 Windows 8 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|Win32.ActiveCfg =
=3D Windows 10 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|Win32.Build.0 =
=3D Windows 10 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|x64.ActiveCfg =
=3D Windows 10 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|x64.Build.0 =3D =
Windows 10 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|Win32.ActiveCf=
g =3D Windows 10 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|Win32.Build.0 =
=3D Windows 10 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|x64.ActiveCfg =
=3D Windows 10 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|x64.Build.0 =
=3D Windows 10 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|Win32.ActiveCfg =
=3D Windows 8 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|Win32.Build.0 =3D=
 Windows 8 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|x64.ActiveCfg =3D=
 Windows 8 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|x64.Build.0 =3D W=
indows 8 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|Win32.ActiveCfg=
 =3D Windows 8 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|Win32.Build.0 =
=3D Windows 8 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|x64.ActiveCfg =
=3D Windows 8 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|x64.Build.0 =3D=
 Windows 8 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|Win32.ActiveCfg =
=3D Windows 10 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|Win32.Build.0 =
=3D Windows 10 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|x64.ActiveCfg =
=3D Windows 10 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Debug|x64.Build.0 =3D =
Windows 10 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|Win32.ActiveCf=
g =3D Windows 10 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|Win32.Build.0 =
=3D Windows 10 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|x64.ActiveCfg =
=3D Windows 10 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 10 Release|x64.Build.0 =
=3D Windows 10 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|Win32.ActiveCfg =
=3D Windows 8 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|Win32.Build.0 =3D=
 Windows 8 Debug|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|x64.ActiveCfg =3D=
 Windows 8 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Debug|x64.Build.0 =3D W=
indows 8 Debug|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|Win32.ActiveCfg=
 =3D Windows 8 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|Win32.Build.0 =
=3D Windows 8 Release|Win32
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|x64.ActiveCfg =
=3D Windows 8 Release|x64
+		{9C6A5D48-A331-4B1F-A004-7BB67BA5BE1C}.Windows 8 Release|x64.Build.0 =3D=
 Windows 8 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|Win32.ActiveCfg =
=3D Windows 10 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|Win32.Build.0 =
=3D Windows 10 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|x64.ActiveCfg =
=3D Windows 10 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|x64.Build.0 =3D =
Windows 10 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|Win32.ActiveCf=
g =3D Windows 10 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|Win32.Build.0 =
=3D Windows 10 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|x64.ActiveCfg =
=3D Windows 10 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|x64.Build.0 =
=3D Windows 10 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|Win32.ActiveCfg =
=3D Windows 8 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|Win32.Build.0 =3D=
 Windows 8 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|x64.ActiveCfg =3D=
 Windows 8 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|x64.Build.0 =3D W=
indows 8 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|Win32.ActiveCfg=
 =3D Windows 8 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|Win32.Build.0 =
=3D Windows 8 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|x64.ActiveCfg =
=3D Windows 8 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|x64.Build.0 =3D=
 Windows 8 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|Win32.ActiveCfg =
=3D Windows 10 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|Win32.Build.0 =
=3D Windows 10 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|x64.ActiveCfg =
=3D Windows 10 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Debug|x64.Build.0 =3D =
Windows 10 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|Win32.ActiveCf=
g =3D Windows 10 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|Win32.Build.0 =
=3D Windows 10 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|x64.ActiveCfg =
=3D Windows 10 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 10 Release|x64.Build.0 =
=3D Windows 10 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|Win32.ActiveCfg =
=3D Windows 8 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|Win32.Build.0 =3D=
 Windows 8 Debug|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|x64.ActiveCfg =3D=
 Windows 8 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Debug|x64.Build.0 =3D W=
indows 8 Debug|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|Win32.ActiveCfg=
 =3D Windows 8 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|Win32.Build.0 =
=3D Windows 8 Release|Win32
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|x64.ActiveCfg =
=3D Windows 8 Release|x64
+		{14C16C29-77C9-475B-A618-1B01E67CF985}.Windows 8 Release|x64.Build.0 =3D=
 Windows 8 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|Win32.ActiveCfg =
=3D Windows 10 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|Win32.Build.0 =
=3D Windows 10 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|x64.ActiveCfg =
=3D Windows 10 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Debug|x64.Build.0 =3D =
Windows 10 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|Win32.ActiveCf=
g =3D Windows 10 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|Win32.Build.0 =
=3D Windows 10 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|x64.ActiveCfg =
=3D Windows 10 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 10 Release|x64.Build.0 =
=3D Windows 10 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|Win32.ActiveCfg =
=3D Windows 8 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|Win32.Build.0 =3D=
 Windows 8 Debug|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|x64.ActiveCfg =3D=
 Windows 8 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Debug|x64.Build.0 =3D W=
indows 8 Debug|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|Win32.ActiveCfg=
 =3D Windows 8 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|Win32.Build.0 =
=3D Windows 8 Release|Win32
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|x64.ActiveCfg =
=3D Windows 8 Release|x64
+		{92E5A46B-913C-45C6-B6F8-7E062D85279F}.Windows 8 Release|x64.Build.0 =3D=
 Windows 8 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) =3D preSolution
+		HideSolutionNode =3D FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) =3D postSolution
+		SolutionGuid =3D {B401BB41-D030-43B6-B5FD-9ADFE9A6648E}
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xenbus/xenbus.vcxproj b/vs2022/xenbus/xenbus.vcxproj
new file mode 100644
index 0000000..d7b94bd
--- /dev/null
+++ b/vs2022/xenbus/xenbus.vcxproj
@@ -0,0 +1,98 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"14.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077163205%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Daft=
H5O9C6hVK4jjcA5op3p298Q1UL6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <Import Project=3D"..\configs.props" />
+  <PropertyGroup Label=3D"PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label=3D"Globals">
+    <ProjectGuid>{14C16C29-77C9-475B-A618-1B01E67CF985}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project=3D"..\targets.props" />
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptio=
ns>
+      <PreprocessorDefinitions>PROJECT=3D$(ProjectName);POOL_NX_OPTIN=3D1;=
NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\incl=
ude;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4146;4464;4711;4770;4548;4820;4668;425=
5;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</Disabl=
eSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirec=
tories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platf=
orm)\xen.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/procgrp.lib;$(DDK=
_LIB_PATH)/rtlver.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGener=
ation>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</=
PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD6=
4_</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Configuration)'=3D=3D'Windows 8 Rel=
ease'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions=
>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include=3D"$(TargetPath)" />
+    <FilesToPackage Include=3D"$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include=3D"..\..\src\common\registry.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\bus.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\console.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\dma.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\debug.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\driver.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\evtchn.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\evtchn_2l.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\evtchn_fifo.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\fdo.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\filters.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\gnttab.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\pdo.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\shared_info.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\store.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\suspend.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\sync.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\thread.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\range_set.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\balloon.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\cache.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\hash_table.c" />
+    <ClCompile Include=3D"..\..\src\xenbus\unplug.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include=3D"..\..\src\xenbus\xenbus.rc" />
+  </ItemGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenbus/xenbus.vcxproj.user b/vs2022/xenbus/xenbus.vcxpr=
oj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenbus/xenbus.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project ToolsVersion=3D"14.0" xmlns=3D"https://nam04.safelinks.protection=
.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft.com%2Fdeveloper%2Fmsbuil=
d%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8=
508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C6380116690771632=
05%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h=
aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DaftH5O9C6hVK4jjcA5op3p298Q1U=
L6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>https://nam04.safelinks.protection.outlook.com/?url=
=3Dhttp%3A%2F%2Ftimestamp.verisign.com%2Fscripts%2Ftimstamp.dll&amp;data=3D=
05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8508daac3b8e3a%7C3358=
36de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C638011669077163205%7CUnknown%7CTWFpb=
GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7=
C3000%7C%7C%7C&amp;sdata=3D8%2F1%2B8qxJXseE158n1Hw9Q1bo14agIrPEA3NyqipE7sU%=
3D&amp;reserved=3D0</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenbus_coinst/xenbus_coinst.vcxproj b/vs2022/xenbus_coi=
nst/xenbus_coinst.vcxproj
new file mode 100644
index 0000000..b37e1a5
--- /dev/null
+++ b/vs2022/xenbus_coinst/xenbus_coinst.vcxproj
@@ -0,0 +1,67 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"14.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077163205%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Daft=
H5O9C6hVK4jjcA5op3p298Q1UL6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <Import Project=3D"..\configs.props" />
+  <PropertyGroup Label=3D"PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label=3D"Globals">
+    <ProjectGuid>{4BF41378-C01B-4002-8581-563C5F703362}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project=3D"..\targets.props" />
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptio=
ns>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalI=
ncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=3D$(ProjectName);%(PreprocessorDefi=
nitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5045;6001;605=
4;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition=3D"'$(UseDebugLibraries)'=3D=3D'true'">Mul=
tiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition=3D"'$(UseDebugLibraries)'=3D=3D'false'">Mu=
ltiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xenbus_coinst.def</ModuleDefi=
nitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</Addi=
tionalDependencies>
+      <EnableCOMDATFolding>false</EnableCOMDATFolding>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalI=
ncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</Prepro=
cessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</Prep=
rocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include=3D"$(TargetPath)" />
+    <FilesToPackage Include=3D"$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include=3D"@(Inf->'%(CopyOutput)')" Condition=3D"'@(In=
f)'!=3D''" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include=3D"..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include=3D"..\..\src\coinst\xenbus_coinst.def" />
+  </ItemGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user b/vs2022/xenbu=
s_coinst/xenbus_coinst.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project ToolsVersion=3D"14.0" xmlns=3D"https://nam04.safelinks.protection=
.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft.com%2Fdeveloper%2Fmsbuil=
d%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8=
508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C6380116690771632=
05%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h=
aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DaftH5O9C6hVK4jjcA5op3p298Q1U=
L6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>https://nam04.safelinks.protection.outlook.com/?url=
=3Dhttp%3A%2F%2Ftimestamp.verisign.com%2Fscripts%2Ftimstamp.dll&amp;data=3D=
05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8508daac3b8e3a%7C3358=
36de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C638011669077163205%7CUnknown%7CTWFpb=
GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7=
C3000%7C%7C%7C&amp;sdata=3D8%2F1%2B8qxJXseE158n1Hw9Q1bo14agIrPEA3NyqipE7sU%=
3D&amp;reserved=3D0</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenbus_monitor/xenbus_monitor.vcxproj b/vs2022/xenbus_m=
onitor/xenbus_monitor.vcxproj
new file mode 100644
index 0000000..54272ec
--- /dev/null
+++ b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj
@@ -0,0 +1,83 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"14.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077163205%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Daft=
H5O9C6hVK4jjcA5op3p298Q1UL6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <Import Project=3D"..\configs.props" />
+  <PropertyGroup Label=3D"PropertySheets">
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label=3D"Globals">
+    <ProjectGuid>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project=3D"..\targets.props" />
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <PropertyGroup>
+    <CustomBuildAfterTargets>Link</CustomBuildAfterTargets>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptio=
ns>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalI=
ncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=3D$(ProjectName);WIN32;_WINDOWS;_CR=
T_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5045;6001;605=
4;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition=3D"'$(UseDebugLibraries)'=3D=3D'true'">Mul=
tiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition=3D"'$(UseDebugLibraries)'=3D=3D'false'">Mu=
ltiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>wtsapi32.lib;cfgmgr32.lib;%(AdditionalDepend=
encies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalI=
ncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</Prepro=
cessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x86 -dll -noentry -out:%(Outputs) %(Inputs)</=
Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</Prep=
rocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x64 -dll -noentry -out:%(Outputs) %(Inputs)</=
Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include=3D"$(TargetPath)" />
+    <FilesToPackage Include=3D"$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include=3D"$(OutDir)$(TargetName).dll" />
+    <FilesToPackage Include=3D"@(Inf->'%(CopyOutput)')" Condition=3D"'@(In=
f)'!=3D''" />
+  </ItemGroup>
+  <ItemGroup>
+    <MessageCompile Include=3D"..\..\src\monitor\messages.mc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include=3D"..\..\src\monitor\monitor.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include=3D"..\..\src\monitor\xenbus_monitor.rc" />
+  </ItemGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenbus_monitor/xenbus_monitor.vcxproj.user b/vs2022/xen=
bus_monitor/xenbus_monitor.vcxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project ToolsVersion=3D"14.0" xmlns=3D"https://nam04.safelinks.protection=
.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft.com%2Fdeveloper%2Fmsbuil=
d%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8=
508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C6380116690771632=
05%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h=
aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DaftH5O9C6hVK4jjcA5op3p298Q1U=
L6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>https://nam04.safelinks.protection.outlook.com/?url=
=3Dhttp%3A%2F%2Ftimestamp.verisign.com%2Fscripts%2Ftimstamp.dll&amp;data=3D=
05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8508daac3b8e3a%7C3358=
36de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C638011669077163205%7CUnknown%7CTWFpb=
GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7=
C3000%7C%7C%7C&amp;sdata=3D8%2F1%2B8qxJXseE158n1Hw9Q1bo14agIrPEA3NyqipE7sU%=
3D&amp;reserved=3D0</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenfilt/xenfilt.vcxproj b/vs2022/xenfilt/xenfilt.vcxpro=
j
new file mode 100644
index 0000000..270d2e4
--- /dev/null
+++ b/vs2022/xenfilt/xenfilt.vcxproj
@@ -0,0 +1,81 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project DefaultTargets=3D"Build" ToolsVersion=3D"14.0" xmlns=3D"https://n=
am04.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft=
.com%2Fdeveloper%2Fmsbuild%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.=
com%7C3a046e74090e47470c8508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7=
C0%7C0%7C638011669077163205%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Daft=
H5O9C6hVK4jjcA5op3p298Q1UL6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <Import Project=3D"..\configs.props" />
+  <PropertyGroup Label=3D"PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label=3D"Globals">
+    <ProjectGuid>{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project=3D"..\targets.props" />
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptio=
ns>
+      <PreprocessorDefinitions>PROJECT=3D$(ProjectName);POOL_NX_OPTIN=3D1;=
NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\incl=
ude;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4711;4770;4548;4820;4668;4255;504=
5;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpec=
ificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirec=
tories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platf=
orm)\xen.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/procgrp.lib;%(Add=
itionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGener=
ation>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions);_X86_</=
PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Platform)'=3D=3D'x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions);_AMD6=
4_</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition=3D"'$(Configuration)'=3D=3D'Windows 8 Rel=
ease'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions=
>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include=3D"$(TargetPath)" />
+    <FilesToPackage Include=3D"$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include=3D"../../src/common/registry.c" />
+    <ClCompile Include=3D"../../src/xenfilt/driver.c" />
+    <ClCompile Include=3D"../../src/xenfilt/emulated.c" />
+    <ClCompile Include=3D"../../src/xenfilt/fdo.c" />
+    <ClCompile Include=3D"../../src/xenfilt/pdo.c" />
+    <ClCompile Include=3D"../../src/xenfilt/thread.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include=3D"..\..\src\xenfilt\xenfilt.rc" />
+  </ItemGroup>
+  <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenfilt/xenfilt.vcxproj.user b/vs2022/xenfilt/xenfilt.v=
cxproj.user
new file mode 100644
index 0000000..db41a92
--- /dev/null
+++ b/vs2022/xenfilt/xenfilt.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version=3D"1.0" encoding=3D"utf-8"?>
+<Project ToolsVersion=3D"14.0" xmlns=3D"https://nam04.safelinks.protection=
.outlook.com/?url=3Dhttp%3A%2F%2Fschemas.microsoft.com%2Fdeveloper%2Fmsbuil=
d%2F2003&amp;data=3D05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8=
508daac3b8e3a%7C335836de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C6380116690771632=
05%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h=
aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DaftH5O9C6hVK4jjcA5op3p298Q1U=
L6yqrMH1UVxnENY%3D&amp;reserved=3D0">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenbus.pfx</TestCertificate>
+    <TimeStampServer>https://nam04.safelinks.protection.outlook.com/?url=
=3Dhttp%3A%2F%2Ftimestamp.verisign.com%2Fscripts%2Ftimstamp.dll&amp;data=3D=
05%7C01%7Cowen.smith%40citrix.com%7C3a046e74090e47470c8508daac3b8e3a%7C3358=
36de42ef43a2b145348c2ee9ca5b%7C0%7C0%7C638011669077163205%7CUnknown%7CTWFpb=
GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7=
C3000%7C%7C%7C&amp;sdata=3D8%2F1%2B8qxJXseE158n1Hw9Q1bo14agIrPEA3NyqipE7sU%=
3D&amp;reserved=3D0</TimeStampServer>
+  </PropertyGroup>
+</Project>
--=20
2.32.0.windows.1



From win-pv-devel-bounces@lists.xenproject.org Wed Oct 12 12:11:46 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Oct 2022 12:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.421080.666256 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiaaO-0002KH-I0; Wed, 12 Oct 2022 12:11:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 421080.666256; Wed, 12 Oct 2022 12:11:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiaaO-0002KA-FD; Wed, 12 Oct 2022 12:11:44 +0000
Received: by outflank-mailman (input) for mailman id 421080;
 Wed, 12 Oct 2022 12:11:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rlPS=2N=citrix.com=prvs=27732d543=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1oiaaN-0002K4-2y
 for win-pv-devel@lists.xenproject.org; Wed, 12 Oct 2022 12:11:43 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05ea734c-4a27-11ed-8fd0-01056ac49cbb;
 Wed, 12 Oct 2022 14:11:39 +0200 (CEST)
Received: from mail-bn7nam10lp2100.outbound.protection.outlook.com (HELO
 NAM10-BN7-obe.outbound.protection.outlook.com) ([104.47.70.100])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 12 Oct 2022 08:11:37 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by MN2PR03MB5150.namprd03.prod.outlook.com (2603:10b6:208:1ae::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.22; Wed, 12 Oct
 2022 12:11:35 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc%7]) with mapi id 15.20.5676.032; Wed, 12 Oct 2022
 12:11:35 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05ea734c-4a27-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665576699;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=01qdm5E8mA9G1tKeNJqMJYOIcMd/45TO44graWhRvPc=;
  b=VoElNpTS2ta30iLwYKWCPMTnInjwe9biyIymtpnxDgonCG3VH318NMJV
   ErtHnN7Tdt9hZhu0JzDo7iNuMsb5JcrbxxOICqYz37azKL6TdN3Wg5Wym
   fUzzyuvSHXEA9mzaJG4cs1SqyJxAPlMs5I5OHHBBn6iqsx927+3v7dhtz
   0=;
X-IronPort-RemoteIP: 104.47.70.100
X-IronPort-MID: 82561196
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: =?us-ascii?q?A9a23=3Axl9yxqw+poh+2U23vbR6t4n5zX09i1U+ZkaKj?=
 =?us-ascii?q?vbsloibGUulCyUHTx96w3/4PPcEQZ1dL8in3a8UyfAT6eYdFTG8abyzofXGi?=
 =?us-ascii?q?rePlbAauVbP4WBTeqX/K2aTBSs6AR8kiXvcDnRairkCfJ9yW0cMLd1wr8EOV?=
 =?us-ascii?q?wk5r146ALQ89kqRTigSJuNHgLAyltjh528X9fOeaFCfeQTqFs6TxSNnkDA6K?=
 =?us-ascii?q?GZ4p1pas6K/bnAspEWH+QBKBUIC7wZ667aL5PLKWRp89I5gL1l4AeXv3yxGO?=
 =?us-ascii?q?CTt6I+PCcU3AeDiBiQIkHZjC9R7Trnls4wMBKizyf4N/JQLTqznoUZUPW5ym?=
 =?us-ascii?q?hGPSokombOfbRt5izSS45m4rpGiI5FLiFFbF2LtH/LNobYDRJzh5/gqCQDPQ?=
 =?us-ascii?q?J4iCHJIlnEbGIuIPK4T5The73EJsmZ4Rn5CWaDjbk4Vkhs9P+9ExMU0TRV8L?=
 =?us-ascii?q?5raBRMDRVnm5/D8t1wEe+XFcfqgj9zX6yjQM+U5UaGaw/vInBcQ3xVMbCCG6?=
 =?us-ascii?q?4nnm3I+/kxdowpksoWnLqvWm9uDCqNC6Xv6bMw4mmVn4caapMtjj9VOkViJx?=
 =?us-ascii?q?n30EKFAoKQ8KFCcDq4qpNUsj2+Ke8WA0jSyHbxPFN99ZpGJ+D1hWRW0vr3xr?=
 =?us-ascii?q?woMzNfG8whXzy8t1Z+gutItQ3pjz+BxvQGkOSJabagZiOY2B/AN/HMTEdHO3?=
 =?us-ascii?q?3Sw38JWDa2wAxJiTXzWL4UqyIkIV+BJ0X9AK2GNMT3XVOzDcfId92MoX8McZ?=
 =?us-ascii?q?WOynF9xvhi8UXuz0VoAjRBcupKHhduc/VEC9wWyPuPcjU4dyE1jyAolfQx24?=
 =?us-ascii?q?G4PL2RG1GeykFeBG9LvF4l9eLY9ZtvC9KfjsR1Mvk8VY6SWQ+lQWrB6mDmCF?=
 =?us-ascii?q?M/i91svWCHbVMUuTAT5qq21/A5KhfNpmBSPwygM9pwTDCZtcCWgqO0s6/G30?=
 =?us-ascii?q?OhUROvBF42vB+ICdNmFqDEkugfIN72XgLR6FePpRnSycNWX17QK7VkcyIf7u?=
 =?us-ascii?q?AEsP+vBb7FwUPbJluGy5fPfkvvAcgQq+5GcFGgCoTjLr6W2YIDIUCNpKx0Ia?=
 =?us-ascii?q?zfCqRNTpXX3uIDj3GQK+oYF4d+kWkb+U0W5n+vRu2GU5rVGaFV7O46g0VmEc?=
 =?us-ascii?q?RDBt4V5vRFFOUwD3I7+NZHzM4d1Jk0IoLGrcy58IwOsyB/SYk7E8phpPt5p2?=
 =?us-ascii?q?mgPtTbLehWfq3mCIZjAsAihcR1ozTdQHmbbJVatW7e1+HutCIIUgx8A7XQhc?=
 =?us-ascii?q?gLka6NxrpuPthctMdRPEhjDhVZO6b2v9QR4FSyryNibs1UpB2MoiEE6hXidJ?=
 =?us-ascii?q?8xGQPeaTn9Nz3q7DXUZr77X2JJLC7KzM8rhzfxkCFcF/jyGZEC1g5LIqcg/X?=
 =?us-ascii?q?lOVBowL3VEKLa8Ml16rfj92noioznB2xgq9JKA1Ix83gv3mNX7+OqC4zCWS+?=
 =?us-ascii?q?d/bE8s3Hu50pp6Z/cZUc83kvd1dcWUYpE+jyaFeVGj94yxf1Hd+V4x8kkbI+?=
 =?us-ascii?q?AG0aDysrIEzLflZzuhQyLxOfSMdLQrlMMBNqKbTYUfeRYmoSW3iuGVmOgOF1?=
 =?us-ascii?q?KRxiggRYW25UoWrF3i8xNygovVSOWRem4SSLMWmmDgTFVa1Fa3mbSlskbe3+?=
 =?us-ascii?q?9L+Dk7E1i+EHiG+DuQZZDtz1BlDKP4VUOYrdZO5jKVbZU3UprELsqRW+5ale?=
 =?us-ascii?q?XdBYpPNtoExtJD1lO3b3/yeJ1LR6Qo0EpKvRr2AzXsgPpAo4JHvwcXInZ1cY?=
 =?us-ascii?q?z1p+mGD9nfSRxcIapCDsIMKd1o5ne/QAFXObsw9TM+mvrazuXkR6Ymg4Eea3?=
 =?us-ascii?q?U1IIygjw3RcnhilN1ZIcKg2ToSScivNGeHAY5ndjdeSnDezG5kMRc0SSDoJd?=
 =?us-ascii?q?VOSJyPLorNkHPFcSnqbnBFuNeSGrfDjW17cJ5QtSKbnnzVWq4O/bgqA9QBu9?=
 =?us-ascii?q?rd3TWcEVvHcsM2SPWmdKKIcdMLXHGsy3WWo+AM0Q9H5iNKcY6Ga3euBpHm/d?=
 =?us-ascii?q?T3Ydo4pie2T9yytPfy+DgTk4hLqw9W0iUJ2HkiyJez3dL0JR1bHMv3RFMh5n?=
 =?us-ascii?q?3jjJazLafn7esul3k8fkH5y8GPlOHI+FGTJBULioGAIpGO+Sa0bW+8A6BdhV?=
 =?us-ascii?q?APPOMoYqNEfnLx4eAVqU//V43mGBoOiRAK/mL5RKFGcwFUAwNWxqNDk8CkxE?=
 =?us-ascii?q?Xm7Ug2VPtEt2ls8zy++RIpZpwmotNsdkly4DdARL/tWmabwe+OL/N9FyiXI9?=
 =?us-ascii?q?TcyI9v1z54OXSxAjaFQ+2dYBtXfP/AR/XS1Z81fBky5zJ3BS+QiROjPezh4n?=
 =?us-ascii?q?UdsVPcChiCCq2H5dmhsXjtHJoO/8aVUppw9WnioL9yq3yjRh1zr/pTPMg9fq?=
 =?us-ascii?q?mL+UTWuTDlJAqeD9sr94v8fzF9DgVk=3D?=
X-IronPort-AV: E=Sophos;i="5.95,179,1661832000"; 
   d="scan'208";a="82561196"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=I9ez8/c8J1y8m/Gx8OjqOtwjgW5kKzpK7+uTQaZ2KEpN1PZkyATA0at72+gIIE/varuNlyasD3kGfxwKRJEtMG9JMj+1uemP5ve9cIK4dIC8K2KQ0SPVh1OjTm/Kg69/aGwLJEtglWlnqm3Gq4qPqwZkCt2NEzMQcsz0qV76WcHzE+DI/ZQ4FRBeokZqlKZWm4nm+b0jA/I9hZlXkhvtzxTWvk3QRbUFOfes4w3RXPv67pdIUZj5gDuGlHYR4Eg4hfjvhKe4plndQHtwbW+E3cfJIhsphOgazUyMPlIZPDzfay8guYguErarLuM4HHhr9IZkhzozea7H2LmHIBNzmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=01qdm5E8mA9G1tKeNJqMJYOIcMd/45TO44graWhRvPc=;
 b=XpZbBxYwiyBLiPtxw4gdBytyLjlPJOURnrfekfAQpnlBsJJRYpMqnY48B5JUDQEM2sUf6o9oQmZUeNV+7PrqNP0sLg26yWpnYhWMJxDQVHRSIeOeRpl/FfWbhOHNXQf3g07f2QsNw1E20rJDBzpyq+OYukJ5yxvifXx31qFwD9gseRyvC51rcb+210uFeHO/dqTLiySDNEjesWYa5KCzq9kfDe03NkUpNJJ46Hlb3p3lgFSzCiZ8MY9r+Tm7h5oeTWhKVQzfQBg78NONWX2CRmZRUt3d8KA4/jaTA4a59eO2n+foEF0xv9HzRqVZLZsiiK4JiAGt5/G8KXgbCoFTTA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=01qdm5E8mA9G1tKeNJqMJYOIcMd/45TO44graWhRvPc=;
 b=dH+F8lhBMz5Ex9MluTxAm/c8qdTJYPXEPvxf1ypqw9nLm+LTcpqcOaNR7XG7vxDecOc+d/8yd8i4cYVFzbtZual9vQL79Vx77ctcgtV80YRG2wecHwHb5irkNKWO2NJv8LKs0BDX2gJzA9mCNdBSRKaMRxhc6tGc/Wotk2kEhG0=
From: Martin Harvey <martin.harvey@citrix.com>
To: Paul Durrant <xadimgnik@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: Races in power IRP handling path.
Thread-Topic: Races in power IRP handling path.
Thread-Index: AdjdfgIYsgA4b4/cQtWn6fzH2WpcQgAAk9gAACyk8cA=
Date: Wed, 12 Oct 2022 12:11:35 +0000
Message-ID:
 <MW4PR03MB63476152721F8345C3DAC89D9A229@MW4PR03MB6347.namprd03.prod.outlook.com>
References:
 <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
In-Reply-To: <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MW4PR03MB6347:EE_|MN2PR03MB5150:EE_
x-ms-office365-filtering-correlation-id: 38ead734-81d6-48c9-a148-08daac4ae84b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 xvoIqxDTTKcKDlICdNmKqy0tRr9uIc4XgHZommiHkioU2EoMTO4PNff7WjcicCkgzHVL8bP4nfcAeXCi6EIHnE3vAOkmdWRCw36giGciXqS2z9IrQxqJyt68ApElNUMUhOIdAsWhT1TkvtqOa4rRVLSm2gI8lmWgZzPgGdbnCZHTcNSPDw+65Ogu5ec/u96SvViOxa0vag1VcWxLvOj4Vm+FqWDP9nQKXghlX0d2j/rDezHzcpow7sVz1hPyrZrOd/6k0BFJFGDJnMycW+VujMn+n1NH9eGAm1h7eL/IA/TnJR8s1zS2flWZYHIcAl+3izpw/3zAQgTOV1OReHPVoGsI3jUtJUJzpeOyBTTilpfh0/VMyr4hJ7RXv5X5ooZ2ydhzDPfgNQi3TChMKpJE14ZuYGlDGWZ01M4TKh5rCmw2Q+bac0CkKKt6bE5wL/548izenj+Ndz5rSP5YBgMfVXvHIxDxiOyyqVRQlHaviG9r4YqamKLr9gq66IzqxL1DiogKhIMJaBUtQgiL3XYcesrUd9aDv5hnSoeOsvS77ZSgAa6CcD5q3gq9X02OTuzfGZduDrauLe1TFCcumzw/C9wEKnY4dsCBP5FxFrWLvoCQ3FGfcCI9HUxWGg1XgRtMtYgh62SUZFeCYUPOhSmWwv6shsNtqEBngeW7lZfqwOkMRzFO+5hz7K65PFp+RukQegHkHAqUV+DZnA7xq96KHUAHxAlyovrGcizMUnqUdkyWOGydRrpyYjq08wJ1d/uEWfNFKk1Kuh50e0ufb2lS0A==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(136003)(376002)(346002)(396003)(366004)(451199015)(316002)(110136005)(55016003)(82960400001)(8936002)(186003)(122000001)(9686003)(52536014)(26005)(44832011)(33656002)(5660300002)(2906002)(8676002)(64756008)(66446008)(66476007)(66556008)(66946007)(76116006)(7696005)(6506007)(38100700002)(41300700001)(71200400001)(38070700005)(83380400001)(86362001)(478600001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dW1icC9WTVF5SWNhNEErcGV4bXVMOTh2blp2SGszeGNzRktuTWtsWWdoWENj?=
 =?utf-8?B?VlhEcUpaS2ZsMVltdTlYU3JKSGZnZzRGODJ6YnZNZEtNanFPVjRueitKejlJ?=
 =?utf-8?B?bWNyYjlFMW9QTVlmTmJZWlVMWjZ0dHBxb0loUlRPZ3NzdHNheXJES01ZMzRT?=
 =?utf-8?B?RmFQMU91bGZXN28ya0lKMktHMTlHOVdOMkJBL2RYN1BCR0g1cHVWU0FVYTF4?=
 =?utf-8?B?R0pmbnJVZ0E3ZDNNQ0R3MGtodnBXWEwwZmpuVC9FOWZLS2JIQnhUZC8rUm9X?=
 =?utf-8?B?ZDV5dUt2TmVJTUo1MGxiRXNaT0tqZ251R3JvbUIycnBldDk4OHIvWUtmbTlh?=
 =?utf-8?B?eThJU2JCd1NIanZlbDFUemgyM1Uzb0Z3aW54bkFvcEVXbkUzZEJqRDI5eklz?=
 =?utf-8?B?a2Q0TWh3Z0p4NmlPSjJxVkkvQUNyZEF1WDAvQVAzNUhUQnZoTzRobnZ2eGYz?=
 =?utf-8?B?VzNjbkZNK1dQbmZRa1k5S29JNXl2M3BVTGNobk91bHk4bWNaakQ3b1hZMGJ3?=
 =?utf-8?B?N0RpdzkzVFJ4ek1FbDdrekt0ZVUvbFhic3NBa240Mzc5YXMzTHRydXJBYkdV?=
 =?utf-8?B?TWRMQmo3TEkzOFJmTVlrR0RGN0puOVBIRERkV1FTVE44UVhaRGxHOUF2ZGZv?=
 =?utf-8?B?K3JlbWY2Vlh6c3Y3QmM3NWR5RmlCN2pPV0pQQnlxZTErcEVTNWUwMFhuUERv?=
 =?utf-8?B?WnQzU29rVnd4QWMvMzl1QUdzbVpaWlRZOVFTaTcxN3RzTjNKR1ozaU5LN0xT?=
 =?utf-8?B?UURoUnFTeTFHV1VnNlVpaXpSS2lVNnVFNDluSjBXakgzMnYrZzJSM0lqeEhB?=
 =?utf-8?B?L1RPM0lLRHVjUGJ2dlF1Z2poNDc4RTZzV1BPL2RKa0d6aVFVblhoaFFYeVRr?=
 =?utf-8?B?ZWljRTdya2VZOXZ4MEpBNndhQjFaRE15cUpueExlRVJxQ1RwQ0FJSjdmclNm?=
 =?utf-8?B?eFJ0WTd5YXM0QXByZkhzc3FMNlhsQlczU0pOTTdzb3JVOW4wcVBVS3ZuOGlr?=
 =?utf-8?B?NlA1cm5CRUxOdGdnQnFDTC9wNXpMdlBjdGttanQvc3JYUUtVQ2d4MllSNXZs?=
 =?utf-8?B?cWxXMXBTYmQ0bjlSTzY5eDZaS1lFcVdUek8xQ2QxbzkyUHB4V29qTlhNMi9H?=
 =?utf-8?B?Q0Qwa3RFQ1dxV3pCVlZQZitzWHRoTm5jaTlEclFKRGFKYXZmSlBnaHdmWmNa?=
 =?utf-8?B?eGVYQXpobXVlazVmakVzZ2VkaFVxWWFiTlN4a0dZaysvNXAxeEJDOGZDNStS?=
 =?utf-8?B?eW5XNVhzR0tlaDY2b09KR3p2VVFmUGU1UDNSN285VUJnWWtLOVJTZUlBUEtt?=
 =?utf-8?B?YXZ0a01jWVNpRnJweDhONXRLWjlTY0p1aWlWNVBndjRDU1BIcEVhd0ZjMVVx?=
 =?utf-8?B?TXhWNy9BeVppclZzSjJGeVRjMjVMMFk0ZXFreDAzS1M4Z1RmZWtJUVY0TVJx?=
 =?utf-8?B?MXVkWDRJY0Q2Z0ZWTEczdlZsaTlLQW5jWm9uVXlDK04zenlTYjNDR1RDdmFQ?=
 =?utf-8?B?ZlNPc1J6Tjc4d1A0bzluTXB4OTZvNU84R2J5TUgwZE1VSWhXK1Q1cXJPWjYr?=
 =?utf-8?B?L2hudTE3VXU1cHpibExiMGhiWmlndEp6M0huV0xGUWQ2Mys4M2FFam5mVklr?=
 =?utf-8?B?KzluVy9MeDB1MitWYjZuZGhjdWNvZStXZDlQb2RsaFowSGQxWDFHYXdYUzI4?=
 =?utf-8?B?TzNDNmZQSzJsQUJjOWVWbXZ1Mmkwc21uUmpIdjBkTW1GQ1NVZnIvMDRrL1VN?=
 =?utf-8?B?d3FuYXRaUVZ4VnpNTlJKK0NnL25SRlBiK1E0YnJ3Yzh4K3UzeHFzYlVoMlE4?=
 =?utf-8?B?d2pBSUNJQVhvaHNTZm10dDdnRW1pRWY1SmxTalJtdVl2bUV3QnhlNVJoS2tU?=
 =?utf-8?B?dmVBNmFWQVdTTFphUlNqV3JLeVBIZFEyNVA2U2ZDSmhlcGlvbDRBNFN1VXBl?=
 =?utf-8?B?UHdXZGduT1ViY0NOaWxxMStGNUVjSWdjWkZ5bzZqTUZ4dkVwRGJJU0xEbTAz?=
 =?utf-8?B?bzVLWXdvdXloejk3M21jbE8wK29IWGF4YmgyS1g3bVFrUlhVUWQ4ankxQ1E5?=
 =?utf-8?B?Q1BBNXp1QXZvRGNTYWpTUjFZc3RLbEVySzdGRitFaE5rTjg3RnFjYW5iQkZs?=
 =?utf-8?Q?1FDi5fQ3gcAn3cM5oYDmftVqc?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 38ead734-81d6-48c9-a148-08daac4ae84b
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2022 12:11:35.0705
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: N2qPM0FsR0RQVOYIN859kofEl0Bn2hg5YCLiHU0xFzpC5K9I4EFuJ2lvk4olGndp7zLt/KMU6RCwnydsaB7G7PriHa7+v5/ps0Eps7x+8sE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5150

DQpPa2F5LiBXZWxsLCBpZiBuby1vbmUgZWxzZSBpcyBjb3ZlcmluZyB0aGUgb3V0c3RhbmRpbmcg
cG93ZXIgaXNzdWVzICh0aGVyZSBhcmUgYSBmZXcgYnVnY2hlY2tzIGRvd24gdGhlIHBvd2VyZG93
biAvIGhpYmVybmF0aW9uIHBhdGgpIHRoZW4gSSdsbCBhZGRyZXNzIHRoZW0gYXMgZm9sbG93czoN
Cg0KLSBTb21lIHJldmlzaW9ucyBvZiB0aGUgT1MgbWF5IGhhdmUgaGFkIGEgc3lzdGVtIHBvd2Vy
IHRocmVhZCAvIGFuZCBhIGRldmljZSBwb3dlciB0aHJlYWQgcGVyIHN0YWNrLCB3ZSBzaG91bGRu
J3QgbmVlZCB0byByZXBsaWNhdGUgdGhhdCBiaXQgb2Ygc3RydWN0dXJlIGluIG91ciBkcml2ZXJz
IChub25lIG9mIHRoZSBvdGhlcnMgZG8pLg0KLSBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gaGFu
ZGxlIHBvd2VyIElSUCdzIHdpdGggc3RhbmRhcmQgZGlzcGF0Y2ggYW5kIGNvbXBsZXRpb24gcm91
dGluZXMgbW9zdCBvZiB0aGUgdGltZS4gT25seSByZWFzb24gSSBjYW4gc2VlIHRvIGZhcm0gdGhl
IHdvcmsgb2ZmIGludG8gYSBzZXBhcmF0ZSB0aHJlYWQgaXMgaWYgdGhlIElSUUwgaXMgbm90IHN1
aXRhYmxlLiBJbiBzdWNoIGNhc2VzLCBNYXJraW5nIElSUCBwZW5kaW5nIHdpdGggbGF0ZXIgY29t
cGxldGlvbiBzaG91bGQgYmUgZmluZSwgZXhjZXB0aW9uIGJlaW5nIGJsb2NraW5nIHBvd2VyLWly
cHMsIHdoZXJlIHdlIGhhdmUgdG8gImNvbnRpbnVlIiBhIGNvbXBsZXRpb24gY2hhaW4uIFNpbmNl
IHdlIGNhbid0IGZhaWwgcG93ZXIgSVJQJ3MgY291bGQgYWx3YXlzIHN1Y2NlZWQgdGhlc2UsIGFu
ZCBwYXNzIG9mZiB0aGUgcmVhbCB3b3JrIGludG8gYSB3b3JrIGl0ZW0uDQotIElzc3VlcyB3aXRo
IGNvbXBsZXRpb25zIG5vdCBiZWluZyBjYWxsZWQgLSBwZXJoYXBzIG11bHRpcGxlIGRyaXZlcnMg
bWFya2luZyBhcyBwZW5kaW5nIGRvd24gdGhlIHN0YWNrPyBIb3BlZnVsbHkgYW4gYXN5bmMgbW9k
ZWwgd2lsbCBoZWxwICB0aGlzLiBJIHdpbGwgbmVlZCB0byByZW1vdmUgdGhlIHhlbmZpbHQgaGFu
ZGxpbmcgdG8gZ2V0IHRvIHRoZSBib3R0b20gb2Ygd2hhdCdzIGdvaW5nIG9uIGhlcmUuDQotIEkn
bGwgaGF2ZSB0byByZXdyaXRlIHRoZSBGRE8gaGFuZGxpbmcgYmVmb3JlIHRoZSBidXMgZHJpdmVy
cyAoSSdtIGFmcmFpZCkuIFRoaXMgbWlnaHQgb3IgbWlnaHQgbm90IGZpeCBhbGwgdGhlIG91dHN0
YW5kaW5nIGJ1Z2NoZWNrcyAocHJvYiBub3QpLg0KLSBBbiBhc3luY2hyb25vdXMgLyBzdGF0ZSBk
cml2ZXIgbW9kZWwgaXMgdG8gYmUgZmFyIHByZWZlcnJlZCB0byBzeW5jaHJvbm91cyBwYXNzZG93
bi4NCg0KTUguDQo=


From win-pv-devel-bounces@lists.xenproject.org Wed Oct 12 12:14:47 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Oct 2022 12:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.421089.666265 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiadK-0002TD-Rk; Wed, 12 Oct 2022 12:14:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 421089.666265; Wed, 12 Oct 2022 12:14:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oiadK-0002T6-Ox; Wed, 12 Oct 2022 12:14:46 +0000
Received: by outflank-mailman (input) for mailman id 421089;
 Wed, 12 Oct 2022 12:14:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rlPS=2N=citrix.com=prvs=27732d543=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1oiadJ-0002Sx-Rn
 for win-pv-devel@lists.xenproject.org; Wed, 12 Oct 2022 12:14:45 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 739bfb91-4a27-11ed-8fd0-01056ac49cbb;
 Wed, 12 Oct 2022 14:14:44 +0200 (CEST)
Received: from mail-dm6nam11lp2172.outbound.protection.outlook.com (HELO
 NAM11-DM6-obe.outbound.protection.outlook.com) ([104.47.57.172])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 12 Oct 2022 08:14:41 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by MN2PR03MB5150.namprd03.prod.outlook.com (2603:10b6:208:1ae::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.22; Wed, 12 Oct
 2022 12:14:39 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc%7]) with mapi id 15.20.5676.032; Wed, 12 Oct 2022
 12:14:39 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 739bfb91-4a27-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665576883;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=8XYuJQRz4vmsBPgsKcRd5biF+fPiIbVhIalV/ceG7KM=;
  b=Xl2ko7sj/O3cQlxg4n6DpJn2CbbVQovPFULbOvDFbTAvk8Q49XC4uVXb
   ZuUcAMwCExflwzzClrsDXyGnVUwKh9kB5KTX1cet24YRbhwCUVkL3wcoU
   ob4DLgLMr1rQPCsyNP1J95HTnwch27bhXCNXub27go4zXsNbhtfq74898
   Q=;
X-IronPort-RemoteIP: 104.47.57.172
X-IronPort-MID: 82973859
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:3UlJ06+BcLcWwRIGa9jUDrUDnn+TJUtcMsCJ2f8bNWPcYEJGY0x3x
 mAYDz3XaPqOY2D1L9B3b4+3oRhTsZHdnYJiGlFopHw8E34SpcT7XtnIdU2Y0wF+jCHgZBk+s
 5hBMImowOQcFCK0SsKFa+C5xZVE/fjUAOC6UIYoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE/
 Nj/uKUzAnf8s9JPGj9Suv/rRC9H5qyo4mpA5wZmP5ingXeF/5UrJMNHTU2OByOQrrl8RoaSW
 +vFxbelyWLVlz9F5gSNy+uTnuUiG9Y+DCDW4pZkc/HKbitq/0Te5p0TJvsEAXq7vh3S9zxHJ
 HehgrTrIeshFvWkdO3wyHC0GQkmVUFN0OevzXRSLaV/ZqAJGpfh66wGMa04AWEX0vYrP15I5
 cxGFCkUbD6nrLy94aqdYcA506zPLOGzVG8ekldJ6GiASNoDH9XESaiM4sJE1jAtgMwIBezZe
 8cSdTtoalLHfgFLPVAUTpk5mY9EhFGmK2Ee9A3T+PVxujeJpOBy+OGF3N79f9WQWcRT2EaRv
 HzL7kzyAw0ANczZwj2Amp6prr+VzHygCN9DfFG+3txKngWJ92YPNBgxaXGpkKiQoGi1VM0Kf
 iT4/QJr98De7neDXtDxXhi3pn+HlhEZUttUVeY97Wml1avSph6HQ2QJUDNFQNgnr9MtAywn0
 EeTmNHkDiApt6eaIU9x7Z+RpDK2fCQQc2kLYHZdSRNfuoa55oYukhjIU9BvVravicH4Ei3xx
 DbMqzUig7IUjogA0KDTEU37vg9Ab6PhFmYdjjg7lEr+hu+lTOZJv7CV1GU=
IronPort-HdrOrdr: A9a23:L9pd46rFVpRf58PLAZ/9V4UaV5uVL9V00zEX/kB9WHVpm5Oj+v
 xGzc5w6farsl0ssSkb6Ki90dq7MAjhHPlOkMIs1NaZLUHbUQ6TQL2KgrGSpwEIdxeeygcZ79
 YYT0EcMqy7MbEZt7ec3ODQKb9Jr7e6GeKT9IHjJhxWPGJXgtRbnmJE43GgYy9LrWd9ZaYRJd
 653I5qtjCgcXMYYoCQHX8eRdXOoNXNidbPfQMGLwRP0njDsRqYrJrBVzSI1BYXVD1ChZ0493
 LergD/7qK/99mm1x7n0XPJ5Zg+oqqv9jIDPr3DtiEmEESttu+aXvUjZ1REhkF2nAib0idqrD
 ALmWZkAy080QKUQoj/m2qW5+Cp6kdS15al8y7UvZKrm72EeBsqT8VGno5XaR3f9g4pu8x9yr
 tC2yaDu4NQFg6oplWL2zHkbWAeqqOPmwtXrccDy3hEFYcOYr5YqoISuEtTDZcbBSr/rIQqCv
 NnAs3Q7OtfNQryVQGRgkB/hNi3GngjFBaPRUYP/sSTzjhNhXh8i08V3tYWkHsM/I80D5NE++
 PHOKJ1k6wmdL5hUYttQOMaBcenAG3ERhzBdGqUPFT8DakCf2nArpbmiY9Flt1CuKZ4v6fatK
 6xIW+w71RCBH4GIff+oqFj41TKXHi3Wyjrx4VX+4V504eMNIbWDQ==
X-IronPort-AV: E=Sophos;i="5.95,179,1661832000"; 
   d="scan'208";a="82973859"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fO5FcVnMoS/REGBNHLV+wWVm28PfW41wmR8QhbQns+A8pWGPrfnzvd1uJGHmQtvZ+fLpkc/RXbn+DF1yWs/gJUNxfrE1LTvNhMdCCOaziF2DlCOZU36lGnT7uI+I0B20xCRjbifwvogqBU1e/XmE/w9LzA6NSX9mUJJdFEjsySSVx6oQpqJjKVZtHPIs697qTRfvkuePDzV1LjQYmc3/i5qWwDDR+zNJRM7zPowLot2U9DUqQOfQuz8ZjqGlTpqQL7fKXliOT0YXxQCBL6NhSGXccg+VMw38XsPgGu9l9K3+jrKRvvssnFaSQ/w5ezRcNfR1theeskTxlQHxY6EL8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8XYuJQRz4vmsBPgsKcRd5biF+fPiIbVhIalV/ceG7KM=;
 b=gvr59upS+wyc1Oomdstp5UoyvSPm0r4CcS7yS2DrjNvOVMTU5NVqmiJwe3YVcQTYyKH9e3mWhYnXKZlbQcMeG3M8dMYolxpntOtsiJ/ahV/u7i/eFZDXozYJATGMdUzIocm/HsK1p2lYtz/YRuB6wxgchdh8ardEvjnMI16LWXnn6R27up8/xSXu74BTy7x7gfKLZaTzL+o5N8sFpzt7uEsUKYIdBazWYWPjMZgGhPx6HQG7Cm93o2AvRVQmx/GiWDms4IWp2GMMD4A3PSkPEyHyybc6ipPIl0KnZ1DaWH1dZ4eMSHtV2Y5Kvyb4thkp7nDB8F3QAH6sYO35W3HKfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8XYuJQRz4vmsBPgsKcRd5biF+fPiIbVhIalV/ceG7KM=;
 b=qrwnZnr1fMurIT3mBdaS8sf1KpG5W2R9Gih3SDAApbgfTPT8WUCMDzmoSvKl7sEOCthn0LAM4Bk+R5aARRmaY6t6Nvpss5TXJ3iux/Pk5Ll5bmJkdnTbOBn+gbY4e5qIlpre3jC4iJyvEgH09W2doL0gzEay8gzej3qWGD7eGuU=
From: Martin Harvey <martin.harvey@citrix.com>
To: Paul Durrant <xadimgnik@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH] [RFC] Interface compatibility example - for comment.
Thread-Topic: [PATCH] [RFC] Interface compatibility example - for comment.
Thread-Index: AQHYwrTFGWpT5Ma8KkGlnQe8yItGZa3iLyiAgCizhqA=
Date: Wed, 12 Oct 2022 12:14:39 +0000
Message-ID:
 <MW4PR03MB6347E4C43E9D3694E04484379A229@MW4PR03MB6347.namprd03.prod.outlook.com>
References: <20220907122328.1028-1-Martin.Harvey@citrix.com>
 <c09fc772-1b74-2e7d-c38e-3a658152addb@xen.org>
In-Reply-To: <c09fc772-1b74-2e7d-c38e-3a658152addb@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MW4PR03MB6347:EE_|MN2PR03MB5150:EE_
x-ms-office365-filtering-correlation-id: 48b74b1f-1d0a-4a01-596c-08daac4b5636
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 wlwqZsJ4MvIuF4fXyt6ySoiQUq28a0YkOewk8Z9uPsS2wCEG4SNTPqXaWMY62jNga6g4ZJt/jyg5C0ZiGHw8HIWZiF8cBeZv1kW8XNIM+cbEyYPIXCzRbEfJflN8ZEnJLypWZQi86YgPNS+rbC4RcY0J6ZE5elbC3dmyORXATMWPQ+QaM+5lqrQ58++PwNq2kDbOXsMuFOkPBUcgHhrqS6l7ZwZjQsQMoVKVIsBpZqho+wqOXKv/Kr35OdquVf7Fk5PSFmfP38uF08dsaac41LwQomczfedMGZg3lv/UkxOEw5u0VDogxlZi1eX4uKnY6P7Qx3GKpbMiBMSG1uRxDhHZnK35faitVCWRlA+XuE4JU27Hj42d3BgJgZQhr2TOefk79NYTDaEV2n5aO8sL5fEpjSLjH0NuVyrovrMwlhvVa0DtKKpdTv8W2AphBBt9CMUBIetonfpVHdxCeup8/KvkpqV4qNtrkdOumpKz0C7wQ0X8GxHo6YL4Rs0qAHV/nrZyVvt/crzDO/cVpC1SxHmFXCFEd9lTEDuCob9jskB3iDlVE/qwGgAQB28RdFbHdIx5YkDkLnr4muBX2HbkbUdLYkfWVWLvShd8Ll1iKMIiPciaOqDPvUaP43J85oF5c8/7EERytdtbNp+ECJjs+MOuUcyJO2insYlgyNMqOtc/nkNpV0IiSuij09QH3zXjSjTIGp6w0xjmDTFCfvxEceFd+O7Cn+nyBaMzt1fflGYqKGXtBwmQ+TySjG4RFRe/FOYj6TLHnUqLWGUYxEaIFg==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(136003)(376002)(346002)(396003)(366004)(451199015)(316002)(110136005)(55016003)(82960400001)(8936002)(186003)(122000001)(9686003)(52536014)(26005)(44832011)(33656002)(4744005)(5660300002)(2906002)(8676002)(64756008)(66446008)(66476007)(66556008)(66946007)(76116006)(7696005)(6506007)(38100700002)(53546011)(41300700001)(71200400001)(38070700005)(83380400001)(86362001)(478600001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WWZhMm8wdmREV0xrQXBtNHdiMFVKQ3lTQnprUmwrelBMSmNJM2xZQXpodjdv?=
 =?utf-8?B?NnNjeENvTzN5akxMemFPVHVFVW14OWZLdGJFNFRmUlNmK0RQZ2czNlhtNTVu?=
 =?utf-8?B?cXovVlBxdjlBY3lWaWFpbGlPdkJURTZSeVVsN3pMVkkwZk1CNEd0d3Y3QVhP?=
 =?utf-8?B?SFVVcVU3RWo2bXRLTm55djcrYTViRU1kbU1ucU43YWpLdkdTWjF3UXk2NldW?=
 =?utf-8?B?emp6TUQwT0pyTkp5dDhxc1Rzc05SMldtNE50VVE2QzEwcHM5R0E0dndOVEdX?=
 =?utf-8?B?aE1OOGZkdU9nTUJIa1MrbWp5elBJalFWRkhJd014Tko0cXN5VjdIZ2t0Q2Vp?=
 =?utf-8?B?eFo0K3QxdGo2d2xJelE3aVY0VmY5MFB0MTBLSXNMSUl3L3NWRkFLNVBYVFg5?=
 =?utf-8?B?V0hrRlJPQnZkVWtYK0s5TTR4RDc4cmpLQWxuTFpSSE5mS201RUhiNXNzblY0?=
 =?utf-8?B?alFrU05EYmNmSkxTSldtc2lUY1NhYkZiRWkrQ2hLR2MxNmxYclNTcXNPREJo?=
 =?utf-8?B?R0JTWXh5U0tGTHB6aGVLTWZiMEd5SEQydUZqYitaUm8xMnlxMG4rTll6Y25N?=
 =?utf-8?B?TU5Ma1RNbmdjcy9RTGlSRjVSQitpVUtiYlBEQThLc0oxallBaHY1NEpiZnNL?=
 =?utf-8?B?dndFTnFtbHp6bXFsMjRWS3BveWVwOFVsR3NLS3Zua094ZU0yRHJ2c1Rva0ZK?=
 =?utf-8?B?Q1Q5c3J5RWdUUUhxSjFqanBXSnBnVUR2NCtVWTB1L1ZMSU1RUjQrU2V2a0lC?=
 =?utf-8?B?aDcyUjQ4bFV0QlEvQXdzdUhTMHA3U2MwNWRUaXFZKzdWdk5QaGRodU5KVjFt?=
 =?utf-8?B?THpxdHFvNDBzK3dwR1VabHFveWhwR1k2aU1VM1h0WDgzclBrVDU1U3loaEFn?=
 =?utf-8?B?ZWdLZnhrWVBQOWFZS0JtRVJhTVJjOTFRWVFtUHZqZEdGL1FoTFpOaWpXZ2py?=
 =?utf-8?B?Ym9jU285QmtTWkx5RGEveWRRT1g0WUIrS01pcW1XK1ludG4wKzhIZUFZbmE1?=
 =?utf-8?B?WVJ5OVZJQU1pa1FpRng3WGpXWDhTblBsVGNlU3VWQitiT3l0Z2llaXUxVll4?=
 =?utf-8?B?RlVKRnVVaDVZdVlIUWRPeGZBeFduaEN0WlE2b3lHVG1EQVFBR1pwYTBhd1NT?=
 =?utf-8?B?OGhMMWZTRTJhV2p0WkhFRnNPeVlPbS9sNmluL3Rsd09scTFuS2pCZWlzZG8r?=
 =?utf-8?B?eXNOQTJhcjlYc2JEUkNRZTVCWVprR0o0SEhtUklobFFyR0pubHJQV1lORmY4?=
 =?utf-8?B?SllXTCt2aWpiZURDY0psU29jam84cTlsdGRLcUxhSnVYZEZWei9TZ2RCUjJE?=
 =?utf-8?B?dGVNT2xpUDZ4UFZpeXlzS05ZR3d6MmkzUlR1YkpQWkVYZ0NDRTFDNW9kWkFN?=
 =?utf-8?B?OURWRVVacHhML3RwdHBjdDJJMkZXMGJ5R2hRcmUvWVBZeVVid2txeFFiR0xx?=
 =?utf-8?B?S3gzZityN2FRMTFtWllsTHdGQzd1YXpMN3N0TUpEUlZMdWtYS1dkMURRUHBZ?=
 =?utf-8?B?cU8wOHR0VjVBN3BpZGw1UkxWTWJHdHFDekRpNmJKamhHUmpZNlVjeHJDQzVx?=
 =?utf-8?B?MlBzQkk3Z0k5VmxxRXJxblI1ZDJRcVR1aW5xbEJBOWo2NWwrMmk2ZHgrUTd5?=
 =?utf-8?B?bDR6QlEwUm9XdGIwMlk2WVdoZmdqS1lYbWU1UzhZSnFkRzNDWkY0Y1I3eWNJ?=
 =?utf-8?B?N0tHR3M3bWswb1V5YjRHYXF2M0pjZ0xidUswdURpMXBjQmp6V3lpdDJiNkI1?=
 =?utf-8?B?Y1V0MjN1ckN4eGl0Q2tYK254U2RDY0hGR2dzOC9UaWRWeE5jY29BTDZkbWdJ?=
 =?utf-8?B?VnVMTlg4akxJZkhyY1huQTZVa3JEOVRmNXJUbVYyZFB3MnREanF6U2lUY0xD?=
 =?utf-8?B?VTNvemJOcW9JVTllMU1ud21pb2R2dVd3b3B4RnRUNTlPMEIrNlArdnpZVDBo?=
 =?utf-8?B?MGlVejV5NTRYcU9RcXdtNjh6NHZqWVpvNWJlY3lJQXJOeHZ4anN1cnV2WTht?=
 =?utf-8?B?TnE3bnJmaUlZYUpWTFRMQWxWT1Z3YUwzRTlUcWVpbEJ1MzJSZzNwZ25ydFhu?=
 =?utf-8?B?TVlNSjZKdEdNNW1zelNoTXM0SmZMLzZRZ052elVjQlZ3ckRRSVFwTzFFWU56?=
 =?utf-8?Q?1XXjJg9kqQDRPOWlWKW2NlOpZ?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48b74b1f-1d0a-4a01-596c-08daac4b5636
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2022 12:14:39.4635
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PQHO5bXpDU6bxwbyH1VGqEOcVb7S2SSfs5H/Ahh6usV9nTOoHoJ0ZHsILB9YUePulaN4mn23N3H2j1qpliDCcMx64Hr3hkg76DsOia53eIU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5150

DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiB3aW4tcHYtZGV2ZWwgPHdpbi1w
di1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPiBPbiBCZWhhbGYgT2YgUGF1bCBE
dXJyYW50DQpTZW50OiAxNiBTZXB0ZW1iZXIgMjAyMiAxNTo0MQ0KVG86IHdpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSF0gW1JGQ10gSW50ZXJmYWNl
IGNvbXBhdGliaWxpdHkgZXhhbXBsZSAtIGZvciBjb21tZW50Lg0KDQo+IEFzIHlvdSBrbm93LCBJ
J20gc3RpbGwgb3Bwb3NlZCB0byB0aGlzIGlkZWEgYW5kIHRoaXMgcGF0Y2gsIHdoaWxlIEkgYW0g
c3VyZSBpdCBpcyBmdW5jdGlvbmFsLCBpcyBqdXN0IGEgc21hbGwgcGFydCBvZiB3aGF0IGlzIGEg
ZnVuZGFtZW50YWwgc2hpZnQuDQo+IElmIHdlIGRlY2lkZSB0byBnbyBkb3duIHRoaXMgcm91dGUg
dGhlbiB3ZSdsbCB3YW50IHRvIGRvIGF3YXkgd2l0aCB0aGUgd2hvbGUgUERPIHJldmlzaW9uIHNj
aGVtZSBhcyBpdCBzdGFuZHMuDQoNCkkga25vdywgYW5kIGFncmVlLiBGb3IgdGhlIG1vbWVudCwg
SSd2ZSBzaGVsdmVkIHRoZSBjb2RlIGluIHNvbWUgYnJhbmNoIHdoZXJlIHdlIGNhbiByZWZlciB0
byBpdCwgc2hvdWxkIHdlIGxhdGVyIHdhbnQgc29tZSAiZ2V0IG91dCBvZiBqYWlsIGZyZWUiIGNh
cmQuDQoNCk1ILg0K


From win-pv-devel-bounces@lists.xenproject.org Wed Oct 12 12:56:49 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Oct 2022 12:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.421118.666303 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oibHz-0007pl-Cf; Wed, 12 Oct 2022 12:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 421118.666303; Wed, 12 Oct 2022 12:56:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oibHz-0007pe-A7; Wed, 12 Oct 2022 12:56:47 +0000
Received: by outflank-mailman (input) for mailman id 421118;
 Wed, 12 Oct 2022 12:56:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dyd4=2N=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1oibHx-0007pY-Fg
 for win-pv-devel@lists.xenproject.org; Wed, 12 Oct 2022 12:56:45 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52dcb5bd-4a2d-11ed-8fd0-01056ac49cbb;
 Wed, 12 Oct 2022 14:56:44 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 az22-20020a05600c601600b003c6b72797fdso1157878wmb.5
 for <win-pv-devel@lists.xenproject.org>; Wed, 12 Oct 2022 05:56:44 -0700 (PDT)
Received: from [192.168.25.62] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 g11-20020a5d488b000000b00228d7078c4esm13570050wrq.4.2022.10.12.05.56.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Oct 2022 05:56:43 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52dcb5bd-4a2d-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hSBjLDBxYJhmQg23vStZ0doH3dlTgHJdUPV4Wenm7fI=;
        b=TY6y6rcH2bWt/p1OcxKcyQ0e3RhtEYmQ/cOsNE0cNZ4q+lVC50O7V5xr5zC5jy06Xn
         jenKnlHgHCBiuPG69o9mCnXAzGSHlvi9A6EIHdfameNaJUFK8Bu4bnuQ0Y5Hdl0GyAD3
         vnOV5LLV7+RnzsU+AL3RuSG0UlzjdXie9LShDSJAs56YOzXBZS//Wock7R5mMXunYqCB
         Wa8grF6gVne4CVX5GqV/Gtv3R6ZM3Hz/2/+QWM3UrL+heqd1IWFVxrfTmrJgT3Wzwk4P
         YOHgIszs1Wlm3h8rKV8gS4CPljF6DXsLTvlC5QT1RdUxkZ6cuT28wYiDHxGoU5VFiQUK
         HL8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=hSBjLDBxYJhmQg23vStZ0doH3dlTgHJdUPV4Wenm7fI=;
        b=VsVlS8reibDzsEWRp3qBZxR9zz8t02Lf+WMKTv9UWxSqE10m3fEgrGpv5xHPGGflQB
         BGZTjlH6hVxGqUqLm8c2E5NQbciR6eEq7rieyZy/TbJrPbKGy5zUxwZgrNebSf0cEIYE
         9xHK8XuHsOa4Wy5vTZP0OmjnZBOg3wrO750ppT1lrgoou19+HpSCE2k+2VuGszg5TXLD
         0aq+4QIAhgNy1d+7rX6uF9mMBwD/jNSuwsAh9B9+B0znzRkPcTRPGbn1zSChHr5Fib/I
         nfVBzD55p0KD79rAjy8XpNdzLOBn5diZ70eCmv1AKxhdJ3p+LXEDY80ORMJs69cKBEl0
         Kb2A==
X-Gm-Message-State: ACrzQf0bQoXoizz6oETr6xiNlQ18PSDyuokR48V+kps0YDn0OKAjYf7+
	lGUqAQzmppyb9C/tjo5Z05uamWTZB72c8w==
X-Google-Smtp-Source: AMsMyM7wSGeWUe4yB1xUuOc1NZvn2QLMMYZIxNxxugmr+ABHrL9bvpQRTlU0wmTa+cPBEMJo5VhoUA==
X-Received: by 2002:a1c:7906:0:b0:3c6:235f:5904 with SMTP id l6-20020a1c7906000000b003c6235f5904mr2786034wme.83.1665579403807;
        Wed, 12 Oct 2022 05:56:43 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <d0c4ee02-52f9-6a71-2acc-c60c803d9b85@xen.org>
Date: Wed, 12 Oct 2022 13:56:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.2
Subject: Re: Races in power IRP handling path.
To: Martin Harvey <martin.harvey@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
 <MW4PR03MB63476152721F8345C3DAC89D9A229@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Language: en-US
Organization: Xen Project
In-Reply-To: <MW4PR03MB63476152721F8345C3DAC89D9A229@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12/10/2022 13:11, Martin Harvey wrote:
> 
> Okay. Well, if no-one else is covering the outstanding power issues (there are a few bugchecks down the powerdown / hibernation path) then I'll address them as follows:
> 
> - Some revisions of the OS may have had a system power thread / and a device power thread per stack, we shouldn't need to replicate that bit of structure in our drivers (none of the others do).
> - It should be possible to handle power IRP's with standard dispatch and completion routines most of the time. Only reason I can see to farm the work off into a separate thread is if the IRQL is not suitable. In such cases, Marking IRP pending with later completion should be fine, exception being blocking power-irps, where we have to "continue" a completion chain. Since we can't fail power IRP's could always succeed these, and pass off the real work into a work item.
> - Issues with completions not being called - perhaps multiple drivers marking as pending down the stack? Hopefully an async model will help  this. I will need to remove the xenfilt handling to get to the bottom of what's going on here.
> - I'll have to rewrite the FDO handling before the bus drivers (I'm afraid). This might or might not fix all the outstanding bugchecks (prob not).
> - An asynchronous / state driver model is to be far preferred to synchronous passdown.
> 
> MH.

I would very much prefer that we kept the power (and pnp) IRP handling 
as it is. It took *years* to debug this stuff and using threads for 
power IRPs was largely because there were too many mind-bending corner 
cases to do it reliably any other way.
If there are specific bugs then let's fix them with as little 
re-structuring as possible.

   Paul


From win-pv-devel-bounces@lists.xenproject.org Wed Oct 12 14:11:17 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Oct 2022 14:11:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.421221.666438 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oicS2-0005BZ-S4; Wed, 12 Oct 2022 14:11:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 421221.666438; Wed, 12 Oct 2022 14:11:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oicS2-0005BS-OU; Wed, 12 Oct 2022 14:11:14 +0000
Received: by outflank-mailman (input) for mailman id 421221;
 Wed, 12 Oct 2022 14:11:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JPH3=2N=citrix.com=prvs=277e70d70=George.Dunlap@srs-se1.protection.inumbo.net>)
 id 1oicS1-0005BM-BY
 for win-pv-devel@lists.xenproject.org; Wed, 12 Oct 2022 14:11:13 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b865caa4-4a37-11ed-91b4-6bf2151ebd3b;
 Wed, 12 Oct 2022 16:11:11 +0200 (CEST)
Received: from mail-dm6nam04lp2047.outbound.protection.outlook.com (HELO
 NAM04-DM6-obe.outbound.protection.outlook.com) ([104.47.73.47])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 12 Oct 2022 10:11:07 -0400
Received: from PH0PR03MB5669.namprd03.prod.outlook.com (2603:10b6:510:33::16)
 by SA1PR03MB6669.namprd03.prod.outlook.com (2603:10b6:806:1c0::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 12 Oct
 2022 14:11:02 +0000
Received: from PH0PR03MB5669.namprd03.prod.outlook.com
 ([fe80::7131:3804:744b:d7cc]) by PH0PR03MB5669.namprd03.prod.outlook.com
 ([fe80::7131:3804:744b:d7cc%7]) with mapi id 15.20.5709.021; Wed, 12 Oct 2022
 14:11:02 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b865caa4-4a37-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665583871;
  h=from:to:cc:subject:date:message-id:references:
   mime-version;
  bh=cGYWCB6vxmZAZzUTy9+PtUPuT7qUCEszA/GXF+aaql8=;
  b=fUqJSfJIIglcR92j/aUVLM2vS9cwisSA5s2+9ophbvRkuAlmusL+jh9v
   MStD68PZLJNz8xZA6ZoBbUTeuFLUxuEDUgxTBfrhjD8p047ZTWzmS3b5e
   G7iP61sLUJwSWH0FUlG29iPdVN5OIOrIVRMyP+abrih88GoVqt16YZhhg
   4=;
X-IronPort-RemoteIP: 104.47.73.47
X-IronPort-MID: 82194559
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:JZrKe6I5hNFyI3y+FE+RXpQlxSXFcZb7ZxGr2PjLsTEM7AuW5UVEl
 zVBCC3DeKqUMyGmS21FGNyw9BxV7ZTWndA1TgVkqCgwFy4aoMabD4nDIxf6binDc5CeFxk/t
 ckVMteac59kHnbR9hqnauLt/CkhjPuETeWU5IIoQsxUbVYMpHAJ1UIz8wJAvrNVvDSZP++sk
 dijrZGAYgT8hG4laD9Ms/mJ9h1hsq6ptj5E7gxmNftG7QPSz3UbMskSdPq7R5fariu4PcbhH
 rqek+vplo/9101wYj9wuu+jKiXmepaLYU7UzCI+t5GK2nBqvjY13rswKM0SYEJWjyTht91qw
 ZBGuIfYpT0BZ8Ugo8xAFUgFe81CFfceouWeeSHl6Zb7I3DuKBMA/d0/VCnaAqVAkgpHKTkm3
 eAVLjkLcieCi4qeqF5sYrAx7iiLBJCD0LI34hmM/xmAZRoVacmrr5Hxzc1ZxF8NavVmRp4yU
 Sa7hQ1HN3wsazUXUrse5QlXcO2A3hETeBUAwL6ZSDZeD8E+A2Wd3ZC0WOc5dOBmSu1bhX2mh
 Hr+xV/WHyw1ave57T+I0C2z07qncSPTAOr+FZWe39sy3Bi/4zJWDxcbE1ymvfO+l0iyHcpFL
 FAZ8TYvqq5081G3St76XFuzp3vsUhw0AoIMVbFlrl7WjPaLi+qaLjFsojppR9EhrsA7AxA30
 FuAh/viBCB1sa3TQnWYnluRhWPoYHlJcDJTDcMCZRoX/uTBpbwpsijSHthmGpO/p/TXABill
 lhmqwB73d3/l/Ujz6mm50rOhS6Er53AXAkzoA7QWwqN8QJ/IZa7IoCl91XfxfJBN5qCCEmMu
 mAenMqT5/xICouC/BFhW80IFbCtovqAbjvVhAYzG4F7r2jyvXm+YYpX/TdyYl9zNdoJciPoZ
 0mVvh5N4JhUPz2haqofj5+NNvnGBJPITbzNPs04pPIXCnStXGdrJB1TWHM=
IronPort-HdrOrdr: A9a23:qAXkaaiGHLUwLSTqohMuMcmvlXBQX2p13DAbv31ZSRFFG/FwyP
 rCoB1L73XJYWgqM03IwerwQJVpQRvnhP1ICPoqTMyftWjdySCVxeRZgbcKrAeQfBEWmtQ96U
 4CSdk1NDSTNykdsS+S2mDRfLgdKZu8gdmVbIzlvhVQpHRRGsVdBnBCe2Om+yNNJDVuNN4cLt
 6x98BHrz2vdTA8dcKgHEQIWODFupniiI/mSQRuPW9q1CC+yReTrJLqGRmR2RkTFxlVx605zG
 TDmwvloo2+rvCAzAPG3WO71eUYpDKh8KoMOCW/sLlUFtzesHfqWG2nYczBgNkBmpDv1L/tqq
 iIn/5vBbU215qbRBDOnfKk4Xic7N9p0Q6u9bbQuwqdneXpAD09EMZPnoRfb1/Q7Fchpsh11O
 ZR03uerIc/N2K3oMxsj+K4Ky2Cu3DE1UbKq9Rj+EB3QM8bcvtcvIYf9ERaHNMJGz/78pkuFK
 1rANvH7PhbfFuGZzSB11MfiOCETzA2BFOLU0ICssua33xfm2141VIRwIgakm0b/JwwRpFY76
 DPM7hulrtJUsgKBJgNTdspUI+yECjAUBjMOGWdLRDuE7wGIWvEr9rt7LA89IiRCek1JVsJ6e
 b8uX9jxB4PkhjVeLOzNbVwg2HwaXT4WyjxwcdD4JU8sqHgRdPQQF6+dGw=
X-IronPort-AV: E=Sophos;i="5.95,179,1661832000"; 
   d="asc'?scan'208,217";a="82194559"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O7fVU1yvUnYodiOtgYvMPaRqtbaWw6sXLpM8NS2ZGf59MzxPywMYG4UpQbwPae+bwDyjVw4BEQktGjl+r3yZnVpQ8taCXQPbEHrLuKiY+iwLaBi2yPfKzsWM12ps7b4DGqEirkWsOrfvZlTp06b8bZ+AYCHvwtsiRN7gVWzqMRWcA6M2LwoVjjCULFmtl34ocOL3D6ACf28s5xPVhn2Kb06Kl2YTTzmk2lwVhxZNzgwEQLJRs72ZuMC9oa0pHGH9QPq2xQEn1bwtXV4e+wG1V44pCtcsDKcin1L+knRtQqN7hTi8ZksJh3bhfdt2FZbxkR1EaMxNMqQvBjwaZ06isQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4wRD7K9kcNkh9Fo3cFxySdaxh8QadJpcQjeiJP0C2j8=;
 b=cFE8zMSU81vhBF3Rl0J1zV4TcwTvLuHUy94mlH1BUoUkvb7EBkSfEd5fvXRVbVf7duIT9PpKeJr5M35Puyb9V8YT+vKVMmwxMnT4/FyxWrOUy1JNAGUnB+c3QfoQodxXvkqTnZy+npxzAQWMCJuPkcB/KnXei+ucIdSUGFY6KzSM10qYoKPnQyTbgZ3TCDHX+U03R6ap5un8rdQMJM56S9WWS2G27yOOh5niYQ0XLlFfsQUboI1FHFr1eAcZ0myIgPfPvwMfFNhRi0VAR2wz17qphQE4IAXk6bQESbIt1luLGNfVGx3fh4O9PqbKO4r5Gel0W9iaJ6sQdWQHVSr7mQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4wRD7K9kcNkh9Fo3cFxySdaxh8QadJpcQjeiJP0C2j8=;
 b=rKOnZu22wnPMyd3Kh6Sb+MTJ8cEH67WWMkW7BOyAZNAp4PW9+t9eo1HZ/7Cb+pwWOuUwCTx2k3FxvvYnlbxLcciHZbIi7Y8a84Ui39mouk1ONWK674DbsCJeTEZTXo36b5M2IxsshhgYwZWZUMMrIdM1JtABI/cvFFo0ukQuKtk=
From: George Dunlap <George.Dunlap@citrix.com>
To: Paul Durrant <pdurrant@amazon.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Fwd: Digicert - XEN: Re-sign files timestamped from September 14-22,
 2022, to get full 11-year timestamp validity
Thread-Topic: Digicert - XEN: Re-sign files timestamped from September 14-22,
 2022, to get full 11-year timestamp validity
Thread-Index: AQHY0gxTOAQC0zlNmUGcRaDBjgT2Yg==
Date: Wed, 12 Oct 2022 14:11:02 +0000
Message-ID: <766739FC-6BFF-4213-9705-2FC71C18B85E@citrix.com>
References:
 <CA+bdS9jschdb5um2Vch4orHPUbRVOmTxhhMJfsT6JE3uw6QFZg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3696.100.31)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH0PR03MB5669:EE_|SA1PR03MB6669:EE_
x-ms-office365-filtering-correlation-id: 5104db49-ff4f-419b-b56b-08daac5b9893
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 O0bC2pXuiLXR1wDaw2YKvZt9+3gH3FvMscVDJJDuveV53fEJg0j1AEj0tV/36TNomSRvGajebKLMpRgYoPxl6p/VlWzgDRlMqvIwAlN45R0JFwFKwdeZfrjk73wbHOSJO5DZqxkKhDx9M4beaAmVrfbdC1jI0QXQYdrMf8Ex8+8uezQONF1MkE5nEqbX/owZJ8doUJoQPRncnJ+e+Q3pCEymTEOtxYrmqrj1qwxXV6dmSCO+2YA7kcRwzLO1Il4IvlMXtulWb9FkkK0oPYTSn97C2tTX6vkk1D47F2GRzJfJxzP3Gx0iDw5p6gzSHQQIPDtr85YY15jAenIZ4EvjOaTq/mVz7ILZKnfdzrkiLRiLQi3nViKCx7DVughZfzn34RnjK+9ehskPaGnMWNvTLiMuu1MYjHZ2eU7Pm0YrO2FjuZvsyhJySD9KRfTJUSAyIy8jmuiPEg9Ia8IPlsFDm+fnu9/hdDJr1RGB/GZv6eoF1PCKBK9UDJaOWdILjZuDTwzGZNCXSXMuqg3b9LG8r2/Fhw8oOZW+ADUyeMVfWFT6a1kzgl33l538hwHdZzesw12XarZeN1etxQXwykM3nSGIM2iDLh1mcrdzsC0jcQcjohWtENeE+iSUUpFw9tTmTWvCxfHCFjefK5/BUn8pyhKbkaA5hV3tBHqiapIMCXFQ3hVYHffSJ+eopghV4x9iHaYfSHfOM3P6Ox2ZuIhH0E+tXbNwudvfWTxTCbxk8lc0uR7nNyjnckrhvDguy+qjTcWnsqlCZqrJwgpLLNnx+CAoWDc0qL5cg+9xy6VDLC1/zR4Bcq6bTD2qvj0plMDa2txZOBrg+rchX161H8wdYA==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR03MB5669.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(396003)(136003)(366004)(346002)(39860400002)(376002)(451199015)(1690799008)(66476007)(316002)(2906002)(66556008)(64756008)(166002)(76116006)(38100700002)(99936003)(8676002)(82960400001)(38070700005)(91956017)(4326008)(5660300002)(122000001)(8936002)(33656002)(41300700001)(19627405001)(6506007)(86362001)(6486002)(186003)(478600001)(53546011)(83380400001)(66899015)(26005)(36756003)(6916009)(66946007)(71200400001)(2616005)(76236004)(66446008)(45080400002)(6512007)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?a0U2VTcwaDZZemFuOTR0M1NRWk0wZ29idHRWTjZZTXZZcXZxSFVMMjRLN1dP?=
 =?utf-8?B?QUFOakd4cmtBVnhtUnhTL1VLdkNQLzc3TkV3WERPQXFxbDJYemNMeENCbVg1?=
 =?utf-8?B?VzJSY2RKSzNNVWh5MDZNeSs0TmF3T3dCUmQrblYrd0x0MWdGQnFNV1BzMTNT?=
 =?utf-8?B?elFQclQ3NHV4L3llTGxYeUdMRG5FcndYYzVVeHVOSEFCdmRxWlBmU0M3OERY?=
 =?utf-8?B?QjdBZGZhR2xnVUl3NG94amtEdkZ4WHhjQ2FWcElpTHdsWkFuTTk4aVZ4VVI2?=
 =?utf-8?B?VW5FeDkrUW9rQWcvamlSTjJucHJjWU5wT056dE9CNDE1Y2Fucmd2ZW5LZitz?=
 =?utf-8?B?Z2dNZHNKVklhMjlPaml1WGJyMnhhM2dkMCt2SU14RUxsNFQyZ0c2QUxaVDRn?=
 =?utf-8?B?VFZzYnkxMmhqU0FEYTFUQVc5VTIrcUs1eEV4QjErOUFWTHF3UjNTWWR3QUYy?=
 =?utf-8?B?Y2RKcjRDRDdIK3FqMTE4Nm5GZmhCNU9HckxoQXh0djFNdVFqbGdHb1JxWk9R?=
 =?utf-8?B?UmtqUUtxVXBKdER0QkFOTjBhdWxteS8xRmhCcGFXQUxuVjFiemlvRGxTcnB0?=
 =?utf-8?B?SW9yVHpQeEtDUVg0YmhRV2ZWRC83WVY4cmtwd1J3OTJVdkpkdUR5MU9QSzlr?=
 =?utf-8?B?R05uN0xtRzlkWWJUR0lyU0RvODlab015S2lGM0pMbmtsYkI0MVlkODZaSlpk?=
 =?utf-8?B?eTAyanU4bWhsTHdVOFVRNG92YlowcDVZUTNVUTZHZ3lDOTB3NE1pWFNSOWNh?=
 =?utf-8?B?S2gzSmRtbUFZOFVEZFQ4WVFZOEpkSHhKQUp0RjVvaGdTVHpQLzdBV2JGUS8y?=
 =?utf-8?B?ZHBKTGZpcGRQZ0tzZm95SVpXK2doVml2QVdUTEdDRDc2VlNaOFFYK2tuZk5L?=
 =?utf-8?B?M0NUbEloQWl3L21vUFIzUldnZTQxNmFacmxGTkViQ1BBcWo4MHcrZVh2Wm92?=
 =?utf-8?B?cUlQb0hHM3g2ZVFuYjNPSzEreFFNbXp5Y1ZOK29CdEIrS2ROTmUvT0x1K2RK?=
 =?utf-8?B?bklTWUxuMFE2MGNKWllWS0M0SFBKTjRPT3hENDloZU5CaVdmUVpibHI5VUR3?=
 =?utf-8?B?WHM2NVVORVJBeE05SUpDTzJJNzJ1cGlMeklqQjhueEwrWHR2aW4wd2VocmI0?=
 =?utf-8?B?WFNmMmNhYklncEhkcUNETU96eUgvaXlyZjA1SUZJYWpVQVJMR0ExS1NGalNr?=
 =?utf-8?B?MnZGZHUvVW1rb0pmUm5hTTRiWXJZbTlqUU5LMDNRTU5WZE1OMlV5VmFnZG10?=
 =?utf-8?B?QW00aHQwWFdNWFo0eXFVOUYwZFZmSGtsNlM1dXhLYVVLNFZaM01Da3NGaTda?=
 =?utf-8?B?d2diTERPQVQyWEZzTE8yQ25FVFlEb1BXT1g2OHRXZTNZZDRrRC9GZkx1dVhp?=
 =?utf-8?B?eVlyRjJaaVZmTk1ZdUhzR21FckYrL2UyUk0ySmVSRkdyVTdvOGdJeGVTbDhY?=
 =?utf-8?B?SHJxQ1VreitlcWJMSTJhQ3RZQ3VCUFN0eDlCZzNHVTJMMDViUEpHd0N0NGsr?=
 =?utf-8?B?RjBVbjMrMWF2U0RZdWFGUW9aUFVxYjZGMjBXcy9KM0R1L3lJRUErMG8xaFlS?=
 =?utf-8?B?WTF6bXF1alpBMmRiWkllRlBGQmJST2ZyQWVjZlZZYkUzMEtWcFBtbThuWGNJ?=
 =?utf-8?B?SHpUSjNxUXJubmRXNFhOS2JMY1Q1RnFWeWg3OWRrVXBVUzFVVm1zSzZZNUpX?=
 =?utf-8?B?dVdqeHRCZmV4YitCVHNYK0hwLy8ydW1xelF3RWd3Vk5OS1BSWGlmL2Ryb1hs?=
 =?utf-8?B?Yk1ZNFZoT1hUS1hDRCswYzg2SUhSQzFwQndmUjZTbzN6Z01WWjBMTUpSejhL?=
 =?utf-8?B?Wm01MHQrMWxISENJaVFPWllINXNQMHI5SFdtaDR1Zkx2N1lMbEtrdWhuaDE2?=
 =?utf-8?B?Wkp5YWFWbXEzWVlxb2ZmbWc3SmcrZkZqc0VVVUQvSWhhWmJxdFM4bFp6a0Z1?=
 =?utf-8?B?TkRBNmYzZTZRWUM2aGRMNDIxMkJBUkU0OFdjbmN5K1RUNVh4WDYyOXo1ME1O?=
 =?utf-8?B?aFNoaXJMV0dheU9nWnZCcG9pdVJVQWNwUEt1L3RYTkJhQytFcW50c0VoQWNB?=
 =?utf-8?B?UEoyOGkzV1hqTjJab3ZDMnNMUzdZaXJHOGdyNkMxNjNsSkxIMWkzTDJFY0Nr?=
 =?utf-8?B?MExmekkvSXdXb3NQSytJeS9JUzlaSkRpK3luVHFCc0R1RTlJK09ob0x2K013?=
 =?utf-8?B?b2c9PQ==?=
Content-Type: multipart/signed;
	boundary="Apple-Mail=_1A1F9B1B-3AB5-47FB-9C1D-F45DD219B0D2";
	protocol="application/pgp-signature";
	micalg=pgp-sha256
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH0PR03MB5669.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5104db49-ff4f-419b-b56b-08daac5b9893
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2022 14:11:02.8008
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ru4/BmhvS77VFpQdrhsemtfXDx/jXQCsCVzUP6vSqNiOg/xshLTs7eA5itHyH/3FqeAeLTrHd3R+09E9/iSlcrfVLFxA5BZIYaNWDfZhJH8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6669

--Apple-Mail=_1A1F9B1B-3AB5-47FB-9C1D-F45DD219B0D2
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_963529CA-FF9F-4694-A47E-284484971B78"


--Apple-Mail=_963529CA-FF9F-4694-A47E-284484971B78
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hey Paul,

Does this mean anything to you?  Let me know if you need me to do =
anything in particular.

 -George

> Begin forwarded message:
>=20
> From: Namhai Nguyen <ap@linuxfoundation.org>
> Subject: Digicert - XEN: Re-sign files timestamped from September =
14-22, 2022, to get full 11-year timestamp validity
> Date: 27 September 2022 at 01:58:36 BST
> To: paul@xen.org, George Dunlap - XEN Project =
<George.Dunlap@citrix.com>
>=20
> Fwding.
>=20
>=20
> ---------- Forwarded message ---------
> From: 'DigiCert' via Accounts Payable <ap@linuxfoundation.org =
<mailto:ap@linuxfoundation.org>>
> Date: Mon, Sep 26, 2022 at 5:28 PM
> Subject: [ap] [Action Required] Re-sign files timestamped from =
September 14-22, 2022, to get full 11-year timestamp validity
> To: <ap@linuxfoundation.org <mailto:ap@linuxfoundation.org>>
>=20
>=20
> If you are having trouble reading this email, read the online version =
<https://app.updates.digicert.com/e/es?s=3D1701211846&e=3D638664&elqTrackI=
d=3D9f7f91354c5449a39c8dec628cf9060b&elq=3D79d873a2371444e78ceafb64547dd2b=
4&elqaid=3D11057&elqat=3D1>.
>=20
>=20
> ACTION REQUIRED
>=20
> Hello NAMHAI NGUYEN,
>=20
> You are receiving this email because you may use DigiCert's =
timestamping services with one or more Code Signing or Document Signing =
Certificates.
>=20
> =46rom September 14, 2022, at 13:11 MDT (19:11 UTC), to September 22, =
2022, at 13:18 MDT (19:18 UTC), DigiCert's timestamp .digicert. com and =
adobe .timestamp. digicert. com services mistakenly issued a timestamp =
authority (TSA) certificate with a validity period of only one year. On =
September 22, 2022, we replaced this TSA certificate with a new TSA =
certificate with a 135-month (11-year) validity period, the maximum =
allowed by current industry standards.
>=20
> To take advantage of the new TSA certificate=E2=80=99s full 11-year =
validity, you need to re-sign files timestamped during the affected =
period.
>=20
> How does this affect me?
>=20
> The maximum validity of a Code Signing or Document Signing Certificate =
is only three years, which is why it is important that they are =
timestamped with a TSA certificate with the longest validity period =
possible. Timestamping preserves the signature on your files or =
software, allowing them to be accepted by operating systems and other =
software after your Code Signing or Document Signing Certificate =
expires. When the signature is evaluated, the timestamp allows the =
validity of the signature to be checked against the time it was signed, =
instead of the current time when the software is being executed.
>=20
> Timestamping code or files with DigiCert's new TSA certificate will =
increase the validity of your signatures to 11 years.
>=20
> What do I need to do?
>=20
> To take advantage of the new TSA certificate's 11-year validity =
period, you must first do a self-audit to determine which of your files =
or code were signed when the one-year TSA certificate was active from =
September 14, 2022, at 13:11 MDT (19:11 UTC), to September 22, 2022, at =
13:18 MDT (19:18 UTC).
>=20
> Once you have parsed the list of affected files or code, you can =
either:
> Re-sign files or code that were previously signed and timestamped =
during the affected period and apply the new 11-year timestamp =
signature.
> Re-apply the new 11-year timestamp signature to files that were =
previously signed and timestamped during the affected period*.
> *For information about applying timestamps to previously signed files, =
see Microsoft's Adding Time Stamps to Previously Signed Files =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8454&elqTrackId=3D693=
ca564b9824bf2b16fc620b4579dc5&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1> and TimeStamp Command Options =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8453&elqTrackId=3Ddc8=
3730c67eb46faa509fde9245af463&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1>.
>=20
> Need help?
>=20
> See our knowledgebase article Troubleshooting Timestamping Problems =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8455&elqTrackId=3Dce8=
1768e4eb64caab010fd62baa1a4b0&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1> for common timestamping problems and tips for =
solving them.
>=20
> See Code Signing Support =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8452&elqTrackId=3Da62=
6f5f35b224f0493a817e3097ede81&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1> for instructions on signing and re-signing objects.
>=20
> See our blog Best Practices for Timestamping =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8451&elqTrackId=3Db11=
3fe394c824498a6953637adcab41f&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1> for background on timestamping and its importance =
to the signing process.
>=20
> If you have additional questions or concerns, contact your account =
manager or DigiCert Support =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D6910&elqTrackId=3D817=
d855091504519b6fdd81a0923ab67&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1>.
>=20
> Thank you,
> DigiCert Team
>=20
> Questions? Contact Support =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D4233&elqTrackId=3D7ab=
b1c21aa7b4b45b57fe1d18f81139f&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1>
> This service message was delivered to ap@linuxfoundation.org =
<mailto:ap@linuxfoundation.org> as the registered email address of a =
user of a DigiCert product, in order to provide important =
service-related information.
>=20
> DigiCert, Inc. 2801 Thanksgiving Way, Suite 500, Lehi, Utah 84043 | =
Contact Us =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D4233&elqTrackId=3Dc6d=
3d7e3775c461c87bd7473892d480b&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1> | Privacy Policy =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D4100&elqTrackId=3D1f2=
8e71374794f7cac3a2cc818556b4d&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1>
> =C2=A9 2022 DigiCert, Inc. All rights reserved.
>  =
<https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001hw=
jiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D7700&elqTrackId=3D512=
1a8d932ce41238fc463480e39497a&elq=3D79d873a2371444e78ceafb64547dd2b4&elqai=
d=3D11057&elqat=3D1>


--Apple-Mail=_963529CA-FF9F-4694-A47E-284484971B78
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">Hey =
Paul,<div class=3D""><br class=3D""></div><div class=3D"">Does this mean =
anything to you? &nbsp;Let me know if you need me to do anything in =
particular.</div><div class=3D""><br class=3D""></div><div =
class=3D"">&nbsp;-George<br class=3D""><div class=3D""><div =
class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">Begin forwarded message:</div><br =
class=3D"Apple-interchange-newline"><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Namhai Nguyen &lt;<a =
href=3D"mailto:ap@linuxfoundation.org" =
class=3D"">ap@linuxfoundation.org</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">Digicert - XEN: =
Re-sign files timestamped from September 14-22, 2022, to get full =
11-year timestamp validity</b><br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">27 September 2022 at 01:58:36 =
BST<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><a href=3D"mailto:paul@xen.org" =
class=3D"">paul@xen.org</a>, George Dunlap - XEN Project &lt;<a =
href=3D"mailto:George.Dunlap@citrix.com" =
class=3D"">George.Dunlap@citrix.com</a>&gt;<br class=3D""></span></div><br=
 class=3D""><div class=3D""><meta http-equiv=3D"Content-Type" =
content=3D"text/html; charset=3Dutf-8" class=3D""><div dir=3D"ltr" =
class=3D"">Fwding.<div class=3D""><br class=3D""><br class=3D""><div =
class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">---------- =
Forwarded message ---------<br class=3D"">From: <strong =
class=3D"gmail_sendername" dir=3D"auto">'DigiCert' via Accounts =
Payable</strong> <span dir=3D"auto" class=3D"">&lt;<a =
href=3D"mailto:ap@linuxfoundation.org" target=3D"_blank" =
class=3D"">ap@linuxfoundation.org</a>&gt;</span><br class=3D"">Date: =
Mon, Sep 26, 2022 at 5:28 PM<br class=3D"">Subject: [ap] [Action =
Required] Re-sign files timestamped from September 14-22, 2022, to get =
full 11-year timestamp validity<br class=3D"">To:  &lt;<a =
href=3D"mailto:ap@linuxfoundation.org" target=3D"_blank" =
class=3D"">ap@linuxfoundation.org</a>&gt;<br class=3D""></div><br =
class=3D""><br class=3D""><u class=3D""></u>








<div style=3D"min-width:260px;min-height:100%;padding:0;margin:0 =
auto;background-color:#d4d6d7" class=3D""><div =
style=3D"display:none;font-size:1px;color:#333333;line-height:1px;max-heig=
ht:0px;max-width:0px;opacity:0;overflow:hidden" class=3D"">
    New TSA cert with full validity (135 months).
</div><table align=3D"center" width=3D"550" class=3D"">
	<tbody class=3D"">
		<tr class=3D"">
			<td align=3D"center" class=3D""><font =
face=3D"Arial" size=3D"1" class=3D"">If you are having trouble reading =
this email, <a =
href=3D"https://app.updates.digicert.com/e/es?s=3D1701211846&amp;e=3D63866=
4&amp;elqTrackId=3D9f7f91354c5449a39c8dec628cf9060b&amp;elq=3D79d873a23714=
44e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D"">read the online version</a>. </font></td>
		</tr>
	</tbody>
</table>



	<table style=3D"background:#d4d6d7" width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td class=3D""><table =
style=3D"max-width:600px;min-width:300px;margin:0 auto" width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"background-color:rgb(255,255,255);line-height:18px;padding:10px =
0px;border-style:none" class=3D""><span class=3D""><table width=3D"550" =
align=3D"center" class=3D"">
	<tbody class=3D"">
	</tbody>
</table>
</span></td></tr></tbody></table><table =
style=3D"max-width:600px;min-width:300px;margin:0 auto" width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td style=3D"background:#ffffff" =
class=3D""><table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0" =
class=3D"">
<tbody class=3D""><tr class=3D""><td class=3D""><table width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"text-align:left;vertical-align:top;font-size:0px" class=3D"">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Arial, Helvetica, sans-serif; font-size: 13px; =
max-width: 100%; width: calc(-48000% + 230400px); min-width: =
calc(33.33333333%);" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"height:5px;background-color:transparent;line-height:18px" =
class=3D""><div style=3D"height:5px;display:none" class=3D""> =
</div></td></tr></tbody></table>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Arial, Helvetica, sans-serif; font-size: 13px; =
max-width: 100%; width: calc(-48000% + 230400px); min-width: =
calc(33.33333333%);" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"background-color:transparent;line-height:0;padding:0px 0px 0px =
0px;text-align:center" class=3D"">

<img =
src=3D"https://img04.en25.com/EloquaImages/clients/DigicertWSS/%7B1975391b=
-57aa-41f0-a8de-86f0f409c1e3%7D_DigiCertLogo_blue.png" alt=3D"DigiCert" =
style=3D"width:100%;height:auto;max-width:50%" width=3D"100" height=3D"32"=
 class=3D"">
</td></tr><tr class=3D""><td =
style=3D"height:30px;background-color:transparent;line-height:18px" =
class=3D""><div style=3D"height:30px;display:none" class=3D""> =
</div></td></tr></tbody></table>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Arial, Helvetica, sans-serif; font-size: 13px; =
max-width: 100%; width: calc(-48000% + 230400px); min-width: =
calc(33.33333333%);" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"height:5px;background-color:transparent;line-height:18px" =
class=3D""><div style=3D"height:5px;display:none" class=3D""> =
</div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbod=
y></table></td></tr></tbody></table><table =
style=3D"max-width:600px;min-width:300px;margin:0 auto" width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td style=3D"background:#004076" =
class=3D""><table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0" =
class=3D"">
<tbody class=3D""><tr class=3D""><td class=3D""><table width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"text-align:left;vertical-align:top;font-size:0px" class=3D"">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Arial, Helvetica, sans-serif; font-size: 13px; =
max-width: 100%; width: calc(-48000% + 230400px); min-width: calc(25%);" =
class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"background-color:transparent;line-height:0;padding:0px 0px 0px =
0px;text-align:center" class=3D"">

  <img =
src=3D"https://img04.en25.com/EloquaImages/clients/DigicertWSS/%7Ba2a70198=
-588f-44f1-9dc6-b5afac05c64e%7D_left-img.png" =
style=3D"width:100%;height:auto;max-width:100px" width=3D"100" =
height=3D"50" class=3D"">
</td></tr></tbody></table>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Arial, Helvetica, sans-serif; font-size: 13px; =
max-width: 100%; width: calc(-48000% + 230400px); min-width: calc(50%);" =
class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"background-color:transparent;line-height:18px;padding:15px 10px =
0px 10px" class=3D""><div style=3D"display:inline-block;width:100%" =
class=3D""><div style=3D"line-height:18px;text-align:center" =
class=3D""><span style=3D"color:rgb(255,255,255);font-size:18px" =
class=3D"">ACTION REQUIRED</span></div></div></td></tr></tbody></table>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Roboto, Arial; font-size: 13px; max-width: 100%; =
width: calc(-48000% + 230400px); min-width: calc(25%);" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"background-color:transparent;line-height:0;padding:0px 0px 0px =
0px;text-align:center" class=3D"">

  <img =
src=3D"https://img04.en25.com/EloquaImages/clients/DigicertWSS/%7B6f0766d5=
-56d2-4af2-977b-6419a88f6416%7D_right-img.png" =
style=3D"width:100%;height:auto;max-width:100px" width=3D"100" =
height=3D"50" class=3D"">
=
</td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></ta=
ble></td></tr></tbody></table><table =
style=3D"max-width:600px;min-width:300px;margin:0 auto" width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td style=3D"background:#ffffff" =
class=3D""><table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0" =
class=3D"">
<tbody class=3D""><tr class=3D""><td class=3D""><table width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"text-align:left;vertical-align:top;font-size:0px" class=3D"">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Roboto, Arial; font-size: 13px; max-width: 100%; =
width: calc(-48000% + 230400px); min-width: calc(100%);" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"background-color:transparent;line-height:18px;padding:10px 10px =
10px 10px" class=3D""><div style=3D"display:inline-block;width:100%" =
class=3D"">
=09
=09
=09
=09
=09
=09
=09
	</div></td></tr><tr class=3D""><td =
style=3D"background-color:transparent;line-height:18px;padding:30px 20px =
30px 20px" class=3D"">
=09
=09
=09
=09
=09
	<div style=3D"display:inline-block;width:100%" class=3D"">
=09
=09
=09
=09
=09
	<div style=3D"line-height:19.5px" class=3D""><span =
class=3D"">Hello NAMHAI NGUYEN,</span></div><div class=3D""><br =
class=3D""></div>
		<div class=3D""><span class=3D"">
You are receiving this email because you may use DigiCert's timestamping =
services with one or more Code Signing or Document Signing Certificates.
         =20
<br class=3D""><br class=3D"">         =20
=46rom September 14, 2022, at 13:11 MDT (19:11 UTC), to September 22, =
2022, at 13:18 MDT (19:18 UTC), DigiCert's timestamp<span =
style=3D"font-size:1px;color:#ffffff" class=3D""> </span>.digicert.<span =
style=3D"font-size:1px;color:#ffffff" class=3D""> </span>com and =
adobe<span style=3D"font-size:1px;color:#ffffff" class=3D""> =
</span>.timestamp.<span style=3D"font-size:1px;color:#ffffff" class=3D""> =
</span>digicert.<span style=3D"font-size:1px;color:#ffffff" class=3D""> =
</span>com services mistakenly issued a timestamp authority (TSA) =
certificate with a validity period of only one year. On September 22, =
2022, we replaced this TSA certificate with a new TSA certificate with a =
135-month (11-year) validity period, the maximum allowed by current =
industry standards.
         =20
          <br class=3D""><br class=3D"">
To take advantage of the new TSA certificate=E2=80=99s full 11-year =
validity, you need to re-sign files timestamped during the affected =
period.         =20
         =20
</span></div>
      <div class=3D""><br class=3D""></div>
<div style=3D"line-height:22.5px" class=3D""><strong =
style=3D"color:rgb(0,113,206);font-size:15px" class=3D"">How does this =
affect me? </strong><br class=3D""><br class=3D""></div>
<div class=3D""><span class=3D"">
The maximum validity of a Code Signing or Document Signing Certificate =
is only three years, which is why it is important that they are =
timestamped with a TSA certificate with the longest validity period =
possible. Timestamping preserves the signature on your files or =
software, allowing them to be accepted by operating systems and other =
software after your Code Signing or Document Signing Certificate =
expires. When the signature is evaluated, the timestamp allows the =
validity of the signature to be checked against the time it was signed, =
instead of the current time when the software is being executed.=20
  <br class=3D""><br class=3D"">
  Timestamping code or files with DigiCert's new TSA certificate will =
increase the validity of your signatures to 11 years.
</span></div>
     =20
      <div class=3D""><br class=3D""></div>

<div style=3D"line-height:22.5px" class=3D""><strong =
style=3D"color:rgb(0,113,206);font-size:15px" class=3D"">What do I need =
to do? </strong><br class=3D""><br class=3D""></div>
<div class=3D""><span class=3D"">
To take advantage of the new TSA certificate's 11-year validity period, =
you must first do a self-audit to determine which of your files or code =
were signed when the one-year TSA certificate was active from September =
14, 2022, at 13:11 MDT (19:11 UTC), to September 22, 2022, at 13:18 MDT =
(19:18 UTC).
<br class=3D""><br class=3D"">
Once you have parsed the list of affected files or code, you can either:
  <ol class=3D"">
    <li class=3D"">Re-sign files or code that were previously signed and =
timestamped during the affected period and apply the new 11-year =
timestamp signature.</li>
    <li class=3D"">Re-apply the new 11-year timestamp signature to files =
that were previously signed and timestamped during the affected =
period*.</li>
  </ol>
 *For information about applying timestamps to previously signed files, =
see Microsoft's <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D84=
54&amp;elqTrackId=3D693ca564b9824bf2b16fc620b4579dc5&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D"">Adding Time Stamps to Previously Signed Files</a> and <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D84=
53&amp;elqTrackId=3Ddc83730c67eb46faa509fde9245af463&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D"">TimeStamp Command Options</a>.=20
</span></div>
     =20
      <div class=3D""><br class=3D""></div>
    =20


<div style=3D"line-height:22.5px" class=3D""><strong =
style=3D"color:rgb(0,113,206);font-size:15px" class=3D"">Need =
help?</strong><br class=3D""><br class=3D""></div>
<div class=3D""><span class=3D"">
  See our knowledgebase article <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D84=
55&amp;elqTrackId=3Dce81768e4eb64caab010fd62baa1a4b0&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D"">Troubleshooting Timestamping Problems</a> for common =
timestamping problems and tips for solving them. =20
 <div class=3D""><br class=3D""></div>
  See <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D84=
52&amp;elqTrackId=3Da626f5f35b224f0493a817e3097ede81&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D"">Code Signing Support</a> for instructions on signing and =
re-signing objects.
  <div class=3D""><br class=3D""></div>
 =20
  See our blog <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D84=
51&amp;elqTrackId=3Db113fe394c824498a6953637adcab41f&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D"">Best Practices for Timestamping</a> for background on =
timestamping and its importance to the signing process.
   <div class=3D""><br class=3D""></div>
If you have additional questions or concerns, contact your account =
manager or <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D69=
10&amp;elqTrackId=3D817d855091504519b6fdd81a0923ab67&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D"">DigiCert Support</a>.<br class=3D""><br =
class=3D""></span></div>

<div style=3D"line-height:19.5px" class=3D"">
<span class=3D"">Thank you,<br class=3D"">DigiCert Team</span></div><div =
style=3D"line-height:19.5px" class=3D""></div></div></td></tr><tr =
class=3D""><td =
style=3D"height:30px;background-color:transparent;line-height:18px" =
class=3D""><div style=3D"height:30px;display:none" class=3D""> =
</div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbod=
y></table></td></tr></tbody></table><table =
style=3D"max-width:600px;min-width:300px;margin:0 auto" width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0" class=3D"">
<tbody class=3D""><tr class=3D""><td style=3D"background:#ffffff" =
class=3D""><table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0" =
class=3D"">
<tbody class=3D""><tr class=3D""><td class=3D"">
	<table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0" =
class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"text-align:left;vertical-align:top;font-size:0px" class=3D"">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align: top; =
display: inline-table; background-color: transparent; table-layout: =
fixed; font-family: Roboto, Arial; font-size: 13px; max-width: 100%; =
width: calc(-48000% + 230400px); min-width: calc(100%);" class=3D"">
<tbody class=3D""><tr class=3D""><td =
style=3D"background-color:#004076;line-height:18px;padding:15px 10px =
15px 10px" class=3D""><div style=3D"display:inline-block;width:100%" =
class=3D""><div style=3D"text-align:center" class=3D""><span =
style=3D"color:rgb(255,255,255);font-size:16px" class=3D"">Questions? =
Contact <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D42=
33&amp;elqTrackId=3D7abb1c21aa7b4b45b57fe1d18f81139f&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D""><u =
class=3D"">Support</u></a></span></div></div></td></tr></tbody></table></t=
d></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table=
></td></tr></tbody></table>

<table align=3D"center" border=3D"0" cellpadding=3D"0" cellspacing=3D"0" =
width=3D"600" class=3D"">
	<tbody align=3D"center" class=3D"">
		<tr class=3D"">
			<td style=3D"padding:10px 0px 0px 30px" =
class=3D""><font face=3D"Arial, Helvetica, sans-serif" =
style=3D"font-size:10px;line-height:14px" class=3D"">This service =
message was delivered to&nbsp;<a href=3D"mailto:ap@linuxfoundation.org" =
target=3D"_blank" class=3D"">ap@linuxfoundation.org</a> as the =
registered email address of a user of a DigiCert product, in order to =
provide important service-related information.<br class=3D"">
			&nbsp;<br class=3D"">
			DigiCert, Inc. 2801 Thanksgiving Way, Suite 500, =
Lehi, Utah 84043 | <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D42=
33&amp;elqTrackId=3Dc6d3d7e3775c461c87bd7473892d480b&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" style=3D"" =
target=3D"_blank" class=3D""><u class=3D"">Contact Us</u></a> | <a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D41=
00&amp;elqTrackId=3D1f28e71374794f7cac3a2cc818556b4d&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" style=3D"" =
target=3D"_blank" class=3D""><u class=3D"">Privacy Policy</u></a><br =
class=3D"">
			=C2=A9 2022 DigiCert, Inc. All rights =
reserved.<br class=3D"">
			<a =
href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0=
00001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D77=
00&amp;elqTrackId=3D5121a8d932ce41238fc463480e39497a&amp;elq=3D79d873a2371=
444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank" =
class=3D""><img height=3D"1" =
src=3D"https://images.updates.digicert.com/EloquaImages/clients/SymantecWS=
S/%7Be4073ab4-7254-4976-bf80-d455b7b85112%7D_spacer.gif" =
style=3D"width:100%;height:auto;max-width:1px" width=3D"1" class=3D""></a>=
 </font></td>
		</tr>
	</tbody>
</table>


<img =
src=3D"https://app.updates.digicert.com/e/FooterImages/FooterImage1?elq=3D=
79d873a2371444e78ceafb64547dd2b4&amp;siteid=3D1701211846" alt=3D"" =
border=3D"0" width=3D"1px" height=3D"1px" =
class=3D""></div></div></div></div>
</div></blockquote></div><br class=3D""></div></div></div></body></html>=

--Apple-Mail=_963529CA-FF9F-4694-A47E-284484971B78--

--Apple-Mail=_1A1F9B1B-3AB5-47FB-9C1D-F45DD219B0D2
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEj3+7SZ4EDefWZFyCshXHp8eEG+0FAmNGyvUACgkQshXHp8eE
G+0qRQf/cYpjKAhryg9lbDlKRwpx2Oou7YKVuW0FdHSdGZJ+pjBuABe+Ait3II5q
3mDKLf3UmrzAR0WSYmNYOz21YjZVaqEOx2LKo+NDllBAZnr9j+8xMriSrWZnlvn6
h+9kUt7fIl3fd7yWjb2AXm7QrhKgP5IFJr+EknC2s8gCK0ZmUGlZk3sP7Xiu97cR
oKzdc7G1YQ4xvUEWlTfspwhForrOYtilvCjhM9EeGMmdn7QnUKrOQVnGX7OU8/30
bnBRPNkYGnh2tRpGd4wEPLTRkUF8XJ2ODy7AIVphsqNbLopI9tr4QUfb5d2C1v5i
hh66h85DtZ1UKTX96qZYihy47Mq+7w==
=trsu
-----END PGP SIGNATURE-----

--Apple-Mail=_1A1F9B1B-3AB5-47FB-9C1D-F45DD219B0D2--


From win-pv-devel-bounces@lists.xenproject.org Wed Oct 12 14:31:01 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Oct 2022 14:31:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.421235.666448 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oicl9-0007JW-Ai; Wed, 12 Oct 2022 14:30:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 421235.666448; Wed, 12 Oct 2022 14:30:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oicl9-0007JP-7s; Wed, 12 Oct 2022 14:30:59 +0000
Received: by outflank-mailman (input) for mailman id 421235;
 Wed, 12 Oct 2022 14:30:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dyd4=2N=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1oicl8-0007JJ-2U
 for win-pv-devel@lists.xenproject.org; Wed, 12 Oct 2022 14:30:58 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7bb6e7e1-4a3a-11ed-91b4-6bf2151ebd3b;
 Wed, 12 Oct 2022 16:30:56 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id bj12so38301275ejb.13
 for <win-pv-devel@lists.xenproject.org>; Wed, 12 Oct 2022 07:30:56 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7bb6e7e1-4a3a-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=iFcKHTBkFeJLANcJcblxBbQctESpNOpRYXig4GZmBz8=;
        b=EfmCvVo9hw2krd7rwsBNbu9cD4Vptb3iZ8Uv2pM0q12LNIApFRm0hroedwGnmr/faO
         NRJ2EO0StQYsAnV8+2H+8J0zwffcVso5bFgMlxVDP4MDUzAuHnqrL+g2aigUfB3IDUbQ
         GEIzao1YSA3o58Sm51Tq0JLMwpbGZ47U7sOoAxoJGoMfNSAVY77yeynBhkJV1KJPO2ld
         DgeBf0whWXsm72Vs3QvbgKtt8arY582SX1/X/jRnsJRft+eK1l5ImN1GNuAGaGoQrrHT
         F7duoFRMS/iC6lPxFKFrgk8+dlHvdgoz+3AdwnhtyHzIFNs3XVrqFqi5JWLC81YawkNT
         JURA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=iFcKHTBkFeJLANcJcblxBbQctESpNOpRYXig4GZmBz8=;
        b=aDnQhI3Pg3JBIkzUsSqPag5Zhiyf4EQ2Fdz/mH3x8j1yFCnhyRW4apaNjygh4bpo7b
         2U2B1jrf3+fTGC2zqTHpUcN4N1t8Jlj6Q4w+aZ8kacrv9glWVoMMqP+OlCpWvVxtS6Dw
         lPInmn0cx1Wy0Bcq+6aMTcld0ZhTyTjc5qNwsnY2/twCpU2iDBvN3jc0ViTvHZZVt1LU
         zgf0q/Y/H138pEEx+J1f/rUb98Hm8e4mW9fD3aXsVyuyHlCy+XrrfaM+xdy8VBcQrAdc
         KDc0Ow3/dP6in3/L4pNq/waZf23AY5XmCYJn2sCzd35r79xtzzhbSn2/6XP/nYvOVGyA
         5cMw==
X-Gm-Message-State: ACrzQf3H66gH7eznTKhNGR77tU9d5jEqlAtgzSjtraA0nL4elVd2VsAI
	bMDjNGqWIQybysUiHDnb3p87m+85AD2mv1PnJ9D8wpMOxPo=
X-Google-Smtp-Source: AMsMyM76iURAiWwIIlR55N/twgYeBs4ey//5TQV4DgU6DFIxFVBzwTBB9cH/CvwTsxyk3p3mxs+Lx2c746LeXc2wZfg=
X-Received: by 2002:a17:907:2c67:b0:78d:49d2:6297 with SMTP id
 ib7-20020a1709072c6700b0078d49d26297mr23475262ejc.21.1665585055769; Wed, 12
 Oct 2022 07:30:55 -0700 (PDT)
MIME-Version: 1.0
References: <CA+bdS9jschdb5um2Vch4orHPUbRVOmTxhhMJfsT6JE3uw6QFZg@mail.gmail.com>
 <766739FC-6BFF-4213-9705-2FC71C18B85E@citrix.com>
In-Reply-To: <766739FC-6BFF-4213-9705-2FC71C18B85E@citrix.com>
From: Paul Durrant <xadimgnik@gmail.com>
Date: Wed, 12 Oct 2022 15:30:44 +0100
Message-ID: <CAAgS=SnWpryf2MZ5600doLcimm-J0c4Yh=okoM4Dvvm-OgKJdw@mail.gmail.com>
Subject: Re: Digicert - XEN: Re-sign files timestamped from September 14-22,
 2022, to get full 11-year timestamp validity
To: George Dunlap <George.Dunlap@citrix.com>
Cc: Paul Durrant <pdurrant@amazon.com>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="00000000000097aaac05ead73d67"

--00000000000097aaac05ead73d67
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi George,

  I don't think we need do anything. The issue appears to be that the
timestamp service was incorrectly configured to anything signed between
Sept 14 and Sept 22 would have a very short signature life. I didn't sign
anything between those dates, so I don't think there is any problem.

  Cheers,

    Paul

On Wed, Oct 12, 2022 at 3:11 PM George Dunlap <George.Dunlap@citrix.com>
wrote:

> Hey Paul,
>
> Does this mean anything to you?  Let me know if you need me to do anythin=
g
> in particular.
>
>  -George
>
> Begin forwarded message:
>
> *From: *Namhai Nguyen <ap@linuxfoundation.org>
> *Subject: **Digicert - XEN: Re-sign files timestamped from September
> 14-22, 2022, to get full 11-year timestamp validity*
> *Date: *27 September 2022 at 01:58:36 BST
> *To: *paul@xen.org, George Dunlap - XEN Project <George.Dunlap@citrix.com=
>
>
> Fwding.
>
>
> ---------- Forwarded message ---------
> From: 'DigiCert' via Accounts Payable <ap@linuxfoundation.org>
> Date: Mon, Sep 26, 2022 at 5:28 PM
> Subject: [ap] [Action Required] Re-sign files timestamped from September
> 14-22, 2022, to get full 11-year timestamp validity
> To: <ap@linuxfoundation.org>
>
>
> New TSA cert with full validity (135 months).
> If you are having trouble reading this email, read the online version
> <https://app.updates.digicert.com/e/es?s=3D1701211846&e=3D638664&elqTrack=
Id=3D9f7f91354c5449a39c8dec628cf9060b&elq=3D79d873a2371444e78ceafb64547dd2b=
4&elqaid=3D11057&elqat=3D1>.
>
>
> [image: DigiCert]
>
> ACTION REQUIRED
> Hello NAMHAI NGUYEN,
>
> You are receiving this email because you may use DigiCert's timestamping
> services with one or more Code Signing or Document Signing Certificates.
>
> From September 14, 2022, at 13:11 MDT (19:11 UTC), to September 22, 2022,
> at 13:18 MDT (19:18 UTC), DigiCert's timestamp .digicert. com and adobe
> .timestamp. digicert. com services mistakenly issued a timestamp
> authority (TSA) certificate with a validity period of only one year. On
> September 22, 2022, we replaced this TSA certificate with a new TSA
> certificate with a 135-month (11-year) validity period, the maximum allow=
ed
> by current industry standards.
>
> To take advantage of the new TSA certificate=E2=80=99s full 11-year valid=
ity, you
> need to re-sign files timestamped during the affected period.
>
> *How does this affect me? *
>
> The maximum validity of a Code Signing or Document Signing Certificate is
> only three years, which is why it is important that they are timestamped
> with a TSA certificate with the longest validity period possible.
> Timestamping preserves the signature on your files or software, allowing
> them to be accepted by operating systems and other software after your Co=
de
> Signing or Document Signing Certificate expires. When the signature is
> evaluated, the timestamp allows the validity of the signature to be check=
ed
> against the time it was signed, instead of the current time when the
> software is being executed.
>
> Timestamping code or files with DigiCert's new TSA certificate will
> increase the validity of your signatures to 11 years.
>
> *What do I need to do? *
>
> To take advantage of the new TSA certificate's 11-year validity period,
> you must first do a self-audit to determine which of your files or code
> were signed when the one-year TSA certificate was active from September 1=
4,
> 2022, at 13:11 MDT (19:11 UTC), to September 22, 2022, at 13:18 MDT (19:1=
8
> UTC).
>
> Once you have parsed the list of affected files or code, you can either:
>
>    1. Re-sign files or code that were previously signed and timestamped
>    during the affected period and apply the new 11-year timestamp signatu=
re.
>    2. Re-apply the new 11-year timestamp signature to files that were
>    previously signed and timestamped during the affected period*.
>
> *For information about applying timestamps to previously signed files, se=
e
> Microsoft's Adding Time Stamps to Previously Signed Files
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8454&elqTrackId=3D693=
ca564b9824bf2b16fc620b4579dc5&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> and TimeStamp Command Options
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8453&elqTrackId=3Ddc8=
3730c67eb46faa509fde9245af463&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>.
>
>
> *Need help?*
>
> See our knowledgebase article Troubleshooting Timestamping Problems
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8455&elqTrackId=3Dce8=
1768e4eb64caab010fd62baa1a4b0&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> for common timestamping problems and tips for solving them.
>
> See Code Signing Support
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8452&elqTrackId=3Da62=
6f5f35b224f0493a817e3097ede81&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> for instructions on signing and re-signing objects.
>
> See our blog Best Practices for Timestamping
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D8451&elqTrackId=3Db11=
3fe394c824498a6953637adcab41f&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> for background on timestamping and its importance to the signing process.
>
> If you have additional questions or concerns, contact your account manage=
r
> or DigiCert Support
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D6910&elqTrackId=3D817=
d855091504519b6fdd81a0923ab67&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> .
>
> Thank you,
> DigiCert Team
> Questions? Contact *Support*
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D4233&elqTrackId=3D7ab=
b1c21aa7b4b45b57fe1d18f81139f&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> This service message was delivered to ap@linuxfoundation.org as the
> registered email address of a user of a DigiCert product, in order to
> provide important service-related information.
>
> DigiCert, Inc. 2801 Thanksgiving Way, Suite 500, Lehi, Utah 84043 | *Cont=
act
> Us*
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D4233&elqTrackId=3Dc6d=
3d7e3775c461c87bd7473892d480b&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> | *Privacy Policy*
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D4100&elqTrackId=3D1f2=
8e71374794f7cac3a2cc818556b4d&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
> =C2=A9 2022 DigiCert, Inc. All rights reserved.
>
> <https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000001h=
wjiAAA_11057&mth=3DMay%2C%202022&s=3D1701211846&lid=3D7700&elqTrackId=3D512=
1a8d932ce41238fc463480e39497a&elq=3D79d873a2371444e78ceafb64547dd2b4&elqaid=
=3D11057&elqat=3D1>
>
>
>

--00000000000097aaac05ead73d67
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi George,<div><br></div><div>=C2=A0 I don&#39;t think we =
need do anything. The issue appears to be that the timestamp service was in=
correctly configured to anything signed between Sept 14 and Sept 22 would h=
ave a very short signature life. I didn&#39;t sign anything between those d=
ates, so I don&#39;t think there is any problem.</div><div><br></div><div>=
=C2=A0 Cheers,</div><div><br></div><div>=C2=A0 =C2=A0 Paul</div></div><br><=
div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Oct=
 12, 2022 at 3:11 PM George Dunlap &lt;<a href=3D"mailto:George.Dunlap@citr=
ix.com">George.Dunlap@citrix.com</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: break-word;">=
Hey Paul,<div><br></div><div>Does this mean anything to you?=C2=A0 Let me k=
now if you need me to do anything in particular.</div><div><br></div><div>=
=C2=A0-George<br><div><div><div><br><blockquote type=3D"cite"><div>Begin fo=
rwarded message:</div><br><div style=3D"margin:0px"><span style=3D"font-fam=
ily:-webkit-system-font,&quot;Helvetica Neue&quot;,Helvetica,sans-serif;col=
or:rgb(0,0,0)"><b>From: </b></span><span style=3D"font-family:-webkit-syste=
m-font,&quot;Helvetica Neue&quot;,Helvetica,sans-serif">Namhai Nguyen &lt;<=
a href=3D"mailto:ap@linuxfoundation.org" target=3D"_blank">ap@linuxfoundati=
on.org</a>&gt;<br></span></div><div style=3D"margin:0px"><span style=3D"fon=
t-family:-webkit-system-font,&quot;Helvetica Neue&quot;,Helvetica,sans-seri=
f;color:rgb(0,0,0)"><b>Subject: </b></span><span style=3D"font-family:-webk=
it-system-font,&quot;Helvetica Neue&quot;,Helvetica,sans-serif"><b>Digicert=
 - XEN: Re-sign files timestamped from September 14-22, 2022, to get full 1=
1-year timestamp validity</b><br></span></div><div style=3D"margin:0px"><sp=
an style=3D"font-family:-webkit-system-font,&quot;Helvetica Neue&quot;,Helv=
etica,sans-serif;color:rgb(0,0,0)"><b>Date: </b></span><span style=3D"font-=
family:-webkit-system-font,&quot;Helvetica Neue&quot;,Helvetica,sans-serif"=
>27 September 2022 at 01:58:36 BST<br></span></div><div style=3D"margin:0px=
"><span style=3D"font-family:-webkit-system-font,&quot;Helvetica Neue&quot;=
,Helvetica,sans-serif;color:rgb(0,0,0)"><b>To: </b></span><span style=3D"fo=
nt-family:-webkit-system-font,&quot;Helvetica Neue&quot;,Helvetica,sans-ser=
if"><a href=3D"mailto:paul@xen.org" target=3D"_blank">paul@xen.org</a>, Geo=
rge Dunlap - XEN Project &lt;<a href=3D"mailto:George.Dunlap@citrix.com" ta=
rget=3D"_blank">George.Dunlap@citrix.com</a>&gt;<br></span></div><br><div><=
div dir=3D"ltr">Fwding.<div><br><br><div class=3D"gmail_quote"><div dir=3D"=
ltr" class=3D"gmail_attr">---------- Forwarded message ---------<br>From: <=
strong class=3D"gmail_sendername" dir=3D"auto">&#39;DigiCert&#39; via Accou=
nts Payable</strong> <span dir=3D"auto">&lt;<a href=3D"mailto:ap@linuxfound=
ation.org" target=3D"_blank">ap@linuxfoundation.org</a>&gt;</span><br>Date:=
 Mon, Sep 26, 2022 at 5:28 PM<br>Subject: [ap] [Action Required] Re-sign fi=
les timestamped from September 14-22, 2022, to get full 11-year timestamp v=
alidity<br>To:  &lt;<a href=3D"mailto:ap@linuxfoundation.org" target=3D"_bl=
ank">ap@linuxfoundation.org</a>&gt;<br></div><br><br><u></u>








<div style=3D"min-width:260px;min-height:100%;padding:0px;margin:0px auto;b=
ackground-color:rgb(212,214,215)"><div style=3D"display:none;font-size:1px;=
color:rgb(51,51,51);line-height:1px;max-height:0px;max-width:0px;opacity:0;=
overflow:hidden">
    New TSA cert with full validity (135 months).
</div><table align=3D"center" width=3D"550">
	<tbody>
		<tr>
			<td align=3D"center"><font face=3D"Arial" size=3D"1">If you are having t=
rouble reading this email, <a href=3D"https://app.updates.digicert.com/e/es=
?s=3D1701211846&amp;e=3D638664&amp;elqTrackId=3D9f7f91354c5449a39c8dec628cf=
9060b&amp;elq=3D79d873a2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elq=
at=3D1" target=3D"_blank">read the online version</a>. </font></td>
		</tr>
	</tbody>
</table>



	<table style=3D"background:rgb(212,214,215)" width=3D"100%" cellspacing=3D=
"0" cellpadding=3D"0">
<tbody><tr><td><table style=3D"max-width:600px;min-width:300px;margin:0px a=
uto" width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"background-color:rgb(255,255,255);line-height:18px;=
padding:10px 0px;border-style:none"><span><table width=3D"550" align=3D"cen=
ter">
	<tbody>
	</tbody>
</table>
</span></td></tr></tbody></table><table style=3D"max-width:600px;min-width:=
300px;margin:0px auto" width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"background:rgb(255,255,255)"><table width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td><table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"text-align:left;vertical-align:top;font-size:0px">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Arial,Helvetica,sans-serif;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"height:5px;background-color:transparent;line-height=
:18px"><div style=3D"height:5px;display:none"> </div></td></tr></tbody></ta=
ble>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Arial,Helvetica,sans-serif;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"background-color:transparent;line-height:0;padding:=
0px;text-align:center">

<img src=3D"https://img04.en25.com/EloquaImages/clients/DigicertWSS/%7B1975=
391b-57aa-41f0-a8de-86f0f409c1e3%7D_DigiCertLogo_blue.png" alt=3D"DigiCert"=
 style=3D"width: 100%; height: auto; max-width: 50%;" width=3D"100" height=
=3D"32">
</td></tr><tr><td style=3D"height:30px;background-color:transparent;line-he=
ight:18px"><div style=3D"height:30px;display:none"> </div></td></tr></tbody=
></table>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Arial,Helvetica,sans-serif;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"height:5px;background-color:transparent;line-height=
:18px"><div style=3D"height:5px;display:none"> </div></td></tr></tbody></ta=
ble></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody><=
/table><table style=3D"max-width:600px;min-width:300px;margin:0px auto" wid=
th=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"background:rgb(0,64,118)"><table width=3D"100%" cel=
lspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td><table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"text-align:left;vertical-align:top;font-size:0px">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Arial,Helvetica,sans-serif;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"background-color:transparent;line-height:0;padding:=
0px;text-align:center">

  <img src=3D"https://img04.en25.com/EloquaImages/clients/DigicertWSS/%7Ba2=
a70198-588f-44f1-9dc6-b5afac05c64e%7D_left-img.png" style=3D"width: 100%; h=
eight: auto; max-width: 100px;" width=3D"100" height=3D"50">
</td></tr></tbody></table>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Arial,Helvetica,sans-serif;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"background-color:transparent;line-height:18px;paddi=
ng:15px 10px 0px"><div style=3D"display:inline-block;width:100%"><div style=
=3D"line-height:18px;text-align:center"><span style=3D"color:rgb(255,255,25=
5);font-size:18px">ACTION REQUIRED</span></div></div></td></tr></tbody></ta=
ble>

<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Roboto,Arial;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"background-color:transparent;line-height:0;padding:=
0px;text-align:center">

  <img src=3D"https://img04.en25.com/EloquaImages/clients/DigicertWSS/%7B6f=
0766d5-56d2-4af2-977b-6419a88f6416%7D_right-img.png" style=3D"width: 100%; =
height: auto; max-width: 100px;" width=3D"100" height=3D"50">
</td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></tab=
le></td></tr></tbody></table><table style=3D"max-width:600px;min-width:300p=
x;margin:0px auto" width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"background:rgb(255,255,255)"><table width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td><table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"text-align:left;vertical-align:top;font-size:0px">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Roboto,Arial;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"background-color:transparent;line-height:18px;paddi=
ng:10px"><div style=3D"display:inline-block;width:100%">
=09
=09
=09
=09
=09
=09
=09
	</div></td></tr><tr><td style=3D"background-color:transparent;line-height:=
18px;padding:30px 20px">
=09
=09
=09
=09
=09
	<div style=3D"display:inline-block;width:100%">
=09
=09
=09
=09
=09
	<div style=3D"line-height:19.5px"><span>Hello NAMHAI NGUYEN,</span></div><=
div><br></div>
		<div><span>
You are receiving this email because you may use DigiCert&#39;s timestampin=
g services with one or more Code Signing or Document Signing Certificates.
         =20
<br><br>         =20
>From September 14, 2022, at 13:11 MDT (19:11 UTC), to September 22, 2022, a=
t 13:18 MDT (19:18 UTC), DigiCert&#39;s timestamp<span style=3D"font-size:1=
px;color:rgb(255,255,255)"> </span>.digicert.<span style=3D"font-size:1px;c=
olor:rgb(255,255,255)"> </span>com and adobe<span style=3D"font-size:1px;co=
lor:rgb(255,255,255)"> </span>.timestamp.<span style=3D"font-size:1px;color=
:rgb(255,255,255)"> </span>digicert.<span style=3D"font-size:1px;color:rgb(=
255,255,255)"> </span>com services mistakenly issued a timestamp authority =
(TSA) certificate with a validity period of only one year. On September 22,=
 2022, we replaced this TSA certificate with a new TSA certificate with a 1=
35-month (11-year) validity period, the maximum allowed by current industry=
 standards.
         =20
          <br><br>
To take advantage of the new TSA certificate=E2=80=99s full 11-year validit=
y, you need to re-sign files timestamped during the affected period.       =
  =20
         =20
</span></div>
      <div><br></div>
<div style=3D"line-height:22.5px"><strong style=3D"color:rgb(0,113,206);fon=
t-size:15px">How does this affect me? </strong><br><br></div>
<div><span>
The maximum validity of a Code Signing or Document Signing Certificate is o=
nly three years, which is why it is important that they are timestamped wit=
h a TSA certificate with the longest validity period possible. Timestamping=
 preserves the signature on your files or software, allowing them to be acc=
epted by operating systems and other software after your Code Signing or Do=
cument Signing Certificate expires. When the signature is evaluated, the ti=
mestamp allows the validity of the signature to be checked against the time=
 it was signed, instead of the current time when the software is being exec=
uted.=20
  <br><br>
  Timestamping code or files with DigiCert&#39;s new TSA certificate will i=
ncrease the validity of your signatures to 11 years.
</span></div>
     =20
      <div><br></div>

<div style=3D"line-height:22.5px"><strong style=3D"color:rgb(0,113,206);fon=
t-size:15px">What do I need to do? </strong><br><br></div>
<div><span>
To take advantage of the new TSA certificate&#39;s 11-year validity period,=
 you must first do a self-audit to determine which of your files or code we=
re signed when the one-year TSA certificate was active from September 14, 2=
022, at 13:11 MDT (19:11 UTC), to September 22, 2022, at 13:18 MDT (19:18 U=
TC).
<br><br>
Once you have parsed the list of affected files or code, you can either:
  <ol>
    <li>Re-sign files or code that were previously signed and timestamped d=
uring the affected period and apply the new 11-year timestamp signature.</l=
i>
    <li>Re-apply the new 11-year timestamp signature to files that were pre=
viously signed and timestamped during the affected period*.</li>
  </ol>
 *For information about applying timestamps to previously signed files, see=
 Microsoft&#39;s <a href=3D"https://app.updates.digicert.com/e/er?om_ext_ci=
d=3Ddc_email_7014z000001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D17012=
11846&amp;lid=3D8454&amp;elqTrackId=3D693ca564b9824bf2b16fc620b4579dc5&amp;=
elq=3D79d873a2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" ta=
rget=3D"_blank">Adding Time Stamps to Previously Signed Files</a> and <a hr=
ef=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z0000=
01hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D8453&a=
mp;elqTrackId=3Ddc83730c67eb46faa509fde9245af463&amp;elq=3D79d873a2371444e7=
8ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank">TimeSt=
amp Command Options</a>.=20
</span></div>
     =20
      <div><br></div>
    =20


<div style=3D"line-height:22.5px"><strong style=3D"color:rgb(0,113,206);fon=
t-size:15px">Need help?</strong><br><br></div>
<div><span>
  See our knowledgebase article <a href=3D"https://app.updates.digicert.com=
/e/er?om_ext_cid=3Ddc_email_7014z000001hwjiAAA_11057&amp;mth=3DMay%2C%20202=
2&amp;s=3D1701211846&amp;lid=3D8455&amp;elqTrackId=3Dce81768e4eb64caab010fd=
62baa1a4b0&amp;elq=3D79d873a2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&am=
p;elqat=3D1" target=3D"_blank">Troubleshooting Timestamping Problems</a> fo=
r common timestamping problems and tips for solving them. =20
 <div><br></div>
  See <a href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_emai=
l_7014z000001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;l=
id=3D8452&amp;elqTrackId=3Da626f5f35b224f0493a817e3097ede81&amp;elq=3D79d87=
3a2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_bl=
ank">Code Signing Support</a> for instructions on signing and re-signing ob=
jects.
  <div><br></div>
 =20
  See our blog <a href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=
=3Ddc_email_7014z000001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D170121=
1846&amp;lid=3D8451&amp;elqTrackId=3Db113fe394c824498a6953637adcab41f&amp;e=
lq=3D79d873a2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" tar=
get=3D"_blank">Best Practices for Timestamping</a> for background on timest=
amping and its importance to the signing process.
   <div><br></div>
If you have additional questions or concerns, contact your account manager =
or <a href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7=
014z000001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=
=3D6910&amp;elqTrackId=3D817d855091504519b6fdd81a0923ab67&amp;elq=3D79d873a=
2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blan=
k">DigiCert Support</a>.<br><br></span></div>

<div style=3D"line-height:19.5px">
<span>Thank you,<br>DigiCert Team</span></div><div style=3D"line-height:19.=
5px"></div></div></td></tr><tr><td style=3D"height:30px;background-color:tr=
ansparent;line-height:18px"><div style=3D"height:30px;display:none"> </div>=
</td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></tab=
le></td></tr></tbody></table><table style=3D"max-width:600px;min-width:300p=
x;margin:0px auto" width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"background:rgb(255,255,255)"><table width=3D"100%" =
cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td>
	<table width=3D"100%" cellspacing=3D"0" cellpadding=3D"0">
<tbody><tr><td style=3D"text-align:left;vertical-align:top;font-size:0px">
<table cellpadding=3D"0" cellspacing=3D"0" style=3D"vertical-align:top;disp=
lay:inline-table;background-color:transparent;table-layout:fixed;font-famil=
y:Roboto,Arial;font-size:13px;max-width:100%">
<tbody><tr><td style=3D"background-color:rgb(0,64,118);line-height:18px;pad=
ding:15px 10px"><div style=3D"display:inline-block;width:100%"><div style=
=3D"text-align:center"><span style=3D"color:rgb(255,255,255);font-size:16px=
">Questions? Contact <a href=3D"https://app.updates.digicert.com/e/er?om_ex=
t_cid=3Ddc_email_7014z000001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1=
701211846&amp;lid=3D4233&amp;elqTrackId=3D7abb1c21aa7b4b45b57fe1d18f81139f&=
amp;elq=3D79d873a2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1=
" target=3D"_blank"><u>Support</u></a></span></div></div></td></tr></tbody>=
</table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbo=
dy></table></td></tr></tbody></table>

<table align=3D"center" border=3D"0" cellpadding=3D"0" cellspacing=3D"0" wi=
dth=3D"600">
	<tbody align=3D"center">
		<tr>
			<td style=3D"padding:10px 0px 0px 30px"><font face=3D"Arial, Helvetica, =
sans-serif" style=3D"font-size:10px;line-height:14px">This service message =
was delivered to=C2=A0<a href=3D"mailto:ap@linuxfoundation.org" target=3D"_=
blank">ap@linuxfoundation.org</a> as the registered email address of a user=
 of a DigiCert product, in order to provide important service-related infor=
mation.<br>
			=C2=A0<br>
			DigiCert, Inc. 2801 Thanksgiving Way, Suite 500, Lehi, Utah 84043 | <a h=
ref=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7014z000=
001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=3D4233&=
amp;elqTrackId=3Dc6d3d7e3775c461c87bd7473892d480b&amp;elq=3D79d873a2371444e=
78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blank"><u>Co=
ntact Us</u></a> | <a href=3D"https://app.updates.digicert.com/e/er?om_ext_=
cid=3Ddc_email_7014z000001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D170=
1211846&amp;lid=3D4100&amp;elqTrackId=3D1f28e71374794f7cac3a2cc818556b4d&am=
p;elq=3D79d873a2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" =
target=3D"_blank"><u>Privacy Policy</u></a><br>
			=C2=A9 2022 DigiCert, Inc. All rights reserved.<br>
			<a href=3D"https://app.updates.digicert.com/e/er?om_ext_cid=3Ddc_email_7=
014z000001hwjiAAA_11057&amp;mth=3DMay%2C%202022&amp;s=3D1701211846&amp;lid=
=3D7700&amp;elqTrackId=3D5121a8d932ce41238fc463480e39497a&amp;elq=3D79d873a=
2371444e78ceafb64547dd2b4&amp;elqaid=3D11057&amp;elqat=3D1" target=3D"_blan=
k"><img height=3D"1" src=3D"https://images.updates.digicert.com/EloquaImage=
s/clients/SymantecWSS/%7Be4073ab4-7254-4976-bf80-d455b7b85112%7D_spacer.gif=
" style=3D"width: 100%; height: auto; max-width: 1px;" width=3D"1"></a> </f=
ont></td>
		</tr>
	</tbody>
</table>


<img src=3D"https://app.updates.digicert.com/e/FooterImages/FooterImage1?el=
q=3D79d873a2371444e78ceafb64547dd2b4&amp;siteid=3D1701211846" alt=3D"" bord=
er=3D"0" width=3D"1px" height=3D"1px"></div></div></div></div>
</div></blockquote></div><br></div></div></div></div></blockquote></div>

--00000000000097aaac05ead73d67--


From win-pv-devel-bounces@lists.xenproject.org Thu Oct 13 08:30:38 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Oct 2022 08:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.421736.667322 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oitbv-0004nr-R3; Thu, 13 Oct 2022 08:30:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 421736.667322; Thu, 13 Oct 2022 08:30:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1oitbv-0004nk-O6; Thu, 13 Oct 2022 08:30:35 +0000
Received: by outflank-mailman (input) for mailman id 421736;
 Thu, 13 Oct 2022 08:30:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xyzW=2O=citrix.com=prvs=2789611eb=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1oitbu-0004ne-R6
 for win-pv-devel@lists.xenproject.org; Thu, 13 Oct 2022 08:30:34 +0000
Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com
 [216.71.145.142]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c0f63ce-4ad1-11ed-91b4-6bf2151ebd3b;
 Thu, 13 Oct 2022 10:30:32 +0200 (CEST)
Received: from mail-bn8nam12lp2176.outbound.protection.outlook.com (HELO
 NAM12-BN8-obe.outbound.protection.outlook.com) ([104.47.55.176])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 13 Oct 2022 04:30:29 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by PH0PR03MB6381.namprd03.prod.outlook.com (2603:10b6:510:b4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.21; Thu, 13 Oct
 2022 08:30:27 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::c13e:e7e6:33c:5dfc%7]) with mapi id 15.20.5676.032; Thu, 13 Oct 2022
 08:30:27 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c0f63ce-4ad1-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1665649832;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=Pes7bS6/M+jrnqJvBxIA5idiVTt9/QH8K4Xv4KN0P9Q=;
  b=FBW4AY1WqprT+qkwDCzDSFHB/gGAcOnX0MrUwG6mUwZ2k+NOvwjx7cLY
   gI7YfDXhUZaJLTKIvKk3l19qPw2vyd45Aq9Z7ykurXTsLUmBaV58J862q
   PjYqop3mmgDfxNkxjgk8GU0xE8ax5eTop236U5cjW7I4MqY+ENHZjcfgh
   A=;
X-IronPort-RemoteIP: 104.47.55.176
X-IronPort-MID: 83053092
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:SVjEPaoqa2S474q7bI4XJGqYbKFeBmIGZBIvgKrLsJaIsI4StFCzt
 garIBnVPKqJZGKhfNoiaY7jpB4DvsCAzNMwTwpq/ns0ESgX85uZCYyVIHmrMnLJJKUvbq7FA
 +Y2MYCccZ9uHhcwgj/3b9ANeFEljfngqoLUUbKCYGYpLeNdYH9JoQp5nOIkiZJfj9G8Agec0
 fv/uMSaM1K+s9JOGjt8B5mr9VU+4ZwehBtC5gZkPKgS5weH/5UoJMl3yZ+ZfiOQrrZ8RoZWd
 86bpJml82XQ+QsaC9/Nut4XpWVTH9Y+lSDX4pZnc/DKbipq/0Te4Y5iXBYoUm9Fii3hojxE4
 I4lWapc6+seFvakdOw1C3G0GszlVEFM0OevzXOX6aR/w6BaGpdFLjoH4EweZOUlFuhL7W5m5
 /Y/cjEcLSC6t+vrmvGwQMZd3sIaI5y+VG8fkikIITDxK98DGMqGaYOaoNhS0XE3m9xEGuvYa
 4wBcz1zYR/cYhpJfFAKFJY5m+TujX76G9FagAvN+exrvC6OkUooj+aF3Nn9I7RmQe1Ql1yEp
 2SA/23jHBwLHNee1SCE4jSngeqncSbTCNlKSebgp6QCbFu790MCMgdVfwuA+eSYlmGXBcxvc
 Q8G9X97xUQ13AnxJjXnZDWoqXKFuxEaWtl4HOgz6QXLwa3Riy6GB25BViAEZNE4ucseQT0xy
 kTPj97vHSZosrCeVTSa7Lj8kN+pES0cLGtHbylUSwIAuoPnuNtq0UyJSct/GqmoiNGzASv33
 z2BsCk5gfMUkNIP0KK4u1vAhlpAu6T0c+L83S2PNkrN0++zTNXNi1CAgbQD0ct9EQ==
IronPort-HdrOrdr: A9a23:qJ4CuKDpGlj357XlHegSsceALOsnbusQ8zAXPh9KJCC9I/bzqy
 nxpp8mPEfP+U4ssQIb6Ku90c67MDjhHP9OkMEs1NKZMDUO11HYSL2KgbGC/9SkIVyGygc/79
 YrT0EdMqyWMbESt6+Tj2eF+pQbsb+6GcuT9ITjJgJWPGRXgtZbnmVE42igcnFedU1jP94UBZ
 Cc7s1Iq36LYnIMdPm2AXEDQqzqu8DLvIiOW29LOzcXrC21yR+44r/zFBaVmj0EVSlU/Lsk+W
 /Z1yTk+6SYte2hwBO07R6d030Woqqu9jJwPr3NtiEnEESutu9uXvUiZ1S2hkF1nAho0idurD
 CDmWZlAy050QKqQoj8m2qR5+Cn6kdi15aq8y7lvVLz5cP+Xz40EMxHmMZQdQbY8VMpuJVm3L
 tMxH/xjeshMfrsplWJ2zHzbWAfqmOk5X451eIDhX1WVoUTLLdXsIwE5UtQVJMNBjjz5owrGP
 RnSJi03oceTXqKK3TC+mV/yt2lWXo+Wh+AX0gZo8SQlzxbhmpwwUcUzNEW2n0A6JU+QZ9Z4P
 msCNUfqJheCssNKa5tDuYIRsW6TmTLXBLXKWqXZU/qEakWUki92aIfII9Fl91CVKZ4vafawq
 6xL2+wnVRCBX7GGImJwIBB9AzLTSG0QSnto/sul6REhg==
X-IronPort-AV: E=Sophos;i="5.95,180,1661832000"; 
   d="scan'208";a="83053092"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=meun0ST4wJbjFRsm0lUNixGDkdWoH1vgX9e7g9UjJuzIByUgFz0w6iJfzCf+z/H/k7zFciVM6tkuRIibjdcfLCnVthxBL6F9LKt1Vp7O33HXg3NMjCv9xOcF0/K+ewfmfIXNW1Cb7M+p3JwO+Qh+bx72Axszgy+lohtxe+vdxMJWSZS9jrYOozJt6PBpq8MiGn7Ea1jTBwu6zdVmPaZeiTqnm+Kzzlyuzq+siz1PB91Eva8Eh4B1EAe3VDYv7mb/mWqvjhdpr4kHCvH4vWWvK3GxmDwbDXTtmIPBAkBEGJianUbYD1dmfHYrdftZWh9cdiVWv2MzjL02+ZKJwStIcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pes7bS6/M+jrnqJvBxIA5idiVTt9/QH8K4Xv4KN0P9Q=;
 b=ofsRMKM+MKVsNk1P3SEXTqc3zCI5AFYRVJgSPpQlNay93zOSVrAQ0D6x41IZji3beFBqqUAo4SgLyiS6rhv4lqZYYeWXblmgFJz/LOZVCqY2qDKGGeJhPXW3cu5hPlES5rB2GKiZjrbsMR7pHOX1U5mjkLCKMRV+c4TycUMEzop3ULHYLqyf45Lfx7TKk49Btta1xRBP27MAOLwjIda30t7nowlAL9bgLMO8zoWs5tFmEOGPaxoGs30kXF47w7g7CtyowPqVQtnQDt+COzmqY+iNGycyBlKKBMaGydLWqQqdpeHsh+BwBTEpQELWoJvdedVNJpkrTZnaJ+857MLPpA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Pes7bS6/M+jrnqJvBxIA5idiVTt9/QH8K4Xv4KN0P9Q=;
 b=QdKqiej+rk+P/ZyXDJBnJ22SVoNjPhyhX4VUq6wXwpEBN8aenDN87FBgiGxF7GhaXmJZWCYQBdKMUH1biVit4q6ByHw6ol3PrZLcdFLoypfBMUqCZ5B+yXXocgxulxK9GEju9wYsA8PmNrUpxCT0p1th0wU45AeoMOCZLJtn2y8=
From: Martin Harvey <martin.harvey@citrix.com>
To: Paul Durrant <xadimgnik@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: Races in power IRP handling path.
Thread-Topic: Races in power IRP handling path.
Thread-Index: AdjdfgIYsgA4b4/cQtWn6fzH2WpcQgAAk9gAACyk8cAAAcuBAAAo7+EQ
Date: Thu, 13 Oct 2022 08:30:27 +0000
Message-ID:
 <MW4PR03MB63472FDB62DF65354CA26CF29A259@MW4PR03MB6347.namprd03.prod.outlook.com>
References:
 <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
 <MW4PR03MB63476152721F8345C3DAC89D9A229@MW4PR03MB6347.namprd03.prod.outlook.com>
 <d0c4ee02-52f9-6a71-2acc-c60c803d9b85@xen.org>
In-Reply-To: <d0c4ee02-52f9-6a71-2acc-c60c803d9b85@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MW4PR03MB6347:EE_|PH0PR03MB6381:EE_
x-ms-office365-filtering-correlation-id: 8be65847-8587-4161-1d9e-08daacf52e5a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 1w1eOC+imkyImV1LneDmwPOeE+mUVzZg1Ay8Zp89edCYG+53fLJN5SDJCUrIbEYtvdwZM70pE0rPBQeOwnCxjEd4PLs7w99Frfatzfd166cPrOPuzpl0Qljy6nD8q8A2KP3yLXHbdS/dNldfVLLsbItCXHU9kf/zZG+M8o2njVTZoCsitVYc5s9k+f6Kj1x3WzaNB4gfzX3UHYD2uGMA/zwDwOFPIkQqVJrbsvPE7xm56mYQyhKktXX42snvnbHorPG8qx5/oJDSJxAVjhwct4etvk3KrhRdVv7tfpGcLwIm/qTK0lPfvnl7hca/8qA2kLBIDGWHT+devUYj6IC2NInDeFCE4d5Bl0DKWVk8FQCU/o4eGAg0ZEkOqb/zzlbfLLV1YLAn8syRcTMr0LI+nk8iFl4ZL1LRMafDmB6iUc9dXym9RE6TbQxLpg4ZtWqATMHxNW+XqsbAnvcl3ixIPGegx++stVOcz+5Z43GJTljmmfIpv+UINquIOY81HhdER+y16evYOEOgz4iAGN102br4foYr5BDqkqUSH6tfHa3jD4XRKnGMKT9YC7Jwujg+mQqx390naTqGfbjZucX1y7ZBr0FteiULRXHmZ6ihlbSn6OOUsBbFUDZYQA2n6NjYTctnaCV9g1pGCkaitcwqf1aI1Jya0dQgYchWFV8XVTLf29nZLKlu6v1DX9LjNPho3GnNvTXaT7Wi+YpuVllpdBVfOu31qwBfmNlroC/xOwrE+HxQVwZVu/eOulNtbmpAkB5E7z/pUDVemRy2jMS7bg==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(396003)(39860400002)(376002)(136003)(366004)(346002)(451199015)(478600001)(7696005)(6506007)(38070700005)(33656002)(53546011)(71200400001)(86362001)(38100700002)(55016003)(122000001)(186003)(9686003)(83380400001)(82960400001)(52536014)(2906002)(41300700001)(8676002)(316002)(26005)(76116006)(66946007)(5660300002)(110136005)(8936002)(64756008)(66446008)(66476007)(66556008)(44832011)(4744005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MHMrU3hiQTdSSS9vblhLUzdBaDFBY1oyM01MUDNhbW8yZFNpVzJpMUovUTFM?=
 =?utf-8?B?QWRCdmRuejBhcHc4WVhKeS9VY1djWXpFa3FRQ3NOTTlSOWt0b2ZsK0V2YmFD?=
 =?utf-8?B?eGo2b3ZDUVRYbUlPSm1xQnZKUVNpL1VnK3BtczdCTHMvV2M5bzYrRW96ZW9K?=
 =?utf-8?B?Qmk5MTBWeThKdlhFWHQ5S2pNbzRWakR5WnBmSnRrZEpOLzFLbFR1NEEzenpl?=
 =?utf-8?B?bDcyck5nTTgyeW14R2ovUkdMc3k1YzBNMG1hZFFWRjBzWDVDOFlJWXczdDZV?=
 =?utf-8?B?dlFNc2Y1Ujc2V2M2V3J5a1lTS3FJdVRVcmNxakhzckZtMDBTMkxCY0s0S3Q2?=
 =?utf-8?B?aFdCQllBZTVJTUxPNnZOZ3M5bVk4azRnUVEwS0EzRzNIWEMwSVJZQktndzRZ?=
 =?utf-8?B?SDlZd29qSy9yR0NHZmU5cGZTLzlOODZhdHpnL1dNMlE3MitoRm4rbTJHOU1r?=
 =?utf-8?B?VmtydHFabUlHQll4MmJBQTZkQk9QY0tmTE9vbHNmRW5HL3ZvV2w2eGpPZEQ4?=
 =?utf-8?B?dng0K0lIQS9lYnRLSng5YWlKSThDYm11anFoQ25oZmNCU2kveDZVSDJWQmpp?=
 =?utf-8?B?b3pTSldhelFKbXkzM0R4eTk5bFhQRnpVRy9YN05yMldhQ0JFeDRjOHlBRWVk?=
 =?utf-8?B?d1RNWkNrSXltcExZVkExU2M1QlU2L1FBdFI4Q05FWnczUGo5TzZNeUs5Tjlv?=
 =?utf-8?B?dWlhUjEvRmtndTdaS2tpVVlUbnRZbGZPek0xcVNrem9ZRmliUEVKa3VzTThI?=
 =?utf-8?B?Qm91SmtSdm95d05la1RpbkRtSnFzM0VYWExvYnJJNmhHNXhsU1BKMUcxWW90?=
 =?utf-8?B?bDVFajdFV0MybkZSdE9wcm5ENXFBNmhmeFVaTWRZZ0x0cDhqTnBEaWVGbzlo?=
 =?utf-8?B?VlpoM1hyTEs1b05Rem1HenZLa0Q4cTJ2STBlZyswVkRUaHFJZjIvS0EwZDdM?=
 =?utf-8?B?ZGQ2MGlTQ3BqeFB2d0dBSm1CVFI1R01MaFRIQ3p0R2VWdmtQVEFOOUxjVlQ2?=
 =?utf-8?B?UTB1aUV3Q1ZvblZmRlZXS3laa3lMVnRmWS9sd1RqQlptZVlJQ1I0U2kyRWxU?=
 =?utf-8?B?RTdEYlNWODhlR2RidVN5c2NRczl4aEg0ZURyRzZRMjZLcmtlMGhjTXpERE4z?=
 =?utf-8?B?VGo3dHp5T1hEL2t5T0pBd3RveVYrUWZqa0FQTHRVa2RoTit3TmtWYU9xcHZn?=
 =?utf-8?B?NWlzK3F0RjJ4b2xzVGRCYkNQV0pIS1VaL1Jlb04vWE4wakVkTWdmZ1lJbzBq?=
 =?utf-8?B?T1loVHNPdWswa0RaQmhoVCsva2s2emJFK3h6elZqTkt5TVFzbFpVVHhpNlYr?=
 =?utf-8?B?RHpSOVIwT3liTUZ5VFZSMHZWWndkbmhVOURtZ3dJdmZBNExiVC9hQmU4R1Jl?=
 =?utf-8?B?TlJxMWsrU09UQ0kzNGdRSFY0dWg0b0JMSzNIT09JRjZBZjkyQ1lSRkVpOEw2?=
 =?utf-8?B?Z08vbko3YXlQU3lWN0p6SWtNbGpodEEwcEJEWFczOUZCUDBoSFoyVW1acmJp?=
 =?utf-8?B?T1hDM2phanlKTkRRS0x0blg0N3huemQ2UXpzU3lUNlg3Y3BuT1Q5UGlYQURD?=
 =?utf-8?B?VmZBWFRQNVlzRGw2dkxUWUxERW9VUjhoV081MEoxUE5XTjhYTHZPSFRGdC9i?=
 =?utf-8?B?M3J0VFZ1VDA2NUFwdndlbmVSQWRmVUpjVGg2YVViSUVNRURCWWNqbng0Nmhx?=
 =?utf-8?B?aHZaODF6cVhxMlJPRTNDK0hCV2dOZzlCNTFTWnRBZWFEUTFXdjR4eWJobFRO?=
 =?utf-8?B?TzNqY0RiNk01VmwzeWNKSHgrelFsK0R2cjNXYkJyaTlmWEtPeEhGS2RUMVNl?=
 =?utf-8?B?eStNTmtqcCt2MDBEQVpoOHIzUExmeHl1OFlrNEhQTWpUb0JMbGZvWklOL3RR?=
 =?utf-8?B?RVdtNC93Mm1pbGlwTDRnYTExaGg0Y2ZSbWVLRnoxZ1FZNkFZZXFza09mVDVC?=
 =?utf-8?B?ZXhBc2lDMFJOM0RFVE1WWDJncnpXMlAvSXFMSUQwMmYvM1JGWGZSODcvRjdH?=
 =?utf-8?B?Sk9YOU4wQ3FrbTNaUWx1dE9Cb2RUb3Z1MDRiOTh4RmpTZFFzMnQ0WXB4ZUY5?=
 =?utf-8?B?a2VhVERnYUNCOWtQdGo1ajdodllNZUVIQzYwcUVQN0VzVHRhV2NDbXBZTGpZ?=
 =?utf-8?Q?kE4tFQxuY5iFBfymGlM7zt9Ij?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8be65847-8587-4161-1d9e-08daacf52e5a
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Oct 2022 08:30:27.0813
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UXpi68pWrVqOUN/DvbZxRv3Yf3j7x5FoCP3gH7OJZt83VcCYg3IIZ3XRCPr+KN70Afj+tmS9x77pn6LgDpwvrnj0/uc5dgBtOBl0egV4bY8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6381

DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBQYXVsIER1cnJhbnQgPHhhZGlt
Z25pa0BnbWFpbC5jb20+IA0KU2VudDogMTIgT2N0b2JlciAyMDIyIDEzOjU3DQpUbzogTWFydGlu
IEhhcnZleSA8bWFydGluLmhhcnZleUBjaXRyaXguY29tPjsgd2luLXB2LWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnDQpTdWJqZWN0OiBSZTogUmFjZXMgaW4gcG93ZXIgSVJQIGhhbmRsaW5nIHBh
dGguDQoNCg0KPiBJIHdvdWxkIHZlcnkgbXVjaCBwcmVmZXIgdGhhdCB3ZSBrZXB0IHRoZSBwb3dl
ciAoYW5kIHBucCkgSVJQIGhhbmRsaW5nIGFzIGl0IGlzLiBJdCB0b29rICp5ZWFycyogdG8gZGVi
dWcgdGhpcyBzdHVmZiBhbmQgdXNpbmcgdGhyZWFkcyBmb3IgcG93ZXIgSVJQcyB3YXMgbGFyZ2Vs
eSBiZWNhdXNlIHRoZXJlIHdlcmUgdG9vIG1hbnkgbWluZC1iZW5kaW5nIGNvcm5lciBjYXNlcyB0
byBkbyBpdCByZWxpYWJseSBhbnkgb3RoZXIgd2F5Lg0KDQpPSy4gQW5vdGhlciBvbmUgZm9yIHRo
ZSBiYWNrLWJ1cm5lci4gTWFpbiB3b25kZXJpbmdzIGFyZSB3aGV0aGVyIHRoZXJlIGFyZSBhbnkg
c3BlY2lmaWMgc2VyaWFsaXNhdGlvbiBjYXNlcyBmb3IgQUNQSS9QQ0kvdkdQVSB3aGVyZSBlbXVs
YXRpb24gbWlnaHQgcmVxdWlyZXMgdXMgdG8gdGFrZSBhIG1vcmUgcGFyYWxsZWwgY291cnNlIHRo
YW4gaXMgdHJhZGl0aW9uYWxseSB0aGUgY2FzZS4NCg0KTUguDQo=


From win-pv-devel-bounces@lists.xenproject.org Mon Oct 17 13:59:27 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Oct 2022 13:59:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.424413.671810 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1okQeL-000312-RC; Mon, 17 Oct 2022 13:59:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 424413.671810; Mon, 17 Oct 2022 13:59:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1okQeL-00030v-OA; Mon, 17 Oct 2022 13:59:25 +0000
Received: by outflank-mailman (input) for mailman id 424413;
 Mon, 17 Oct 2022 13:59:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yvsh=2S=citrix.com=prvs=282d48423=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1okQeK-0002zj-3m
 for win-pv-devel@lists.xenproject.org; Mon, 17 Oct 2022 13:59:24 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dfe74d02-4e23-11ed-8fd0-01056ac49cbb;
 Mon, 17 Oct 2022 15:59:13 +0200 (CEST)
Received: from mail-mw2nam12lp2048.outbound.protection.outlook.com (HELO
 NAM12-MW2-obe.outbound.protection.outlook.com) ([104.47.66.48])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 17 Oct 2022 09:59:17 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by MN2PR03MB4925.namprd03.prod.outlook.com (2603:10b6:208:1a3::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.30; Mon, 17 Oct
 2022 13:59:15 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::59f5:a0a2:272d:88fe]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::59f5:a0a2:272d:88fe%7]) with mapi id 15.20.5723.032; Mon, 17 Oct 2022
 13:59:14 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dfe74d02-4e23-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1666015162;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=gWqowEFwOVzGf7nRJiHS9o+KHSQbj5wE5TjDYywUcMA=;
  b=JlE4zCof7tDX1734nyzjRMN46OT58uUyEYm2K87MupdeaXApxfPpABVW
   B0+NH2kSiwmK/6FCZ/XzROMrO6R1L2L1guNyLfdsWjacq4ZUaF9i1Mqv+
   TOP9RULCE7zohoq0tqMZE9EUIECceGN/k0IUFlFRwErrllpVF1buGiv66
   4=;
X-IronPort-RemoteIP: 104.47.66.48
X-IronPort-MID: 82011969
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:C8pnla2szlvjTjkpovbD5cxwkn2cJEfYwER7XKvMYLTBsI5bpzwBn
 zBNWTuAbv+ON2ajKo1/O9jl8hhT78CBmN5nTwFppC1hF35El5HIVI+TRqvS04F+DeWYFR46s
 J9OAjXkBJppJpMJjk71atANlVEliefSAOKU5NfsYkhZXRVjRDoqlSVtkus4hp8AqdWiCkaGt
 MiaT/f3YTdJ4BYpdDNJg06/gEk35q6r4GpH5gVWic1j5zcyqVFEVPrzGonpR5fIatE8NvK3Q
 e/F0Ia48gvxl/v6Ior4+lpTWhRiro/6ZWBiuFIPM0SRqkEqShgJ+rQ6LJIhhXJ/0F1lqTzTJ
 OJl7vRcQS9xVkHFdX90vxNwS0mSNoUekFPLzOTWXWV+ACQqflO1q8iCAn3aMqUDqudqGXsW1
 MUjDwIhX0mhrceWmrK0H7wEasQLdKEHPas5k1Q5l3T8MqxjRprOBaLX+dVfwTE8wNhUGurTb
 NYYbjwpawncZxpIOREcD5dWcOWA3yGjNWEH7gzL4/Zni4TQ5FUZPLzFNdPPZt2MA8VchFiVt
 0rN/njjAwFcP9uaodaA2iL23raWzH2qMG4UPKWez8xokUyL/C8SVT0OZ2mXjt36pnfrDrqzL
 GRRoELCt5Ma5EWnT9zyWRy7iHGBtx8YHdFXFoUS9wCLj7LKpgqUGGUAZjpAc8A98t87QyQw0
 V2ElM+vAiZg2IB5UlqY/7aQ6DatYy4cKDZYYTdeFVdVpd7+vIs0kxTDCM55F7K4hcH0Hje2x
 C2WqC85hPMYistjO7iHwG0rSgmE/vDhJjPZLC2MNo55xmuVvLKYWrE=
IronPort-HdrOrdr: A9a23:PQ8FcK6FEQuhwqOV9wPXwXaBI+orL9Y04lQ7vn2ZFiY5TiXIra
 qTdaogviMc0AxhIE3I6urwQ5VoJkmsvqKdgLNhdYtKOTOLhILGFvAH0WKP+Vzd8mjFh5dgPM
 RbAuJD4b/LfD9HZK/BiWHWferIguP3lpxA7t2urEuFODsaDp2ImD0JaDpzfHcXeCB2Qb4CUL
 aM7MtOoDStPV4NaN6gO3UDV+/f4/XWiZPPe3c9dlIawTjLqQntxK/xEhCe0BtbeShI260e/W
 /MlBG8zrm/ssu81gTX2wbonttrcZrau5V+7f63+4gowwbX+0WVjUNaKv+/VQUO0aCSAZAR4Z
 zxSlkbToBOAjjqDxuISFPWqnTdOXAVmjLfIBaj8AfeiN28SzQgB8Vbg4VFNhPf9ko7pdl5lL
 lGxmSDqvNsfGT9dQnGlq31vitR5z6JiGtnlfRWg21UUIMYZrMUpYsD/FlNGJNFGC7h8ogoHO
 RnEcmZvZ9tABqnRmGcunMqzM2nX3w1EBvDSk8eutaN2zwTmHxi1UMXyMEWg39F/pMgTJtP4f
 jCL81T5cdzZ95Tabg4CPYKQMOxBGCISRXQMHiKKVCiD60DM2Klke+E3Fz03pDYRHUl9upCpH
 2aaiImiYcbQTORNeSemJtW7xvKXGKxGTzw18A23ekIhoHB
X-IronPort-AV: E=Sophos;i="5.95,191,1661832000"; 
   d="scan'208";a="82011969"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NX/8jfOZCMg5WOhhXXArZvapBUpiuCMQyNaKBpHv13wqt0Vpbkd8pWTYGwjvfM2ps8zInAjoygWdHBTHDkp56BBMK99WBYK2LN2ZmuVFtVWyLxNJSd+HfOEsIDVYyqDm3piuwxjjJoOMHlOYCzh19uEMfQvBPAjzixBu/mXpjYFPpRC3UXtGzlByA2X3H+XQiO0hJ0F1izSGLJM7S0ds/IF4qR3x0zRQN9Fr3htDM1ngw0sOPWyWsVcWDqNvPN6VjNkpI0AknS/nXQeT7ORLnkE3oQy0R2Sj4yn8VNUa0oIKHt6z0FcQIHJAEWSPua2WpfEgwfgrs1Y5qMdFjWz+CQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gWqowEFwOVzGf7nRJiHS9o+KHSQbj5wE5TjDYywUcMA=;
 b=EyQkx5f4h1cSiNpYaK+TecjdIygKaDop6UGmaP78E1Ex3W6Q9FsZH+hoK+kzUMU91w3EdKxEgA/Z06wzUb2TKvAPbu6ywG2ow9f7nhwHGEhaSa6ja8xUx8rNvRgzNnTGG3N0r8qk2P7ParCbnftCChWZAsry1A9ZDkENVUUSlw+P7Q6qrmqUzrTXiuVAkQmcsgXnMGAhR0/J5NVNvCMUXkTL0zwM7ELS6ahsYlhBzXeURgNl1EZxTZPLHmBr6Jj3n26NX5L8B3XuoA4mT6Re6sWla81DR7WPTUHUbXPt4TYniVxl0AR+BLkTPNY0rWeKjD5vWydqSvpbbWfJPW+/+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gWqowEFwOVzGf7nRJiHS9o+KHSQbj5wE5TjDYywUcMA=;
 b=awoDmOjg7Z5MXziO1dH70DbR/BGGY7iA1m169Oqnr+NONDhwhPLBRD8DskYwmsbmvecL6ikf7q88MGvhVrCOPBTImyIAO9RmYKtB2zjS7dbpDPu4PywPC8OnfYhiZPnXzh6geCPQj5Jp3agVTwgHun25RvJZfPe1EDKF7Itpr1w=
From: Martin Harvey <martin.harvey@citrix.com>
To: Paul Durrant <xadimgnik@gmail.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: IRP_MN_SET_POWER - will do some more digging.
Thread-Topic: IRP_MN_SET_POWER - will do some more digging.
Thread-Index: AQHY4jCj8vYSZV6/00qovQBitzRGzQ==
Date: Mon, 17 Oct 2022 13:59:14 +0000
Message-ID:
 <MW4PR03MB6347DC859F3B9C7A0018B1DE9A299@MW4PR03MB6347.namprd03.prod.outlook.com>
References:
 <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
In-Reply-To: <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MW4PR03MB6347:EE_|MN2PR03MB4925:EE_
x-ms-office365-filtering-correlation-id: c53eac58-a88d-4f85-7f7c-08dab047c690
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 uNeJlbcMJiCkt92s6UTmxvt4Iu4RY6XUcpGT6GBuw0BZ8EAbs07E5Tb+P5ezkRkyseAMPlDPaIInSdBVjclHoLHuhnWFxdgBesxGCSzNNGtuIaVrGKwks9ffOVA8ZXSXLglqcTgeJv8BPD4sGMuGRl0m6FfAlVzZmy8LC52vpI3B9QqYPThqmJFL0Pfpc9pINZnUZ6XLwvbniTntHnJaPsOn20eVA1syVKiq+q9c0AC+6V2hN9KOJcSa5F4zWuXeyt47T5ivVPpTO7oJrD9FvtFSCcoQ0q2nfr/D1H9ynWYQ54A+r7AUNa49UzGBKxqmQUlyL6i2Unhz+o0OtBHYF3rQ8qOg/q0yziaBpIaEwH1EFcUybRXHU2n1K0L8LJCn9w8XkFOCBcj6XzjDu9su7fjrIR5kH01tUY+anH4b5ckRb2XptH6VcjY/lDWo7c8JFh70V/+2DO6qAw1L0tq4J66ihzZWYddPVQvrdVJsxUBi8ZwcsLtDaNzKTiIW/CBSa609qvu/RYp/vCN3OBARg54B+9mhN8CgOZZeSAkguTD9QUGa/1rNnbELpiEo3K4Penrkbq+qxs36znsbMwsg0uhkVMM9XOikd1ZLh9JqqFTrq0AvBThhq4dhV4ef33MTlQWrfsfFa5GrZSkCFF1vHdkvhAfKNwsTAdXiQzncvCu9+dIAWZBNjtuM4a0mjcs/T4r1GNQpadaWi58z8Zui2BH81CouzUUKVqD3L9rcyhkZbIBG5O3z+L6Bsz3qenH+dAlj7SvBjhUu4j9DHSkRsQ==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(451199015)(186003)(38070700005)(83380400001)(86362001)(38100700002)(82960400001)(122000001)(5660300002)(2906002)(44832011)(41300700001)(52536014)(55016003)(8936002)(8676002)(64756008)(110136005)(478600001)(6506007)(7696005)(26005)(316002)(66946007)(76116006)(66476007)(66556008)(9686003)(66446008)(71200400001)(33656002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WHRXLzdZT2NnVHlWakl5czlVQWU0RHRBdmV0WVdIOFpEY3g3Tm9zTVJ6eTJh?=
 =?utf-8?B?T1lqL1BLcXNTeEczMFJHZmk2eGxhTGVJaE1jVU1lNVBVcFNHVWFrZ3o5Nzdo?=
 =?utf-8?B?V1BSZE9mN1ZjeENJa1llR3N0ZGM3RjZMUGZvbklKbzZqcVdDSWtNTlo0VGlY?=
 =?utf-8?B?c2pwa3RtVGNiUE5tVnRSRmJKOWFzQURvZzgvcUhUNVpwdlU3QU5ncHM1UUFa?=
 =?utf-8?B?dk1adzRKeFJxUTZVdTFWLzZRT1RjTElmSUE4a2pyWjBCUk9VYngzQXdFZE0x?=
 =?utf-8?B?NVZVUzU2L2hNcjdTM0loVi9hck5DWDRBRUNrb1ZlcHlENkRyeDlXR0lHT2do?=
 =?utf-8?B?VU92alZmNXhCSlYzUkJYditLcm9hWEdTSVBOcWZyc3dhK01BNGd2SDZrWkxG?=
 =?utf-8?B?QUx2N1dpYURObDY0U1dQTEkrTjMyNERGQjFZOWFYWS9qMHNmZjUzVXJvbDVD?=
 =?utf-8?B?OXprSHYvN2hnL0w3Z05PeGtOQlRnNUI0d3l0VFA2WEFmK1Q2ckdvV1VMSVB1?=
 =?utf-8?B?V1FzWVRKUTBzdGVUaWg3QmVYTzY5cG1PU1ZGdEc3NzYvZjBKYVZGMnJmZFBQ?=
 =?utf-8?B?SG1hU1hJd1NJcHJ1WmFhaVlQeGwwclpmak9HeVhSckRWdlI4clg2Snh6d0Mv?=
 =?utf-8?B?enROVUdBenRQOFF1TDExTElmcG9raGgxQk9kcnFvWWZSb0w2MGd1Y1hBci9q?=
 =?utf-8?B?L3lMRWVwaFpHUm9DQW1XQlNyeWRya2I5NEVDTHdxaFh5d2gyZks2QTBId1ND?=
 =?utf-8?B?aDBHTlE2T05hUWxrZG1GY1dtYjFpM3hURFRLRUlTTUhIN3JNV2NRNGxWRjI1?=
 =?utf-8?B?Q3FaYWU0Q3VYVFoxeEFHR2dheGgzUlU4aG5JTlJYZzhINm55aFRsbFF5WW1y?=
 =?utf-8?B?VlRZWkF2N245cVVocGo3R1BPeEQ2aU5qeUh4RC8wNnZKTU5nK1N2TUtSTW5Q?=
 =?utf-8?B?Ym9ML1pRQUZYc2RBWlBBenEwVHhyNmVwbGRja2RHc2VOR3hkUjF2eFF2Z09G?=
 =?utf-8?B?M1RDSGJZOWNoVjVUc0xBS2lJbFdkUk0zeDZ5cjAxWDdYdXVNNk5NRTZwSXNv?=
 =?utf-8?B?bDhBUUtRS2VXRXlDWDlwL2lNQUlCamxad2ZEd3p4Mkw3YmI5RG5yQmJIWjJn?=
 =?utf-8?B?MGI4UytPVllXWEFnTFdUL3JkQnNxMTJ0andqVkZQNU5FOU0xRWZKRkhwZ1Bv?=
 =?utf-8?B?OFhHU3J5T2VjT3E0YmxVSXlhTkQzeENjLzVRRWhVRkU4UFRLOGR5bTZwQVRW?=
 =?utf-8?B?QlZuZDBtZFRvbTVpY2RFRnpCUUpiUS9oT1YrYi9oLzJFQzh1QjMxRXhTamJL?=
 =?utf-8?B?N25HUWVyNWptYWpwSnh1U2syVCtnMW1DekVuMkk1a25uM1JYV2FWRTEzQUh1?=
 =?utf-8?B?TnRqeUdBT3RCZXdwajFSTU51L1BGVVhld2NlaCtyZWc4bDA5VEJBaUUvSWY0?=
 =?utf-8?B?OHNCUGpnTm9YUkRDcjJKaXBlU0ZwaEpDMkpxTjdveThaVXROczZ5bk5xQVhx?=
 =?utf-8?B?WjUyWkd5MW9iK2Jtb0RmaVZMNkJsMXBLYmhyYmttV3JiY0FCRU5HUFlXVmZZ?=
 =?utf-8?B?UHBiR1dSRkNLUmhqb1ZwZTJFSVBYbm9WdXdrdmk2ZVNwSFJYVnBKSHBNNGtk?=
 =?utf-8?B?VUpWQlUvTkhEQmt0d05GYTR0SDE0dVlGYUZBdytuZ2hsYzh0dVMwak00SVNO?=
 =?utf-8?B?cjRVSUNjMDdtNDVJTSthOGhSVktTai8vYnJoSy9Ydm9GMk1sem5QTWExSDJI?=
 =?utf-8?B?M0ExWmNDL1ZYVDZVZ2RKSDN0ZmtxYloxVmNlRWRIMzVscnpSWDVjVmJnbzdY?=
 =?utf-8?B?MkVYclZpTWxxd0hvcWF1TUExQ0VSTTltTDIvN1Q0U09nb0dPMlFxS1RFbHhF?=
 =?utf-8?B?UWpXQ2RZR01uVTNuRFU5VEdYMzQvZkc1WFlNMnVzVHZZdUhMbGd4c3lYZWtO?=
 =?utf-8?B?ZUd1UHJCUjNpaklGVmg5c1pDYi9lZnhpemhHdjEzYk81M2kyS1E4WExZK0tn?=
 =?utf-8?B?dTZOcFdiOTJtQnZCQ2VJYW9WZjBKTk9QMjkyR0hacVZjOWNrVllrVXFoQ1hI?=
 =?utf-8?B?Q0dXWC9tME1GZ3ppUjZDNTU5ZTVhME9iQmJOelErcDUxZVozeHZhMXVjTW5u?=
 =?utf-8?Q?vvPpjKduVWmB8QNeUWnhf5hPU?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c53eac58-a88d-4f85-7f7c-08dab047c690
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Oct 2022 13:59:14.6715
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /5JeKxlFf8/0ituoep07IhvcQsBauOt9rZD0X4tbEugrnaPVp4xE6OYwrk5T95qe1EKMN64B3oVXeymBAZsvEf/KtkZ8YDWnnukiunvhNAU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB4925

DQpPa2F5LCB3ZWxsIHJlZ2FyZGxlc3Mgb2YgZGlzY3Vzc2lvbiBhYm91dCB0aGUgcG93ZXIgbW9k
ZWwsIHdlIHN0aWxsIHNlZSB0aGVzZSBvY2Nhc2lvbmFsbHksIGl0J3MgYW4gb3BlbiBxdWVzdGlv
biBhdCB0aGUgbW9tZW50IGFzIHRvIHdoZXRoZXIgaXQncyB0aGUgSVJQIGhhbmRsaW5nICh3aGlj
aCB5b3UgaGF2ZSBuaWNlbHkgc2VyaWFsaXplZCksIG9yIHdoZXRoZXIgcGNpIGlzIGV4cGVjdGlu
ZyBzb21lIGRpZmZlcmVudCBvcmRlcmluZyBzb21ld2hlcmUuDQoNCkkgY2FuIHByb2JhYmx5IGZp
bmQgdGltZSB0byBkbyBzb21lIG1vcmUgZGlnZ2luZy4NCg0KMDoga2Q+ICFhbmFseXplIC12DQoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqDQoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQoqICAgICAgICAg
ICAgICAgICAgICAgICAgQnVnY2hlY2sgQW5hbHlzaXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqDQoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqDQoNCkRSSVZFUl9QT1dFUl9TVEFURV9GQUlMVVJFICg5ZikNCkEgZHJpdmVyIGhhcyBmYWls
ZWQgdG8gY29tcGxldGUgYSBwb3dlciBJUlAgd2l0aGluIGEgc3BlY2lmaWMgdGltZS4NCkFyZ3Vt
ZW50czoNCkFyZzE6IDAwMDAwMDAwMDAwMDAwMDMsIEEgZGV2aWNlIG9iamVjdCBoYXMgYmVlbiBi
bG9ja2luZyBhbiBJcnAgZm9yIHRvbyBsb25nIGEgdGltZQ0KQXJnMjogZmZmZmM3MGQ3NjgzODA2
MCwgUGh5c2ljYWwgRGV2aWNlIE9iamVjdCBvZiB0aGUgc3RhY2sNCkFyZzM6IGZmZmZmODAzNzJl
MGI5NjAsIG50IVRSSUFHRV85Rl9QT1dFUiBvbiBXaW43IGFuZCBoaWdoZXIsIG90aGVyd2lzZSB0
aGUgRnVuY3Rpb25hbCBEZXZpY2UgT2JqZWN0IG9mIHRoZSBzdGFjaw0KQXJnNDogZmZmZmM3MGQ3
OTU4MDAxMCwgVGhlIGJsb2NrZWQgSVJQDQoNCkRlYnVnZ2luZyBEZXRhaWxzOg0KLS0tLS0tLS0t
LS0tLS0tLS0tDQoNCkltcGxpY2l0IHRocmVhZCBpcyBub3cgZmZmZmM3MGRgNzkwMTUwODANClBh
Z2UgMTdiNCBub3QgcHJlc2VudCBpbiB0aGUgZHVtcCBmaWxlLiBUeXBlICIuaGggZGJnZXJyMDA0
IiBmb3IgZGV0YWlscw0KUGFnZSAxN2I0IG5vdCBwcmVzZW50IGluIHRoZSBkdW1wIGZpbGUuIFR5
cGUgIi5oaCBkYmdlcnIwMDQiIGZvciBkZXRhaWxzDQpQYWdlIDUwMCBub3QgcHJlc2VudCBpbiB0
aGUgZHVtcCBmaWxlLiBUeXBlICIuaGggZGJnZXJyMDA0IiBmb3IgZGV0YWlscw0KUGFnZSA1MDAg
bm90IHByZXNlbnQgaW4gdGhlIGR1bXAgZmlsZS4gVHlwZSAiLmhoIGRiZ2VycjAwNCIgZm9yIGRl
dGFpbHMNClBhZ2UgNTAwIG5vdCBwcmVzZW50IGluIHRoZSBkdW1wIGZpbGUuIFR5cGUgIi5oaCBk
YmdlcnIwMDQiIGZvciBkZXRhaWxzDQoNCktFWV9WQUxVRVNfU1RSSU5HOiAxDQoNCiAgICBLZXkg
IDogQW5hbHlzaXMuQ1BVLlNlYw0KICAgIFZhbHVlOiAyDQoNCiAgICBLZXkgIDogQW5hbHlzaXMu
RGVidWdBbmFseXNpc1Byb3ZpZGVyLkNQUA0KICAgIFZhbHVlOiBDcmVhdGU6IDgwMDcwMDdlIG9u
IENBTU1BUlRJTkhBUkwwMQ0KDQogICAgS2V5ICA6IEFuYWx5c2lzLkRlYnVnRGF0YQ0KICAgIFZh
bHVlOiBDcmVhdGVPYmplY3QNCg0KICAgIEtleSAgOiBBbmFseXNpcy5EZWJ1Z01vZGVsDQogICAg
VmFsdWU6IENyZWF0ZU9iamVjdA0KDQogICAgS2V5ICA6IEFuYWx5c2lzLkVsYXBzZWQuU2VjDQog
ICAgVmFsdWU6IDQNCg0KICAgIEtleSAgOiBBbmFseXNpcy5NZW1vcnkuQ29tbWl0UGVhay5NYg0K
ICAgIFZhbHVlOiA3Mg0KDQogICAgS2V5ICA6IEFuYWx5c2lzLlN5c3RlbQ0KICAgIFZhbHVlOiBD
cmVhdGVPYmplY3QNCg0KDQpCVUdDSEVDS19DT0RFOiAgOWYNCg0KQlVHQ0hFQ0tfUDE6IDMNCg0K
QlVHQ0hFQ0tfUDI6IGZmZmZjNzBkNzY4MzgwNjANCg0KQlVHQ0hFQ0tfUDM6IGZmZmZmODAzNzJl
MGI5NjANCg0KQlVHQ0hFQ0tfUDQ6IGZmZmZjNzBkNzk1ODAwMTANCg0KRFJWUE9XRVJTVEFURV9T
VUJDT0RFOiAgMw0KDQpGQVVMVElOR19USFJFQUQ6ICBmZmZmYzcwZDc5MDE1MDgwDQoNCkFERElU
SU9OQUxfREVCVUdfVEVYVDogIERYRyBQb3dlciBJUlAgdGltZW91dC4NCg0KSVJQX0FERFJFU1M6
IGZmZmZjNzBkNzk1ODAwMTANCg0KREVWSUNFX09CSkVDVDogZmZmZmM3MGQ3NjgzODA2MA0KDQpE
UklWRVJfT0JKRUNUOiBmZmZmYzcwZDc2ODA2ZTYwDQoNCklNQUdFX05BTUU6ICBwY2kuc3lzDQoN
Ck1PRFVMRV9OQU1FOiBwY2kNCg0KRkFVTFRJTkdfTU9EVUxFOiBmZmZmZjgwNDk0MmMwMDAwIHBj
aQ0KDQpQUk9DRVNTX05BTUU6ICBTeXN0ZW0NCg0KU1RBQ0tfVEVYVDogIA0KZmZmZmI2ODFgNzk4
NjY1NDAgZmZmZmY4MDNgNzEwZmY0NmQgOiBmZmZmYzcwZGAwMDAwMDAwMCAwMDAwMDAwMGAwMDAw
MDAwMSAwMDAwMDAwMGAwMDAwMDAwNCAwMDAwMDAwMGAwMDAwMDAwNCA6IG50IUtpU3dhcENvbnRl
eHQrMHg3Ng0KZmZmZmI2ODFgNzk4NjY2ODAgZmZmZmY4MDNgNzEwZmVmMGYgOiAwMDAwMDAwMGAw
MDAwMDAwMCBmZmZmZjgwNGA5NDdmZWZkNCAwMDAwMDAwMGAwMDAwMDAwMCBmZmZmYzcwZGA3NjY0
YjU3OCA6IG50IUtpU3dhcFRocmVhZCsweDE3ZA0KZmZmZmI2ODFgNzk4NjY3MzAgZmZmZmY4MDNg
NzExMDBjZTcgOiBmZmZmYzcwZGAwMDAwMDAwMCAwMDAwMDAwMGAwMDAwMDAwMCBmZmZmYzcwZGA3
OTU4MDFiOCAwMDAwMDAwMGAwMDAwMDAwMCA6IG50IUtpQ29tbWl0VGhyZWFkV2FpdCsweDE0Zg0K
ZmZmZmI2ODFgNzk4NjY3ZDAgZmZmZmY4MDRgOTQ3ZmYxZDUgOiBmZmZmYjY4MWA3OTg2NjhiMCBm
ZmZmYzcwZGAwMDAwMDAwMCAwMDAwMDAwMGAwMDAwMDAwMCAwMDAwMDAwMGAwMDAwMDAwMCA6IG50
IUtlV2FpdEZvclNpbmdsZU9iamVjdCsweDM3Nw0KZmZmZmI2ODFgNzk4NjY4ODAgZmZmZmY4MDRg
OTQ3ZmViMWIgOiBmZmZmYzcwZGA3OTU4MDAwMSBmZmZmZmZmZmBlZTFlNWQwMCBmZmZmYzcwZGA3
OTU4MDAxMCAwMDAwMDAwMGAwMDAwMDAwMyA6IGR4Z2tybmwhRHBpRmRvSGFuZGxlRGV2aWNlUG93
ZXIrMHgxZTUNCmZmZmZiNjgxYDc5ODY2OTEwIGZmZmZmODA0YDk5M2ZmZjA1IDogZmZmZmM3MGRg
NzZmNWIwMzAgZmZmZmI2ODFgNzk4NjZhZDkgMDAwMDAwMDBgMDAwMDAwMDAgZmZmZmM3MGRgNzk1
ODAxYjggOiBkeGdrcm5sIURwaURpc3BhdGNoUG93ZXIrMHg4Yg0KZmZmZmI2ODFgNzk4NjZhMzAg
ZmZmZmY4MDRgOTkzZmYzYzQgOiBmZmZmYzcwZGA3NmY1YjAzMCBmZmZmYzcwZGA3NmFkYWEwMCBm
ZmZmYzcwZGA3OTAxNTA4MCBmZmZmYzcwZGA3NmY1YjAzMCA6IG52bGRkbWttKzB4ZTJmZjA1DQpm
ZmZmYjY4MWA3OTg2NmI0MCBmZmZmZjgwM2A3MTFiZTRlMiA6IGZmZmZjNzBkYDc5MDE1MDgwIGZm
ZmZiNjgxYDc5ODY2YmYwIGZmZmZmODAzYDcxMzkxNjAwIGZmZmZmODAzYDcxMzkxNjgwIDogbnZs
ZGRta20rMHhlMmYzYzQNCmZmZmZiNjgxYDc5ODY2YjcwIGZmZmZmODAzYDcxMTljN2ZkIDogZmZm
ZmZmZmZgZmEwYTFmMDAgZmZmZmY4MDNgNzExYmUzMDQgZmZmZmM3MGRgNzdhNTkxODAgMDAwMDAw
MDBgMDAwMDAxNGUgOiBudCFQb3BJcnBXb3JrZXIrMHgxZGUNCmZmZmZiNjgxYDc5ODY2YzEwIGZm
ZmZmODAzYDcxMWY2ZTk2IDogZmZmZmY4MDNgNzEzZDMxODAgZmZmZmM3MGRgNzkwMTUwODAgZmZm
ZmY4MDNgNzExOWM3YmMgMDAwMDAwMDBgMDAwMDAyNDYgOiBudCFQc3BTeXN0ZW1UaHJlYWRTdGFy
dHVwKzB4NDENCmZmZmZiNjgxYDc5ODY2YzYwIDAwMDAwMDAwYDAwMDAwMDAwIDogZmZmZmI2ODFg
Nzk4NjcwMDAgZmZmZmI2ODFgNzk4NjEwMDAgMDAwMDAwMDBgMDAwMDAwMDAgMDAwMDAwMDBgMDAw
MDAwMDAgOiBudCFLaVN0YXJ0U3lzdGVtVGhyZWFkKzB4MTYNCg0KDQpTVEFDS19DT01NQU5EOiAg
LnRocmVhZCAweGZmZmZjNzBkNzkwMTUwODAgOyBrYg0KDQpJTUFHRV9WRVJTSU9OOiAgMTAuMC4x
NDM5My40NTMwDQoNClNZTUJPTF9OQU1FOiAgcGNpIUtzckdldEZpcm13YXJlSW5mb3JtYXRpb24g
PFBFUkY+IChwY2krMHgwKSswDQoNCkJVQ0tFVF9JRF9GVU5DX09GRlNFVDogIDANCg0KRkFJTFVS
RV9CVUNLRVRfSUQ6ICAweDlGXzNfUE9XRVJfRE9XTl9EWEdfUE9XRVJfSVJQX1RJTUVPVVRfcGNp
IUtzckdldEZpcm13YXJlSW5mb3JtYXRpb25fX1BFUkZfXyhwY2krMHgwKQ0KDQpPU19WRVJTSU9O
OiAgMTAuMC4xNDM5My41MzU2DQoNCkJVSUxETEFCX1NUUjogIHJzMV9yZWxlYXNlDQoNCk9TUExB
VEZPUk1fVFlQRTogIHg2NA0KDQpPU05BTUU6ICBXaW5kb3dzIDEwDQoNCkZBSUxVUkVfSURfSEFT
SDogIHs1M2QzMzZkMy1jMjY3LTE2YmEtMDhkZC0yOGIzOTE2ZTUzMGZ9DQoNCkZvbGxvd3VwOiAg
ICAgTWFjaGluZU93bmVyDQotLS0tLS0tLS0NCg0KMDoga2Q+IC50aHJlYWQgZmZmZmM3MGQ3Njgy
YjA0MA0KSW1wbGljaXQgdGhyZWFkIGlzIG5vdyBmZmZmYzcwZGA3NjgyYjA0MA0KMDoga2Q+IGt2
DQogICoqKiBTdGFjayB0cmFjZSBmb3IgbGFzdCBzZXQgY29udGV4dCAtIC50aHJlYWQvLmN4ciBy
ZXNldHMgaXQNCiAjIENoaWxkLVNQICAgICAgICAgIFJldEFkZHIgICAgICAgICAgIDogQXJncyB0
byBDaGlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOiBDYWxsIFNpdGUNCjAwIGZmZmZiNjgxYDc2MWJiNTQwIGZmZmZmODAzYDcxMGZm
NDZkIDogZmZmZmI2ODFgMDAwMDAwMDAgMDAwMDAwMDBgMDAwMDAwMDEgZmZmZmI2ODFgNzYxYmI5
NDAgMDAwMDAwMDBgMDAwMDAwMDAgOiBudCFLaVN3YXBDb250ZXh0KzB4NzYNCjAxIGZmZmZiNjgx
YDc2MWJiNjgwIGZmZmZmODAzYDcxMGZlZjBmIDogZmZmZmM3MGRgNzY4MmIwNDAgZmZmZmM3MGRg
NzY4MmIxNDAgMDAwMDAwMDBgMDAwMDAwMDAgMDAwMDAwMDBgMDAwMDAwMDAgOiBudCFLaVN3YXBU
aHJlYWQrMHgxN2QNCjAyIGZmZmZiNjgxYDc2MWJiNzMwIGZmZmZmODAzYDcxMGI5OGI2IDogZmZm
ZmM3MGRgMDAwMDAwMDAgZmZmZmM3MGRgMDAwMDAwMDAgZmZmZmI2ODFgMDAwMDAwNDkgZmZmZmI2
ODFgNzYxYmI4ZjAgOiBudCFLaUNvbW1pdFRocmVhZFdhaXQrMHgxNGYNCjAzIGZmZmZiNjgxYDc2
MWJiN2QwIGZmZmZmODA0YDk0MmMzN2Y3IDogZmZmZmZmZmZgZmZmZmZmZmYgZmZmZmY4MDRgOTQy
YzNlNTIgZmZmZmM3MGRgMDAwMDAwMDAgZmZmZmY4MDRgOTQyYzVkMTYgOiBudCFLZURlbGF5RXhl
Y3V0aW9uVGhyZWFkKzB4MTA2DQowNCBmZmZmYjY4MWA3NjFiYjg1MCBmZmZmZjgwNGA5NDJkMjZi
NiA6IDAwMDAwMDAwYDAwMDAwMDAwIDAwMDAwMDAwYDAwMDAwMDAwIGZmZmZmZmZmYGZmZmMxNzA3
IGZmZmZjNzBkYDc5NTgwMDAwIDogcGNpIVBjaVN0YWxsRm9yUG93ZXJDaGFuZ2UrMHgxMjcNCjA1
IGZmZmZiNjgxYDc2MWJiOGUwIGZmZmZmODA0YDk0MmQyNGE4IDogZmZmZmM3MGRgNzY4MzAwMGIg
ZmZmZmM3MGRgNzY4MzgxYjAgZmZmZmM3MGRgNzk1ODAwMTAgZmZmZmY4MDNgNzEzZDMxODAgOiBw
Y2khUGNpU2V0SGFyZHdhcmVQb3dlclN0YXRlRGlzcGF0Y2grMHhmZQ0KMDYgZmZmZmI2ODFgNzYx
YmI5NDAgZmZmZmY4MDRgOTQyZDFkNjUgOiBmZmZmYzcwZGA3NjgzODFiMCBmZmZmYzcwZGA3OTU4
MDAxMCBmZmZmYzcwZGA3NjgzODczOCBmZmZmYzcwZGA3NjgyZWE0MCA6IHBjaSFQY2lQb3dlckRv
d25EZXZpY2UrMHgxNTANCjA3IGZmZmZiNjgxYDc2MWJiOTkwIGZmZmZmODA0YDk0MmM2MzNkIDog
ZmZmZmM3MGRgNzY1ZmFjNjAgZmZmZmM3MGRgNzk1ODAwZTAgMDAwMDAwMDBgMDAwMDAwMDAgZmZm
ZmY4MDRgOTM1NjRiOWYgOiBwY2khUGNpRGV2aWNlX1NldFBvd2VyKzB4MTc1DQowOCBmZmZmYjY4
MWA3NjFiYjlmMCBmZmZmZjgwNGA5MzU4YTZlMiA6IGZmZmZjNzBkYDc2NWZhYzYwIDAwMDAwMDAw
YDAwMDAwMDAwIGZmZmZjNzBkYDc5NTgwMTI4IDAwNzkwMDc0YDAwNjkwMDc0IDogcGNpIVBjaURp
c3BhdGNoUG5wUG93ZXIrMHhjZA0KMDkgZmZmZmI2ODFgNzYxYmJhNTAgZmZmZmY4MDRgOTM1NjQ0
MTYgOiBmZmZmYzcwZGA3NjgyZWE0MCAwMDAwMDAwMGAwMDAwMDAwMCBmZmZmYzcwZGA3NjVmYWM2
MCAwMDAwMDAwMGAwMDAwMDAwMCA6IEFDUEkhQUNQSUZpbHRlcklycFNldFBvd2VyKzB4ZTINCjBh
IGZmZmZiNjgxYDc2MWJiYWIwIGZmZmZmODA0YDk0M2EzNDU4IDogMDAwMDAwMDBgMDAwMDAwMDcg
ZmZmZmM3MGRgNzY4M2M4ODAgMDAwMDAwMDBgMDAwMDAwODAgMDAwMDAwMDBgMDAwMDAwMDQgOiBB
Q1BJIUFDUElEaXNwYXRjaElycCsweDJkNg0KMGIgZmZmZmI2ODFgNzYxYmJiMzAgZmZmZmY4MDRg
OTQzYTU4ZDkgOiBmZmZmYzcwZGA3OTU4MDAxMCAwMDAwMDAwMGAwMDAwMDAwNCBmZmZmZjgwNGAw
MDAwMDAwNCAwMDZjMDA2OWAwMDAwMDAwMCA6IHhlbmZpbHQhRmRvRm9yd2FyZElycFN5bmNocm9u
b3VzbHkrMHg3OCBbRTpcamVua2luc1x3b3Jrc3BhY2Vcd2luLXhlbmJ1c19tYXN0ZXJcbG9jYWxc
c3JjXHhlbmZpbHRcZmRvLmMgQCA1MjRdIA0KMGMgZmZmZmI2ODFgNzYxYmJiOTAgZmZmZmY4MDRg
OTQzYTY1M2EgOiBmZmZmYzcwZGA3NjY0YjU2MCAwMDAwMDAwMGAwMDAwMDA4MCBmZmZmZjgwNGA5
NDNhNjUyMCBmZmZmYzcwZGA3NjY0YjU2MCA6IHhlbmZpbHQhUGRvRGV2aWNlUG93ZXIrMHgxMDkg
W0U6XGplbmtpbnNcd29ya3NwYWNlXHdpbi14ZW5idXNfbWFzdGVyXGxvY2FsXHNyY1x4ZW5maWx0
XHBkby5jIEAgMTYyNV0gDQowZCBmZmZmYjY4MWA3NjFiYmJlMCBmZmZmZjgwM2A3MTE5YzdmZCA6
IGZmZmZjNzBkYDc2ODJiMDQwIGZmZmZmODA0YDk0M2E2NTIwIDAwNmUwMDY5YDAwNjYwMDY1IDAw
NjIwMDIwYDAwNjQwMDY1IDogeGVuZmlsdCFUaHJlYWRGdW5jdGlvbisweDFhIFtFOlxqZW5raW5z
XHdvcmtzcGFjZVx3aW4teGVuYnVzX21hc3Rlclxsb2NhbFxzcmNceGVuZmlsdFx0aHJlYWQuYyBA
IDEwOV0gDQowZSBmZmZmYjY4MWA3NjFiYmMxMCBmZmZmZjgwM2A3MTFmNmU5NiA6IGZmZmZmODAz
YDcxM2QzMTgwIGZmZmZjNzBkYDc2ODJiMDQwIGZmZmZmODAzYDcxMTljN2JjIDAwNzQwMDczYDAw
NzUwMDZkIDogbnQhUHNwU3lzdGVtVGhyZWFkU3RhcnR1cCsweDQxDQowZiBmZmZmYjY4MWA3NjFi
YmM2MCAwMDAwMDAwMGAwMDAwMDAwMCA6IGZmZmZiNjgxYDc2MWJjMDAwIGZmZmZiNjgxYDc2MWI2
MDAwIDAwMDAwMDAwYDAwMDAwMDAwIDAwMDAwMDAwYDAwMDAwMDAwIDogbnQhS2lTdGFydFN5c3Rl
bVRocmVhZCsweDE2DQowOiBrZD4gIWlycCBmZmZmYzcwZDc5NTgwMDEwIA0KSXJwIGlzIGFjdGl2
ZSB3aXRoIDUgc3RhY2tzIDEgaXMgY3VycmVudCAoPSAweGZmZmZjNzBkNzk1ODAwZTApDQogTm8g
TWRsOiBObyBTeXN0ZW0gQnVmZmVyOiBUaHJlYWQgMDAwMDAwMDA6ICBJcnAgc3RhY2sgdHJhY2Uu
ICANCiAgICAgY21kICBmbGcgY2wgRGV2aWNlICAgRmlsZSAgICAgQ29tcGxldGlvbi1Db250ZXh0
DQo+W0lSUF9NSl9QT1dFUigxNiksIElSUF9NTl9TRVRfUE9XRVIoMildDQogICAgICAgICAgICAw
IGUwIGZmZmZjNzBkNzY4MzgwNjAgMDAwMDAwMDAgZmZmZmY4MDQ5MzU4YTcxMC1mZmZmZjgwNDkz
NTg5YTgwIFN1Y2Nlc3MgRXJyb3IgQ2FuY2VsIA0KCSAgICAgICBcRHJpdmVyXHBjaQlBQ1BJIUFD
UElEZXZpY2VJcnBEZXZpY2VGaWx0ZXJSZXF1ZXN0DQoJCQlBcmdzOiAwMDAxNjYwMCAwMDAwMDAw
MSAwMDAwMDAwNCAwMDAwMDAwNQ0KIFtJUlBfTUpfUE9XRVIoMTYpLCBJUlBfTU5fU0VUX1BPV0VS
KDIpXQ0KICAgICAgICAgICAgMCBlMSBmZmZmYzcwZDc2ODJlYTQwIDAwMDAwMDAwIGZmZmZmODA0
OTQzYTFjZDAtZmZmZmI2ODE3NjFiYmI2MCBTdWNjZXNzIEVycm9yIENhbmNlbCBwZW5kaW5nDQoJ
ICAgICAgIFxEcml2ZXJcQUNQSQl4ZW5maWx0IURyaXZlclF1ZXJ5Q29tcGxldGlvbg0KCQkJQXJn
czogMDAwMTY2MDAgMDAwMDAwMDEgMDAwMDAwMDQgMDAwMDAwMDUNCiBbSVJQX01KX1BPV0VSKDE2
KSwgSVJQX01OX1NFVF9QT1dFUigyKV0NCiAgICAgICAgICAgIDAgZTEgZmZmZmM3MGQ3NjgzYzli
MCAwMDAwMDAwMCBmZmZmZjgwNDk0NzJmMGMwLWZmZmZiNjgxNzk4NjY4YjAgU3VjY2VzcyBFcnJv
ciBDYW5jZWwgcGVuZGluZw0KCSAgICAgICBcRHJpdmVyXHhlbmZpbHQJZHhna3JubCFEcGlGZG9Q
b3dlckNvbXBsZXRpb25Sb3V0aW5lDQoJCQlBcmdzOiAwMDAxNjYwMCAwMDAwMDAwMSAwMDAwMDAw
NCAwMDAwMDAwNQ0KIFtJUlBfTUpfUE9XRVIoMTYpLCBJUlBfTU5fU0VUX1BPV0VSKDIpXQ0KICAg
ICAgICAgICAgMCBlMSBmZmZmYzcwZDc2ZjViMDMwIDAwMDAwMDAwIGZmZmZmODAzNzExYmRkMjAt
ZmZmZmM3MGQ3OGNkNjJhMCBTdWNjZXNzIEVycm9yIENhbmNlbCBwZW5kaW5nDQoJICAgICAgIFxE
cml2ZXJcbnZsZGRta20JbnQhUG9wUmVxdWVzdENvbXBsZXRpb24NCgkJCUFyZ3M6IDAwMDE2NjAw
IDAwMDAwMDAxIDAwMDAwMDA0IDAwMDAwMDA1DQogW04vQSgwKSwgTi9BKDApXQ0KICAgICAgICAg
ICAgMCAgMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMC1mZmZmYzcwZDc4Y2Q2MmEwICAgIA0K
DQoJCQlBcmdzOiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMA0K


From win-pv-devel-bounces@lists.xenproject.org Wed Oct 19 16:42:19 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 19 Oct 2022 16:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.425940.674083 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olC93-0002vb-01; Wed, 19 Oct 2022 16:42:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 425940.674083; Wed, 19 Oct 2022 16:42:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olC92-0002vT-TQ; Wed, 19 Oct 2022 16:42:16 +0000
Received: by outflank-mailman (input) for mailman id 425940;
 Wed, 19 Oct 2022 16:42:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V6HZ=2U=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1olC91-0002vN-KJ
 for win-pv-devel@lists.xenproject.org; Wed, 19 Oct 2022 16:42:15 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fbabec67-4fcc-11ed-91b4-6bf2151ebd3b;
 Wed, 19 Oct 2022 18:42:14 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id f11so30067292wrm.6
 for <win-pv-devel@lists.xenproject.org>; Wed, 19 Oct 2022 09:42:13 -0700 (PDT)
Received: from [192.168.16.131] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 e10-20020adfdbca000000b0022e66749437sm14287268wrj.93.2022.10.19.09.42.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Oct 2022 09:42:12 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbabec67-4fcc-11ed-91b4-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=3kjMBt2tNh7lye2hXI/96ORyKQNgQXk3pYjBPP8rjus=;
        b=AJWK1U7zonQ+DYuubuaa7TDfZ04YfulsUFOXIpfs34CO44epP9DFbMkqHEmVxrWxpi
         YOzEQz7InPfbYg2uvfikMSm3ibLYB2JCLTNqurH20mOge0xda0GVo9dNQrV+9XZePCTE
         H6G9D/MW0Kemg7QnOtpcaC5y94i+K7lXq4x6f0fPEJCrSzwXN+hlOe+0R+OZTwqCcS3T
         B51dcHmPlf207ogPgUjYTX+7K/1KKwQFrYpnYt3wCED0cLMKO49hw9m4X9j2SnhVgbnK
         beAuGnyZ088eRXjjCuEq+TNbkbUgqHo0QCOJ2m9Hqz4RSfd1Bi2y5BnA1CCbsAHVR5Od
         Wj0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=3kjMBt2tNh7lye2hXI/96ORyKQNgQXk3pYjBPP8rjus=;
        b=thqybAdbiD61ILeGnmxhrOKynNLwlR3SWLBCdZWZcXA2lMGoPUKEv0BLxUKNqpOIej
         pqwuqYGZfZqr9b70nGxTV0Nq+kMIHu7EeK48a2vdBj8/v+UbfutCgcssf94KyhtPHCEi
         wM+V7KNF/fyLLjhYf1n+rrlt6+dZq7GALVOEFBEoio0mO7W82WTERP0L3RKzs/HFT4mp
         fHRJw9RmtGESquKVu7FgWKlc0Tv+uC5UhbV+aHLR+wxyZL93dsrQPebx0+JT7beHvwRh
         AT3X7d55UBipO8vPAC7Wa73Pzh4iOeatBDDM7q9oxCPF5q7nbtf02XjJ7yNOHx6hif7j
         dGkA==
X-Gm-Message-State: ACrzQf2Wjo/2R+QKpAjmkRaiWOGKtshjDXNmoLC8W5Xld80zKm18vR2c
	lP3HgbT9RdhFKKgbrLlUo//I5moDXBoECg==
X-Google-Smtp-Source: AMsMyM468IuCG+GAPrC0PmT4xiTZOzSp23YphdbrcEhKEwQwxpXjhBOKY5SG7XhtQoujhyDxdJP9eA==
X-Received: by 2002:a05:6000:8c:b0:22e:45c6:bc4c with SMTP id m12-20020a056000008c00b0022e45c6bc4cmr5682047wrx.555.1666197732892;
        Wed, 19 Oct 2022 09:42:12 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <c8360b55-36fe-f1ad-b518-7fedcd62c8c0@xen.org>
Date: Wed, 19 Oct 2022 17:42:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.3
Subject: Re: IRP_MN_SET_POWER - will do some more digging.
Content-Language: en-US
To: Martin Harvey <martin.harvey@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <MW4PR03MB6347A1C2AE66C2A5778F25E49A239@MW4PR03MB6347.namprd03.prod.outlook.com>
 <1b95f612-410f-29bb-6192-95ea1f1fee3d@xen.org>
 <MW4PR03MB6347DC859F3B9C7A0018B1DE9A299@MW4PR03MB6347.namprd03.prod.outlook.com>
Organization: Xen Project
In-Reply-To: <MW4PR03MB6347DC859F3B9C7A0018B1DE9A299@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 17/10/2022 14:59, Martin Harvey wrote:
> 
> Okay, well regardless of discussion about the power model, we still see these occasionally, it's an open question at the moment as to whether it's the IRP handling (which you have nicely serialized), or whether pci is expecting some different ordering somewhere.
> 
> I can probably find time to do some more digging.
> 

TBH that PciStallForPowerChange suggests it is waiting for something in 
config space. I'm guessing from nvlddmkm in the stack that was a vGPU 
VM? I'd be looking at the config space emulation for my problem, not the 
PV drivers :-)

   Cheers,

     Paul



From win-pv-devel-bounces@lists.xenproject.org Wed Oct 19 16:53:07 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 19 Oct 2022 16:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.425961.674109 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olCJV-00058W-Bb; Wed, 19 Oct 2022 16:53:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 425961.674109; Wed, 19 Oct 2022 16:53:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olCJV-00058P-8X; Wed, 19 Oct 2022 16:53:05 +0000
Received: by outflank-mailman (input) for mailman id 425961;
 Wed, 19 Oct 2022 16:53:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V6HZ=2U=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1olCJU-00058J-84
 for win-pv-devel@lists.xenproject.org; Wed, 19 Oct 2022 16:53:04 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e9c116d-4fce-11ed-8fd0-01056ac49cbb;
 Wed, 19 Oct 2022 18:53:03 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id bu30so30124754wrb.8
 for <win-pv-devel@lists.xenproject.org>; Wed, 19 Oct 2022 09:53:02 -0700 (PDT)
Received: from [192.168.16.131] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 c26-20020a7bc85a000000b003b3307fb98fsm402315wml.24.2022.10.19.09.53.01
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Oct 2022 09:53:01 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e9c116d-4fce-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=MRCDaCix3cIXF1lRS1Qp4jMpuvKNR9ARJPdEjZfCOz0=;
        b=A+f2jlDul3XgiSHeZXL74HVTdvlh0tEuOfJ6HUjtLDu2gB93KAff0s8vglA5VcGPzJ
         l+t4gumyenIfn7FqswB5vFVTQJNdqID570bYW8PnLnEv171asoebjjVk+MLATo/rIz/C
         xajoS7aL9n3lDaSasHy+e90OnDCYeQ775mopATGJgtw1wu9LUiR7bcUtIXOXLu454HsQ
         VsAMyHKxQFms/It0OQ2HLfhSYyTv5rVlkSJVhwDvUE/wj8mjQGNBgVUQ7v8fGOJvCnYG
         3noxdAdbBWlxCMRk4riIySZMb8dd6mbR66LW8CPeGJiIQ91I6FYMQFoyW84hPhOM1ieS
         mxzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=MRCDaCix3cIXF1lRS1Qp4jMpuvKNR9ARJPdEjZfCOz0=;
        b=0x+AwBtwj1Pc7jUQ6uUJ5uc8hE+dB6DrzADou+pbGuFN3vMAl9ysPoWallbhJHvWR8
         7F59vkJmKJyNjvm/TzCkCEPQAftiQWVJGd9mTElRHk+bPwwh2cac1vCuD60ivufU3ZIQ
         AZBCcupol00xAiyqEZBs/UHAwIIjacEjsgoOVbw+E+pDOBQqqb2aMDzkL06OpLuRr1SI
         7Lrh4GAR5PrzovQ0sKzC+YMLA8tX03C3hwXpWaYHdgG8auEGzymmi13gcOCyvgDTcsMg
         wQmCdmITH8JOkoLA2X+k2+9M1EmwMBCfypKJtCFQMhIiLaobcnzZAq9rjsiLG7myp4Gr
         eGvg==
X-Gm-Message-State: ACrzQf0PQDnexIDJ0/I4qgmA4lX7ElS+8pcwWbmAesjpL1In9wga/JiQ
	6BfWbz77AMph0O4/cD4hPWXO8CLvd8oA9A==
X-Google-Smtp-Source: AMsMyM5cRGLm7sGn1lrsneqU1lFoEfEg9fSYHczfF0H/0MUBjLJOPS6Ech76Ds+zgZtQVOza4SG/9Q==
X-Received: by 2002:a05:6000:2ad:b0:231:48fb:3a64 with SMTP id l13-20020a05600002ad00b0023148fb3a64mr5629335wry.184.1666198382198;
        Wed, 19 Oct 2022 09:53:02 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <b7af7721-b722-0a31-e426-d694c12fb7b2@xen.org>
Date: Wed, 19 Oct 2022 17:53:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.3
Subject: Re: [PATCH] Add build options for EWDK 22621
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20221012102134.1087-1-owen.smith@citrix.com>
 <DM5PR03MB29211675AF151751FD1B8D47FE229@DM5PR03MB2921.namprd03.prod.outlook.com>
Organization: Xen Project
In-Reply-To: <DM5PR03MB29211675AF151751FD1B8D47FE229@DM5PR03MB2921.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12/10/2022 11:23, Owen Smith wrote:
> Similar changes will be needed to all driver repos
> 
> I've only tested these drivers build with the later kits - I'm still using EWDK 22000 for internal Citrix builds
> 

I've got a few EWDKs lying around so I'll give it spin with them all.

   Paul



From win-pv-devel-bounces@lists.xenproject.org Thu Oct 20 08:55:36 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Oct 2022 08:55:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.426310.674656 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olRKv-00046q-Kw; Thu, 20 Oct 2022 08:55:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 426310.674656; Thu, 20 Oct 2022 08:55:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olRKv-00046j-IO; Thu, 20 Oct 2022 08:55:33 +0000
Received: by outflank-mailman (input) for mailman id 426310;
 Thu, 20 Oct 2022 08:55:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qGS0=2V=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1olRKt-00046d-RY
 for win-pv-devel@lists.xenproject.org; Thu, 20 Oct 2022 08:55:31 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f32c01d4-5054-11ed-91b5-6bf2151ebd3b;
 Thu, 20 Oct 2022 10:55:30 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 az22-20020a05600c601600b003c6b72797fdso1665526wmb.5
 for <win-pv-devel@lists.xenproject.org>; Thu, 20 Oct 2022 01:55:30 -0700 (PDT)
Received: from [10.95.120.196] (54-240-197-225.amazon.com. [54.240.197.225])
 by smtp.gmail.com with ESMTPSA id
 m3-20020a05600c4f4300b003c6f3f6675bsm2489958wmq.26.2022.10.20.01.55.29
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Oct 2022 01:55:29 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f32c01d4-5054-11ed-91b5-6bf2151ebd3b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=x3fl++6WIVzI13W2NslbDO16OTJY2+RPeTY830z8mAY=;
        b=jzu5UO097DY8mjBgXd+qYBVyo1+sNkITCCaTetJ72T0Ze1oLo1OV+mps4qRvg3VChb
         OZQ1qg5K4cR6o+J/ekODD/vp8G2smeaHu3qq10rLAkWOnykf+SoWCZo+05ergP0tktd6
         dXz+0rRcNQyeGssvmQS7GrrOJSkS88H2+/1l9+sfyOcwqDNB3r1dyeujC8j7UFhoN89m
         Kknkxg2ZWCJJybFYIdDVEwia6BKjITE1G3s+HS6NhzNdBR8gDZPcMrpOZIBO2MAGdX+h
         Fpk0jwvHOGmEWNXAxEn7HsZMmOKq+uXsJvlu8Yw7PhWckgS+NkIwJYyTC+FPO1Uk4sea
         LUew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=x3fl++6WIVzI13W2NslbDO16OTJY2+RPeTY830z8mAY=;
        b=IzQmhzgNz+ckfEB7YMpMClV6qSCHQn7eyaiN5jKEpvHXrAQO3LMWy6jyjztkqPbGDD
         f1Lz+WxLg1DLTXAxRZsLyEKlL9ZcMiM+AUuHXXu6UZQEpx7lKoY0aAn3IAuJgx9bG0Nu
         Y6lwHFyW47ABeqFmCvjQ2iZKsGzw1xykY5W3PgTaLQ3ByvzXAnYUnOxgWpuWsygpdWsw
         bB9EoUbpUAr+0x9iSUVXcQvfT1jTKiQ8g5l/1imI97xCbhSh4l/pDs7H3jzG2OCVCxLS
         6HaAsb1lS9p6ibBZph9pSj2RrRgI8PP1mJy7fL7V+BIoG0jVJ6AJI/mJG4724nt7oS+N
         5uNg==
X-Gm-Message-State: ACrzQf3DwKlop5O3nm+HWg3U6uYGm24R0d16dA7xy5VpqC9rQb1bB8uq
	vg8a07n1gIKcFsRCMm1uw/bZ+SkAbxUqRQ==
X-Google-Smtp-Source: AMsMyM5P7aGXxKOkEB7RZdzmUJY5aE1WrOS2lT9JepNUEI1o4KdIUpKz+SEF59FUMtR1fkiPzV605w==
X-Received: by 2002:a05:600c:4142:b0:3c6:eed5:847c with SMTP id h2-20020a05600c414200b003c6eed5847cmr18918458wmm.113.1666256130321;
        Thu, 20 Oct 2022 01:55:30 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <78cddbb3-3928-9252-de0a-547ba2285153@xen.org>
Date: Thu, 20 Oct 2022 09:55:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.3
Subject: Re: [PATCH] Add build options for EWDK 22621
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20221012102134.1087-1-owen.smith@citrix.com>
Organization: Xen Project
In-Reply-To: <20221012102134.1087-1-owen.smith@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12/10/2022 11:21, Owen Smith wrote:
> VisualStudioVersion = 17.0 maps to Visual Studio 2022
> * Adds project files for vs2022
> * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
> * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
> * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
> * Adds include directive where compiler intrinsics are used
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

I'm guessing we could trim out all the 'Win32' stuff and shrink the 
files down then. Not too bothered about that though... another EWDK 
might support 'Win32' in future.

Acked-by: Paul Durrant <paul@xen.org>



From win-pv-devel-bounces@lists.xenproject.org Thu Oct 20 10:07:32 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Oct 2022 10:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.426379.674771 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olSSX-0007tR-SA; Thu, 20 Oct 2022 10:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 426379.674771; Thu, 20 Oct 2022 10:07:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1olSSX-0007tJ-PD; Thu, 20 Oct 2022 10:07:29 +0000
Received: by outflank-mailman (input) for mailman id 426379;
 Thu, 20 Oct 2022 10:07:28 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul.durrant@xenproject.org>) id 1olSSW-0007tD-G2
 for win-pv-devel@lists.xenproject.org; Thu, 20 Oct 2022 10:07:28 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Date: Thu, 20 Oct 2022 10:07:45 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <30153305.1.1666260467531.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
Subject: XENBUS-master - Build #236 - Successful
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_5159580.1666260467031"
X-Jenkins-Job: XENBUS-master
X-Jenkins-Result: SUCCESS


------=_Part_0_5159580.1666260467031
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #236.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENBUS-master/236/console to view the results.
------=_Part_0_5159580.1666260467031--


From win-pv-devel-bounces@lists.xenproject.org Mon Oct 24 10:26:04 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 24 Oct 2022 10:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.428827.679367 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1omuee-0000CT-Dk; Mon, 24 Oct 2022 10:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 428827.679367; Mon, 24 Oct 2022 10:26:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1omuee-0000CM-Ar; Mon, 24 Oct 2022 10:26:00 +0000
Received: by outflank-mailman (input) for mailman id 428827;
 Mon, 24 Oct 2022 10:25:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t6RA=2Z=citrix.com=prvs=289d94646=owen.smith@srs-se1.protection.inumbo.net>)
 id 1omued-0000CG-EW
 for win-pv-devel@lists.xenproject.org; Mon, 24 Oct 2022 10:25:59 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dcf6545-5386-11ed-8fd0-01056ac49cbb;
 Mon, 24 Oct 2022 12:25:57 +0200 (CEST)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3dcf6545-5386-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1666607157;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=jzFpkykBx9U6dygQJJumgiwTOimUExxQx1Gj2m8AA7o=;
  b=fHZvWY1BKwNu4Vhdov+KGqYN6dBdACOq3b3sznGUd1yPMJzUBnP7CuFw
   degStAXfPO2Tq66RuHVE6Kv4m7i6CNEY4fJVEIVItEsCbcsrzEzA5Woae
   QM7TN3BDeGvD7ea1suuAKXvywPU/T+OppEX3pj15uHiy0h0k1g/UpO3iD
   4=;
Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 5.1
X-MesageID: 83381194
X-Ironport-Server: esa2.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: =?us-ascii?q?A9a23=3Add7lB6IdUjL7gjAMFE//H55y9xWSRhNeGxNOi?=
 =?us-ascii?q?0AnO82iCwXC/D5+JTap8FxYKXLHAnKFQRCUKd8VXaBHv+i/NEmMm6Zy6n/ay?=
 =?us-ascii?q?50QCTAIHpg0VNh7+WbDZ5RAX3zZ3ZnLV9Oy0w4ltQIrCCOTmCbI1V5N6fvOE?=
 =?us-ascii?q?p1YpF133sKuDaPFrN3JdqnZfIS/G1HM/iGOO1Rz/AiBDdJlytl9AnN3bFwCi?=
 =?us-ascii?q?YNWqD1F/rSjSjOGZ+WUV86qd7b5fWE7gzhQ/BqkpMmct1OnIPL1VMfo5RoAP?=
 =?us-ascii?q?DtNZzB4Y+OdKctI9mEFj78cZGnAlvB7gt6exW0Gx9961PWQ2yCrvR4SNjz3/?=
 =?us-ascii?q?HPX6txUBga2AnUXfgSBgTzYUhpTCh/fE1kyl6aXwFLFRxBxfluNovDPgmxuh?=
 =?us-ascii?q?Hgf6T3G3uHVM519dJ+SX72zXqEgchrPCAowu5xoxWaVxSrhj3DFVFpRy3Viy?=
 =?us-ascii?q?AxGxHGDxUwJ/NaMLJM7PncOFij1tEvUFzTvIXW1dNLPFoQeALZS2Pgm47R2A?=
 =?us-ascii?q?Ns06DwmwyzhBYdlZEwDPfPVukBeVkWzh2ysQ+R/8W+F8e/gv1Li/WrfXfFxP?=
 =?us-ascii?q?WC7F1chPvxQ5/cIwAZZzYv+xyw/1MDqkxyedwsu80+mUDG1ql/o5Fmhm5Q5h?=
 =?us-ascii?q?DUUrJqNmYwE9wxKD+1OlS3C4fUVI56teJhGdS8z2Oi7S2FTl/D1oiA1jSv58?=
 =?us-ascii?q?oE1NsaEwxWzy7W3IUPL9DrMkz0nmDzkKd3YMkU251yvp6bNfVZsANLMmlk89?=
 =?us-ascii?q?NYfaFjI3bXsYY7asroYnOofxiY1m+oD/DyutVHLoX0sbvmogfXkAQf1jUukj?=
 =?us-ascii?q?VglcMpZtFK5akAyQfgH3mcklJ4WLGaINPqEvX+bXNi0fFiNcxClyjE2Z2fLY?=
 =?us-ascii?q?mkcHPFmPhqGpCeSx/EsxjBMnUNdgqceHE1rc5JBxX6WIW1N2lZve3RN7ROs/?=
 =?us-ascii?q?xQzT+ezDMX52xM6x3tZZUy0FHra2ZkZpblockh/bJeSLWMyIvQz/geuTWFPg?=
 =?us-ascii?q?DClqypAAigu+1z2jmDa9C4THikU4BIuczYp9mSM3MGQsJvppwcz62+UeiWcE?=
 =?us-ascii?q?YkphEataB8rfY4Rnbw7txNoPxZaamrwYvlyyiEI5LsVQarWgnxR3x0WB632i?=
 =?us-ascii?q?/SOzmarZ1vHK0CuL7faN4o9UCoBkdXwl+IUuM9ykwr7qIGDjMC3K+43zzHsG?=
 =?us-ascii?q?i+ys4CN+6oHaXODg8U36CzrKlbjpjzsNCTkMfg5adJREyl+ebIrmnVIe5O/M?=
 =?us-ascii?q?ID6puMSu3SA91V7shNZf3edLKf7xfidO+seuhJSVMG0DGpNHalHrlvguVPMn?=
 =?us-ascii?q?S2+NAz13NlePcObz8+Fzw+9jMBEd0Q9p4RmfWlMM5Tj1vJV+pAkVu/ZtWvkV?=
 =?us-ascii?q?X1AsSOW8N9rKO0OoIJ/Neq/pQ9dBfHye0xKXcLQucmmF6Hm7smccOvZvBopO?=
 =?us-ascii?q?Db4xMGMKQk7lHAYqxz9XmmrwwI6Kfb/ONYF1S+LI9AXmULTOG1T7aNO9pqLX?=
 =?us-ascii?q?pEFoAZ40MSD1vxo4h8ds7TsGgneO5J97RXHMI5KuML+UyACGtH1JgLisYJnV?=
 =?us-ascii?q?Hg8y1WoUIP76CiKOSbg/ykfR4nuL/HDKGEA4A8JbI8HsaMcX2WtoOQTCPuEM?=
 =?us-ascii?q?DId7y13mrctsYZslcDIk1QCymluYvYjWGRHpZm+6cjqLHZM+6B4145FhD7aQ?=
 =?us-ascii?q?OgGi9n9QyN8rH/tYZBdqGjsxZ06GpGjDLvV2q6OsBLH3677EeI1g9cuJdd8Z?=
 =?us-ascii?q?TGD5KDeywWlzfMju6b+LYC9m1zMdk5TNkaI7dQFFVFF44dO7FTw2+l9KpRMZ?=
 =?us-ascii?q?L3W20cLXpDTUCry6/qD6U8n3LjaUS18ypgMiFZ/tnvXy0a2bmuFxolCPyCDs?=
 =?us-ascii?q?njPxYX94DcO78tYPTJnwHvv6rXEtaGStMwCm38YIeIvpfZQE49/skpZcZy6f?=
 =?us-ascii?q?7Ths/9dqu1r4zMrlVhWXlL/QEWBkll+YTGUSQsQeQBO+czH0FsYw9H/CIuOf?=
 =?us-ascii?q?rbFyuP1CIU5sAABG616iZc7j2/NG9EwwwKZDUqKHR/Qw9d+7x/8MfMdnWn8E?=
 =?us-ascii?q?WlSsoAzbB/otVcyV16kzcXzLEaLfX048GaTjhe42n6YaK5wRObtxpH4IEc9E?=
 =?us-ascii?q?Zev1e8TpLc8M8OkWItEL4WY7C0JI2tWRKPBdeiVfFTly7RNOa7DA6C8bYXyr?=
 =?us-ascii?q?RU0fpmBxqfgWilPcMkp5nXWhemvpzR372riR3wki0XS8+znSVpkjSTlMrJLb?=
 =?us-ascii?q?JPEUb47+eMc9zZ96c6wdL+ZOmB1mvLme//db0kjGL7Ug76oFHbtu2C85+xNU?=
 =?us-ascii?q?5m7H+QtbY24fvGQvc9no46upYLzWxOeK7pfwB9RLJUXAz0LkI9jUbF7Tsogj?=
 =?us-ascii?q?AE/eCECB4X7Jnq21sRFSUUFnkUQmDkiI819FZZs/mDazYkcdcvSX7pUHCOZm?=
 =?us-ascii?q?m9xBdSqXqkZrSknjSQ/b1QUWH7XMOTXev+UtVxymEhq9BmiEqj+uxpHj1Bdm?=
 =?us-ascii?q?bNBrEL7jGZDS3ybPI6bVfzYN9LnEmTwgFCvbHV5uJzDtLw+0ElMByLcpQHkG?=
 =?us-ascii?q?pPcqjxhKRWAr2ZybR/ObIKZNkVqVHkUDIzRUQl9Bg3/++PlakV+zgR7sBQJ?=
X-IronPort-AV: E=Sophos;i="5.95,209,1661832000"; 
   d="scan'208";a="83381194"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Create SettingsKey SubKeys if needed
Date: Mon, 24 Oct 2022 11:25:50 +0100
Message-ID: <20221024102550.753-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.32.0.windows.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Use RegistryCreateSubKey to create the settings key, if it does not exist,
when attempting to save the current settings. The SettingsKey's sub keys do
not exist when first installing drivers from emulated devices. This is only
an issue when the emulated devices have had network settings applied before
installing the PV drivers.

Also adds NTSTATUS values to error path logging.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 src/xenvif/settings.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/xenvif/settings.c b/src/xenvif/settings.c
index 7483ff3..876dc13 100644
--- a/src/xenvif/settings.c
+++ b/src/xenvif/settings.c
@@ -550,10 +550,10 @@ SettingsSave(
 
     SettingsKey = DriverGetSettingsKey();
 
-    status = RegistryOpenSubKey(SettingsKey,
-                                SubKeyName,
-                                KEY_ALL_ACCESS,
-                                &SubKey);
+    status = RegistryCreateSubKey(SettingsKey,
+                                  SubKeyName,
+                                  REG_OPTION_NON_VOLATILE,
+                                  &SubKey);
     if (!NT_SUCCESS(status))
         goto fail2;
 
@@ -593,7 +593,7 @@ fail2:
     RtlFreeAnsiString(&Ansi);
 
 fail1:
-    Error("fail1\n", status);
+    Error("fail1 (%08x)\n", status);
 
     return status;
 }
@@ -688,7 +688,7 @@ fail2:
     RegistryCloseKey(SubKey);
 
 fail1:
-    Error("fail1\n", status);
+    Error("fail1 (%08x)\n", status);
 
     return status;
 }
-- 
2.32.0.windows.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 08:10:24 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 08:10:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432691.685364 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opPsE-0002sw-8O; Mon, 31 Oct 2022 08:10:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432691.685364; Mon, 31 Oct 2022 08:10:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opPsE-0002sp-5V; Mon, 31 Oct 2022 08:10:22 +0000
Received: by outflank-mailman (input) for mailman id 432691;
 Mon, 31 Oct 2022 08:10:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/3in=3A=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1opPsC-0002sj-Np
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 08:10:20 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7471dc5c-58f3-11ed-8fd0-01056ac49cbb;
 Mon, 31 Oct 2022 09:10:19 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 ay14-20020a05600c1e0e00b003cf6ab34b61so953514wmb.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 31 Oct 2022 01:10:17 -0700 (PDT)
Received: from ?IPV6:2a00:23c5:5785:9a01:c881:ff21:c922:a17a?
 ([2a00:23c5:5785:9a01:c881:ff21:c922:a17a])
 by smtp.gmail.com with ESMTPSA id
 w24-20020a1cf618000000b003cf4d99fd2asm6438944wmc.6.2022.10.31.01.10.16
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 31 Oct 2022 01:10:16 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7471dc5c-58f3-11ed-8fd0-01056ac49cbb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :from:to:cc:subject:date:message-id:reply-to;
        bh=swCvg+F1Hwi3w3ZCUvK7qbjDlFlyjkS6U2ogl3IRRP8=;
        b=Z9g/618tYbtp1on1cLl95q/oS9S2XRNtMkowi1ClkqOgjtA1tEX8w3YWJbCNcyF5RX
         YeWvLe7mP9oSW/2XAOIkOYOKW8ocnH9ELg+z0Pwuoy+1fOu/r3U+qKwu797zmaJ/4R+Z
         n+8NG6hemiBuhkcMyumJk72UWsZS7Gq+ryhGlhCSpr2WXn4HY0Rc1T+Sm3l3smMB3sni
         lwn7qBuqnHlqh24pJlRi0wLNaRPcFBM0a1Es9cLB7FYnGOdj9A479TTjyBQEogpzxaW+
         zZ7iTQjHBQOOORiJ0QiEiA8eRw7UD6ie/LFHHB+N39ennObp5DfL82RJOss/Wp68Ml9f
         nkeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=content-transfer-encoding:in-reply-to:organization:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=swCvg+F1Hwi3w3ZCUvK7qbjDlFlyjkS6U2ogl3IRRP8=;
        b=P760D+8bZLK79OAnOuP3lCino7eo2W8pBbJEcFgngsN926au4z/FMbreKwwzfI0wK0
         2rIZW2TzoZKLRoAWos9E/qeVCqCypaGqQXK12Q86zoxufjYQ/5OJ5RHQIlEIN9yvu+d9
         37UR2Linj3XnrwcdSa1Okk9L6cIlC3Tm2u/iDzreKniNsXEUinF8v18fAJ4Tmgf4DQSN
         TgrVbVygviQ6DzjA488odZqWwKZaGbPLJufAXk33FzB9pcB191caPz9YJjj/O6wz97Iy
         9mOMQqLCSzo3RJyqXnARbAGwggPn6KkL1CHNdyit5mF6Rc4w+MmYw8lC/iPhbWdLJ7rR
         whxw==
X-Gm-Message-State: ACrzQf2mLS4ZGou1Fnf9IiJclkchZaD4o2XRfYTyt1uOfZ1BCOCZm6uM
	X/9QYzzv8EPh1Rr/lYI07hx4ABFKJAo=
X-Google-Smtp-Source: AMsMyM5fNvD9YS7dUSTlcmbr4SCxqPwrQsFKI30/S9e6qkUJJC+Px/6ZCaVsEEpVfBTUg6PAdnnoeA==
X-Received: by 2002:a05:600c:3414:b0:3cf:670e:53a4 with SMTP id y20-20020a05600c341400b003cf670e53a4mr6335753wmp.39.1667203816969;
        Mon, 31 Oct 2022 01:10:16 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <fbc34164-01a7-9900-bf82-0056de9bc76c@xen.org>
Date: Mon, 31 Oct 2022 08:10:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.4.0
Subject: Re: [PATCH] Create SettingsKey SubKeys if needed
To: win-pv-devel@lists.xenproject.org
References: <20221024102550.753-1-owen.smith@citrix.com>
Content-Language: en-US
Organization: Xen Project
In-Reply-To: <20221024102550.753-1-owen.smith@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 24/10/2022 11:25, Owen Smith wrote:
> Use RegistryCreateSubKey to create the settings key, if it does not exist,
> when attempting to save the current settings. The SettingsKey's sub keys do
> not exist when first installing drivers from emulated devices. This is only
> an issue when the emulated devices have had network settings applied before
> installing the PV drivers.
> 
> Also adds NTSTATUS values to error path logging.
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

Acked-by: Paul Durrant <paul@xen.org>



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 12:23:22 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 12:23:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432799.685435 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opTp2-0008K5-J3; Mon, 31 Oct 2022 12:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432799.685435; Mon, 31 Oct 2022 12:23:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opTp2-0008Jx-GA; Mon, 31 Oct 2022 12:23:20 +0000
Received: by outflank-mailman (input) for mailman id 432799;
 Mon, 31 Oct 2022 12:23:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opTp1-0008Jr-Ja
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 12:23:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opTp1-0000mP-AH; Mon, 31 Oct 2022 12:23:19 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opTp0-0001MZ-Pc; Mon, 31 Oct 2022 12:23:19 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=+XV/gLAb83L0UOsOqfHF4DdgU8asmmpSATEwk7Aimcc=; b=eZ1KTN
	N0vsNl8wq156Ydi9/HGmH7B7NBqiue+NfuKGbVIZHqZ2+afbdLPT5qAto7OiSe1kl8nkBo33higII
	qeocdfAN4BMa0vupFfpAjhmR6Akygjyh6vemiHropYRLekb+97P2qn0lUn5hXd6F4HdM2FIW2MHap
	6RE2e0XVJ3I=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Mon, 31 Oct 2022 12:23:04 +0000
Message-Id: <20221031122304.498-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used
   (and removes re-definition of 'offsetof')

Suggested-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 build.ps1                                     |  16 ++-
 include/xen-types.h                           |   2 -
 src/xenvif/util.h                             |  11 +-
 vs2022/configs.props                          |  45 +++++++
 vs2022/package/package.vcxproj                |  70 ++++++++++
 vs2022/package/package.vcxproj.user           |   8 ++
 vs2022/targets.props                          |  35 +++++
 vs2022/version/version.vcxproj                |  22 ++++
 vs2022/xenvif.sln                             | 124 ++++++++++++++++++
 vs2022/xenvif/xenvif.vcxproj                  |  94 +++++++++++++
 vs2022/xenvif/xenvif.vcxproj.user             |   8 ++
 vs2022/xenvif_coinst/xenvif_coinst.vcxproj    |  65 +++++++++
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |   8 ++
 13 files changed, 494 insertions(+), 14 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xenvif.sln
 create mode 100644 vs2022/xenvif/xenvif.vcxproj
 create mode 100644 vs2022/xenvif/xenvif.vcxproj.user
 create mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj
 create mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index bcb98189ed0b..88d57a67489d 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019" }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/include/xen-types.h b/include/xen-types.h
index 232d7999f610..cfad732b11a3 100644
--- a/include/xen-types.h
+++ b/include/xen-types.h
@@ -46,8 +46,6 @@ typedef USHORT  uint16_t;
 typedef ULONG   uint32_t;
 typedef ULONG64 uint64_t;
 
-#define offsetof(_type, _field) FIELD_OFFSET(_type, _field)
-
 #define xen_mb()    KeMemoryBarrier()
 #define xen_wmb()   KeMemoryBarrier()
 #define xen_rmb()   KememoryBarrier()
diff --git a/src/xenvif/util.h b/src/xenvif/util.h
index 0df2a52e5ae7..6ff0914757c9 100644
--- a/src/xenvif/util.h
+++ b/src/xenvif/util.h
@@ -33,6 +33,7 @@
 #define _XENVIF_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..cdbb3c8c8951
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..709fb6e65407
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{73768CC9-DB26-4297-9EC8-1042F815EB15}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xenvif\xenvif.vcxproj">
+      <Project>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenvif_coinst\xenvif_coinst.vcxproj">
+      <Project>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xenvif.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+      SourceFiles="@(PackageFiles)"
+      DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..fbc6f27f602f
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvif.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..64598fc29b77
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xenvif.sln b/vs2022/xenvif.sln
new file mode 100644
index 000000000000..33d0808cadff
--- /dev/null
+++ b/vs2022/xenvif.sln
@@ -0,0 +1,124 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvif", "xenvif\xenvif.vcxproj", "{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvif_coinst", "xenvif_coinst\xenvif_coinst.vcxproj", "{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{73768CC9-DB26-4297-9EC8-1042F815EB15}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18}
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44} = {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xenvif/xenvif.vcxproj b/vs2022/xenvif/xenvif.vcxproj
new file mode 100644
index 000000000000..52473b8cefe1
--- /dev/null
+++ b/vs2022/xenvif/xenvif.vcxproj
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/xenvif/bus.c" />
+    <ClCompile Include="../../src/xenvif/checksum.c" />
+    <ClCompile Include="../../src/xenvif/driver.c" />
+    <ClCompile Include="../../src/xenvif/fdo.c" />
+    <ClCompile Include="../../src/xenvif/frontend.c" />
+    <ClCompile Include="../../src/xenvif/link.c" />
+    <ClCompile Include="../../src/xenvif/mac.c" />
+    <ClCompile Include="../../src/xenvif/parse.c" />
+    <ClCompile Include="../../src/xenvif/pdo.c" />
+    <ClCompile Include="../../src/xenvif/receiver.c" />
+    <ClCompile Include="../../src/xenvif/registry.c" />
+    <ClCompile Include="../../src/xenvif/settings.c" />
+    <ClCompile Include="../../src/xenvif/thread.c" />
+    <ClCompile Include="../../src/xenvif/transmitter.c" />
+    <ClCompile Include="../../src/xenvif/controller.c" />
+    <ClCompile Include="../../src/xenvif/vif.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenvif\xenvif.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\package\package.vcxproj" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenvif/xenvif.vcxproj.user b/vs2022/xenvif/xenvif.vcxproj.user
new file mode 100644
index 000000000000..fbc6f27f602f
--- /dev/null
+++ b/vs2022/xenvif/xenvif.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvif.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenvif_coinst/xenvif_coinst.vcxproj b/vs2022/xenvif_coinst/xenvif_coinst.vcxproj
new file mode 100644
index 000000000000..ae187fc49caf
--- /dev/null
+++ b/vs2022/xenvif_coinst/xenvif_coinst.vcxproj
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <IncludePath>..\..\include;$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;5045;6001;6054;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xenvif_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xenvif_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user b/vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user
new file mode 100644
index 000000000000..ff1402092770
--- /dev/null
+++ b/vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvif.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 13:20:19 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 13:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432850.685547 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opUi8-0007cG-VW; Mon, 31 Oct 2022 13:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432850.685547; Mon, 31 Oct 2022 13:20:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opUi8-0007c9-Sa; Mon, 31 Oct 2022 13:20:16 +0000
Received: by outflank-mailman (input) for mailman id 432850;
 Mon, 31 Oct 2022 13:20:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opUi7-0007c3-FV
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 13:20:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opUi7-0001kw-5P; Mon, 31 Oct 2022 13:20:15 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opUi6-0004Zo-Lm; Mon, 31 Oct 2022 13:20:15 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=FZvewo4J+SAo+dmYJeJA6xrkFNfD+vw71lhTZI+xQmw=; b=Ma893U
	JK7Q1gegalJxbYk5P1f/KNKk3gep09pSFU9+Bg8QN++EpE+UKsAltuhznS/U3Vg3rIzfMThHV/Mok
	ZdsFGMQQSieLoXtrNtK+tpRM5OQd74KXCEZigHjC2/j3/CLK20KEF6ZNuFN8pSn0Cb9KQ+OLzRfBj
	/y96MD2QMog=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Mon, 31 Oct 2022 13:20:12 +0000
Message-Id: <20221031132012.1020-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used
   (and removes re-definition of 'offsetof')

Suggested-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 build.ps1                                     |  16 ++-
 include/xen-types.h                           |   2 -
 src/xennet/util.h                             |  11 +-
 vs2022/configs.props                          |  45 ++++++
 vs2022/package/package.vcxproj                |  70 ++++++++++
 vs2022/package/package.vcxproj.user           |   8 ++
 vs2022/targets.props                          |  35 +++++
 vs2022/version/version.vcxproj                |  22 +++
 vs2022/xennet.sln                             | 128 ++++++++++++++++++
 vs2022/xennet/xennet.vcxproj                  |  84 ++++++++++++
 vs2022/xennet/xennet.vcxproj.user             |   8 ++
 vs2022/xennet_coinst/xennet_coinst.vcxproj    |  63 +++++++++
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 ++
 13 files changed, 486 insertions(+), 14 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xennet.sln
 create mode 100644 vs2022/xennet/xennet.vcxproj
 create mode 100644 vs2022/xennet/xennet.vcxproj.user
 create mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj
 create mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 346d1874e0e2..a72aadb164e0 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+       $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/include/xen-types.h b/include/xen-types.h
index aeed612dc586..82cb69ea9a51 100644
--- a/include/xen-types.h
+++ b/include/xen-types.h
@@ -46,8 +46,6 @@ typedef USHORT  uint16_t;
 typedef ULONG   uint32_t;
 typedef ULONG64 uint64_t;
 
-#define offsetof(_type, _field) FIELD_OFFSET(_type, _field)
-
 #define xen_mb()    KeMemoryBarrier()
 #define xen_wmb()   KeMemoryBarrier()
 #define xen_rmb()   KememoryBarrier()
diff --git a/src/xennet/util.h b/src/xennet/util.h
index 8ef6097b3ce3..2dede97a882b 100644
--- a/src/xennet/util.h
+++ b/src/xennet/util.h
@@ -33,6 +33,7 @@
 #define _XENNET_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..cdbb3c8c8951
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..3222ccc9f18c
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{445FD18F-97E3-4E5D-825F-151026242C05}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xennet\xennet.vcxproj">
+      <Project>{97D9942B-5EA3-488C-B512-C96E5D077F8E}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xennet_coinst\xennet_coinst.vcxproj">
+      <Project>{3EDD837A-C1BE-47D4-9603-16B61353670B}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xennet.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+       SourceFiles="@(PackageFiles)"
+       DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..bcbee4fbf103
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xennet.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..64598fc29b77
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xennet.sln b/vs2022/xennet.sln
new file mode 100644
index 000000000000..2928c2062143
--- /dev/null
+++ b/vs2022/xennet.sln
@@ -0,0 +1,128 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcxproj", "{97D9942B-5EA3-488C-B512-C96E5D077F8E}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet_coinst", "xennet_coinst\xennet_coinst.vcxproj", "{3EDD837A-C1BE-47D4-9603-16B61353670B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E} = {97D9942B-5EA3-488C-B512-C96E5D077F8E}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{445FD18F-97E3-4E5D-825F-151026242C05}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{3EDD837A-C1BE-47D4-9603-16B61353670B} = {3EDD837A-C1BE-47D4-9603-16B61353670B}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xennet/xennet.vcxproj b/vs2022/xennet/xennet.vcxproj
new file mode 100644
index 000000000000..469ad09b3f5e
--- /dev/null
+++ b/vs2022/xennet/xennet.vcxproj
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <ConfigurationType>Driver</ConfigurationType>
+    <DriverType>WDM</DriverType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Configuration">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{97D9942B-5EA3-488C-B512-C96E5D077F8E}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS630_MINIPORT=1;NDIS660_MINIPORT=1;NDIS685_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;</AdditionalIncludeDirectories>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4062;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28160;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+<ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/xennet/adapter.c" />
+    <ClCompile Include="../../src/xennet/driver.c" />
+    <ClCompile Include="../../src/xennet/miniport.c" />
+    <ClCompile Include="../../src/xennet/receiver.c" />
+    <ClCompile Include="../../src/xennet/string.c" />
+    <ClCompile Include="../../src/xennet/transmitter.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xennet\xennet.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xennet/xennet.vcxproj.user b/vs2022/xennet/xennet.vcxproj.user
new file mode 100644
index 000000000000..bcbee4fbf103
--- /dev/null
+++ b/vs2022/xennet/xennet.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xennet.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xennet_coinst/xennet_coinst.vcxproj b/vs2022/xennet_coinst/xennet_coinst.vcxproj
new file mode 100644
index 000000000000..ea789f0ea84b
--- /dev/null
+++ b/vs2022/xennet_coinst/xennet_coinst.vcxproj
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{3EDD837A-C1BE-47D4-9603-16B61353670B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4548;4820;4668;4255;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xennet_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xennet_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xennet_coinst/xennet_coinst.vcxproj.user b/vs2022/xennet_coinst/xennet_coinst.vcxproj.user
new file mode 100644
index 000000000000..8b034c4085c4
--- /dev/null
+++ b/vs2022/xennet_coinst/xennet_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xennet.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 13:42:28 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 13:42:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432873.685561 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opV3a-00023M-1L; Mon, 31 Oct 2022 13:42:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432873.685561; Mon, 31 Oct 2022 13:42:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opV3Z-00023F-Uj; Mon, 31 Oct 2022 13:42:25 +0000
Received: by outflank-mailman (input) for mailman id 432873;
 Mon, 31 Oct 2022 13:42:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opV3Y-000239-P1
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 13:42:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opV3Y-00028A-LD; Mon, 31 Oct 2022 13:42:24 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opV3Y-0005dh-2N; Mon, 31 Oct 2022 13:42:24 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=Q1IT/Ff6WT8uDvfEbGnLJ6uw8/r2IzyrcwrssnCB0Kg=; b=mt3jy4
	QwErKuPeWGmVWkTtwmVrBtOP1gkMTl6IPcI92JRS4soU/hHVpxE46fnNvWYFG8pwrOUCWcyna5YDh
	BfGt6BtYbJnlTeqwD9LrNYRTAVJN0Zntmz5WiTAhc0miSZo3ddG8s14MYHFznNbbiDZW55OPURbjH
	ucmPV3rHB2w=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Mon, 31 Oct 2022 13:42:17 +0000
Message-Id: <20221031134217.1399-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used
   (and removes re-definition of 'offsetof')

Suggested-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 build.ps1                                     |  16 +-
 src/common/util.h                             |  11 +-
 src/xencrsh/hvm.c                             |  12 +-
 vs2022/configs.props                          |  45 +++++
 vs2022/package/package.vcxproj                |  76 +++++++++
 vs2022/package/package.vcxproj.user           |   8 +
 vs2022/targets.props                          |  35 ++++
 vs2022/version/version.vcxproj                |  22 +++
 vs2022/xencrsh/xencrsh.vcxproj                |  96 +++++++++++
 vs2022/xencrsh/xencrsh.vcxproj.user           |   8 +
 vs2022/xendisk/xendisk.vcxproj                |  79 +++++++++
 vs2022/xendisk/xendisk.vcxproj.user           |   8 +
 vs2022/xenvbd.sln                             | 157 ++++++++++++++++++
 vs2022/xenvbd/xenvbd.vcxproj                  |  84 ++++++++++
 vs2022/xenvbd/xenvbd.vcxproj.user             |   8 +
 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj    |  65 ++++++++
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 +
 17 files changed, 720 insertions(+), 18 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xencrsh/xencrsh.vcxproj
 create mode 100644 vs2022/xencrsh/xencrsh.vcxproj.user
 create mode 100644 vs2022/xendisk/xendisk.vcxproj
 create mode 100644 vs2022/xendisk/xendisk.vcxproj.user
 create mode 100644 vs2022/xenvbd.sln
 create mode 100644 vs2022/xenvbd/xenvbd.vcxproj
 create mode 100644 vs2022/xenvbd/xenvbd.vcxproj.user
 create mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
 create mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 346d1874e0e2..56891078b8a6 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/src/common/util.h b/src/common/util.h
index 36a36dd639ec..36154444419b 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -33,6 +33,7 @@
 #define _COMMON_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/src/xencrsh/hvm.c b/src/xencrsh/hvm.c
index 47fcc5bcd61c..3e396ec0fd5b 100644
--- a/src/xencrsh/hvm.c
+++ b/src/xencrsh/hvm.c
@@ -30,9 +30,9 @@
  */ 
 
 #include <wdm.h>
+#include <intrin.h>
 #include <xenvbd-storport.h>
 
-
 #include <xen-version.h>
 #include <xen\xen-compat.h>
          
@@ -103,21 +103,21 @@ CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE NTSTATUS
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..cdbb3c8c8951
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..8e07a3cadb74
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{AB8DAED3-9D70-4907-99A3-C643F1FC1972}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xenvbd_coinst\xenvbd_coinst.vcxproj">
+      <Project>{50c08437-c1f3-4349-bf6a-7b55a06bf999}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xencrsh\xencrsh.vcxproj">
+      <Project>{58f5bc43-b92e-4a2b-975d-0066eab29092}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenvbd\xenvbd.vcxproj">
+      <Project>{ef236371-3145-41b1-99c9-82b33e353f17}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xendisk\xendisk.vcxproj">
+      <Project>{d7411b2c-2c43-434d-9f56-e10a3d2f5bad}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xenvbd.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+       SourceFiles="@(PackageFiles)"
+       DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..b017ec27d869
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<SignMode>TestSign</SignMode>
+		<TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+		<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..d04543455bbf
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xencrsh/xencrsh.vcxproj b/vs2022/xencrsh/xencrsh.vcxproj
new file mode 100644
index 000000000000..d9c8bef55fda
--- /dev/null
+++ b/vs2022/xencrsh/xencrsh.vcxproj
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{58F5BC43-B92E-4A2B-975D-0066EAB29092}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4548;4770;4711;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      <ModuleDefinitionFile>../../src/xencrsh/xencrsh.def</ModuleDefinitionFile>
+      <AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xencrsh\austere.c" />
+    <ClCompile Include="..\..\src\xencrsh\buffer.c" />
+    <ClCompile Include="..\..\src\xencrsh\driver.c" />
+    <ClCompile Include="..\..\src\xencrsh\evtchn.c" />
+    <ClCompile Include="..\..\src\xencrsh\fdo.c" />
+    <ClCompile Include="..\..\src\xencrsh\frontend.c" />
+    <ClCompile Include="..\..\src\xencrsh\gnttab.c" />
+    <ClCompile Include="..\..\src\xencrsh\hvm.c" />
+    <ClCompile Include="..\..\src\xencrsh\hypercall_stub.c" />
+    <ClCompile Include="..\..\src\xencrsh\log.c" />
+    <ClCompile Include="..\..\src\xencrsh\pdo.c" />
+    <ClCompile Include="..\..\src\xencrsh\pdoinquiry.c" />
+    <ClCompile Include="..\..\src\xencrsh\queue.c" />
+    <ClCompile Include="..\..\src\xencrsh\store.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <MASM Include="..\..\src\xencrsh\amd64\hypercall.asm">
+      <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
+    </MASM>
+    <MASM Include="..\..\src\xencrsh\i386\hypercall.asm">
+      <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild>
+    </MASM>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xencrsh\xencrsh.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\xencrsh\xencrsh.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xencrsh/xencrsh.vcxproj.user b/vs2022/xencrsh/xencrsh.vcxproj.user
new file mode 100644
index 000000000000..b017ec27d869
--- /dev/null
+++ b/vs2022/xencrsh/xencrsh.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<SignMode>TestSign</SignMode>
+		<TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+		<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/xendisk/xendisk.vcxproj b/vs2022/xendisk/xendisk.vcxproj
new file mode 100644
index 000000000000..9b4874a476a0
--- /dev/null
+++ b/vs2022/xendisk/xendisk.vcxproj
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>..\..\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4548;4770;4711;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/xendisk/driver.c" />
+    <ClCompile Include="../../src/xendisk/fdo.c" />
+    <ClCompile Include="../../src/xendisk/pdo.c" />
+    <ClCompile Include="../../src/xendisk/registry.c" />
+    <ClCompile Include="../../src/xendisk/thread.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xendisk\xendisk.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xendisk/xendisk.vcxproj.user b/vs2022/xendisk/xendisk.vcxproj.user
new file mode 100644
index 000000000000..e1315dbcd130
--- /dev/null
+++ b/vs2022/xendisk/xendisk.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenvbd.sln b/vs2022/xenvbd.sln
new file mode 100644
index 000000000000..acc17fc47d5c
--- /dev/null
+++ b/vs2022/xenvbd.sln
@@ -0,0 +1,157 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvbd", "xenvbd\xenvbd.vcxproj", "{EF236371-3145-41B1-99C9-82B33E353F17}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092} = {58F5BC43-B92E-4A2B-975D-0066EAB29092}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencrsh", "xencrsh\xencrsh.vcxproj", "{58F5BC43-B92E-4A2B-975D-0066EAB29092}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xendisk", "xendisk\xendisk.vcxproj", "{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvbd_coinst", "xenvbd_coinst\xenvbd_coinst.vcxproj", "{50C08437-C1F3-4349-BF6A-7B55A06BF999}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{AB8DAED3-9D70-4907-99A3-C643F1FC1972}"
+    ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999} = {50C08437-C1F3-4349-BF6A-7B55A06BF999}
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092} = {58F5BC43-B92E-4A2B-975D-0066EAB29092}
+		{EF236371-3145-41B1-99C9-82B33E353F17} = {EF236371-3145-41B1-99C9-82B33E353F17}
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD} = {D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{D7411B2C-2C43-434D-9F56-E10A3D2F5BAD}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{EF236371-3145-41B1-99C9-82B33E353F17}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{50C08437-C1F3-4349-BF6A-7B55A06BF999}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{AB8DAED3-9D70-4907-99A3-C643F1FC1972}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{58F5BC43-B92E-4A2B-975D-0066EAB29092}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xenvbd/xenvbd.vcxproj b/vs2022/xenvbd/xenvbd.vcxproj
new file mode 100644
index 000000000000..7cae5f000b90
--- /dev/null
+++ b/vs2022/xenvbd/xenvbd.vcxproj
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{EF236371-3145-41B1-99C9-82B33E353F17}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4548;4770;4711;4820;4668;4255;5045;6001;6054;26451;28160;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/xenvbd/driver.c" />
+    <ClCompile Include="../../src/xenvbd/registry.c" />
+    <ClCompile Include="../../src/xenvbd/adapter.c" />
+    <ClCompile Include="../../src/xenvbd/frontend.c" />
+    <ClCompile Include="../../src/xenvbd/target.c" />
+    <ClCompile Include="../../src/xenvbd/base64.c" />
+    <ClCompile Include="../../src/xenvbd/thread.c" />
+    <ClCompile Include="../../src/xenvbd/ring.c" />
+    <ClCompile Include="../../src/xenvbd/granter.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenvbd\xenvbd.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenvbd/xenvbd.vcxproj.user b/vs2022/xenvbd/xenvbd.vcxproj.user
new file mode 100644
index 000000000000..e1315dbcd130
--- /dev/null
+++ b/vs2022/xenvbd/xenvbd.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj b/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
new file mode 100644
index 000000000000..5a0b9187c00f
--- /dev/null
+++ b/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{50C08437-C1F3-4349-BF6A-7B55A06BF999}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xenvbd_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xenvbd_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user b/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user
new file mode 100644
index 000000000000..b017ec27d869
--- /dev/null
+++ b/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<SignMode>TestSign</SignMode>
+		<TestCertificate>..\..\src\xenvbd.pfx</TestCertificate>
+		<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+	</PropertyGroup>
+</Project>
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 14:03:00 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 14:03:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432905.685621 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVNT-000749-8t; Mon, 31 Oct 2022 14:02:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432905.685621; Mon, 31 Oct 2022 14:02:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVNT-000741-6A; Mon, 31 Oct 2022 14:02:59 +0000
Received: by outflank-mailman (input) for mailman id 432905;
 Mon, 31 Oct 2022 14:02:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opVNS-00073t-Kn
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 14:02:58 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVNS-0002YW-IV; Mon, 31 Oct 2022 14:02:58 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVNS-0006mM-6o; Mon, 31 Oct 2022 14:02:58 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=nAmSOwmFdPvj1uYrkU1zSy49eMca4lNUkAqcyyR+ao8=; b=JMqpOF
	Vq0dBbkdACKYBaLVOZX1+7gK/2k4AfZdbhVQkHaL96SwMBiSBkVUjU+FDHrTDD+Q853Y0GFoKdwKp
	McaucPYm2kABZqb+ByBHhrX9vWAZFgEe4kvJ7QedJxynTjMaOxiNr2efYzdSua46fSbcBvKbb5P0L
	1JTFGxf1uqI=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>
Subject: [PATCH] Use empty brace initializers
Date: Mon, 31 Oct 2022 14:02:54 +0000
Message-Id: <20221031140254.1604-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

This avoids a build warning with EWDK_co_release_svc_prod3_22000_220715-1440

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 src/xenagent/xenifacedevice.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.cpp
index 46b4b6f2143b..69a584bb1777 100644
--- a/src/xenagent/xenifacedevice.cpp
+++ b/src/xenagent/xenifacedevice.cpp
@@ -104,7 +104,7 @@ bool CXenIfaceDevice::StoreRemove(const std::string& path)
 bool CXenIfaceDevice::StoreAddWatch(const std::string& path, HANDLE evt, void** ctxt)
 {
     XENIFACE_STORE_ADD_WATCH_IN  in  = { (PCHAR)path.c_str(), (DWORD)path.length() + 1, evt };
-    XENIFACE_STORE_ADD_WATCH_OUT out = { NULL };
+    XENIFACE_STORE_ADD_WATCH_OUT out = { };
     if (!Ioctl(IOCTL_XENIFACE_STORE_ADD_WATCH,
                &in, (DWORD)sizeof(in),
                &out, (DWORD)sizeof(out)))
@@ -125,7 +125,7 @@ bool CXenIfaceDevice::StoreRemoveWatch(void* ctxt)
 bool CXenIfaceDevice::SuspendRegister(HANDLE evt, void** ctxt)
 {
     XENIFACE_SUSPEND_REGISTER_IN  in  = { evt };
-    XENIFACE_SUSPEND_REGISTER_OUT out = { NULL };
+    XENIFACE_SUSPEND_REGISTER_OUT out = { };
     if (!Ioctl(IOCTL_XENIFACE_SUSPEND_REGISTER,
                &in, (DWORD)sizeof(in),
                &out, (DWORD)sizeof(out)))
@@ -156,7 +156,7 @@ bool CXenIfaceDevice::SuspendGetCount(DWORD *count)
 // sharedinfo interface
 bool CXenIfaceDevice::SharedInfoGetTime(FILETIME* time, bool* local)
 {
-    XENIFACE_SHAREDINFO_GET_TIME_OUT out = { NULL };
+    XENIFACE_SHAREDINFO_GET_TIME_OUT out = { };
     if (!Ioctl(IOCTL_XENIFACE_SHAREDINFO_GET_TIME,
                NULL, 0,
                &out, sizeof(out)))
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 14:03:29 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 14:03:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432908.685625 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVNx-0007Aa-Bi; Mon, 31 Oct 2022 14:03:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432908.685625; Mon, 31 Oct 2022 14:03:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVNx-0007AR-8s; Mon, 31 Oct 2022 14:03:29 +0000
Received: by outflank-mailman (input) for mailman id 432908;
 Mon, 31 Oct 2022 14:03:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opVNw-0007AF-Kd
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 14:03:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVNw-0002Z9-9O; Mon, 31 Oct 2022 14:03:28 +0000
Received: from 54-240-197-226.amazon.com ([54.240.197.226]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVNv-0006ms-Q6; Mon, 31 Oct 2022 14:03:28 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=/+Jpz/+zJ8ohZEfyEfPfOaO3hPrR+Ay/dc7iZrt1PgA=; b=MaC66u
	O25dbibOwuAJeibO+11CTcoXE+0jnssrnT348AnTAA54YIBvqGiWadD4nSX9v+QP+v8Vk6rJpzgDh
	5g0Je5Otf0rXUjvWf59wXNHPrPJPzyxlrD2DoBFLo9l+ktW/a6dSXWo4Fq/++3CDBtmGByMXJXvK3
	qFHi1jU++j0=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Mon, 31 Oct 2022 14:03:22 +0000
Message-Id: <20221031140322.1654-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used

Suggested-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 build.ps1                                     |  16 +-
 src/xeniface/util.h                           |  11 +-
 vs2022/configs.props                          |  45 +++++
 vs2022/package/package.vcxproj                |  77 +++++++
 vs2022/package/package.vcxproj.user           |   8 +
 vs2022/targets.props                          |  35 ++++
 vs2022/version/version.vcxproj                |  22 ++
 vs2022/xenagent/xenagent.vcxproj              |  88 ++++++++
 vs2022/xenagent/xenagent.vcxproj.user         |   4 +
 vs2022/xencontrol/xencontrol.vcxproj          |  73 +++++++
 vs2022/xeniface.sln                           | 188 ++++++++++++++++++
 vs2022/xeniface/xeniface.vcxproj              |  97 +++++++++
 vs2022/xeniface/xeniface.vcxproj.user         |   8 +
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  65 ++++++
 .../xeniface_coinst.vcxproj.user              |   8 +
 15 files changed, 733 insertions(+), 12 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xenagent/xenagent.vcxproj
 create mode 100644 vs2022/xenagent/xenagent.vcxproj.user
 create mode 100644 vs2022/xencontrol/xencontrol.vcxproj
 create mode 100644 vs2022/xeniface.sln
 create mode 100644 vs2022/xeniface/xeniface.vcxproj
 create mode 100644 vs2022/xeniface/xeniface.vcxproj.user
 create mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj
 create mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 89dc12dfa6ab..a7da9ba4c8db 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -112,7 +112,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/src/xeniface/util.h b/src/xeniface/util.h
index bc7518ac23f5..ef00a5513667 100644
--- a/src/xeniface/util.h
+++ b/src/xeniface/util.h
@@ -33,6 +33,7 @@
 #define _XENIFACE_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..cdbb3c8c8951
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..a0676937c314
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{9B071A35-897C-477A-AEB7-95F77618A21D}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyDrivers />
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xeniface\xeniface.vcxproj">
+      <Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xeniface_coinst\xeniface_coinst.vcxproj">
+      <Project>{85c731ad-2ea2-4049-a542-d2d38ede938c}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenagent\xenagent.vcxproj">
+      <Project>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xencontrol\xencontrol.vcxproj">
+      <Project>{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xeniface.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+      SourceFiles="@(PackageFiles)"
+      DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..8fcc92e8ab2c
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..64598fc29b77
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xenagent/xenagent.vcxproj b/vs2022/xenagent/xenagent.vcxproj
new file mode 100644
index 000000000000..02b7b6568401
--- /dev/null
+++ b/vs2022/xenagent/xenagent.vcxproj
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <PropertyGroup>
+    <CustomBuildAfterTargets>Link</CustomBuildAfterTargets>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4350;4365;4571;4625;4626;4711;4774;4548;4820;4668;4255;5026;5027;5032;5038;5039;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>powrprof.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x86 -dll -noentry -out:%(Outputs) %(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x64 -dll -noentry -out:%(Outputs) %(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
+  </ItemGroup>
+  <ItemGroup>
+    <MessageCompile Include="..\..\src\xenagent\messages.mc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xenagent\service.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\devicelist.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\xenifacedevice.cpp"/>
+    <ClCompile Include="..\..\src\xenagent\convdevice.cpp"/>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenagent\xenagent.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="..\..\src\xenagent\xen.ico" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenagent/xenagent.vcxproj.user b/vs2022/xenagent/xenagent.vcxproj.user
new file mode 100644
index 000000000000..510ca8ae05e6
--- /dev/null
+++ b/vs2022/xenagent/xenagent.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup />
+</Project>
diff --git a/vs2022/xencontrol/xencontrol.vcxproj b/vs2022/xencontrol/xencontrol.vcxproj
new file mode 100644
index 000000000000..5474ceb85e01
--- /dev/null
+++ b/vs2022/xencontrol/xencontrol.vcxproj
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;XENCONTROL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5032;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <ExceptionHandling>false</ExceptionHandling>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>setupapi.lib;ws2_32.lib;shlwapi.lib;wtsapi32.lib;userenv.lib;version.lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).lib" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xencontrol\xencontrol.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\include\xencontrol.h" />
+    <ClInclude Include="..\..\src\xencontrol\xencontrol_private.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xencontrol\xencontrol.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xeniface.sln b/vs2022/xeniface.sln
new file mode 100644
index 000000000000..f3aa87973b58
--- /dev/null
+++ b/vs2022/xeniface.sln
@@ -0,0 +1,188 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface_coinst", "xeniface_coinst\xeniface_coinst.vcxproj", "{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", "xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenagent", "xenagent\xenagent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencontrol", "xencontrol\xencontrol.vcxproj", "{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{22166290-65D8-49D2-BB88-33201797C7D8} = {22166290-65D8-49D2-BB88-33201797C7D8}
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2} = {D386D8E9-D015-4AD2-A5C2-4F845A803FA2}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{22166290-65D8-49D2-BB88-33201797C7D8}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{9B071A35-897C-477A-AEB7-95F77618A21D}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xeniface/xeniface.vcxproj b/vs2022/xeniface/xeniface.vcxproj
new file mode 100644
index 000000000000..b9756dd9a5e5
--- /dev/null
+++ b/vs2022/xeniface/xeniface.vcxproj
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{22166290-65D8-49D2-BB88-33201797C7D8}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4711;4548;4770;4820;4668;4255;5045;6001;6054;26451;28160;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>$(DDK_LIB_PATH)\ntstrsafe.lib;$(DDK_LIB_PATH)\procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>true</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\xeniface\ioctls.c" />
+    <ClCompile Include="..\..\src\xeniface\wmi.c" />
+    <ClCompile Include="..\..\src\xeniface\driver.c" />
+    <ClCompile Include="..\..\src\xeniface\fdo.c" />
+    <ClCompile Include="..\..\src\xeniface\registry.c" />
+    <ClCompile Include="..\..\src\xeniface\thread.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_sharedinfo.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_suspend.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_evtchn.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_gnttab.c" />
+    <ClCompile Include="..\..\src\xeniface\ioctl_store.c" />
+    <ClCompile Include="..\..\src\xeniface\irp_queue.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <Mofcomp Include="../../src/xeniface/wmi.mof">
+      <CreateBinaryMofFile>$(IntDir)/wmi.bmf</CreateBinaryMofFile>
+    </Mofcomp>
+  </ItemGroup>
+  <ItemGroup>
+    <Wmimofck Include="$(IntDir)\wmi.bmf">
+      <HeaderOutputFile>..\..\src\xeniface\wmi_generated.h</HeaderOutputFile>
+    </Wmimofck>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xeniface\xeniface.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xeniface/xeniface.vcxproj.user b/vs2022/xeniface/xeniface.vcxproj.user
new file mode 100644
index 000000000000..8fcc92e8ab2c
--- /dev/null
+++ b/vs2022/xeniface/xeniface.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xeniface_coinst/xeniface_coinst.vcxproj b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj
new file mode 100644
index 000000000000..9035a1425e31
--- /dev/null
+++ b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{85c731ad-2ea2-4049-a542-d2d38ede938c}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
+      <SDLCheck>true</SDLCheck>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xeniface_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xeniface_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user
new file mode 100644
index 000000000000..8fcc92e8ab2c
--- /dev/null
+++ b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xeniface.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 14:17:56 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 14:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432975.685793 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVbu-0000U1-AQ; Mon, 31 Oct 2022 14:17:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432975.685793; Mon, 31 Oct 2022 14:17:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVbu-0000Tu-7c; Mon, 31 Oct 2022 14:17:54 +0000
Received: by outflank-mailman (input) for mailman id 432975;
 Mon, 31 Oct 2022 14:17:52 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opVbs-0000To-QN
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 14:17:52 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVbs-0002rb-CZ; Mon, 31 Oct 2022 14:17:52 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVbr-0007QO-TE; Mon, 31 Oct 2022 14:17:52 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=N7iickbLrePDPtsXpZ5AtCwHnAAQFhGnyF6t/54EqFQ=; b=aKJwPr
	zWdT7/qEOXKKGuADMDkFfJr8uvLsZszwJobt0wE5TI8FkFEd3j2pT8Wc8VU5rzS/Eh2aKxp0ttVZV
	74BExvABe7m3PFFO/Xj4YHP2XNQAyZNTZO1H7FPYwtFDr0FEjrjeCx/awf6R3fwPp22R2vK+fjmjn
	BPEP9gzZAd0=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Mon, 31 Oct 2022 14:17:48 +0000
Message-Id: <20221031141748.1962-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used
   (and removes re-definition of 'offsetof')

Suggested-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 build.ps1                                     |  16 +-
 include/xen-types.h                           |   2 -
 src/xencons/util.h                            |  11 +-
 vs2022/configs.props                          |  45 +++++
 vs2022/package/package.vcxproj                |  77 +++++++++
 vs2022/package/package.vcxproj.user           |   8 +
 vs2022/targets.props                          |  35 ++++
 vs2022/version/version.vcxproj                |  22 +++
 vs2022/xencons.sln                            | 156 ++++++++++++++++++
 vs2022/xencons/xencons.vcxproj                |  81 +++++++++
 vs2022/xencons/xencons.vcxproj.user           |   8 +
 vs2022/xencons_coinst/xencons_coinst.vcxproj  |  62 +++++++
 .../xencons_coinst.vcxproj.user               |   8 +
 .../xencons_monitor/xencons_monitor.vcxproj   |  79 +++++++++
 .../xencons_monitor.vcxproj.user              |   8 +
 vs2022/xencons_tty/xencons_tty.vcxproj        |  62 +++++++
 vs2022/xencons_tty/xencons_tty.vcxproj.user   |   8 +
 17 files changed, 674 insertions(+), 14 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xencons.sln
 create mode 100644 vs2022/xencons/xencons.vcxproj
 create mode 100644 vs2022/xencons/xencons.vcxproj.user
 create mode 100644 vs2022/xencons_coinst/xencons_coinst.vcxproj
 create mode 100644 vs2022/xencons_coinst/xencons_coinst.vcxproj.user
 create mode 100644 vs2022/xencons_monitor/xencons_monitor.vcxproj
 create mode 100644 vs2022/xencons_monitor/xencons_monitor.vcxproj.user
 create mode 100644 vs2022/xencons_tty/xencons_tty.vcxproj
 create mode 100644 vs2022/xencons_tty/xencons_tty.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 346d1874e0e2..56891078b8a6 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/include/xen-types.h b/include/xen-types.h
index aeed612dc586..82cb69ea9a51 100644
--- a/include/xen-types.h
+++ b/include/xen-types.h
@@ -46,8 +46,6 @@ typedef USHORT  uint16_t;
 typedef ULONG   uint32_t;
 typedef ULONG64 uint64_t;
 
-#define offsetof(_type, _field) FIELD_OFFSET(_type, _field)
-
 #define xen_mb()    KeMemoryBarrier()
 #define xen_wmb()   KeMemoryBarrier()
 #define xen_rmb()   KememoryBarrier()
diff --git a/src/xencons/util.h b/src/xencons/util.h
index 9403891dc156..7bc089e392aa 100644
--- a/src/xencons/util.h
+++ b/src/xencons/util.h
@@ -33,6 +33,7 @@
 #define _XENCONS_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..cdbb3c8c8951
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..533e574851ed
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyDrivers />
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xencons\xencons.vcxproj">
+      <Project>{4674B8C2-876B-4F2A-AB71-BAC968A9B529}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xencons_coinst\xencons_coinst.vcxproj">
+      <Project>{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xencons_monitor\xencons_monitor.vcxproj">
+      <Project>{8991F0A5-408B-43E0-88CC-9550D4AAE616}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xencons_tty\xencons_tty.vcxproj">
+      <Project>{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xencons.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+       SourceFiles="@(PackageFiles)"
+       DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..504b2e3c25b1
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xencons.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..64598fc29b77
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xencons.sln b/vs2022/xencons.sln
new file mode 100644
index 000000000000..836f5426c3e9
--- /dev/null
+++ b/vs2022/xencons.sln
@@ -0,0 +1,156 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencons", "xencons\xencons.vcxproj", "{4674B8C2-876B-4F2A-AB71-BAC968A9B529}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencons_coinst", "xencons_coinst\xencons_coinst.vcxproj", "{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencons_monitor", "xencons_monitor\xencons_monitor.vcxproj", "{8991F0A5-408B-43E0-88CC-9550D4AAE616}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencons_tty", "xencons_tty\xencons_tty.vcxproj", "{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529} = {4674B8C2-876B-4F2A-AB71-BAC968A9B529}
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19} = {6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616} = {8991F0A5-408B-43E0-88CC-9550D4AAE616}
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F} = {79D98F83-5A2F-4DE6-B62C-530D70B88C3F}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{4674B8C2-876B-4F2A-AB71-BAC968A9B529}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{8991F0A5-408B-43E0-88CC-9550D4AAE616}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{8B5B8F4B-7FF3-4B64-AC4A-5246026217E7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xencons/xencons.vcxproj b/vs2022/xencons/xencons.vcxproj
new file mode 100644
index 000000000000..0e24bc1b397f
--- /dev/null
+++ b/vs2022/xencons/xencons.vcxproj
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{4674B8C2-876B-4F2A-AB71-BAC968A9B529}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      <AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.lib;$(DDK_LIB_PATH)/procgrp.lib;$(DDK_LIB_PATH)/wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/xencons/driver.c" />
+    <ClCompile Include="../../src/xencons/fdo.c" />
+    <ClCompile Include="../../src/xencons/pdo.c" />
+    <ClCompile Include="../../src/xencons/registry.c" />
+    <ClCompile Include="../../src/xencons/console.c" />
+    <ClCompile Include="../../src/xencons/stream.c" />
+    <ClCompile Include="../../src/xencons/frontend.c" />
+    <ClCompile Include="../../src/xencons/ring.c" />
+    <ClCompile Include="../../src/xencons/thread.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xencons\xencons.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\package\package.vcxproj" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xencons/xencons.vcxproj.user b/vs2022/xencons/xencons.vcxproj.user
new file mode 100644
index 000000000000..504b2e3c25b1
--- /dev/null
+++ b/vs2022/xencons/xencons.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xencons.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xencons_coinst/xencons_coinst.vcxproj b/vs2022/xencons_coinst/xencons_coinst.vcxproj
new file mode 100644
index 000000000000..b10a8cab75e1
--- /dev/null
+++ b/vs2022/xencons_coinst/xencons_coinst.vcxproj
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{6CC9B8DD-A5AE-427D-8157-E91D21DD7E19}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <IncludePath>..\..\include;$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xencons_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xencons_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xencons_coinst/xencons_coinst.vcxproj.user b/vs2022/xencons_coinst/xencons_coinst.vcxproj.user
new file mode 100644
index 000000000000..a427c8016b15
--- /dev/null
+++ b/vs2022/xencons_coinst/xencons_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xencons.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xencons_monitor/xencons_monitor.vcxproj b/vs2022/xencons_monitor/xencons_monitor.vcxproj
new file mode 100644
index 000000000000..f94d26d42ce5
--- /dev/null
+++ b/vs2022/xencons_monitor/xencons_monitor.vcxproj
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8991F0A5-408B-43E0-88CC-9550D4AAE616}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <PropertyGroup>
+    <CustomBuildAfterTargets>Link</CustomBuildAfterTargets>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5032;5045;6001;6054;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>wtsapi32.lib;cfgmgr32.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x86 -dll -noentry -out:%(Outputs) %(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Outputs>$(TargetDir)$(TargetName).dll</Outputs>
+      <Inputs>$(IntDir)$(TargetName).res</Inputs>
+      <Command>link -machine:x64 -dll -noentry -out:%(Outputs) %(Inputs)</Command>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
+  </ItemGroup>
+  <ItemGroup>
+    <MessageCompile Include="..\..\src\monitor\messages.mc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\monitor\monitor.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\monitor\xencons_monitor.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xencons_monitor/xencons_monitor.vcxproj.user b/vs2022/xencons_monitor/xencons_monitor.vcxproj.user
new file mode 100644
index 000000000000..a427c8016b15
--- /dev/null
+++ b/vs2022/xencons_monitor/xencons_monitor.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xencons.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xencons_tty/xencons_tty.vcxproj b/vs2022/xencons_tty/xencons_tty.vcxproj
new file mode 100644
index 000000000000..303f15897a95
--- /dev/null
+++ b/vs2022/xencons_tty/xencons_tty.vcxproj
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>Application</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{79D98F83-5A2F-4DE6-B62C-530D70B88C3F}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <IncludePath>$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5032;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>setupapi.lib;userenv.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\tty\tty.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\tty\xencons_tty.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xencons_tty/xencons_tty.vcxproj.user b/vs2022/xencons_tty/xencons_tty.vcxproj.user
new file mode 100644
index 000000000000..a427c8016b15
--- /dev/null
+++ b/vs2022/xencons_tty/xencons_tty.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xencons.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 14:32:10 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 14:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.432987.685798 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVpf-0002Xr-DF; Mon, 31 Oct 2022 14:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 432987.685798; Mon, 31 Oct 2022 14:32:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opVpf-0002Xi-9u; Mon, 31 Oct 2022 14:32:07 +0000
Received: by outflank-mailman (input) for mailman id 432987;
 Mon, 31 Oct 2022 14:32:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opVpe-0002Xc-Ky
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 14:32:06 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVpe-00035j-Gs; Mon, 31 Oct 2022 14:32:06 +0000
Received: from 54-240-197-234.amazon.com ([54.240.197.234]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opVpe-0007vS-06; Mon, 31 Oct 2022 14:32:06 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=jbjGk59ZFgbeluMByk3cAWp2X8LmnIujAdfT21ibuy0=; b=2yM8rO
	lucHoDQ/llhn61xcfx67r9bd27JYgFyhm1a4K2FeeGtRk6FNmzx+2jVfFCPrnVFjjmDfENl5gKWLM
	QV68fa+C2EWYnBYTyWhBAS8xO8hRIjRiR/d6911rWsKHLDfB+xB8MkwkNH2l+mdN07i3hu7P+2m6r
	+Nnwkq70sRc=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Mon, 31 Oct 2022 14:32:02 +0000
Message-Id: <20221031143202.2110-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used

Suggested-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 build.ps1                                     |  16 ++-
 src/xenhid/util.h                             |  11 +-
 vs2022/configs.props                          |  45 +++++++
 vs2022/package/package.vcxproj                |  70 ++++++++++
 vs2022/package/package.vcxproj.user           |   8 ++
 vs2022/targets.props                          |  35 +++++
 vs2022/version/version.vcxproj                |  22 ++++
 vs2022/xenhid.sln                             | 122 ++++++++++++++++++
 vs2022/xenhid/xenhid.vcxproj                  |  76 +++++++++++
 vs2022/xenhid/xenhid.vcxproj.user             |   8 ++
 vs2022/xenhid_coinst/xenhid_coinst.vcxproj    |  62 +++++++++
 .../xenhid_coinst/xenhid_coinst.vcxproj.user  |   8 ++
 12 files changed, 471 insertions(+), 12 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xenhid.sln
 create mode 100644 vs2022/xenhid/xenhid.vcxproj
 create mode 100644 vs2022/xenhid/xenhid.vcxproj.user
 create mode 100644 vs2022/xenhid_coinst/xenhid_coinst.vcxproj
 create mode 100644 vs2022/xenhid_coinst/xenhid_coinst.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 346d1874e0e2..56891078b8a6 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/src/xenhid/util.h b/src/xenhid/util.h
index 55ee6b2f0ed3..977e362a4b15 100644
--- a/src/xenhid/util.h
+++ b/src/xenhid/util.h
@@ -33,6 +33,7 @@
 #define _XENHID_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..6fe9a33d5d9e
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..1ed581edbdbc
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{73768CC9-DB26-4297-9EC8-1042F815EB15}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xenhid\xenhid.vcxproj">
+      <Project>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenhid_coinst\xenhid_coinst.vcxproj">
+      <Project>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xenhid.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+	SourceFiles="@(PackageFiles)"
+	DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..6a2d72566792
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenhid.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..d04543455bbf
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xenhid.sln b/vs2022/xenhid.sln
new file mode 100644
index 000000000000..c69467d86248
--- /dev/null
+++ b/vs2022/xenhid.sln
@@ -0,0 +1,122 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenhid", "xenhid\xenhid.vcxproj", "{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenhid_coinst", "xenhid_coinst\xenhid_coinst.vcxproj", "{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{73768CC9-DB26-4297-9EC8-1042F815EB15}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18}
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44} = {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xenhid/xenhid.vcxproj b/vs2022/xenhid/xenhid.vcxproj
new file mode 100644
index 000000000000..68f3d3d23328
--- /dev/null
+++ b/vs2022/xenhid/xenhid.vcxproj
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4711;4548;4770;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      <AdditionalDependencies>$(DDK_LIB_PATH)/hidclass.lib;$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/xenhid/driver.c" />
+    <ClCompile Include="../../src/xenhid/fdo.c" />
+    <ClCompile Include="../../src/xenhid/thread.c" />
+    <ClCompile Include="../../src/xenhid/string.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenhid\xenhid.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\package\package.vcxproj" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenhid/xenhid.vcxproj.user b/vs2022/xenhid/xenhid.vcxproj.user
new file mode 100644
index 000000000000..6a2d72566792
--- /dev/null
+++ b/vs2022/xenhid/xenhid.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenhid.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenhid_coinst/xenhid_coinst.vcxproj b/vs2022/xenhid_coinst/xenhid_coinst.vcxproj
new file mode 100644
index 000000000000..f88f409ab40c
--- /dev/null
+++ b/vs2022/xenhid_coinst/xenhid_coinst.vcxproj
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <IncludePath>..\..\include;$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xenhid_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xenhid_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenhid_coinst/xenhid_coinst.vcxproj.user b/vs2022/xenhid_coinst/xenhid_coinst.vcxproj.user
new file mode 100644
index 000000000000..eca4a5d2ffc8
--- /dev/null
+++ b/vs2022/xenhid_coinst/xenhid_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenhid.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 14:55:08 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 14:55:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.433008.685813 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opWBt-0005RA-EV; Mon, 31 Oct 2022 14:55:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 433008.685813; Mon, 31 Oct 2022 14:55:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opWBt-0005R2-B6; Mon, 31 Oct 2022 14:55:05 +0000
Received: by outflank-mailman (input) for mailman id 433008;
 Mon, 31 Oct 2022 14:55:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1opWBr-0005QM-Rx
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 14:55:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opWBr-0003SZ-JC; Mon, 31 Oct 2022 14:55:03 +0000
Received: from 54-240-197-226.amazon.com ([54.240.197.226]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1opWBr-0000dn-2t; Mon, 31 Oct 2022 14:55:03 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=iyvf76rjfuObptVyPk2cuWWntC66F3/Wgmfb9aQj65I=; b=ULdUzf
	XJvDP30V3GEZAXxIZXkWaJTph+iPXYBlKCHTqPwx0drmPtCZ+hJ6eyXUS0H6y+WsA2yEWNGKKslbz
	b2rRHQ/ODYQ7NL3lxEluatqCQhvv+j6RSjd5tuCYN1IMXYVQ6P7HBeqbURSvw76wq+XnJFnxjZ6C8
	Rxv8CLKvBD8=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add build options for EWDK 22621
Date: Mon, 31 Oct 2022 14:54:59 +0000
Message-Id: <20221031145459.2455-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

VisualStudioVersion = 17.0 maps to Visual Studio 2022
 * Adds project files for vs2022
 * Adds mapping from VisualStudioVersion 17.0 to "vs2022" project folder
 * Adds mapping from VisualStudioVersion 17.0 to "Windows 10" build target
 * Adds guard to build.ps1 - EWDK 22621 does not build x86 binaries
 * Adds include directive where compiler intrinsics are used
   (and removes re-definition of 'offsetof')

Suggested-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 build.ps1                                     |  16 ++-
 include/xen-types.h                           |   2 -
 src/xenvkbd/util.h                            |  11 +-
 vs2022/configs.props                          |  45 +++++++
 vs2022/package/package.vcxproj                |  70 ++++++++++
 vs2022/package/package.vcxproj.user           |   8 ++
 vs2022/targets.props                          |  35 +++++
 vs2022/version/version.vcxproj                |  22 +++
 vs2022/xenvkbd.sln                            | 125 ++++++++++++++++++
 vs2022/xenvkbd/xenvkbd.vcxproj                |  81 ++++++++++++
 vs2022/xenvkbd/xenvkbd.vcxproj.user           |   8 ++
 vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj  |  62 +++++++++
 .../xenvkbd_coinst.vcxproj.user               |   8 ++
 13 files changed, 479 insertions(+), 14 deletions(-)
 create mode 100644 vs2022/configs.props
 create mode 100644 vs2022/package/package.vcxproj
 create mode 100644 vs2022/package/package.vcxproj.user
 create mode 100644 vs2022/targets.props
 create mode 100644 vs2022/version/version.vcxproj
 create mode 100644 vs2022/xenvkbd.sln
 create mode 100644 vs2022/xenvkbd/xenvkbd.vcxproj
 create mode 100644 vs2022/xenvkbd/xenvkbd.vcxproj.user
 create mode 100644 vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj
 create mode 100644 vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj.user

diff --git a/build.ps1 b/build.ps1
index 346d1874e0e2..56891078b8a6 100644
--- a/build.ps1
+++ b/build.ps1
@@ -21,8 +21,8 @@ Function Build {
 	)
 
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; "16.0" = "Windows 8"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 
 	$params = @{
 		SolutionDir = $solutiondir[$visualstudioversion];
@@ -39,8 +39,8 @@ Function Build {
 
 Function SdvBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -54,8 +54,8 @@ Function SdvBuild {
 
 function CodeQLBuild {
 	$visualstudioversion = $Env:VisualStudioVersion
-	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; }
-	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; }
+	$solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; "16.0" = "vs2019"; "17.0" = "vs2022"; }
+	$configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; "16.0" = "Windows 10"; "17.0" = "Windows 10"; }
 	$arch = "x64"
 
 	$params = @{
@@ -108,7 +108,9 @@ if ([string]::IsNullOrEmpty($Env:MICRO_VERSION)) {
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x86" -or $Arch -eq "Win32") {
-	Build "x86" $Type
+	if ($Env:VisualStudioVersion -ne "17.0") {
+		Build "x86" $Type
+	}
 }
 
 if ([string]::IsNullOrEmpty($Arch) -or $Arch -eq "x64") {
diff --git a/include/xen-types.h b/include/xen-types.h
index 232d7999f610..cfad732b11a3 100644
--- a/include/xen-types.h
+++ b/include/xen-types.h
@@ -46,8 +46,6 @@ typedef USHORT  uint16_t;
 typedef ULONG   uint32_t;
 typedef ULONG64 uint64_t;
 
-#define offsetof(_type, _field) FIELD_OFFSET(_type, _field)
-
 #define xen_mb()    KeMemoryBarrier()
 #define xen_wmb()   KeMemoryBarrier()
 #define xen_rmb()   KememoryBarrier()
diff --git a/src/xenvkbd/util.h b/src/xenvkbd/util.h
index 71c2ff5c1313..517b01574f39 100644
--- a/src/xenvkbd/util.h
+++ b/src/xenvkbd/util.h
@@ -33,6 +33,7 @@
 #define _XENVKBD_UTIL_H
 
 #include <ntddk.h>
+#include <intrin.h>
 
 #include "assert.h"
 
@@ -87,21 +88,21 @@ __CpuId(
     OUT PULONG  EDX OPTIONAL
     )
 {
-    ULONG       Value[4] = {0};
+    int         Value[4] = {0};
 
     __cpuid(Value, Leaf);
 
     if (EAX)
-        *EAX = Value[0];
+        *EAX = (ULONG)Value[0];
 
     if (EBX)
-        *EBX = Value[1];
+        *EBX = (ULONG)Value[1];
 
     if (ECX)
-        *ECX = Value[2];
+        *ECX = (ULONG)Value[2];
 
     if (EDX)
-        *EDX = Value[3];
+        *EDX = (ULONG)Value[3];
 }
 
 static FORCEINLINE LONG
diff --git a/vs2022/configs.props b/vs2022/configs.props
new file mode 100644
index 000000000000..cdbb3c8c8951
--- /dev/null
+++ b/vs2022/configs.props
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<ItemGroup Label="ProjectConfigurations">
+		<ProjectConfiguration Include="Windows 10 Debug|Win32">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|Win32">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Debug|x64">
+			<Configuration>Windows 10 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 10 Release|x64">
+			<Configuration>Windows 10 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|Win32">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|Win32">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>Win32</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Debug|x64">
+			<Configuration>Windows 8 Debug</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+		<ProjectConfiguration Include="Windows 8 Release|x64">
+			<Configuration>Windows 8 Release</Configuration>
+			<Platform>x64</Platform>
+			<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+		</ProjectConfiguration>
+	</ItemGroup>
+</Project>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
new file mode 100644
index 000000000000..6210729f7555
--- /dev/null
+++ b/vs2022/package/package.vcxproj
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Utility</ConfigurationType>
+    <DriverType>Package</DriverType>
+    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
+    <SupportsPackaging>true</SupportsPackaging>
+    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{73768CC9-DB26-4297-9EC8-1042F815EB15}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>true</EnableInf2cat>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <EnableDeployment>False</EnableDeployment>
+    <ImportToStore>False</ImportToStore>
+    <InstallMode>None</InstallMode>
+    <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
+    <EnableVerifier>False</EnableVerifier>
+    <AllDrivers>False</AllDrivers>
+    <VerifyProjectOutput>True</VerifyProjectOutput>
+    <VerifyFlags>133563</VerifyFlags>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <PropertyGroup Condition="'$(Platform)'=='Win32'">
+    <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)'=='x64'">
+    <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\xenvkbd\xenvkbd.vcxproj">
+      <Project>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</Project>
+    </ProjectReference>
+    <ProjectReference Include="..\xenvkbd_coinst\xenvkbd_coinst.vcxproj">
+      <Project>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</Project>
+    </ProjectReference>
+    <FilesToPackage Include="..\xenvkbd.inf" />
+  </ItemGroup>
+  <ItemGroup Condition="Exists('$(DPINST_REDIST)')">
+    <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
+    <FilesToPackage Include="$(DPINST_REDIST)\x64\dpinst.exe" Condition="'$(Platform)'=='x64'" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ItemGroup>
+    <PackageFiles Include="$(OutDir)\$(ProjectName)\*" />
+  </ItemGroup>
+  <Target Name="Archive" AfterTargets="TestSign">
+    <Copy
+       SourceFiles="@(PackageFiles)"
+       DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')"
+    />
+  </Target>
+</Project>
diff --git a/vs2022/package/package.vcxproj.user b/vs2022/package/package.vcxproj.user
new file mode 100644
index 000000000000..8d01460901b6
--- /dev/null
+++ b/vs2022/package/package.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvkbd.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
new file mode 100644
index 000000000000..64598fc29b77
--- /dev/null
+++ b/vs2022/targets.props
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|Win32'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 10 Release|x64'">
+		<TargetVersion>Windows10</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|Win32'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Debug|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>true</UseDebugLibraries>
+	</PropertyGroup>
+	<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Windows 8 Release|x64'">
+		<TargetVersion>Windows8</TargetVersion>
+		<UseDebugLibraries>false</UseDebugLibraries>
+	</PropertyGroup>
+</Project>
diff --git a/vs2022/version/version.vcxproj b/vs2022/version/version.vcxproj
new file mode 100644
index 000000000000..b6ec6f3ecb0c
--- /dev/null
+++ b/vs2022/version/version.vcxproj
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid>
+  </PropertyGroup>
+  <PropertyGroup>
+    <Script>..\..\scripts\genfiles.ps1</Script>
+    <SolutionDir>..</SolutionDir>
+    <IncludeDir>..\..\include</IncludeDir>
+    <SourceDir>..\..\src</SourceDir>
+  </PropertyGroup>
+  <Target Name="Build">
+    <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" />
+  </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
+</Project>
diff --git a/vs2022/xenvkbd.sln b/vs2022/xenvkbd.sln
new file mode 100644
index 000000000000..52173733853d
--- /dev/null
+++ b/vs2022/xenvkbd.sln
@@ -0,0 +1,125 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 16
+VisualStudioVersion = 16.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvkbd", "xenvkbd\xenvkbd.vcxproj", "{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvkbd_coinst", "xenvkbd_coinst\xenvkbd_coinst.vcxproj", "{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{73768CC9-DB26-4297-9EC8-1042F815EB15}"
+	ProjectSection(ProjectDependencies) = postProject
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18}
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44} = {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Windows 8 Debug|Win32 = Windows 8 Debug|Win32
+		Windows 8 Debug|x64 = Windows 8 Debug|x64
+		Windows 8 Release|Win32 = Windows 8 Release|Win32
+		Windows 8 Release|x64 = Windows 8 Release|x64
+		Windows 10 Debug|Win32 = Windows 10 Debug|Win32
+		Windows 10 Debug|x64 = Windows 10 Debug|x64
+		Windows 10 Release|Win32 = Windows 10 Release|Win32
+		Windows 10 Release|x64 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{73768CC9-DB26-4297-9EC8-1042F815EB15}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64
+		{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2022/xenvkbd/xenvkbd.vcxproj b/vs2022/xenvkbd/xenvkbd.vcxproj
new file mode 100644
index 000000000000..67a06b6edc7f
--- /dev/null
+++ b/vs2022/xenvkbd/xenvkbd.vcxproj
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
+    <ConfigurationType>Driver</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4061;4464;4711;4548;4770;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+      <AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+      <CETCompat>true</CETCompat>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'">
+    <ClCompile>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <WholeProgramOptimization>true</WholeProgramOptimization>
+      <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="../../src/xenvkbd/bus.c" />
+    <ClCompile Include="../../src/xenvkbd/driver.c" />
+    <ClCompile Include="../../src/xenvkbd/fdo.c" />
+    <ClCompile Include="../../src/xenvkbd/frontend.c" />
+    <ClCompile Include="../../src/xenvkbd/pdo.c" />
+    <ClCompile Include="../../src/xenvkbd/registry.c" />
+    <ClCompile Include="../../src/xenvkbd/ring.c" />
+    <ClCompile Include="../../src/xenvkbd/thread.c" />
+    <ClCompile Include="../../src/xenvkbd/hid.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\..\src\xenvkbd\xenvkbd.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\package\package.vcxproj" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenvkbd/xenvkbd.vcxproj.user b/vs2022/xenvkbd/xenvkbd.vcxproj.user
new file mode 100644
index 000000000000..8d01460901b6
--- /dev/null
+++ b/vs2022/xenvkbd/xenvkbd.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvkbd.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
diff --git a/vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj b/vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj
new file mode 100644
index 000000000000..46b63bbcf963
--- /dev/null
+++ b/vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\configs.props" />
+  <PropertyGroup Label="PropertySheets">
+    <DriverType>WDM</DriverType>
+    <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="..\targets.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
+    <IncludePath>..\..\include;$(IncludePath)</IncludePath>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <EnableInf2cat>false</EnableInf2cat>
+    <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
+    <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>EnableAllWarnings</WarningLevel>
+      <DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;5045;6001;6054;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnablePREfast>true</EnablePREfast>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <ModuleDefinitionFile>../../src/coinst/xenvkbd_coinst.def</ModuleDefinitionFile>
+      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <FilesToPackage Include="$(TargetPath)" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\src\coinst\coinst.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\src\coinst\xenvkbd_coinst.def" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+</Project>
diff --git a/vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj.user b/vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj.user
new file mode 100644
index 000000000000..185ea97d44ad
--- /dev/null
+++ b/vs2022/xenvkbd_coinst/xenvkbd_coinst.vcxproj.user
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <SignMode>TestSign</SignMode>
+    <TestCertificate>..\..\src\xenvkbd.pfx</TestCertificate>
+    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
+  </PropertyGroup>
+</Project>
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Mon Oct 31 21:51:56 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 31 Oct 2022 21:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.433226.686132 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opchF-0001Pq-Nn; Mon, 31 Oct 2022 21:51:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 433226.686132; Mon, 31 Oct 2022 21:51:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1opchF-0001Pj-Kt; Mon, 31 Oct 2022 21:51:53 +0000
Received: by outflank-mailman (input) for mailman id 433226;
 Mon, 31 Oct 2022 21:51:52 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul.durrant@xenproject.org>) id 1opchE-0001Pd-8Y
 for win-pv-devel@lists.xenproject.org; Mon, 31 Oct 2022 21:51:52 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Date: Mon, 31 Oct 2022 21:51:45 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <2180202.3.1667253107010.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
Subject: XENVIF-master - Build #199 - Successful
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_2_2066580.1667253106182"
X-Jenkins-Job: XENVIF-master
X-Jenkins-Result: SUCCESS


------=_Part_2_2066580.1667253106182
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #199.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-master/199/console to view the results.
------=_Part_2_2066580.1667253106182--


