From win-pv-devel-bounces@lists.xenproject.org Fri Sep 01 12:14:33 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 01 Sep 2023 12:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.594598.927959 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qc32k-0002nt-O5; Fri, 01 Sep 2023 12:14:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 594598.927959; Fri, 01 Sep 2023 12:14:30 +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 1qc32k-0002nm-LO; Fri, 01 Sep 2023 12:14:30 +0000
Received: by outflank-mailman (input) for mailman id 594598;
 Fri, 01 Sep 2023 12:14:29 +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=k2Pb=ER=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qc32j-0002ng-1t
 for win-pv-devel@lists.xenproject.org; Fri, 01 Sep 2023 12:14:29 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16aec0dd-48c1-11ee-9b0d-b553b5be7939;
 Fri, 01 Sep 2023 14:14:25 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-31aec0a1a8bso1184614f8f.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 01 Sep 2023 05:14:24 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 l3-20020a1ced03000000b003feae747ff2sm7967474wmh.35.2023.09.01.05.14.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 01 Sep 2023 05:14:23 -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: 16aec0dd-48c1-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1693570463; x=1694175263; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=2GVo5HTA7Lgft5DnHQ1/IVffEr5kYZk5z9kXwWECuZM=;
        b=Dv8/i8BeVN4GER5BHwX25kuLhT2jC3OjLCgbM33oj/L27Obf6zIW2OBZtEDHhG8jCF
         rdJ8Cbfuyo4Vc5hEfZPwCxCwOn1aDacMdr1hQq40zOML5m912yMCduDvK7FPR/Sx6Vmk
         AtFaqYg03nEK7rEicck+qHv+OS7mO7zL6Ljrk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20221208; t=1693570463; x=1694175263;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2GVo5HTA7Lgft5DnHQ1/IVffEr5kYZk5z9kXwWECuZM=;
        b=BxriE+Wk51nK5h4dpha2ut/p/ZIhPcX9kZzmVlYf65tfArELV8ahjBYtX5IIxnYLES
         q4ar1hhuhiudI1WE/1L25h1+eBgMBS63iyQWKDCSE/1t1ExkK53akvkkH2mYIl6JPSnZ
         YEG5Xd/a44Q7iELbHJHFwearR++mNUOdP6My6Dri84Pcg2V4QoijlsJBJxGswqhsUmAP
         nlHKlKM7sLSu8V2z8RH6dm4LpKFo/3ym0aHkOJ1SzP2CnewyJT8pI+Yyx8HrPxMoyy/Y
         GE5gJuIGNhXCuQNVQyWTeY4uzdPap+hh0W5PKG5JwsJZnuz3GYBI0eQfVg+RT+LGzsSa
         vmBw==
X-Gm-Message-State: AOJu0Yx0moRTNYKZOFIFfzybWXL5Il35RQW7zerPGigsUGEaDdMxP45b
	cPZj8rkF+CyXQEIj0u3YJf9S1oQOo99M2id4004S
X-Google-Smtp-Source: AGHT+IGxhmlIfklBJ9izpfvrreb69Kdp5CrWO8hMWGi2qjZ639w1LCoTFPcbKUZ5cHDLLvRR/ATsaQ==
X-Received: by 2002:adf:f10e:0:b0:31a:cca0:2f3a with SMTP id r14-20020adff10e000000b0031acca02f3amr4438317wro.0.1693570463394;
        Fri, 01 Sep 2023 05:14:23 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] AutoGenerate pooltag.txt
Date: Fri,  1 Sep 2023 13:14:12 +0100
Message-ID: <20230901121412.1640-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use following script to generate a pooltag.txt for debugger use

Function Parse-Tags {
    param(
        [string]$drivername
    )

    Get-ChildItem ("./src/" + $drivername) | Foreach-Object {
        $file = $_.Name
        Get-Content $_.FullName | ForEach {
            if ($_.Contains("TAG") -And $_.Contains("#define")) {
                $vals = $_.Split(' ', 3)
                $name = $vals[1].Trim()
                $tags = $vals[2].Trim().Trim("'").PadRight(4)
                Write-Host "TAG:" $name "=" $tags
                $driver = ($drivername + ".sys").PadRight(16)
                ($tags + " - " + $driver + " - XEN " + $drivername + "\" + $file + " " + $name) | Add-Content "./pooltag.txt"
            }
        }
    }
}

if (Test-Path "./pooltag.txt") {
    Remove-Item "./pooltag.txt"
}
Get-ChildItem "./src" | ?{$_.PSIsContainer}  | ForEach-Object {
    Parse-Tags $_.Name
}

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 pooltag.txt | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 pooltag.txt

diff --git a/pooltag.txt b/pooltag.txt
new file mode 100644
index 0000000..b5da2ac
--- /dev/null
+++ b/pooltag.txt
@@ -0,0 +1,33 @@
+GERX - common.sys       - XEN common\registry.c REGISTRY_TAG
+IPCA - xen.sys          - XEN xen\acpi.c XENBUS_ACPI_TAG
+VIRD - xen.sys          - XEN xen\driver.c XEN_DRIVER_TAG
+UDOM - xen.sys          - XEN xen\module.c MODULE_TAG
+TSYS - xen.sys          - XEN xen\system.c XEN_SYSTEM_TAG
+LPNU - xen.sys          - XEN xen\unplug.c UNPLUG_TAG
+LLAB - xenbus.sys       - XEN xenbus\balloon.c XENBUS_BALLOON_TAG
+SUB  - xenbus.sys       - XEN xenbus\bus.c BUS_TAG
+HCAC - xenbus.sys       - XEN xenbus\cache.c CACHE_TAG
+SNOC - xenbus.sys       - XEN xenbus\console.c XENBUS_CONSOLE_TAG
+UBED - xenbus.sys       - XEN xenbus\debug.c XENBUS_DEBUG_TAG
+AMD  - xenbus.sys       - XEN xenbus\dma.c DMA_TAG
+VIRD - xenbus.sys       - XEN xenbus\driver.c XENBUS_DRIVER_TAG
+CTVE - xenbus.sys       - XEN xenbus\evtchn.c XENBUS_EVTCHN_TAG
+L2   - xenbus.sys       - XEN xenbus\evtchn_2l.c XENBUS_EVTCHN_TWO_LEVEL_TAG
+OFIF - xenbus.sys       - XEN xenbus\evtchn_fifo.c XENBUS_EVTCHN_FIFO_TAG
+ODF  - xenbus.sys       - XEN xenbus\fdo.c XENBUS_FDO_TAG
+TLIF - xenbus.sys       - XEN xenbus\filters.c XENBUS_FILTERS_TAG
+TTNG - xenbus.sys       - XEN xenbus\gnttab.c XENBUS_GNTTAB_TAG
+HSAH - xenbus.sys       - XEN xenbus\hash_table.c XENBUS_HASH_TABLE_TAG
+ODP  - xenbus.sys       - XEN xenbus\pdo.c PDO_TAG
+GNAR - xenbus.sys       - XEN xenbus\range_set.c RANGE_SET_TAG
+OFNI - xenbus.sys       - XEN xenbus\shared_info.c XENBUS_SHARED_INFO_TAG
+ROTS - xenbus.sys       - XEN xenbus\store.c XENBUS_STORE_TAG
+PSUS - xenbus.sys       - XEN xenbus\suspend.c XENBUS_SUSPEND_TAG
+CNYS - xenbus.sys       - XEN xenbus\sync.c XENBUS_SYNC_TAG
+ERHT - xenbus.sys       - XEN xenbus\thread.c THREAD_TAG
+LPNU - xenbus.sys       - XEN xenbus\unplug.c XENBUS_UNPLUG_TAG
+VIRD - xenfilt.sys      - XEN xenfilt\driver.c XENFILT_DRIVER_TAG
+LUME - xenfilt.sys      - XEN xenfilt\emulated.c XENFILT_EMULATED_TAG
+ODF  - xenfilt.sys      - XEN xenfilt\fdo.c FDO_TAG
+ODP  - xenfilt.sys      - XEN xenfilt\pdo.c PDO_TAG
+ERHT - xenfilt.sys      - XEN xenfilt\thread.c THREAD_TAG
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 06:49:21 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 06:49:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.599952.935574 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxD5-0007tl-UW; Tue, 12 Sep 2023 06:49:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 599952.935574; Tue, 12 Sep 2023 06:49:19 +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 1qfxD5-0007te-Rt; Tue, 12 Sep 2023 06:49:19 +0000
Received: by outflank-mailman (input) for mailman id 599952;
 Tue, 12 Sep 2023 06:49:18 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxD4-0007Ir-MD
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 06:49:18 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7dcdc9a6-5138-11ee-8786-cb3800f73035;
 Tue, 12 Sep 2023 08:49:18 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-31fa666000dso1810753f8f.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 11 Sep 2023 23:49:16 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.224]) by smtp.gmail.com with ESMTPSA id
 d10-20020a5d538a000000b0031c7682607asm11992214wrv.111.2023.09.11.23.49.15
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Sep 2023 23:49:15 -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: 7dcdc9a6-5138-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694501356; x=1695106156; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=PU0IwE1aiUkkbRK01v5Qa4tc0+JyVogpwGBsKPAPNrA=;
        b=k0ChW04kwSLxaN0PUlymJDqM1E4FFUOsr6E3QivV8dYxn6qNKg+PNPtiAQ+BuTd7ad
         kzN5iPrjS+ANz6DZ7Ua+j01Mkk6EwewuPZLG0WS12gIWOqxI7+GxP/QD3K6pmpOMez2h
         GUvyduGF7iBl8s9NC3Uixv/VxDzKKoEFZW1iYgmDcpMuZ6Dsdco8WYBvVBZZOLF0m6KA
         Dxsj3JYEB93tHHOTiNZTyilhXLDw+lKrBhsIQBMHkogtg/YFh3+QV1sSTWh5HrSrInWV
         HkESk2q2hNBpqMWCU1whYpAqEnIzbWM2bxzGaBq64SLMmUUkBoCAe+5polhyGpTUFfTB
         Jfig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694501356; x=1695106156;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=PU0IwE1aiUkkbRK01v5Qa4tc0+JyVogpwGBsKPAPNrA=;
        b=ElGuL50TzVQoZba8xSmBeCg+YrflJGI6rUn5tVIya7EoHasvn9dSQxWAdixale6Iww
         w5R70by/o6OSfVV89xG2J9b/zwC3F22EviULQsyJRERAZL85Hdx1onGEhjmgjsWWFpbU
         Bwnbxaqyr638Q/SGmuJY88P0OhQxCNuujwMao+F2oMg/9C2Ur0tldLyRtKlCdDvPniIB
         oL/0SYelbJN+YHhOW2UeAzHyYPC+UNGmJpKaEpnVa9/Lg4ha36fGwFXuw+SSezMTZruO
         HYvSh8ZstRGFzxZVR9VcH9dfoFGEPwoV9d9wB6sh36TaV3hYPFZ6YBtS5N96mDo1LyKb
         NXew==
X-Gm-Message-State: AOJu0Ywa731reWzmp8IcnBzsbYie+X1SZd5Q38XX+Uvi76F82aP+8+4Z
	lFYxKFxFmyVJg03HL8WqI6fTEFT0/Ngpy3zj
X-Google-Smtp-Source: AGHT+IF3/Vd1d6gEtnvSws77wZ0dPAJGbqttIJd7pni++dqoW4iwTYLk/P3YjC/ovFnuTUE5bWx88g==
X-Received: by 2002:a5d:410a:0:b0:319:82c9:8e7d with SMTP id l10-20020a5d410a000000b0031982c98e7dmr11144441wrp.31.1694501356027;
        Mon, 11 Sep 2023 23:49:16 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <a988d2a5-ae3a-30ab-99fd-d40f04ccb61a@xen.org>
Date: Tue, 12 Sep 2023 08:49:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [RFC: PATCH 4/5] Remove REV from DeviceID
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831075000.984-1-owen.smith@cloud.com>
 <20230831075000.984-5-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230831075000.984-5-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/08/2023 08:49, Owen Smith wrote:
> Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child INF DDInstall
> section (stored as matching device id), but use the DeviceID to generate the device
> instance path. By keeping the device instance path the same over upgrades, the network
> stack should identify this as an upgrade, rather than 'replacement hardware', and
> not generate a new network connection, which would require network settings to be
> copied from the existing network connection to the new network connection.
>
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

OK. As long as this is never used for selecting the driver to install 
then we should be safe.

> ---
>   src/xenvif/pdo.c | 10 ++--------
>   1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
> index d43702e..288419c 100644
> --- a/src/xenvif/pdo.c
> +++ b/src/xenvif/pdo.c
> @@ -2062,18 +2062,12 @@ PdoQueryId(
>           break;
>   
>       case BusQueryDeviceID: {
> -        ULONG                   Index;
> -        PXENVIF_PDO_REVISION    Revision;
> -
>           Type = REG_SZ;
> -        Index = ARRAYSIZE(PdoRevision) - 1;
> -        Revision = &PdoRevision[Index];
>   
>           status = RtlStringCbPrintfW(Buffer,
>                                       Id.MaximumLength,
> -                                    L"XENVIF\\VEN_%hs&DEV_NET&REV_%08X",
> -                                    __PdoGetVendorName(Pdo),
> -                                    Revision->Number);
> +                                    L"XENVIF\\VEN_%hs&DEV_NET",
> +                                    __PdoGetVendorName(Pdo));
>           ASSERT(NT_SUCCESS(status));
>   
>           Buffer += wcslen(Buffer);



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 06:52:14 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 06:52:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.599959.935578 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxFu-0000RM-60; Tue, 12 Sep 2023 06:52:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 599959.935578; Tue, 12 Sep 2023 06:52: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 1qfxFu-0000RF-3T; Tue, 12 Sep 2023 06:52:14 +0000
Received: by outflank-mailman (input) for mailman id 599959;
 Tue, 12 Sep 2023 06:52:13 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxFs-0000R9-W3
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 06:52:12 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e529a8ab-5138-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 08:52:11 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-500c7796d8eso8736712e87.1
 for <win-pv-devel@lists.xenproject.org>; Mon, 11 Sep 2023 23:52:10 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.224]) by smtp.gmail.com with ESMTPSA id
 x16-20020a05600c21d000b003fbca942499sm15174155wmj.14.2023.09.11.23.52.08
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Sep 2023 23:52:08 -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: e529a8ab-5138-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694501529; x=1695106329; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=lT/KLNJNOT8YxQ99wZydXwHLPZHVTgG8ErmvaxHqcys=;
        b=sbUjHKojVceKsHruT9ot7ZLS36qpB7pL203zD9J0Jmh14MBG5Co0w5B37piE0A8teK
         WtateVskjFmDF0EQJPmLvtlVaUUH7GsDKU4C0bGDpZXlJcz+BwNm+LUhuLjQlL2jqxAL
         jK8MAAp88PdwkYPNGHVviNxmOhC4eFpfnw7AIS1eXPnW0UH+M46++UL22uxozJmb67V8
         kpXMsgdcTLWg67nxUFeVD1ADYymto/JrOmR3YsUWKpTeE0O4BdVaDDShCGm895QdjgRX
         1YtaPNz1RO5jbj74RSxAAz6O7pFxwow5o5ghxJenK0dLG5yCA6iUXm8mR2XqdO5spHHF
         un5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694501529; x=1695106329;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=lT/KLNJNOT8YxQ99wZydXwHLPZHVTgG8ErmvaxHqcys=;
        b=Pxma7uvxFK12YZzXEIAEdwT0lDipjeVbhAPl/z6tQFDcFSTouSUAiS3R8W6MrgfSgF
         FdkT2sT1GGPhzf3ZRS1W8uS5t2hDXOvHe3siO27fUwcw+StfltPvfDnshUSF7yjS1dxR
         DFK0FNABQXR1sIb3wbf0ajagqMaiA45d8e21UScVsyEmUojbeFtJjTd5VF2XRWiY9omt
         cbBEiU399wiloY43iYG7A7N5Si4dPssPQ7yHce+jKmSEF1TEBPuFeh89gZPFMO9RQafy
         05CsyMUTOXlfDKboaRjihM+Sz/fPrExfVRDb71CnwVe1yN454oDoLeODQJrlFWSaLdEd
         D/2w==
X-Gm-Message-State: AOJu0Yx6643s65Mpvm71uLM/VwFFDqATi3c7/Bp8pKoXzUOxGVfdhbju
	LUT+iylyli/FwxVhN2WQ0IJw62sncVU1KZSt
X-Google-Smtp-Source: AGHT+IFC4Y0gvXcEFTLKmEzQzlEfd4I8Vx7fGH32FuaX7RSpcG2PyfOMjhwkM7K0tbp3jPWyv0Khmg==
X-Received: by 2002:a05:6512:2807:b0:500:b433:f81b with SMTP id cf7-20020a056512280700b00500b433f81bmr11184991lfb.17.1694501529368;
        Mon, 11 Sep 2023 23:52:09 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <b03f452e-dbf1-6b3c-5999-fdb65c3685aa@xen.org>
Date: Tue, 12 Sep 2023 08:52:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [RFC: PATCH 3/5] Fix Length calculation in PdoQueryId
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831075000.984-1-owen.smith@cloud.com>
 <20230831075000.984-4-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230831075000.984-4-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/08/2023 08:49, Owen Smith wrote:
> Decrease Length by the string length of the current ID before moving
> the Buffer value to the end of the current ID. Without this, Length
> is not decreased, leading to potential issues with the next call to
> RtlStringCbPrintfW.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenvif/pdo.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
> index 1d163c9..d43702e 100644
> --- a/src/xenvif/pdo.c
> +++ b/src/xenvif/pdo.c
> @@ -2100,11 +2100,11 @@ PdoQueryId(
>                                           Revision->Number);
>               ASSERT(NT_SUCCESS(status));
>   
> -            Buffer += wcslen(Buffer);
>               Length -= (ULONG)(wcslen(Buffer) * sizeof (WCHAR));
> +            Buffer += wcslen(Buffer);

This looks fine.

>   
> -            Buffer++;
>               Length -= sizeof (WCHAR);
> +            Buffer++;

This doesn't have any effect AFAICT though. Is it just a cosmetic change 
to keep the updating of 'Buffer' and 'Length' in the same order?

   Paul

>   
>               --Index;
>           }



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 06:57:37 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 06:57:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.599966.935582 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxL5-0000xu-Iv; Tue, 12 Sep 2023 06:57:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 599966.935582; Tue, 12 Sep 2023 06:57: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 1qfxL5-0000xn-G4; Tue, 12 Sep 2023 06:57:35 +0000
Received: by outflank-mailman (input) for mailman id 599966;
 Tue, 12 Sep 2023 06:57:33 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxL3-0000xh-MT
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 06:57:33 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a57a8b6d-5139-11ee-8786-cb3800f73035;
 Tue, 12 Sep 2023 08:57:32 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-403061cdf2bso26768045e9.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 11 Sep 2023 23:57:32 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.228]) by smtp.gmail.com with ESMTPSA id
 d1-20020a056000114100b0031971ab70c9sm11950137wrx.73.2023.09.11.23.57.31
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Sep 2023 23:57:31 -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: a57a8b6d-5139-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694501852; x=1695106652; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=54nF0/ZTlAxQuwHLLLc7KxHQI9elA3keo4J/9uqsafY=;
        b=RTdo2YaOadc68IAOw2AUyeyxYFfnc12CS6DXoRUomUn+kWQ68C21yKwAuoPjvj1OqM
         lPE8W8o00z7BlKXa512K1Coy4ss7FcTCF/u6bSIfgyJiJU36fzRY7eTyZ6O7SkUW9ab3
         d6l13Uk6pV16LK99fZTOSv4w3tdKx91gkGqNikaY1niEh8cLZ6a8RqGQYjsGyHqbRxIO
         nDVbRsJQg9syPbWYld0eYo+J0w8AoE6gyp7NaSUtrvAYvdku0tBN4ZyaoqbolXvbTFrL
         Wp0O1RTmtHcnCirjb9dlOycGWbbqZiXh0D7loogm0SUGKqd+bM8A8Liom/MmvHbpgttc
         FDNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694501852; x=1695106652;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=54nF0/ZTlAxQuwHLLLc7KxHQI9elA3keo4J/9uqsafY=;
        b=QIAhxYiOn/v1ywnoi++V6lUEECqkHr80gZg3rLA/h/iF7OKMIKFFwNhVUGueLqK3f+
         PD64KKbpJywWPvYSXHdvkZXLQS39+8GGg43N8hJUDhCTw6cgfRApqnjWNfS3bEbZz+sp
         bkYYQxWjHf9F6toF+7sCPh47DusH7oBXFlfrganL/1VLegrdYtsMjuYGSMr5mgPZEvwO
         9lQshM4Qc89bkM7jdGNo2oC+rZjZHhomb7JT0cVBZqZvcS3wS2y2eUCpsVqrmq8hLHNJ
         TMbD+Wg6pn66N1XVybchsFenO8KqigZ6FY9dHFH7w7o8btWPobKRxB9r+MdZYgzFgqwS
         OmgA==
X-Gm-Message-State: AOJu0YwgnG5coEb6/1OFQfEe8dVid6nYcmb50VnRAUNMeHyZ8GD5oCBB
	EFGJtBJbTtqpwZGhtUM7RZ6AXFp8e0SiXBH0
X-Google-Smtp-Source: AGHT+IFQmNXf8PqCGhva2MdMQP/MTRHJmc/p0dq+BFKaom3YacWIBvOEnOJcxxG/3uhRphnggzqEtA==
X-Received: by 2002:a5d:564b:0:b0:317:6849:2d39 with SMTP id j11-20020a5d564b000000b0031768492d39mr10128362wrw.10.1694501851999;
        Mon, 11 Sep 2023 23:57:31 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <e9b81d53-c650-25e4-9822-09e29a785ea9@xen.org>
Date: Tue, 12 Sep 2023 08:57:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [RFC: PATCH 5/5] Add Unplug v2
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831075000.984-1-owen.smith@cloud.com>
 <20230831075000.984-6-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230831075000.984-6-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/08/2023 08:50, Owen Smith wrote:
> If NICs have not been unplugged, do not start PV network devices and trigger a
> required reboot.
> This is to avoid the upgrade case where both emulated and PV devices could be
> present, due to a 'revert to emulated' policy and emulated NICs not currently
> getting IP configurations so the HasAlias value is not determined correctly.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

Have you sent the XENBUS patch(es) for the new unplug interface version? 
I don't recall seeing them. Also, given its fairly specific meaning, 
perhaps IsUnplugRequested() is a better name than GetState()?

   Paul



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:02:02 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:02:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.599973.935586 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxPN-00029V-Ue; Tue, 12 Sep 2023 07:02:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 599973.935586; Tue, 12 Sep 2023 07:02:01 +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 1qfxPN-00029O-Rh; Tue, 12 Sep 2023 07:02:01 +0000
Received: by outflank-mailman (input) for mailman id 599973;
 Tue, 12 Sep 2023 07:01: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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxPL-00029I-UJ
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:01:59 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 438104d1-513a-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 09:01:57 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-31adc5c899fso5553042f8f.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:01:57 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.228]) by smtp.gmail.com with ESMTPSA id
 14-20020a056000154e00b0031f8be5b41bsm9124690wry.5.2023.09.12.00.01.56
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:01: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: 438104d1-513a-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694502117; x=1695106917; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=GrN7UN41MRoBvaWXFnFSyn3CQTaFGQ90VCBGho9S0Ak=;
        b=ivxblodvOkTnDEWbqweZ/piD4e0z5sh95FbQJo258OlDHtaUH9FFw7MRViJRjw1VSD
         dzaYwZyMnCU+TWVR31dlVyM0/+UXT1LwRvsJzxJ+leV6PUCJLzFLZvDu+pUku/u+Y1kX
         6Bao4K5g4we7gn3Mj29emwLvZBolebtxzS2KePDnoy+2xyu3/WcbMHuFgu8B8i/YHm4b
         IAJnKhkxsi0FwBKTZVxH6uTGGVydfbY1Xo3VOPDBV/MqKwfomWRLdNESynUkBpH/ugHJ
         qEbOKwD1QE9ISOEQDJCI6m2mSyHf91mOeNRmC/JptTWFkEkNoIFA/GyyVrz+fn7PTLRX
         xaZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694502117; x=1695106917;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=GrN7UN41MRoBvaWXFnFSyn3CQTaFGQ90VCBGho9S0Ak=;
        b=l8qJCQOvW/2gYpucMv2f+0nUulOzJLf0qrxeuRXLcp39J5Ni/np7BFZPd5BXWKQy7X
         urYiKih6UXF8T8Xd2J4C72Fyo5YecnofATspZ5laf//tllKQQKfVCCiTmQ65hicuf79l
         cpOQcQ0uoghb+HmVOgc7/ga7GqkCoZ7jH1JpeRRLfx5/zSpzfl3LdyMTpSQdGmtm2wvt
         7/ELNs0CnunuKC0dNfbK/nQq/ZiqYD0qb1ds2vlROhbJiC7z8Xj+9t771yCUhRQ1k0af
         xjEreMKUAehRIVRvH7cWD+f/22+647rW6Ns/hRBk1V2byEaGxXR0xrimxrUkLXfHmDOS
         SQYQ==
X-Gm-Message-State: AOJu0YzPgrGTgaJ4F3nEwyZhWvxEwO1I3AATWlxN6HagMwRG6zQTJmBo
	FEbFIjFS3XM+IR8x4zgOdW9PK8cz6CzS9wTe
X-Google-Smtp-Source: AGHT+IFq5kxSJoMF5FMb13ftPJ5vlr3sQz5IAGkOq9drHKtSJPxAv96H7s2azh9xnIZKFV3Uy6pltQ==
X-Received: by 2002:adf:a489:0:b0:31f:a259:73d with SMTP id g9-20020adfa489000000b0031fa259073dmr4455318wrb.19.1694502117053;
        Tue, 12 Sep 2023 00:01:57 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <c0ea1c83-282c-6748-f970-eaabfdf950a8@xen.org>
Date: Tue, 12 Sep 2023 09:01:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [RFC: PATCH 1/5] Remove CoInstaller from INF
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831075000.984-1-owen.smith@cloud.com>
 <20230831075000.984-2-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230831075000.984-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/08/2023 08:49, Owen Smith wrote:
> Windows 11 22H2 WHQL requires INF file pass "InfVerif /k", which highlights
> several issues
> - PnpLockdown=1 needs to be specified
> - CoInstallers are no longer allowed
> 
> The CoInstaller has several functions that will need alternative solutions:
> - The AllowUpdate mechanism is no longer possible
> - The safety checks that ensure interface versionings remain compatible
> - The writing of 'current' network identifiers to the registry in order to
>    copy network settings.
> 
> Interface safety checks need to be handled by changes to child device bindings,
> and assuming upgrade via emulated devices is safe. The unplug key is cleared
> in the INF to revert to emulated NICs on the next boot, incase the current child
> drivers rely on an interface that is no longer present (note: in this case,
> child drivers will need updating).
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

The allow update functionality was supposed to deal with the case of 
updating a driver than would not necessarily cause a reboot. IOW we'd 
update a parent and no child that could use that parent is present in 
the system. If we can't do that safety check any more then I think we 
have to force a reboot as well as clearing the unplug key, don't we?

   Paul



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:03:51 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:03:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.599982.935595 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxR8-0002G4-5H; Tue, 12 Sep 2023 07:03:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 599982.935595; Tue, 12 Sep 2023 07:03:50 +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 1qfxR8-0002Fx-2f; Tue, 12 Sep 2023 07:03:50 +0000
Received: by outflank-mailman (input) for mailman id 599982;
 Tue, 12 Sep 2023 07:03:48 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxR6-0002Fr-Oj
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:03:48 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 851053ce-513a-11ee-8786-cb3800f73035;
 Tue, 12 Sep 2023 09:03:47 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-401f68602a8so57391555e9.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:03:47 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.228]) by smtp.gmail.com with ESMTPSA id
 d13-20020adff84d000000b00317909f9985sm11956511wrq.113.2023.09.12.00.03.46
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:03:46 -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: 851053ce-513a-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694502227; x=1695107027; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Gzo0TBJ3zetTU6+mDYNKpkneqkOnLt8pWUxL73v5zK0=;
        b=kOn/WjHGukBB0mJK5fjzs7sfmg3jOtoSIvYKS6V4I3mKJ7rRLuSs54akelOKo4WfZw
         9WqumiFt8W2HeQC4sQgzvvn3eTgepiZSlRYdZATIkmLeSQ5iNppvfftGbca7OxhNrn6z
         4tirTDjPnHF3z2TUe6fqeWanV+SgxU4/U8+OT66hgEIkw/hYImvYWzh4zGwYUTKz3KPu
         J6lJuvlEo6DIUlJa/CBJVsID3rnt6h5kis8TckDUvE1a4BJPLq6tZsNfOdINQe+8I6PS
         kRLzcQ1UznPldc/XyL292guTBPds8oI0t+Pe11DCwa/Qi0+LhuxZdem+8xBxSGwrBBY8
         FmaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694502227; x=1695107027;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=Gzo0TBJ3zetTU6+mDYNKpkneqkOnLt8pWUxL73v5zK0=;
        b=vQtNaMvihULoQTmWACotUOETAjEWRNPNSa2aDOEFXmi9nH5I4kYomas60DMAPhO5RG
         Ew1Ook9cB1NSNJtf9qC+uzWiqWop6hsws4UU8o5JTWoibz1VP0Y2lUsLVP86TAN9LPcO
         YaWy1HUL8QqKOA5VROnMoIIdP6BDOj9Ut5idX0uN4VXilIFstltWOYq9y3A4XyQMqvgO
         F2jNcewwXN2/lobCuPdovs3s/T5MXd+AnUdu/BGnmQ1aslQFUGbLb3FKZUdH43NHWjat
         VQ+rXf30YMH1YAq1+rkFTuMEeHJStf5c/qquWqoYBBHINe1Ze43cNVPltgve82L6nkaZ
         /xAg==
X-Gm-Message-State: AOJu0YwcNnnb27+/GimY2Iwl2sJHTjVNG8O6r9j5dWMj9ZfaayN1QfTO
	bmjp++Ew1fq2YIQ7h16x95yiihQgBc89IYen
X-Google-Smtp-Source: AGHT+IF+naF+WrZIy2TscdLDMzHCF8zYc+ObkZottyElziNwGvOtl7Ev2hQaP1nv174HQy17bTd99Q==
X-Received: by 2002:adf:ea09:0:b0:31c:6420:fff with SMTP id q9-20020adfea09000000b0031c64200fffmr9081269wrm.62.1694502227039;
        Tue, 12 Sep 2023 00:03:47 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <d9fc059a-56fa-1342-b50a-d8388fc9eccf@xen.org>
Date: Tue, 12 Sep 2023 09:03:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [PATCH] AutoGenerate pooltag.txt
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230901121412.1640-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230901121412.1640-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 01/09/2023 13:14, Owen Smith wrote:
> Use following script to generate a pooltag.txt for debugger use
> 
> Function Parse-Tags {
>      param(
>          [string]$drivername
>      )
> 
>      Get-ChildItem ("./src/" + $drivername) | Foreach-Object {
>          $file = $_.Name
>          Get-Content $_.FullName | ForEach {
>              if ($_.Contains("TAG") -And $_.Contains("#define")) {
>                  $vals = $_.Split(' ', 3)
>                  $name = $vals[1].Trim()
>                  $tags = $vals[2].Trim().Trim("'").PadRight(4)
>                  Write-Host "TAG:" $name "=" $tags
>                  $driver = ($drivername + ".sys").PadRight(16)
>                  ($tags + " - " + $driver + " - XEN " + $drivername + "\" + $file + " " + $name) | Add-Content "./pooltag.txt"
>              }
>          }
>      }
> }
> 
> if (Test-Path "./pooltag.txt") {
>      Remove-Item "./pooltag.txt"
> }
> Get-ChildItem "./src" | ?{$_.PSIsContainer}  | ForEach-Object {
>      Parse-Tags $_.Name
> }
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   pooltag.txt | 33 +++++++++++++++++++++++++++++++++
>   1 file changed, 33 insertions(+)
>   create mode 100644 pooltag.txt
> 

Could we commit the script into the repo, rather that its output?

   Paul

> diff --git a/pooltag.txt b/pooltag.txt
> new file mode 100644
> index 0000000..b5da2ac
> --- /dev/null
> +++ b/pooltag.txt
> @@ -0,0 +1,33 @@
> +GERX - common.sys       - XEN common\registry.c REGISTRY_TAG
> +IPCA - xen.sys          - XEN xen\acpi.c XENBUS_ACPI_TAG
> +VIRD - xen.sys          - XEN xen\driver.c XEN_DRIVER_TAG
> +UDOM - xen.sys          - XEN xen\module.c MODULE_TAG
> +TSYS - xen.sys          - XEN xen\system.c XEN_SYSTEM_TAG
> +LPNU - xen.sys          - XEN xen\unplug.c UNPLUG_TAG
> +LLAB - xenbus.sys       - XEN xenbus\balloon.c XENBUS_BALLOON_TAG
> +SUB  - xenbus.sys       - XEN xenbus\bus.c BUS_TAG
> +HCAC - xenbus.sys       - XEN xenbus\cache.c CACHE_TAG
> +SNOC - xenbus.sys       - XEN xenbus\console.c XENBUS_CONSOLE_TAG
> +UBED - xenbus.sys       - XEN xenbus\debug.c XENBUS_DEBUG_TAG
> +AMD  - xenbus.sys       - XEN xenbus\dma.c DMA_TAG
> +VIRD - xenbus.sys       - XEN xenbus\driver.c XENBUS_DRIVER_TAG
> +CTVE - xenbus.sys       - XEN xenbus\evtchn.c XENBUS_EVTCHN_TAG
> +L2   - xenbus.sys       - XEN xenbus\evtchn_2l.c XENBUS_EVTCHN_TWO_LEVEL_TAG
> +OFIF - xenbus.sys       - XEN xenbus\evtchn_fifo.c XENBUS_EVTCHN_FIFO_TAG
> +ODF  - xenbus.sys       - XEN xenbus\fdo.c XENBUS_FDO_TAG
> +TLIF - xenbus.sys       - XEN xenbus\filters.c XENBUS_FILTERS_TAG
> +TTNG - xenbus.sys       - XEN xenbus\gnttab.c XENBUS_GNTTAB_TAG
> +HSAH - xenbus.sys       - XEN xenbus\hash_table.c XENBUS_HASH_TABLE_TAG
> +ODP  - xenbus.sys       - XEN xenbus\pdo.c PDO_TAG
> +GNAR - xenbus.sys       - XEN xenbus\range_set.c RANGE_SET_TAG
> +OFNI - xenbus.sys       - XEN xenbus\shared_info.c XENBUS_SHARED_INFO_TAG
> +ROTS - xenbus.sys       - XEN xenbus\store.c XENBUS_STORE_TAG
> +PSUS - xenbus.sys       - XEN xenbus\suspend.c XENBUS_SUSPEND_TAG
> +CNYS - xenbus.sys       - XEN xenbus\sync.c XENBUS_SYNC_TAG
> +ERHT - xenbus.sys       - XEN xenbus\thread.c THREAD_TAG
> +LPNU - xenbus.sys       - XEN xenbus\unplug.c XENBUS_UNPLUG_TAG
> +VIRD - xenfilt.sys      - XEN xenfilt\driver.c XENFILT_DRIVER_TAG
> +LUME - xenfilt.sys      - XEN xenfilt\emulated.c XENFILT_EMULATED_TAG
> +ODF  - xenfilt.sys      - XEN xenfilt\fdo.c FDO_TAG
> +ODP  - xenfilt.sys      - XEN xenfilt\pdo.c PDO_TAG
> +ERHT - xenfilt.sys      - XEN xenfilt\thread.c THREAD_TAG



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:17:50 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:17:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.599992.935600 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxec-0004Mz-24; Tue, 12 Sep 2023 07:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 599992.935600; Tue, 12 Sep 2023 07:17: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 1qfxeb-0004Ms-Vn; Tue, 12 Sep 2023 07:17:45 +0000
Received: by outflank-mailman (input) for mailman id 599992;
 Tue, 12 Sep 2023 07:17:44 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxea-0004L3-2z
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:17:44 +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 763051cf-513c-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 09:17:42 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-31aeedbb264so5582478f8f.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:17:41 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.224]) by smtp.gmail.com with ESMTPSA id
 v17-20020a5d6791000000b00318147fd2d3sm12028479wru.41.2023.09.12.00.17.40
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:17:40 -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: 763051cf-513c-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694503061; x=1695107861; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=XqLnf35wRMOIPA9Olq2gH8qcyu12KJv0O3OXQIjzZWE=;
        b=pTFLtPnq89crZKpg477BErRbHbdSzpJuoBqIi8sw1ABo0OHVD30bZMNNUm1nMgjuVL
         /lGwe3Tqdk5E7MAl7kohk8fWDlmhTw8myAodTyFRaiON5gLOGUakkaPYw3148D+02ryu
         0yD07x5TzNOTCaloygF2GFOQXA7oS1C9Ss3RSxO9LeS/KJr7J3uQNbNzZV/wkwIqMa9E
         woczU80clcb2GZ3QMUgwl1j1/sOcvdW96aMbiML3dE1nSZYIBNP/djbeAbLB/ktV9MDl
         cwMdjNrtmw72Knt9BPLg6hfEVQiX3FmXGmElZemgfrrYtCAYCOvpKjI2OBTzsSZleqH1
         3/Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694503061; x=1695107861;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=XqLnf35wRMOIPA9Olq2gH8qcyu12KJv0O3OXQIjzZWE=;
        b=kTVpy1SQyyhuCvx/Cre/w/MKDOexshYdNHiTWS0qIOmnK1vWhuh6YEYzbMfJ2dUoqy
         av8kUwlWIDVjEV1hS3NFZbIWyR64PX1o8/tSq9rXZe+5PFx9oTgftRpiYmwE95ATwzey
         qLA9vadJmKTTuo7JG4H3ZlGng+wdjCsVpabhbUQyKBpuH8DHJa1C9XFsKM74xqgK5Pq5
         Amni9VsHVIMP6R36TwVguyXP07zrOYGspD7h7hlNw/IMqzKRtssfPaC37C/eRCKTEhoG
         5S10Qrox7dB4uQgLfFs2NZ7waL4i491UEqENPLBDUVPtJfVKhn5Ird7y1lELC5GyVsP9
         Z5Cg==
X-Gm-Message-State: AOJu0YwT2AZ/qy/EJVpa+76TSKza4kLJ1naX8VcjjV5ewqSF54bVcscL
	Gaq5lXZj3zqKCIYy12XYGd2ANVHTXBO3b4B6
X-Google-Smtp-Source: AGHT+IEacFKA/HGuW7xGCo18u764aqPZPbgkP4ykweAOh+R1FVUFD/rg+mR897EsOI1wC7yWME8Odg==
X-Received: by 2002:a5d:6f19:0:b0:31f:918a:b097 with SMTP id ay25-20020a5d6f19000000b0031f918ab097mr7770019wrb.63.1694503061103;
        Tue, 12 Sep 2023 00:17:41 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <3dbb2be2-4d4b-4d9a-f286-e6c0bc6b4ef8@xen.org>
Date: Tue, 12 Sep 2023 09:17:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [PATCH 2/6] Reset StorNvme's StartOverride
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831072921.1258-1-owen.smith@cloud.com>
 <20230831072921.1258-3-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230831072921.1258-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/08/2023 08:29, Owen Smith wrote:
> When StorNvme does not enumerate any devices during boot start, it sets
> the StartOverride value, which means that StorNvme does not start during
> the next boot.
> This can be an issue when attempting to revert to emulated boot, such as
> during a driver upgrade, as StorNvme will not be loaded and not take control
> of the boot disk, leading to a 0x7B bugcheck.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/monitor/monitor.c | 63 +++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 63 insertions(+)
> 

This seems like a straight fix for an existing problem so I could take 
it now?

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

> diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
> index bb872ce..185838f 100644
> --- a/src/monitor/monitor.c
> +++ b/src/monitor/monitor.c
> @@ -1173,6 +1173,66 @@ fail1:
>       return FALSE;
>   }
>   
> +static BOOL
> +RemoveStartOverride(
> +    IN PTCHAR           DriverName
> +    )
> +{
> +    TCHAR               KeyName[MAX_PATH];
> +    HKEY                Key;
> +    DWORD               Value;
> +    HRESULT             Error;
> +
> +    Error = StringCbPrintf(KeyName,
> +                           MAX_PATH,
> +                           SERVICES_KEY "\\%s\\StartOverride",
> +                           DriverName);
> +    assert(SUCCEEDED(Error));
> +
> +    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
> +                         KeyName,
> +                         0,
> +                         KEY_READ | KEY_WRITE,
> +                         &Key);
> +    if (Error != ERROR_SUCCESS) {
> +        SetLastError(Error);
> +        goto fail1;
> +    }
> +
> +    Value = 0;
> +    Error = RegSetValueEx(Key,
> +                          "0",
> +                          0,
> +                          REG_DWORD,
> +                          (const BYTE*)&Value,
> +                          (DWORD) sizeof(Value));
> +    if (Error != ERROR_SUCCESS) {
> +        SetLastError(Error);
> +        goto fail2;
> +    }
> +
> +    RegCloseKey(Key);
> +
> +    return TRUE;
> +
> +fail2:
> +    Log("fail2");
> +
> +    RegCloseKey(Key);
> +
> +fail1:
> +    Error = GetLastError();
> +
> +    {
> +        PTCHAR  Message;
> +        Message = GetErrorMessage(Error);
> +        Log("fail1 (%s)", Message);
> +        LocalFree(Message);
> +    }
> +
> +    return FALSE;
> +}
> +
>   VOID WINAPI
>   MonitorMain(
>       _In_    DWORD       argc,
> @@ -1189,6 +1249,8 @@ MonitorMain(
>   
>       Log("====>");
>   
> +    (VOID) RemoveStartOverride("stornvme");
> +
>       Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
>                            PARAMETERS_KEY(__MODULE__),
>                            0,
> @@ -1301,6 +1363,7 @@ done:
>       (VOID) DeregisterEventSource(Context->EventLog);
>   
>       CloseHandle(Context->ParametersKey);
> +    (VOID) RemoveStartOverride("stornvme");
>   
>       Log("<====");
>   



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:18:40 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:18:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600001.935614 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxfU-0004qk-Cl; Tue, 12 Sep 2023 07:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600001.935614; Tue, 12 Sep 2023 07:18:40 +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 1qfxfU-0004qd-A5; Tue, 12 Sep 2023 07:18:40 +0000
Received: by outflank-mailman (input) for mailman id 600001;
 Tue, 12 Sep 2023 07:18:39 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxfT-0004Tu-Ge
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:18:39 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97e20269-513c-11ee-8786-cb3800f73035;
 Tue, 12 Sep 2023 09:18:38 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-401b5516104so55793725e9.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:18:38 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.224]) by smtp.gmail.com with ESMTPSA id
 n4-20020a05600c294400b003fbdbd0a7desm15162556wmd.27.2023.09.12.00.18.37
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:18:37 -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: 97e20269-513c-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694503118; x=1695107918; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=4Xq18JV4Skc/oQUT2TUpy0VjwAWltgWlMN18K7fC1Y8=;
        b=Wy0ji2k8PBk+PCu4Rz9wEPU1rncA29ftgPwT8ZKDMNztaFYg7stwBEMuRQUg63O3Am
         Gr81qAPwfakyQPPDDBhYCljjl9yUNXj+fK+PiDjIk8TDfsCrCg1Tn5kECkossR/zZOn2
         OZyc3KVGCBZGf89RWMgro8p64P4vCde4oKKIebHIWs1q5pecGWyx/q8G/unLc3a+zJBV
         jJ/MCesdqpIDsgv9xGLSWzZgOjQ12FfBFKRlhlYF3f3uYk/UOhq+iczSJ4U9IvYaS9gs
         l5KArectSMeAn6Ybprpcabt2ioB09bDteUk96dgsTZJlWWOvtm3bmE6QSruD9l6mJV1M
         Ptgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694503118; x=1695107918;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=4Xq18JV4Skc/oQUT2TUpy0VjwAWltgWlMN18K7fC1Y8=;
        b=c8aagxzMzfNeIXiQFviqY/rhQTf1YmjBHOrHgN5r5ug1oLe5He0ett78KtOqUJ1uAg
         dz9q/yIFjl39X84Pk1PdACyxUI4hioq59sVJjW0vLzu0Wdwtlmg+Xtf8Olg3/hV22zQx
         duknABeXZ0rI3QPQJtdzMxVH4/dlgy27Zq7oM1ohClaQyIajW29laZTJ1RTAMEvKRPaB
         9kJZAyaB6AO6IDsIClTEo4H9JUIwjwJPnenhNm41Cr2YexezLZuHX3w62GZUQSLPWgOd
         Ch/PQexGEFR9HUdPi0u2JscXglhepQfJ/1+dskmSWcd+NqdLSylrugGKSI9ppEDXNAFQ
         iV5w==
X-Gm-Message-State: AOJu0YwDBS4xGDbVj7BtgBHwnP6pHwhBcSIX4qRiwdE2dg1dBiqij0gj
	ozdVEOU0ik1IJ+XDycnPAqf7dlgJPS3l85tb
X-Google-Smtp-Source: AGHT+IGg15nCDV8fIbyJHRufBytcQ1jYkUe4y7Dh8YMLQmxj6/oKsAh4JY/B8OwidjaOKi1l+ZdKJA==
X-Received: by 2002:a05:600c:2611:b0:401:bf87:9895 with SMTP id h17-20020a05600c261100b00401bf879895mr10266201wma.22.1694503117747;
        Tue, 12 Sep 2023 00:18:37 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <16faaeea-8368-e05d-71d8-259f4897143e@xen.org>
Date: Tue, 12 Sep 2023 09:18:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [RFC: PATCH 5/5] Add Unplug v2
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831075000.984-1-owen.smith@cloud.com>
 <20230831075000.984-6-owen.smith@cloud.com>
 <e9b81d53-c650-25e4-9822-09e29a785ea9@xen.org>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <e9b81d53-c650-25e4-9822-09e29a785ea9@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 12/09/2023 07:57, Paul Durrant wrote:
> On 31/08/2023 08:50, Owen Smith wrote:
>> If NICs have not been unplugged, do not start PV network devices and 
>> trigger a
>> required reboot.
>> This is to avoid the upgrade case where both emulated and PV devices 
>> could be
>> present, due to a 'revert to emulated' policy and emulated NICs not 
>> currently
>> getting IP configurations so the HasAlias value is not determined 
>> correctly.
>>
>> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> 
> Have you sent the XENBUS patch(es) for the new unplug interface version? 

Ah, I found it now :-)

   Paul

> I don't recall seeing them. Also, given its fairly specific meaning, 
> perhaps IsUnplugRequested() is a better name than GetState()?
> 
>    Paul
> 



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:20:23 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:20:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600012.935618 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxh9-0005wF-IR; Tue, 12 Sep 2023 07:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600012.935618; Tue, 12 Sep 2023 07:20:23 +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 1qfxh9-0005w8-FS; Tue, 12 Sep 2023 07:20:23 +0000
Received: by outflank-mailman (input) for mailman id 600012;
 Tue, 12 Sep 2023 07:20:23 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxh8-0005w0-V8
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:20:22 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4b4d748-513c-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 09:20:20 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-402d0eda361so61836175e9.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:20:20 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.228]) by smtp.gmail.com with ESMTPSA id
 o8-20020a05600c378800b00401d6c0505csm12058712wmr.47.2023.09.12.00.20.18
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:20:19 -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: d4b4d748-513c-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694503220; x=1695108020; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=8GmUEoUt54slnOn7YG3Q+JttjSRYRSwP21lmUqUxjmk=;
        b=h040rOVyNrc7xbXIHctn/fFqrybyAffdXzZube/4b5S62EdmsF2b5NEWWIOv4oa9Yx
         1/P+yu3qR/kPE9dVHOB2idDz39u2pF1/6oB2pKkxS5CtsIsMocKlaw5KjPbNgFsM8CXf
         onPls/3mgd8FfqxhFIJ0OYjv3VUOQ9jdbDHxDWCxS3jIt1C+TDJwWR7eq+iHz2JwBxPw
         14I7kDWqSYPJn/sAWkqGdGvugIjdoV2izeHG34yc7MgxSFtopgrLPqOkvlVZdfnM2+/9
         m284qY0B1GdLC/2kqcKtlC2sHR/Q3VtecexmQpC9pfoyUzRmpeEK0Q8DaNAt/Kzg4Wxi
         gPqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694503220; x=1695108020;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=8GmUEoUt54slnOn7YG3Q+JttjSRYRSwP21lmUqUxjmk=;
        b=Js+iA6W2RBbDeDzdqpaSSr/F5ZAjBrxb0dB3O1iXKpZGAWxmAsNTvvXbx7mmg2KfIc
         5+uAjmmK13bPDSCXKyrBM+6ujNu7N5fqwTuCG7nvbxIY8Nau3Nv3zjeCgnx3qPKsI6Cd
         NFudDnX3QO93xGJ6v/p6fGFh4x5A/DJGnaBj3/8WnR0hG7FkU6VV4hmLGxL/PSNTemXg
         M/XMM+wH6epmQb7uElMObu4CvELfvTpxyxqZZ9/QNYYjPN+Xtvb4N2nfoJRE5bhRY1yy
         GQ93WeqzeJC4zRtXTdiJr2GbmKdJaW3CdvuWiDmQgRcTxihxngXVFeK/+uUNM7dXMEQM
         YgLg==
X-Gm-Message-State: AOJu0Yw5RYrW2P3CdZj6eNo/G+pJA10pOrJ2zfHCsY4dkkdGpn2ayba+
	JCeFuELo4lu3Ui4VqehUz0AZoI37yUdvIR61
X-Google-Smtp-Source: AGHT+IHNxRGpbxZNYl30JYvdHqVPx0NK1g3qrHww8tiBHiu7TW6qUalnapdhQO+s2NdMJOnCiE3Qtg==
X-Received: by 2002:a05:600c:2945:b0:401:c297:affb with SMTP id n5-20020a05600c294500b00401c297affbmr10609541wmd.37.1694503219787;
        Tue, 12 Sep 2023 00:20:19 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <19272e2b-a2a6-8de8-73e8-e10155cddca3@xen.org>
Date: Tue, 12 Sep 2023 09:20:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [PATCH 6/6] Add Unplug v2 interface (REV_0900000A)
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831072921.1258-1-owen.smith@cloud.com>
 <20230831072921.1258-7-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230831072921.1258-7-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/08/2023 08:29, Owen Smith wrote:
> Unplug v2 adds a query call to determine if a device type has had its unplug issued.
> This is useful during upgrade cases when the Unplug keys have been set to 0, and can
> be used to prevent XenVif from starting whilst emulated devices are present, but those
> emulated devices have not been assigned a valid configuration yet (emulated devices
> will receive valid configuration, but not at this point in the startup sequence during
> upgrade)
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   include/revision.h         |  3 +-
>   include/unplug_interface.h | 30 +++++++++++++++++--
>   include/xen.h              |  7 +++++
>   src/xen/unplug.c           | 15 ++++++++++
>   src/xenbus/unplug.c        | 61 ++++++++++++++++++++++++++++++++++++++
>   5 files changed, 113 insertions(+), 3 deletions(-)
> 
> diff --git a/include/revision.h b/include/revision.h
> index 4d91927..9577fdb 100644
> --- a/include/revision.h
> +++ b/include/revision.h
> @@ -57,6 +57,7 @@
>       DEFINE_REVISION(0x09000006,  1,  3,  8,  1,  2,  1,  2,  4,  1,  1,  1), \
>       DEFINE_REVISION(0x09000007,  1,  3,  8,  1,  2,  1,  2,  4,  1,  1,  2), \
>       DEFINE_REVISION(0x09000008,  1,  3,  9,  1,  2,  1,  2,  4,  1,  1,  2), \
> -    DEFINE_REVISION(0x09000009,  1,  4,  9,  1,  2,  1,  2,  4,  1,  1,  2)
> +    DEFINE_REVISION(0x09000009,  1,  4,  9,  1,  2,  1,  2,  4,  1,  1,  2), \
> +    DEFINE_REVISION(0x0900000A,  1,  4,  9,  1,  2,  1,  2,  4,  2,  1,  2)
>   
>   #endif  // _REVISION_H
> diff --git a/include/unplug_interface.h b/include/unplug_interface.h
> index e465e2e..82afb63 100644
> --- a/include/unplug_interface.h
> +++ b/include/unplug_interface.h
> @@ -85,6 +85,20 @@ typedef VOID
>       IN  BOOLEAN                     Make
>       );
>   
> +/*! \typedef XENBUS_UNPLUG_GETSTATE
> +    \brief Has a type of emulated device been unplugged
> +
> +    \param Interface The interface header
> +    \param Type The type of device
> +
> +    \return TRUE The type of device has been unplugged this boot
> +*/
> +typedef BOOLEAN
> +(*XENBUS_UNPLUG_GETSTATE)(
> +    IN  PINTERFACE                  Interface,
> +    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
> +    );
> +
>   // {73db6517-3d06-4937-989f-199b7501e229}
>   DEFINE_GUID(GUID_XENBUS_UNPLUG_INTERFACE,
>   0x73db6517, 0x3d06, 0x4937, 0x98, 0x9f, 0x19, 0x9b, 0x75, 0x01, 0xe2, 0x29);
> @@ -100,7 +114,19 @@ struct _XENBUS_UNPLUG_INTERFACE_V1 {
>       XENBUS_UNPLUG_REQUEST   UnplugRequest;
>   };
>   
> -typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
> +/*! \struct _XENBUS_UNPLUG_INTERFACE_V2
> +    \brief UNPLUG interface version 2
> +    \ingroup interfaces
> +*/
> +struct _XENBUS_UNPLUG_INTERFACE_V2 {
> +    INTERFACE               Interface;
> +    XENBUS_UNPLUG_ACQUIRE   UnplugAcquire;
> +    XENBUS_UNPLUG_RELEASE   UnplugRelease;
> +    XENBUS_UNPLUG_REQUEST   UnplugRequest;
> +    XENBUS_UNPLUG_GETSTATE  UnplugGetState;
> +};
> +
> +typedef struct _XENBUS_UNPLUG_INTERFACE_V2 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
>   
>   /*! \def XENBUS_UNPLUG
>       \brief Macro at assist in method invocation
> @@ -111,6 +137,6 @@ typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNP
>   #endif  // _WINDLL
>   
>   #define XENBUS_UNPLUG_INTERFACE_VERSION_MIN  1
> -#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  1
> +#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  2
>   
>   #endif  // _XENBUS_UNPLUG_INTERFACE_H
> diff --git a/include/xen.h b/include/xen.h
> index 132de21..ead5ca0 100644
> --- a/include/xen.h
> +++ b/include/xen.h
> @@ -377,6 +377,13 @@ UnplugDecrementValue(
>       IN  UNPLUG_TYPE Type
>       );
>   
> +XEN_API
> +VOID
> +UnplugWasRequested(
> +    IN  UNPLUG_TYPE Type,
> +    OUT PBOOLEAN    Requested
> +    );
> +
>   // LOG
>   
>   typedef enum _LOG_LEVEL {
> diff --git a/src/xen/unplug.c b/src/xen/unplug.c
> index ab94da5..fa3a4ae 100644
> --- a/src/xen/unplug.c
> +++ b/src/xen/unplug.c
> @@ -344,6 +344,21 @@ fail1:
>       return status;
>   }
>   
> +XEN_API
> +VOID
> +UnplugWasRequested(
> +    IN  UNPLUG_TYPE Type,
> +    OUT PBOOLEAN    Requested
> +    )
> +{
> +    PUNPLUG_CONTEXT Context = &UnplugContext;
> +    KIRQL           Irql;
> +
> +    AcquireHighLock(&Context->Lock, &Irql);
> +    *Requested = Context->Request[Type];
> +    ReleaseHighLock(&Context->Lock, Irql);
> +}
> +
>   XEN_API
>   VOID
>   UnplugDevices(
> diff --git a/src/xenbus/unplug.c b/src/xenbus/unplug.c
> index f2f13fa..86871d7 100644
> --- a/src/xenbus/unplug.c
> +++ b/src/xenbus/unplug.c
> @@ -110,6 +110,41 @@ UnplugRequest(
>       ReleaseMutex(&Context->Mutex);
>   }
>   
> +__drv_requiresIRQL(PASSIVE_LEVEL)
> +static BOOLEAN
> +UnplugGetState(

Can we just use the UnplugWasRequested() name for actual interface 
function? It's more descriptive.

    Paul

> +    IN  PINTERFACE                  Interface,
> +    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
> +    )
> +{
> +    PXENBUS_UNPLUG_CONTEXT          Context = Interface->Context;
> +    BOOLEAN                         Requested;
> +
> +    ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
> +
> +    AcquireMutex(&Context->Mutex);
> +
> +    Requested = FALSE;
> +    switch (Type) {
> +    case XENBUS_UNPLUG_DEVICE_TYPE_NICS:
> +        UnplugWasRequested(UNPLUG_NICS, &Requested);
> +        break;
> +
> +    case XENBUS_UNPLUG_DEVICE_TYPE_DISKS:
> +        UnplugWasRequested(UNPLUG_DISKS, &Requested);
> +        break;
> +
> +    default:
> +        ASSERT(FALSE);
> +        break;
> +    }
> +
> +    ReleaseMutex(&Context->Mutex);
> +
> +    return Requested;
> +}
> +
> +
>   static NTSTATUS
>   UnplugAcquire(
>       IN  PINTERFACE          Interface
> @@ -157,6 +192,15 @@ static struct _XENBUS_UNPLUG_INTERFACE_V1 UnplugInterfaceVersion1 = {
>       UnplugRequest
>   };
>   
> +static struct _XENBUS_UNPLUG_INTERFACE_V2 UnplugInterfaceVersion2 = {
> +    { sizeof (struct _XENBUS_UNPLUG_INTERFACE_V2), 2, NULL, NULL, NULL },
> +    UnplugAcquire,
> +    UnplugRelease,
> +    UnplugRequest,
> +    UnplugGetState
> +};
> +
> +
>   NTSTATUS
>   UnplugInitialize(
>       IN  PXENBUS_FDO             Fdo,
> @@ -218,6 +262,23 @@ UnplugGetInterface(
>           status = STATUS_SUCCESS;
>           break;
>       }
> +    case 2: {
> +        struct _XENBUS_UNPLUG_INTERFACE_V2   *UnplugInterface;
> +
> +        UnplugInterface = (struct _XENBUS_UNPLUG_INTERFACE_V2 *)Interface;
> +
> +        status = STATUS_BUFFER_OVERFLOW;
> +        if (Size < sizeof (struct _XENBUS_UNPLUG_INTERFACE_V2))
> +            break;
> +
> +        *UnplugInterface = UnplugInterfaceVersion2;
> +
> +        ASSERT3U(Interface->Version, ==, Version);
> +        Interface->Context = Context;
> +
> +        status = STATUS_SUCCESS;
> +        break;
> +    }
>       default:
>           status = STATUS_NOT_SUPPORTED;
>           break;



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:21:56 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600019.935622 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxid-00063Q-N7; Tue, 12 Sep 2023 07:21:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600019.935622; Tue, 12 Sep 2023 07:21:55 +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 1qfxid-00063J-KM; Tue, 12 Sep 2023 07:21:55 +0000
Received: by outflank-mailman (input) for mailman id 600019;
 Tue, 12 Sep 2023 07:21:55 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxic-000638-UQ
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:21:54 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b6e8a53-513d-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 09:21:52 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-400a087b0bfso56440735e9.2
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:21:52 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.228]) by smtp.gmail.com with ESMTPSA id
 a10-20020a5d508a000000b00319756d5b80sm11955032wrt.29.2023.09.12.00.21.50
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:21:51 -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: 0b6e8a53-513d-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694503312; x=1695108112; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=JOFQmZcHl/TWgEUFNffFuM8WHVE3e2UFWZEfM9eDTiY=;
        b=T/pys1Gnip+UMG3ilYDNGdCsDM9MhqJB5zLTmmUOQkKF27Sj0uGc+PNJ4uGdRonPD+
         D7xg18s1sQA6ILFkcku6e6HTu5JRecdmiZV8p5NIsgV9J+r+9IhUIlW50avaCpUR7ZR2
         8Wicar6nMbiZDm/8JI5c8PyAjUkfqmPzwNwo/koOBAU4YbDjaELW3yDXEWHTitLTmuR+
         fGL3XvpAFJC7OcS12CnMqxb3peq/yF1+FDKbNatQrRSsWGb32lzYPSj8m7bdI08vMCuH
         VqG3ZHUep8snmdoDDWKA1LunS++7ruhgCrbkOP7sCFPMvPLhW0VE9zq77UbnV8sfXmo7
         izCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694503312; x=1695108112;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=JOFQmZcHl/TWgEUFNffFuM8WHVE3e2UFWZEfM9eDTiY=;
        b=Tfv6DvzuVaeWf6eU9ZniDmWH7xi5aA0MTquQt02tZBjl6nJ8gIg/EfyMuPa+MfGx8M
         +icZNDDjOob+9Dt+t9Tn/+mQJ0gnYQfzWAAfq4zzd79uAtzVKUFXU2qkwJ4E7lEs+1SU
         UAbeXO4Ihl1bMeU5ExJxVkIZcGQQO02+0G8+lIEGtPxLMEKBWdUx2L41Jjg26GsxxD0Y
         V7Zdsn2yl3f5nCQfzueA/sfIuBHNRdmTB63zPyMNTblhe+UHyAsGxfhpBaphvJI7Ye7O
         PQW+9Pp2/2+SXm9BquLUESYNyXGOPl3wHFo6IqgaTq6BUgRJYUbfrERcBXIgmwsdhLrF
         DNRQ==
X-Gm-Message-State: AOJu0Yz39LNOg/ukoc76T3sMosrc2CLOwGVJJWwe8lZZ5gPXDz9F6IZb
	RpSBits/n8ic9ED/+3FROPgq9qK4t7/DJY3D
X-Google-Smtp-Source: AGHT+IHdWOoYWq2Ep2euLnzoxa/lGmxIjogktkBKHp1FAnNTB75P1fUUEcxtDcnfjiLy/RbKES3iiw==
X-Received: by 2002:a05:6000:1816:b0:317:6cd2:b90c with SMTP id m22-20020a056000181600b003176cd2b90cmr9107820wrh.13.1694503311581;
        Tue, 12 Sep 2023 00:21:51 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <7a4828a4-a931-381c-a583-84d1cfd94a0a@xen.org>
Date: Tue, 12 Sep 2023 09:21:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [PATCH 0/6] Remove CoInstallers
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230831072921.1258-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230831072921.1258-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/08/2023 08:29, Owen Smith wrote:
> Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
> The current CoInstaller handle several edge cases that will need replacement
> implementations. This patch series for most drivers offers a potential solution
> to the removal of CoInstallers and the required changes to avoid upgrade issues.
> 

In this series, and its sister series, I think the patches removing the 
coinstaller from the INF and deleting the code should probably be pushed 
to the end.

   Paul



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:23:31 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600026.935626 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxk9-000697-Rs; Tue, 12 Sep 2023 07:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600026.935626; Tue, 12 Sep 2023 07:23: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 1qfxk9-000690-PD; Tue, 12 Sep 2023 07:23:29 +0000
Received: by outflank-mailman (input) for mailman id 600026;
 Tue, 12 Sep 2023 07:23:29 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxk9-00068u-A1
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:23:29 +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 441e02a8-513d-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 09:23:27 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-401b3ea0656so55867735e9.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:23:27 -0700 (PDT)
Received: from [10.5.2.12] ([15.248.2.228]) by smtp.gmail.com with ESMTPSA id
 z18-20020a1c4c12000000b003fedcd02e2asm12069946wmf.35.2023.09.12.00.23.26
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:23:26 -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: 441e02a8-513d-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694503407; x=1695108207; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=gt0Z3d+tkzNENUk8/emA0eXR/+Tb+wIBhSe+kXe5lXs=;
        b=NEfzLs44sg9tAuj6Key16XNCTKSUNuOhGzlCinSz0za9FgOPkE3XPpEbcrgO3dr4DD
         HgCvBtlMPjRiY4+D5AVBZ2RdOcMuDufM0cHfTRGcRImUpj4T/9QHat1xZc65x6tcTgsi
         uI8FDT36RcCNvKPDf8IF3Va7HnVUAWTeEdqbYG0HMZkL2VtyEW+DNikrgndwqHzQScmV
         zss23inNN5bR5pUfyVTF3TM+u/F35JjMp9BCBs9OVQeFx9VTZQiXsVmbPC4S3ZOMDrSP
         lpiLFZ53zaU2PKsJJjT/FCcjJthn07B9NkRdCSHPWCQG+36+xoniHnctXKBCLYm9TbND
         m6kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694503407; x=1695108207;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=gt0Z3d+tkzNENUk8/emA0eXR/+Tb+wIBhSe+kXe5lXs=;
        b=AUxn7w04ANpoTE1hD7aoRGXQJTp1BEXfQOyWM1eoLOJQygScG+VAp6hnpgkzv/QD3q
         s30QkH4NyzuHthft/MtZH1ZpkhLCryGht4MVrB9yiPGF+5R5QyuXcyN/DqOqGfYjQrj/
         Z5NjM/Dl8cD+HrKctXWh52zXKRSO4c+GgMyY5O4jmlFIiMY697QiprcwJTrMV97qt4nc
         kVECRGTQSZfhNbDxWQJcHg6bpDSsV+nVaFUVoTHuk8gesJB3SYNnK8/s/SuW4bHzv52K
         UeUN0LgPvaeYEB6N/O/hLdRh0/vDRUJ5KTcGNo5zAARs7GWjadn6g2QfLM9Fj0nDaDg1
         MfOw==
X-Gm-Message-State: AOJu0YxEPI+iixldJ7ac2+8h6jqAKsKQBYClBlEEvicrab32ovNb2WKA
	eaMMGUNI7eghnxCq0kVn5Ee9AJs2TGQICW83
X-Google-Smtp-Source: AGHT+IFRDXCP+GqlUgucnn+PN+efkk6vSW0952F2wHu8a/8zpZS15TyYO+dGoHdtPjnhoC67wRvaXQ==
X-Received: by 2002:a7b:c3d9:0:b0:402:e68f:888e with SMTP id t25-20020a7bc3d9000000b00402e68f888emr10575762wmj.4.1694503406682;
        Tue, 12 Sep 2023 00:23:26 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <4cca3daa-24bd-61c0-0772-8b482ed8f043@xen.org>
Date: Tue, 12 Sep 2023 09:23:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [PATCH] Fully initialise device power map
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230824113147.1678-1-matthew.sykes@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230824113147.1678-1-matthew.sykes@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 24/08/2023 12:31, Matthew Sykes wrote:
> From: Matthew Sykes <msykes@tibco.com>
> 
> Signed-off-by: Matthew Sykes <msykes@tibco.com>

You use a different SoB address here (it was @citrix in your other 
similar patch). Do you really want it to be different?

   Paul



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:36:53 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:36:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600041.935639 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxx7-00008h-33; Tue, 12 Sep 2023 07:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600041.935639; Tue, 12 Sep 2023 07:36: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 1qfxx7-00008a-0Q; Tue, 12 Sep 2023 07:36:53 +0000
Received: by outflank-mailman (input) for mailman id 600041;
 Tue, 12 Sep 2023 07:36:52 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxx6-0008Vu-H7
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:36:52 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23bff61e-513f-11ee-8786-cb3800f73035;
 Tue, 12 Sep 2023 09:36:52 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-403012f27e1so32509965e9.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:36:52 -0700 (PDT)
Received: from [192.168.6.167] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 f14-20020a7bc8ce000000b00402dbe0bbdcsm15275893wml.28.2023.09.12.00.36.50
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:36:50 -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: 23bff61e-513f-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694504211; x=1695109011; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=5jFQvU+FIU0bnQaM1i70v2Fv53RWp2/KqSbtYFQStHI=;
        b=ffecGTQBAQLDAzIVd9OUV67dS3ixV+YWtZFAd0T7t911By64CUhwL0xTRvw/tNnjHm
         7k5nPusD3bmSFQIxEWTA3uETcFI1bBpMkDLcGj8+9lnd97tyPCV1fdqCJ9AqwDlPklvI
         f5I9/WmARQPreh0W66vNqFTqyzbYmRB/oKn+pM8VbMdpFch4sICPyJa9C6XGSdeSkgZr
         wV6thUyIc/nPuF8SpzT795v3+F39I+0mdXCbH2eHJJ4FSy+pEkryzY+CNPDozMVP4fWh
         MrOIdP4junNZBVXt2zmn+fQfHwy/JIvwbpTIk6FlyNuD3S1FqZNpYYqWFUSOgY/ak97A
         bkRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694504211; x=1695109011;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=5jFQvU+FIU0bnQaM1i70v2Fv53RWp2/KqSbtYFQStHI=;
        b=kiVzRe3FPS48MIIkADzM18LUBdL8mmsvuHtQuQ8kvxYf3AjcTb2HB1pS/JQddErpiB
         61wPoX9DVNKQAYqY+eKMK3CQ2HTHqKQKmchztOqfxgeG+NE+vP7IVvmHr9fvnqvqazSu
         IIgF204UCcjiTWvgZqSo+cWl/J5ucligaaT2M/Ev33OXvzBOmfb496xlqsYN0W+RKaj2
         3jMghYI+3/N230vtSSBnhSdvbndHvT5lo+ilmFKN48NTiTBnmQBMGI4DxwdOq9/zpThk
         WewwY6/CfNeqlxDhWVyfdz1NqAc0qFHeMPTWvVxSYZ/cYXEn3XNMXiqYv84JoyJO+X5P
         kOwg==
X-Gm-Message-State: AOJu0YywRaVmh6KjdM3kmffUql3dw5Kel1q4xwFjmDb2ZJJVDHP6LQv5
	TTxG1yLmzpJQUOoqwnpZiZ4WxvpqYRPK+wTu
X-Google-Smtp-Source: AGHT+IHmDXAA7id43Xon8DdwO/3lyHuEbpGCFPEAdJ5yjlCyGPQ4tI5HLB8jEznR8axE0AInQe2c1w==
X-Received: by 2002:a05:600c:ad2:b0:3fe:1871:1826 with SMTP id c18-20020a05600c0ad200b003fe18711826mr10407968wmr.27.1694504211327;
        Tue, 12 Sep 2023 00:36:51 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <92cdc761-435f-ce3e-0df1-3d66e27c307f@xen.org>
Date: Tue, 12 Sep 2023 09:36:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [PATCH] ASSERT Cache method parameters
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230822113004.1698-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230822113004.1698-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 22/08/2023 12:30, Owen Smith wrote:
> ASSERT the Cache public interface methods are passed valid parameters.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

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



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:39:41 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600051.935644 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfxzp-0000em-Aw; Tue, 12 Sep 2023 07:39:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600051.935644; Tue, 12 Sep 2023 07:39:41 +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 1qfxzp-0000ef-85; Tue, 12 Sep 2023 07:39:41 +0000
Received: by outflank-mailman (input) for mailman id 600051;
 Tue, 12 Sep 2023 07:39:39 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfxzn-0000eZ-Sk
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:39:39 +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 86937280-513f-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 09:39:37 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-307d20548adso5346694f8f.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:39:37 -0700 (PDT)
Received: from [192.168.6.167] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 a10-20020a5d508a000000b00319756d5b80sm11997244wrt.29.2023.09.12.00.39.36
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:39:36 -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: 86937280-513f-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694504377; x=1695109177; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=XeDNztsfplnFbAp54Gxw/8nSSl36YzS7Ai+4cuGBVZY=;
        b=UkBXO45qgvPlG3ix+1Q6HC8B+wWspbDscT9/W5hiUQ8Tq7nAWPuRTnes2hyXBdL5Xb
         MAqDL6pp7SMBHOcp+FR2rhcE0eTvQdkp3HgiXRLU9cSiYiXueMbDeb+6Iy3KWNKpVIT2
         iGUapvY8HaWPgK9g+UHPOTiO/UoQzmVhDQ/EOd1fHx55WmjTaqj87No2225VHOkCXQ0N
         50I9elRCioSObhgLiUpJ3C2QCtiiwgdOVFcdCrWsMz9V8x/RRZeLLRMaz6AQDCloXjsR
         0NHMtwVdu6pWO2nlzIZifws2wvwAQJBxbXAEjAtG8yCUN9BzDa3c43Bq2TzlNIs0f/nW
         WF/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694504377; x=1695109177;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=XeDNztsfplnFbAp54Gxw/8nSSl36YzS7Ai+4cuGBVZY=;
        b=XN5y9SP5EMibcqgkN4GG9Cch8EMSk0s93IhLni/XqJO2CSQJD5g8xJalV+8RQZcSSy
         TldN5wVLPPxkQzJ95xK2cop9lGgo6nVfRH3M+AYsnMu2W+7eQM2uy+UhBTnLIHwJ18Fm
         c36uUfa8UKzD32N2XSbggJsL6/LAWe+PUVhXAxJA3qIfSwUEh8bGfOhYbPlB4HdiT1zF
         +VwfBM4h+nQukW7q7+SsMZf4uLDACqPxrZ4Ac4mb5hnE0n7Y6egScNAaThhsp63wUOen
         dV51EVyg7z1brADqNbCEVzyizM2IPmY4Zhx4Txex5u6F1HD2D2VscCvYr+L/40/uqqZG
         65Og==
X-Gm-Message-State: AOJu0YzWUg6P4l4esxg5nz2Gf8Hq5r0vEcWzraSR+yjZwvmlREZAHCc1
	8NrWNO+B9+XH0WEiTI06nmKaXs76AQGooYRe
X-Google-Smtp-Source: AGHT+IEmnrK50FHkAOwVkLzbutQV5QOmFB5u2UlnVclEqS3xuzeAGR8O/oLrwNTB1EbLUvihAV26PA==
X-Received: by 2002:adf:ef86:0:b0:315:a043:5e0a with SMTP id d6-20020adfef86000000b00315a0435e0amr8815973wro.56.1694504377246;
        Tue, 12 Sep 2023 00:39:37 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <0d44410d-626d-52aa-7673-5ac4140ece89@xen.org>
Date: Tue, 12 Sep 2023 09:39:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: missing downloads for 9.0.0 release
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <8f9a5f18-303d-4a32-a6a6-82191828e384@sonn.at>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <8f9a5f18-303d-4a32-a6a6-82191828e384@sonn.at>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 23/08/2023 09:40, Dominik Pflegerl wrote:
> Hello!
> 
> When trying to download the 9.0.0 release from the website 
> (https://xenproject.org/downloads/windows-pv-drivers/windows-pv-drivers-9-series/windows-pv-drivers-9-0-0/) no downloads are possible, the files do not exist on the download server. In fact the whole folder under https://xenbits.xenproject.org/pvdrivers/win/9.0.0/ does not exist.
> 
> Could you please reupload them, so I can update my drivers from 8.x to 
> 9.0.0?
> 

Unfortunately we had a problem with the infrastructure and cannot 
guarantee that previously hosted driver builds were not compromised. 
There are set of test-signed driver binaries at 
https://xenbits.xenproject.org/pvdrivers/win which are safe to use.

   Paul



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 07:42:53 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 07:42:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600058.935647 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfy2u-0001db-JH; Tue, 12 Sep 2023 07:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600058.935647; Tue, 12 Sep 2023 07:42:52 +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 1qfy2u-0001dU-Gf; Tue, 12 Sep 2023 07:42:52 +0000
Received: by outflank-mailman (input) for mailman id 600058;
 Tue, 12 Sep 2023 07:42:51 +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=lhkB=E4=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qfy2t-0001dO-Tu
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 07:42:51 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f91048ab-513f-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 09:42:50 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-52f33659d09so3279258a12.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 12 Sep 2023 00:42:50 -0700 (PDT)
Received: from [192.168.6.167] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 bc3-20020a056402204300b0052348d74865sm5418193edb.61.2023.09.12.00.42.48
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Sep 2023 00:42:49 -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: f91048ab-513f-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694504569; x=1695109369; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=BJeIWXo+Q5xH517NKuRqiE8UjEHBGIFtcm28qwxZMNo=;
        b=rKFS0u4Ag3v6GgaCFPuGrxZYEuvKemrKnjLm0KFU0216pOWSPIswNF0pClhb7glF80
         BrbUSewkPck7ejLU9bk4Xgow6c5uSyhysJURDtRk63nNCH2PpS5mIdA9AQY9h+f3KAdg
         3lbZhZMKmBKYPPbstmsu2xSm8SoDEzDA+vwR97610xxAS2OqasHd+IiwQ5kTUszvR5Xz
         RuHuBoXMYPrEpQ4C0c5JecelcUbo8YKlJWxv7PHs2A9GU+5ycM3OP2QYyvYdKb+FKqWk
         D7gVy5UXrO1ZkTAWjsUzNg6SJORXT9z2GLKUoHZF/ursB/yhsapsgBgFEZlKyUIOt9CO
         zvgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694504569; x=1695109369;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :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=BJeIWXo+Q5xH517NKuRqiE8UjEHBGIFtcm28qwxZMNo=;
        b=tK4gBZhQAc74KDbPY4xE17Lvyro24m3TeoJYx9UnJt6Exs3Vs8870XhA61kchxsqBh
         m7+0ckJXaaSrv83ekhgnJkABzZzhT7H2bMMd3IQ6rim7peBGyocNsNnUGDIJhgXdlUlE
         YsykDhEA+4J2sFPzN2KTPoQdX6ehr6bvNJyCQu009065xZhlm1/++pVKgK6/dh3ZkE9S
         0J3KR+boFlO4gZg6KxQtt+SDy9kMfZt4scTJQKLyYjE5v/GNmk0VXe4/nmTxr3k++a8e
         v5nhtNUKWMVp9QnO5jSGmNqq+Gf+TyF0pgCYX/2huO6iecgRSi3TeToIeFwH+TA21CgZ
         WAIA==
X-Gm-Message-State: AOJu0YzwjJJRGFh3ho6/+j5lPBa4A6Y72D1jtNIvq+yVEcR9Z3R0NVV3
	avSWC/UShXvGJAK4sZUCtQJJUsApt0dWBevv
X-Google-Smtp-Source: AGHT+IFw/M6yWFzGyTXT7G5sKwFrzbsVoDOHMSRLQV2skNGOaUAT5whv4Or0CIwoxLFvgeTQN+Cmqw==
X-Received: by 2002:a05:6402:22ee:b0:52f:3653:1c6 with SMTP id dn14-20020a05640222ee00b0052f365301c6mr6139495edb.27.1694504569386;
        Tue, 12 Sep 2023 00:42:49 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <f512b1ab-6108-26e2-bc05-50fac6a7110e@xen.org>
Date: Tue, 12 Sep 2023 09:42:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.15.0
Subject: Re: [PATCH] Avoid dereferencing NULL cache objects.
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230822112845.1682-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20230822112845.1682-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 22/08/2023 12:28, Owen Smith wrote:
> XENBUS_CACHE(Get, ...) can fail in low memory conditions. Avoid dereferencing
> NULL pointers in ASSERTs
> Fix up error path to avoid returning a NULL pointer to the cache.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenvif/receiver.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 

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

We should probably accompany this with a warning in CacheFill() if it 
breaks out early due to a slab allocation failure.

> diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
> index 4807582..0ce5b67 100644
> --- a/src/xenvif/receiver.c
> +++ b/src/xenvif/receiver.c
> @@ -266,6 +266,8 @@ __ReceiverRingGetPacket(
>                             &Receiver->CacheInterface,
>                             Ring->PacketCache,
>                             Locked);
> +    if (Packet == NULL)
> +        return NULL;
>   
>       ASSERT(IsZeroMemory(&Packet->Info, sizeof (XENVIF_PACKET_INFO)));
>       ASSERT3P(Packet->Ring, ==, Ring);
> @@ -1788,11 +1790,11 @@ __ReceiverRingPreparePacket(
>   fail2:
>       Error("fail2\n");
>   
> +    __ReceiverRingPutFragment(Ring, Fragment);
> +
>   fail1:
>       Error("fail1 (%08x)\n", status);
>   
> -    __ReceiverRingPutFragment(Ring, Fragment);
> -
>       return NULL;
>   }
>   



From win-pv-devel-bounces@lists.xenproject.org Tue Sep 12 08:23:40 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 12 Sep 2023 08:23:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.600093.935682 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qfygN-0001jl-IB; Tue, 12 Sep 2023 08:23:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 600093.935682; Tue, 12 Sep 2023 08:23:39 +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 1qfygN-0001je-Fb; Tue, 12 Sep 2023 08:23:39 +0000
Received: by outflank-mailman (input) for mailman id 600093;
 Tue, 12 Sep 2023 08:23:38 +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=fzY8=E4=kotan.hu=info@srs-se1.protection.inumbo.net>)
 id 1qfygM-0001jW-4W
 for win-pv-devel@lists.xenproject.org; Tue, 12 Sep 2023 08:23:38 +0000
Received: from mx1.faircomp.hu (mx1.faircomp.hu [185.80.49.45])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa212194-5145-11ee-9b0d-b553b5be7939;
 Tue, 12 Sep 2023 10:23:34 +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: aa212194-5145-11ee-9b0d-b553b5be7939
X-FairComp-Spam-Status: No
X-Faircomp-MailScanner-From: info@kotan.hu
X-Faircomp-MailScanner: Found to be clean
X-Faircomp-MailScanner-ID: CDB438040B.A7BA8
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kotan.hu; s=mail;
	t=1694507012; bh=JdMWYcowhGgdUpb6QeiqDTkGqQd3kz1HXS1X/qUs3IY=;
	h=Date:Subject:To:References:From:In-Reply-To:From;
	b=RlvSUsNfhaAHGSrcDArco2bXFbkV2/wuTKlwGE4MHBeqhVNqE2F8rPfzf39dwyBJD
	 OZyA3N/nRmbEhTVTCv3ODpHF5lWqVzmvUz/EfSa2tAvzbtAK1fQugVA0I0++BQwQ4Z
	 9ZnYpPLmvgSpLreT4i35oOcwTiGk9ahyYhl4wHsEmYKc7MabrY2KM+nLjYu6KRCCUy
	 DKXgLqYNCDoqg1kBQFJlgL7SbXXAcRsh/iTtP7T6dJ65SiNpGvvSvRk5ZmCFLfe5jX
	 78pOz3CqTG3tU+arS6v/6WZ8nP2aXmVjTpZyAjVZY0ssUKTYn+iahYw/nVXv5LC2Kb
	 j7dGiaygJ8ORA==
Message-ID: <39cfae96-d0a8-48a8-c857-85a63b959e7f@kotan.hu>
Date: Tue, 12 Sep 2023 10:23:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla-Thunderbird
Subject: Re: missing downloads for 9.0.0 release
Content-Language: hu
To: win-pv-devel@lists.xenproject.org
References: <8f9a5f18-303d-4a32-a6a6-82191828e384@sonn.at>
 <0d44410d-626d-52aa-7673-5ac4140ece89@xen.org>
From: =?UTF-8?Q?Kot=c3=a1n_Attila?= <info@kotan.hu>
In-Reply-To: <0d44410d-626d-52aa-7673-5ac4140ece89@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello Paul,

I have the version 9.0.0 windows PV driver (signed), i downloaded at 
19.07.2020.
I can share with you or if you have infrastructure problem then with the 
world as well.

Attila

2023. 09. 12. 9:39 keltezéssel, Paul Durrant írta:
> On 23/08/2023 09:40, Dominik Pflegerl wrote:
>> Hello!
>>
>> When trying to download the 9.0.0 release from the website 
>> (https://xenproject.org/downloads/windows-pv-drivers/windows-pv-drivers-9-series/windows-pv-drivers-9-0-0/) 
>> no downloads are possible, the files do not exist on the download 
>> server. In fact the whole folder under 
>> https://xenbits.xenproject.org/pvdrivers/win/9.0.0/ does not exist.
>>
>> Could you please reupload them, so I can update my drivers from 8.x 
>> to 9.0.0?
>>
>
> Unfortunately we had a problem with the infrastructure and cannot 
> guarantee that previously hosted driver builds were not compromised. 
> There are set of test-signed driver binaries at 
> https://xenbits.xenproject.org/pvdrivers/win which are safe to use.
>
>   Paul
>
>



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 08:49:01 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 08:49:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601081.936983 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgLYQ-0003jP-PV; Wed, 13 Sep 2023 08:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601081.936983; Wed, 13 Sep 2023 08:48:58 +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 1qgLYQ-0003jI-Mh; Wed, 13 Sep 2023 08:48:58 +0000
Received: by outflank-mailman (input) for mailman id 601081;
 Wed, 13 Sep 2023 08:48:58 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgLYQ-0003jC-7I
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 08:48:58 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5e43a856-5212-11ee-9b0d-b553b5be7939;
 Wed, 13 Sep 2023 10:48:54 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-401d10e3e54so70963955e9.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 01:48:54 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 26-20020a05600c229a00b003fe17901fcdsm1375297wmf.32.2023.09.13.01.48.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 01:48:52 -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: 5e43a856-5212-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694594933; x=1695199733; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=9RV1eYJmD+437wKnALzbsgXTcLrdhKlVLKsPquugn4w=;
        b=djnoRQ5dM6hV44MB8rp7Xu0E/V7tR65E63N7IKNzoL5uXbtqz4Nv973xq2AMwOy5Yl
         g9JATEqF8b+SHrD5FX4jUD+N3w3aCSYmDCX7WD2nyXFenY/GsD6ICbhG9jeBV2PqUQVX
         xV8pf6iUPDdbJ89ahzJb9oU+VFJr542UyftSc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694594933; x=1695199733;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=9RV1eYJmD+437wKnALzbsgXTcLrdhKlVLKsPquugn4w=;
        b=MMiKNxj8m+3YJG1me1yDdb7pSIVJe09l/9BxesPigkwcX4g1CWqSwPs/rO75dNVjhX
         2c29+d0R/fe06GwhqbVlkEyHnCDovm9Ni4/iKZgXQOOoRL56EpKbguOy95VVh3LoAidR
         GxS+sKroraOYwoUhwpmghVQwM5L+W+Mi6jy6MVNmBoxFpVskNiAMwOCE0hMFVYf7S/f0
         fTR+XszvTv7pFtIFtqBNTR0a5GXw8WPdCbtkEXxvORsvR1xSY5tg3oMkmiCRKxgUdfBU
         Kgkh1CDVG+eq+P2nUOZ7glz8LkTs4O7S/DmNmBYu+gUTVcTRFKvfapxbSHjYDaW5qQ0p
         y6Gg==
X-Gm-Message-State: AOJu0YyN5zQACjxzKhCjKX4si9W4yct1/ccxxQxlV574GowCWSIqQXCM
	Do59ufxv2A2/+TfVv/t/3BE2VFQeozi30KzRpT70
X-Google-Smtp-Source: AGHT+IGBCwDmH8q1xVsP05R7JVNRjeqwPPQzu6TNXTGBGxEGTeh3VxTmh/YyProqVPG7kYTFs0dGEA==
X-Received: by 2002:a7b:c455:0:b0:3f7:cb42:fa28 with SMTP id l21-20020a7bc455000000b003f7cb42fa28mr1449789wmi.28.1694594933226;
        Wed, 13 Sep 2023 01:48:53 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] Add script to generate pooltag.txt for debugger use
Date: Wed, 13 Sep 2023 09:48:35 +0100
Message-ID: <20230913084835.1446-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Note: script does not correctly handle src/common paths and attributes
  pool tags discovered within to 'common.sys'

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 gentags.ps1 | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 gentags.ps1

diff --git a/gentags.ps1 b/gentags.ps1
new file mode 100644
index 0000000..9c2efa1
--- /dev/null
+++ b/gentags.ps1
@@ -0,0 +1,26 @@
+Function Parse-Tags {
+    param(
+        [string]$drivername
+    )
+
+    Get-ChildItem ("./src/" + $drivername) | Foreach-Object {
+        $file = $_.Name
+        Get-Content $_.FullName | ForEach {
+            if ($_.Contains("TAG") -And $_.Contains("#define")) {
+                $vals = $_.Split(' ', 3)
+                $name = $vals[1].Trim()
+                $tags = $vals[2].Trim().Trim("'").PadRight(4)
+                Write-Host "TAG:" $name "=" $tags
+                $driver = ($drivername + ".sys").PadRight(16)
+                ($tags + " - " + $driver + " - XEN " + $drivername + "\" + $file + " " + $name) | Add-Content "./pooltag.txt"
+            }
+        }
+    }
+}
+
+if (Test-Path "./pooltag.txt") {
+    Remove-Item "./pooltag.txt"
+}
+Get-ChildItem "./src" | ?{$_.PSIsContainer}  | ForEach-Object {
+    Parse-Tags $_.Name
+}
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 09:29:13 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 09:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601070.937015 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgMBM-0003AA-9D; Wed, 13 Sep 2023 09:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601070.937015; Wed, 13 Sep 2023 09:29: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 1qgMBM-00039l-1b; Wed, 13 Sep 2023 09:29:12 +0000
Received: by outflank-mailman (input) for mailman id 601070;
 Wed, 13 Sep 2023 08:32:10 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgLIA-00005M-T8
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 08:32:10 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0662fe9e-5210-11ee-9b0d-b553b5be7939;
 Wed, 13 Sep 2023 10:32:08 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2b9338e4695so107287681fa.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 01:32:07 -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: 0662fe9e-5210-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=tibco.com; s=googleworkspace; t=1694593927; x=1695198727; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=d7SDE3iUfXFEBlvkpzKfC0/VjJVzsssmqK0XNJnnkuk=;
        b=SMJg0/ecHPVmgjM95PcTDfpFQYMSNGyWVCRL/Z42vER0ncDtVOjx5oUtq9mQ7Sr/b2
         hs9lK6hIOczaQDvQZGSOOZx5x7flbIW2gXnRoyslvZ+0njD4GPUKXsXEUJaq96Uh3djb
         k961Lidf88w5RRwsEgaja+D6npVqVoxaCdP1E7fQclnZ1NIEDc/Xh/8iKy/a8b00SQqc
         6TzWw6CZFLctgErU0Ln/D7zISuwtV6OhABXZiHD6bdEg+j2D1e1Jlk9u19N2SxMwMVWX
         7cObyJxkG8gHyhJ9bRglE37nQy53q1Opctm50CN/0F58enKZ2jNyjRz+z/CIykGVxNxJ
         eabQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694593927; x=1695198727;
        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=d7SDE3iUfXFEBlvkpzKfC0/VjJVzsssmqK0XNJnnkuk=;
        b=osANbyTcX+NG+bjnwKZfWRbQFLLrmcjl3cPk+hpDj0CDGqpgdav7tFJCMECu9u+bl3
         geNK7eynMVKI7WrmBA+QTcCk1Aj81NhVAiKWKJ93+901W8g+xy5E6DYKnzVEK8FJj8vK
         WUAO6xgBdUkl2C3bfMkTe1d51XOwC8s8hfosKLNsI6MZWiEQU+vwOnQkl/DBa/k3d1UE
         Tr/5aihrYok8sXhXZNF3fNc+DYuv6R6a+ICjf+cR6sGjmxxHR/seIVks0utUvyPhGxPH
         9xkrLScIYAZGsu3hRxNaOA80/ZEIlm6ItXeapgvEgO/oh9oyoyjm88mcloNFG9NST9jM
         T1Tw==
X-Gm-Message-State: AOJu0YyoGgP9KBpy2eUiwKd5eSelncO3XuhMY+Ol/TWAD9wfCwKwxIlY
	ltg0zlq8KOrppYEklnfn33uaa536y5oK1CyvWvnm
X-Google-Smtp-Source: AGHT+IGE90dPt6oUA6QWO0tdas7ncuErusgIm8CT6wvpDreQK13osCp/Dt66RoZHihFuqALlgieFOlJCrDj8ha2wAOQ=
X-Received: by 2002:a2e:88d8:0:b0:2bc:e2fb:4c8b with SMTP id
 a24-20020a2e88d8000000b002bce2fb4c8bmr1750789ljk.38.1694593927138; Wed, 13
 Sep 2023 01:32:07 -0700 (PDT)
MIME-Version: 1.0
References: <20230831075000.984-1-owen.smith@cloud.com> <20230831075000.984-4-owen.smith@cloud.com>
 <b03f452e-dbf1-6b3c-5999-fdb65c3685aa@xen.org>
In-Reply-To: <b03f452e-dbf1-6b3c-5999-fdb65c3685aa@xen.org>
From: Owen Smith <osmith@tibco.com>
Date: Wed, 13 Sep 2023 09:31:58 +0100
Message-ID: <CAC_UY89j7vzSFTTqgDTs7-5wRnwmkrjYT+h70ohHcdFmjoNAvA@mail.gmail.com>
Subject: Re: [RFC: PATCH 3/5] Fix Length calculation in PdoQueryId
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000010ee2b060539657b"

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

The 2nd chunk is cosmetic - keeping the order as the 1st chunk should help
with clarity

Owen

On Tue, Sep 12, 2023 at 7:52=E2=80=AFAM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments
> unless you have verified the sender and know the content is safe.
>
> On 31/08/2023 08:49, Owen Smith wrote:
> > Decrease Length by the string length of the current ID before moving
> > the Buffer value to the end of the current ID. Without this, Length
> > is not decreased, leading to potential issues with the next call to
> > RtlStringCbPrintfW.
> >
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
> > ---
> >   src/xenvif/pdo.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
> > index 1d163c9..d43702e 100644
> > --- a/src/xenvif/pdo.c
> > +++ b/src/xenvif/pdo.c
> > @@ -2100,11 +2100,11 @@ PdoQueryId(
> >                                           Revision->Number);
> >               ASSERT(NT_SUCCESS(status));
> >
> > -            Buffer +=3D wcslen(Buffer);
> >               Length -=3D (ULONG)(wcslen(Buffer) * sizeof (WCHAR));
> > +            Buffer +=3D wcslen(Buffer);
>
> This looks fine.
>
> >
> > -            Buffer++;
> >               Length -=3D sizeof (WCHAR);
> > +            Buffer++;
>
> This doesn't have any effect AFAICT though. Is it just a cosmetic change
> to keep the updating of 'Buffer' and 'Length' in the same order?
>
>    Paul
>
> >
> >               --Index;
> >           }
>
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">The 2nd chunk is cosmetic - keeping the order as the 1st chunk should he=
lp with clarity</div><div class=3D"gmail_default" style=3D"font-family:mono=
space"><br></div><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Owen</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D=
"gmail_attr">On Tue, Sep 12, 2023 at 7:52=E2=80=AFAM Paul Durrant &lt;<a hr=
ef=3D"mailto:xadimgnik@gmail.com">xadimgnik@gmail.com</a>&gt; wrote:<br></d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex">[CAUTION - EXTERNAL EM=
AIL] DO NOT reply, click links, or open attachments unless you have verifie=
d the sender and know the content is safe.<br>
<br>
On 31/08/2023 08:49, Owen Smith wrote:<br>
&gt; Decrease Length by the string length of the current ID before moving<b=
r>
&gt; the Buffer value to the end of the current ID. Without this, Length<br=
>
&gt; is not decreased, leading to potential issues with the next call to<br=
>
&gt; RtlStringCbPrintfW.<br>
&gt; <br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0src/xenvif/pdo.c | 4 ++--<br>
&gt;=C2=A0 =C2=A01 file changed, 2 insertions(+), 2 deletions(-)<br>
&gt; <br>
&gt; diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c<br>
&gt; index 1d163c9..d43702e 100644<br>
&gt; --- a/src/xenvif/pdo.c<br>
&gt; +++ b/src/xenvif/pdo.c<br>
&gt; @@ -2100,11 +2100,11 @@ PdoQueryId(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0Revision-&gt;Number);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT(NT_SUCCES=
S(status));<br>
&gt;=C2=A0 =C2=A0<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Buffer +=3D wcslen(Buffer);=
<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Length -=3D (ULO=
NG)(wcslen(Buffer) * sizeof (WCHAR));<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Buffer +=3D wcslen(Buffer);=
<br>
<br>
This looks fine.<br>
<br>
&gt;=C2=A0 =C2=A0<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Buffer++;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Length -=3D size=
of (WCHAR);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Buffer++;<br>
<br>
This doesn&#39;t have any effect AFAICT though. Is it just a cosmetic chang=
e <br>
to keep the updating of &#39;Buffer&#39; and &#39;Length&#39; in the same o=
rder?<br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0--Index;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
<br>
<br>
</blockquote></div>

--00000000000010ee2b060539657b--


From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 09:29:13 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 09:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601078.937018 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgMBM-0003B7-Bh; Wed, 13 Sep 2023 09:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601078.937018; Wed, 13 Sep 2023 09:29: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 1qgMBM-0003AS-5D; Wed, 13 Sep 2023 09:29:12 +0000
Received: by outflank-mailman (input) for mailman id 601078;
 Wed, 13 Sep 2023 08:37:23 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgLNC-0000n3-UL
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 08:37:23 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c18c03c0-5210-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 10:37:21 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2bc63e0d8cdso104748451fa.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 01:37:21 -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: c18c03c0-5210-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=tibco.com; s=googleworkspace; t=1694594241; x=1695199041; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=gq34dWQCS8VeHUdaSaySGAIUvEeBM5KJv+Z/GTFVROQ=;
        b=gAkBEBB6mmfpilE4xaV9CCq2nZ4iiIRZSho7RmREZ78kQC+V5kOBaxwJImuHO5al74
         efdsMeRceSpFUdXixdwtg7dOcg6XHAkE8L8C1xcrTbBm2e5Ky8bBjF2+EcBiAOOtLp/j
         6LS2Na5jXoXdM9g0uUjgxV82fN/W7RFMw2ZMR8FJkUw8fPEjblnNCq2VEwQE7uvEief/
         xmrojAycG10q0GyC4zZ3YEdLdyu1gA21azPFru2MSQL1xrF+/ATdCGF8yLTkjBS5z306
         QnsodidVkjHi6yC86017Edq7sqQN9ndkbgwNgX4ZWGDxxgDLvHLbv2yqPO7Rv96cD++i
         xjSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694594241; x=1695199041;
        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=gq34dWQCS8VeHUdaSaySGAIUvEeBM5KJv+Z/GTFVROQ=;
        b=ueuQSLXwXFqZAyzZmMPignsvj9F16lSfYggimFIVCvXHZRTL+j5pdlXmgd/RJGx1Af
         Hp3qoPi/KOtvhcKcVtNnkJQngaoPzYd/9a6/BNQd2xrI5ZPbai29R1qYFMqFJKxrdi+e
         gSWptGvAAmoXFiHYFqnPGpUcK3TiIHBVKrT95ZwFYWIfvWNCqVP7KE5fbfSwZTk8dZej
         KIspN+GiC3zNnnjaJT/6KNSS1/QBqeTmfpft0wGl/SBszVQLPJ/zHZnJUWeAL2/5/9pa
         7KSZE4tqFDPpod+2R6fZjSGX2QcVlfiyCKnHKt43wEHFEyiywGZC8b7CTBQKxWyHNOVM
         UPcA==
X-Gm-Message-State: AOJu0YxRSzJsBqeTGWfhnDfv1vZd2iVZMUkaY55p1mA6ozqqWJTyrpE+
	YaCVj4IbkSCoZB1qtKFKnrcxy+lD1QYxi7FeByZBfuJ/hmSNgQkh9g==
X-Google-Smtp-Source: AGHT+IFD35S3I6P8ZwVQB8P4czTqGqpSYvcj4w77qFIozmJ9RrO1V/L8CXnJdYM77iNYjs+nZZFZRtS2+a2lftWFwxE=
X-Received: by 2002:a2e:9455:0:b0:2b6:da88:a2d0 with SMTP id
 o21-20020a2e9455000000b002b6da88a2d0mr1781373ljh.47.1694594241097; Wed, 13
 Sep 2023 01:37:21 -0700 (PDT)
MIME-Version: 1.0
References: <20230831072921.1258-1-owen.smith@cloud.com> <20230831072921.1258-7-owen.smith@cloud.com>
 <19272e2b-a2a6-8de8-73e8-e10155cddca3@xen.org>
In-Reply-To: <19272e2b-a2a6-8de8-73e8-e10155cddca3@xen.org>
From: Owen Smith <osmith@tibco.com>
Date: Wed, 13 Sep 2023 09:37:12 +0100
Message-ID: <CAC_UY89bTiJoL2xutgFCZWGHp3P4+gWqkjxe4jV41L+ZngK7wA@mail.gmail.com>
Subject: Re: [PATCH 6/6] Add Unplug v2 interface (REV_0900000A)
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000c790000605397717"

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

I'll send a v2 with UnplugWasRequested()

Owen

On Tue, Sep 12, 2023 at 8:20=E2=80=AFAM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments
> unless you have verified the sender and know the content is safe.
>
> On 31/08/2023 08:29, Owen Smith wrote:
> > Unplug v2 adds a query call to determine if a device type has had its
> unplug issued.
> > This is useful during upgrade cases when the Unplug keys have been set
> to 0, and can
> > be used to prevent XenVif from starting whilst emulated devices are
> present, but those
> > emulated devices have not been assigned a valid configuration yet
> (emulated devices
> > will receive valid configuration, but not at this point in the startup
> sequence during
> > upgrade)
> >
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
> > ---
> >   include/revision.h         |  3 +-
> >   include/unplug_interface.h | 30 +++++++++++++++++--
> >   include/xen.h              |  7 +++++
> >   src/xen/unplug.c           | 15 ++++++++++
> >   src/xenbus/unplug.c        | 61 +++++++++++++++++++++++++++++++++++++=
+
> >   5 files changed, 113 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/revision.h b/include/revision.h
> > index 4d91927..9577fdb 100644
> > --- a/include/revision.h
> > +++ b/include/revision.h
> > @@ -57,6 +57,7 @@
> >       DEFINE_REVISION(0x09000006,  1,  3,  8,  1,  2,  1,  2,  4,  1,
> 1,  1), \
> >       DEFINE_REVISION(0x09000007,  1,  3,  8,  1,  2,  1,  2,  4,  1,
> 1,  2), \
> >       DEFINE_REVISION(0x09000008,  1,  3,  9,  1,  2,  1,  2,  4,  1,
> 1,  2), \
> > -    DEFINE_REVISION(0x09000009,  1,  4,  9,  1,  2,  1,  2,  4,  1,
> 1,  2)
> > +    DEFINE_REVISION(0x09000009,  1,  4,  9,  1,  2,  1,  2,  4,  1,
> 1,  2), \
> > +    DEFINE_REVISION(0x0900000A,  1,  4,  9,  1,  2,  1,  2,  4,  2,
> 1,  2)
> >
> >   #endif  // _REVISION_H
> > diff --git a/include/unplug_interface.h b/include/unplug_interface.h
> > index e465e2e..82afb63 100644
> > --- a/include/unplug_interface.h
> > +++ b/include/unplug_interface.h
> > @@ -85,6 +85,20 @@ typedef VOID
> >       IN  BOOLEAN                     Make
> >       );
> >
> > +/*! \typedef XENBUS_UNPLUG_GETSTATE
> > +    \brief Has a type of emulated device been unplugged
> > +
> > +    \param Interface The interface header
> > +    \param Type The type of device
> > +
> > +    \return TRUE The type of device has been unplugged this boot
> > +*/
> > +typedef BOOLEAN
> > +(*XENBUS_UNPLUG_GETSTATE)(
> > +    IN  PINTERFACE                  Interface,
> > +    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
> > +    );
> > +
> >   // {73db6517-3d06-4937-989f-199b7501e229}
> >   DEFINE_GUID(GUID_XENBUS_UNPLUG_INTERFACE,
> >   0x73db6517, 0x3d06, 0x4937, 0x98, 0x9f, 0x19, 0x9b, 0x75, 0x01, 0xe2,
> 0x29);
> > @@ -100,7 +114,19 @@ struct _XENBUS_UNPLUG_INTERFACE_V1 {
> >       XENBUS_UNPLUG_REQUEST   UnplugRequest;
> >   };
> >
> > -typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE,
> *PXENBUS_UNPLUG_INTERFACE;
> > +/*! \struct _XENBUS_UNPLUG_INTERFACE_V2
> > +    \brief UNPLUG interface version 2
> > +    \ingroup interfaces
> > +*/
> > +struct _XENBUS_UNPLUG_INTERFACE_V2 {
> > +    INTERFACE               Interface;
> > +    XENBUS_UNPLUG_ACQUIRE   UnplugAcquire;
> > +    XENBUS_UNPLUG_RELEASE   UnplugRelease;
> > +    XENBUS_UNPLUG_REQUEST   UnplugRequest;
> > +    XENBUS_UNPLUG_GETSTATE  UnplugGetState;
> > +};
> > +
> > +typedef struct _XENBUS_UNPLUG_INTERFACE_V2 XENBUS_UNPLUG_INTERFACE,
> *PXENBUS_UNPLUG_INTERFACE;
> >
> >   /*! \def XENBUS_UNPLUG
> >       \brief Macro at assist in method invocation
> > @@ -111,6 +137,6 @@ typedef struct _XENBUS_UNPLUG_INTERFACE_V1
> XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNP
> >   #endif  // _WINDLL
> >
> >   #define XENBUS_UNPLUG_INTERFACE_VERSION_MIN  1
> > -#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  1
> > +#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  2
> >
> >   #endif  // _XENBUS_UNPLUG_INTERFACE_H
> > diff --git a/include/xen.h b/include/xen.h
> > index 132de21..ead5ca0 100644
> > --- a/include/xen.h
> > +++ b/include/xen.h
> > @@ -377,6 +377,13 @@ UnplugDecrementValue(
> >       IN  UNPLUG_TYPE Type
> >       );
> >
> > +XEN_API
> > +VOID
> > +UnplugWasRequested(
> > +    IN  UNPLUG_TYPE Type,
> > +    OUT PBOOLEAN    Requested
> > +    );
> > +
> >   // LOG
> >
> >   typedef enum _LOG_LEVEL {
> > diff --git a/src/xen/unplug.c b/src/xen/unplug.c
> > index ab94da5..fa3a4ae 100644
> > --- a/src/xen/unplug.c
> > +++ b/src/xen/unplug.c
> > @@ -344,6 +344,21 @@ fail1:
> >       return status;
> >   }
> >
> > +XEN_API
> > +VOID
> > +UnplugWasRequested(
> > +    IN  UNPLUG_TYPE Type,
> > +    OUT PBOOLEAN    Requested
> > +    )
> > +{
> > +    PUNPLUG_CONTEXT Context =3D &UnplugContext;
> > +    KIRQL           Irql;
> > +
> > +    AcquireHighLock(&Context->Lock, &Irql);
> > +    *Requested =3D Context->Request[Type];
> > +    ReleaseHighLock(&Context->Lock, Irql);
> > +}
> > +
> >   XEN_API
> >   VOID
> >   UnplugDevices(
> > diff --git a/src/xenbus/unplug.c b/src/xenbus/unplug.c
> > index f2f13fa..86871d7 100644
> > --- a/src/xenbus/unplug.c
> > +++ b/src/xenbus/unplug.c
> > @@ -110,6 +110,41 @@ UnplugRequest(
> >       ReleaseMutex(&Context->Mutex);
> >   }
> >
> > +__drv_requiresIRQL(PASSIVE_LEVEL)
> > +static BOOLEAN
> > +UnplugGetState(
>
> Can we just use the UnplugWasRequested() name for actual interface
> function? It's more descriptive.
>
>     Paul
>
> > +    IN  PINTERFACE                  Interface,
> > +    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
> > +    )
> > +{
> > +    PXENBUS_UNPLUG_CONTEXT          Context =3D Interface->Context;
> > +    BOOLEAN                         Requested;
> > +
> > +    ASSERT3U(KeGetCurrentIrql(), =3D=3D, PASSIVE_LEVEL);
> > +
> > +    AcquireMutex(&Context->Mutex);
> > +
> > +    Requested =3D FALSE;
> > +    switch (Type) {
> > +    case XENBUS_UNPLUG_DEVICE_TYPE_NICS:
> > +        UnplugWasRequested(UNPLUG_NICS, &Requested);
> > +        break;
> > +
> > +    case XENBUS_UNPLUG_DEVICE_TYPE_DISKS:
> > +        UnplugWasRequested(UNPLUG_DISKS, &Requested);
> > +        break;
> > +
> > +    default:
> > +        ASSERT(FALSE);
> > +        break;
> > +    }
> > +
> > +    ReleaseMutex(&Context->Mutex);
> > +
> > +    return Requested;
> > +}
> > +
> > +
> >   static NTSTATUS
> >   UnplugAcquire(
> >       IN  PINTERFACE          Interface
> > @@ -157,6 +192,15 @@ static struct _XENBUS_UNPLUG_INTERFACE_V1
> UnplugInterfaceVersion1 =3D {
> >       UnplugRequest
> >   };
> >
> > +static struct _XENBUS_UNPLUG_INTERFACE_V2 UnplugInterfaceVersion2 =3D =
{
> > +    { sizeof (struct _XENBUS_UNPLUG_INTERFACE_V2), 2, NULL, NULL, NULL
> },
> > +    UnplugAcquire,
> > +    UnplugRelease,
> > +    UnplugRequest,
> > +    UnplugGetState
> > +};
> > +
> > +
> >   NTSTATUS
> >   UnplugInitialize(
> >       IN  PXENBUS_FDO             Fdo,
> > @@ -218,6 +262,23 @@ UnplugGetInterface(
> >           status =3D STATUS_SUCCESS;
> >           break;
> >       }
> > +    case 2: {
> > +        struct _XENBUS_UNPLUG_INTERFACE_V2   *UnplugInterface;
> > +
> > +        UnplugInterface =3D (struct _XENBUS_UNPLUG_INTERFACE_V2
> *)Interface;
> > +
> > +        status =3D STATUS_BUFFER_OVERFLOW;
> > +        if (Size < sizeof (struct _XENBUS_UNPLUG_INTERFACE_V2))
> > +            break;
> > +
> > +        *UnplugInterface =3D UnplugInterfaceVersion2;
> > +
> > +        ASSERT3U(Interface->Version, =3D=3D, Version);
> > +        Interface->Context =3D Context;
> > +
> > +        status =3D STATUS_SUCCESS;
> > +        break;
> > +    }
> >       default:
> >           status =3D STATUS_NOT_SUPPORTED;
> >           break;
>
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">I&#39;ll send a v2 with UnplugWasRequested()</div><div class=3D"gmail_de=
fault" style=3D"font-family:monospace"><br></div><div class=3D"gmail_defaul=
t" style=3D"font-family:monospace">Owen</div></div><br><div class=3D"gmail_=
quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Sep 12, 2023 at 8:20=
=E2=80=AFAM Paul Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.com">xadimgn=
ik@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">[CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open a=
ttachments unless you have verified the sender and know the content is safe=
.<br>
<br>
On 31/08/2023 08:29, Owen Smith wrote:<br>
&gt; Unplug v2 adds a query call to determine if a device type has had its =
unplug issued.<br>
&gt; This is useful during upgrade cases when the Unplug keys have been set=
 to 0, and can<br>
&gt; be used to prevent XenVif from starting whilst emulated devices are pr=
esent, but those<br>
&gt; emulated devices have not been assigned a valid configuration yet (emu=
lated devices<br>
&gt; will receive valid configuration, but not at this point in the startup=
 sequence during<br>
&gt; upgrade)<br>
&gt; <br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0include/revision.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 3 +-<br>
&gt;=C2=A0 =C2=A0include/unplug_interface.h | 30 +++++++++++++++++--<br>
&gt;=C2=A0 =C2=A0include/xen.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 |=C2=A0 7 +++++<br>
&gt;=C2=A0 =C2=A0src/xen/unplug.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=
 15 ++++++++++<br>
&gt;=C2=A0 =C2=A0src/xenbus/unplug.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 61 ++++++=
++++++++++++++++++++++++++++++++<br>
&gt;=C2=A0 =C2=A05 files changed, 113 insertions(+), 3 deletions(-)<br>
&gt; <br>
&gt; diff --git a/include/revision.h b/include/revision.h<br>
&gt; index 4d91927..9577fdb 100644<br>
&gt; --- a/include/revision.h<br>
&gt; +++ b/include/revision.h<br>
&gt; @@ -57,6 +57,7 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0DEFINE_REVISION(0x09000006,=C2=A0 1,=C2=A0 3=
,=C2=A0 8,=C2=A0 1,=C2=A0 2,=C2=A0 1,=C2=A0 2,=C2=A0 4,=C2=A0 1,=C2=A0 1,=
=C2=A0 1), \<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0DEFINE_REVISION(0x09000007,=C2=A0 1,=C2=A0 3=
,=C2=A0 8,=C2=A0 1,=C2=A0 2,=C2=A0 1,=C2=A0 2,=C2=A0 4,=C2=A0 1,=C2=A0 1,=
=C2=A0 2), \<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0DEFINE_REVISION(0x09000008,=C2=A0 1,=C2=A0 3=
,=C2=A0 9,=C2=A0 1,=C2=A0 2,=C2=A0 1,=C2=A0 2,=C2=A0 4,=C2=A0 1,=C2=A0 1,=
=C2=A0 2), \<br>
&gt; -=C2=A0 =C2=A0 DEFINE_REVISION(0x09000009,=C2=A0 1,=C2=A0 4,=C2=A0 9,=
=C2=A0 1,=C2=A0 2,=C2=A0 1,=C2=A0 2,=C2=A0 4,=C2=A0 1,=C2=A0 1,=C2=A0 2)<br=
>
&gt; +=C2=A0 =C2=A0 DEFINE_REVISION(0x09000009,=C2=A0 1,=C2=A0 4,=C2=A0 9,=
=C2=A0 1,=C2=A0 2,=C2=A0 1,=C2=A0 2,=C2=A0 4,=C2=A0 1,=C2=A0 1,=C2=A0 2), \=
<br>
&gt; +=C2=A0 =C2=A0 DEFINE_REVISION(0x0900000A,=C2=A0 1,=C2=A0 4,=C2=A0 9,=
=C2=A0 1,=C2=A0 2,=C2=A0 1,=C2=A0 2,=C2=A0 4,=C2=A0 2,=C2=A0 1,=C2=A0 2)<br=
>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0#endif=C2=A0 // _REVISION_H<br>
&gt; diff --git a/include/unplug_interface.h b/include/unplug_interface.h<b=
r>
&gt; index e465e2e..82afb63 100644<br>
&gt; --- a/include/unplug_interface.h<br>
&gt; +++ b/include/unplug_interface.h<br>
&gt; @@ -85,6 +85,20 @@ typedef VOID<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0IN=C2=A0 BOOLEAN=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Make<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0);<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +/*! \typedef XENBUS_UNPLUG_GETSTATE<br>
&gt; +=C2=A0 =C2=A0 \brief Has a type of emulated device been unplugged<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 \param Interface The interface header<br>
&gt; +=C2=A0 =C2=A0 \param Type The type of device<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 \return TRUE The type of device has been unplugged this=
 boot<br>
&gt; +*/<br>
&gt; +typedef BOOLEAN<br>
&gt; +(*XENBUS_UNPLUG_GETSTATE)(<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 PINTERFACE=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Interface,<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 XENBUS_UNPLUG_DEVICE_TYPE=C2=A0 =C2=A0Type<br>
&gt; +=C2=A0 =C2=A0 );<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0// {73db6517-3d06-4937-989f-199b7501e229}<br>
&gt;=C2=A0 =C2=A0DEFINE_GUID(GUID_XENBUS_UNPLUG_INTERFACE,<br>
&gt;=C2=A0 =C2=A00x73db6517, 0x3d06, 0x4937, 0x98, 0x9f, 0x19, 0x9b, 0x75, =
0x01, 0xe2, 0x29);<br>
&gt; @@ -100,7 +114,19 @@ struct _XENBUS_UNPLUG_INTERFACE_V1 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0XENBUS_UNPLUG_REQUEST=C2=A0 =C2=A0UnplugRequ=
est;<br>
&gt;=C2=A0 =C2=A0};<br>
&gt;=C2=A0 =C2=A0<br>
&gt; -typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *=
PXENBUS_UNPLUG_INTERFACE;<br>
&gt; +/*! \struct _XENBUS_UNPLUG_INTERFACE_V2<br>
&gt; +=C2=A0 =C2=A0 \brief UNPLUG interface version 2<br>
&gt; +=C2=A0 =C2=A0 \ingroup interfaces<br>
&gt; +*/<br>
&gt; +struct _XENBUS_UNPLUG_INTERFACE_V2 {<br>
&gt; +=C2=A0 =C2=A0 INTERFACE=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0Interface;<br>
&gt; +=C2=A0 =C2=A0 XENBUS_UNPLUG_ACQUIRE=C2=A0 =C2=A0UnplugAcquire;<br>
&gt; +=C2=A0 =C2=A0 XENBUS_UNPLUG_RELEASE=C2=A0 =C2=A0UnplugRelease;<br>
&gt; +=C2=A0 =C2=A0 XENBUS_UNPLUG_REQUEST=C2=A0 =C2=A0UnplugRequest;<br>
&gt; +=C2=A0 =C2=A0 XENBUS_UNPLUG_GETSTATE=C2=A0 UnplugGetState;<br>
&gt; +};<br>
&gt; +<br>
&gt; +typedef struct _XENBUS_UNPLUG_INTERFACE_V2 XENBUS_UNPLUG_INTERFACE, *=
PXENBUS_UNPLUG_INTERFACE;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0/*! \def XENBUS_UNPLUG<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0\brief Macro at assist in method invocation<=
br>
&gt; @@ -111,6 +137,6 @@ typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_=
UNPLUG_INTERFACE, *PXENBUS_UNP<br>
&gt;=C2=A0 =C2=A0#endif=C2=A0 // _WINDLL<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0#define XENBUS_UNPLUG_INTERFACE_VERSION_MIN=C2=A0 1<br>
&gt; -#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX=C2=A0 1<br>
&gt; +#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX=C2=A0 2<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0#endif=C2=A0 // _XENBUS_UNPLUG_INTERFACE_H<br>
&gt; diff --git a/include/xen.h b/include/xen.h<br>
&gt; index 132de21..ead5ca0 100644<br>
&gt; --- a/include/xen.h<br>
&gt; +++ b/include/xen.h<br>
&gt; @@ -377,6 +377,13 @@ UnplugDecrementValue(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0IN=C2=A0 UNPLUG_TYPE Type<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0);<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +XEN_API<br>
&gt; +VOID<br>
&gt; +UnplugWasRequested(<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 UNPLUG_TYPE Type,<br>
&gt; +=C2=A0 =C2=A0 OUT PBOOLEAN=C2=A0 =C2=A0 Requested<br>
&gt; +=C2=A0 =C2=A0 );<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0// LOG<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0typedef enum _LOG_LEVEL {<br>
&gt; diff --git a/src/xen/unplug.c b/src/xen/unplug.c<br>
&gt; index ab94da5..fa3a4ae 100644<br>
&gt; --- a/src/xen/unplug.c<br>
&gt; +++ b/src/xen/unplug.c<br>
&gt; @@ -344,6 +344,21 @@ fail1:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0return status;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +XEN_API<br>
&gt; +VOID<br>
&gt; +UnplugWasRequested(<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 UNPLUG_TYPE Type,<br>
&gt; +=C2=A0 =C2=A0 OUT PBOOLEAN=C2=A0 =C2=A0 Requested<br>
&gt; +=C2=A0 =C2=A0 )<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 PUNPLUG_CONTEXT Context =3D &amp;UnplugContext;<br>
&gt; +=C2=A0 =C2=A0 KIRQL=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Irql;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 AcquireHighLock(&amp;Context-&gt;Lock, &amp;Irql);<br>
&gt; +=C2=A0 =C2=A0 *Requested =3D Context-&gt;Request[Type];<br>
&gt; +=C2=A0 =C2=A0 ReleaseHighLock(&amp;Context-&gt;Lock, Irql);<br>
&gt; +}<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0XEN_API<br>
&gt;=C2=A0 =C2=A0VOID<br>
&gt;=C2=A0 =C2=A0UnplugDevices(<br>
&gt; diff --git a/src/xenbus/unplug.c b/src/xenbus/unplug.c<br>
&gt; index f2f13fa..86871d7 100644<br>
&gt; --- a/src/xenbus/unplug.c<br>
&gt; +++ b/src/xenbus/unplug.c<br>
&gt; @@ -110,6 +110,41 @@ UnplugRequest(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ReleaseMutex(&amp;Context-&gt;Mutex);<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +__drv_requiresIRQL(PASSIVE_LEVEL)<br>
&gt; +static BOOLEAN<br>
&gt; +UnplugGetState(<br>
<br>
Can we just use the UnplugWasRequested() name for actual interface <br>
function? It&#39;s more descriptive.<br>
<br>
=C2=A0 =C2=A0 Paul<br>
<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 PINTERFACE=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Interface,<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 XENBUS_UNPLUG_DEVICE_TYPE=C2=A0 =C2=A0Type<br>
&gt; +=C2=A0 =C2=A0 )<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 PXENBUS_UNPLUG_CONTEXT=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 Context =3D Interface-&gt;Context;<br>
&gt; +=C2=A0 =C2=A0 BOOLEAN=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Requested;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 ASSERT3U(KeGetCurrentIrql(), =3D=3D, PASSIVE_LEVEL);<br=
>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 AcquireMutex(&amp;Context-&gt;Mutex);<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 Requested =3D FALSE;<br>
&gt; +=C2=A0 =C2=A0 switch (Type) {<br>
&gt; +=C2=A0 =C2=A0 case XENBUS_UNPLUG_DEVICE_TYPE_NICS:<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 UnplugWasRequested(UNPLUG_NICS, &amp;Requ=
ested);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 case XENBUS_UNPLUG_DEVICE_TYPE_DISKS:<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 UnplugWasRequested(UNPLUG_DISKS, &amp;Req=
uested);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 default:<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ASSERT(FALSE);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br>
&gt; +=C2=A0 =C2=A0 }<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 ReleaseMutex(&amp;Context-&gt;Mutex);<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 return Requested;<br>
&gt; +}<br>
&gt; +<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0static NTSTATUS<br>
&gt;=C2=A0 =C2=A0UnplugAcquire(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0IN=C2=A0 PINTERFACE=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Interface<br>
&gt; @@ -157,6 +192,15 @@ static struct _XENBUS_UNPLUG_INTERFACE_V1 UnplugI=
nterfaceVersion1 =3D {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0UnplugRequest<br>
&gt;=C2=A0 =C2=A0};<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +static struct _XENBUS_UNPLUG_INTERFACE_V2 UnplugInterfaceVersion2 =3D=
 {<br>
&gt; +=C2=A0 =C2=A0 { sizeof (struct _XENBUS_UNPLUG_INTERFACE_V2), 2, NULL,=
 NULL, NULL },<br>
&gt; +=C2=A0 =C2=A0 UnplugAcquire,<br>
&gt; +=C2=A0 =C2=A0 UnplugRelease,<br>
&gt; +=C2=A0 =C2=A0 UnplugRequest,<br>
&gt; +=C2=A0 =C2=A0 UnplugGetState<br>
&gt; +};<br>
&gt; +<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0NTSTATUS<br>
&gt;=C2=A0 =C2=A0UnplugInitialize(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0IN=C2=A0 PXENBUS_FDO=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0Fdo,<br>
&gt; @@ -218,6 +262,23 @@ UnplugGetInterface(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D STATUS_SUCCESS;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; +=C2=A0 =C2=A0 case 2: {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct _XENBUS_UNPLUG_INTERFACE_V2=C2=A0 =
=C2=A0*UnplugInterface;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 UnplugInterface =3D (struct _XENBUS_UNPLU=
G_INTERFACE_V2 *)Interface;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 status =3D STATUS_BUFFER_OVERFLOW;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (Size &lt; sizeof (struct _XENBUS_UNPL=
UG_INTERFACE_V2))<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 *UnplugInterface =3D UnplugInterfaceVersi=
on2;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ASSERT3U(Interface-&gt;Version, =3D=3D, V=
ersion);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 Interface-&gt;Context =3D Context;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 status =3D STATUS_SUCCESS;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 break;<br>
&gt; +=C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0default:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D STATUS_NOT_SUPPORTE=
D;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
<br>
<br>
</blockquote></div>

--000000000000c790000605397717--


From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 09:29:13 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 09:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601068.937007 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgMBM-00039f-2X; Wed, 13 Sep 2023 09:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601068.937007; Wed, 13 Sep 2023 09:29: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 1qgMBL-00039Y-W5; Wed, 13 Sep 2023 09:29:11 +0000
Received: by outflank-mailman (input) for mailman id 601068;
 Wed, 13 Sep 2023 08:30:47 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgLGp-0008Ub-7B
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 08:30:47 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d54ce2b2-520f-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 10:30:46 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-2bf924f39f1so49862281fa.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 01:30:45 -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: d54ce2b2-520f-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=tibco.com; s=googleworkspace; t=1694593845; x=1695198645; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=S/m4qoBrnKRyd03TgxEHQp4zPPZKzZQzp7ClKgDf9mM=;
        b=OKGmDhVWpNubmbT08c1Ts4SMQmBCLnLXiKreUBYOQzcLCVlbn5mzt8rilxl27+SCOC
         zzeglcqsITwumXAP0xLX+U6BIUZuuoWGt4Xof1TY0FsSC4k3hpbK4bkrhjbVLScuO4E9
         76yeiESxEBhoqt8T/pszD5cuE08X7NOhxt4EoMmbjbIPjbaRUHlXJeX7U8V/f+McA20q
         Nn4aEJjeLoMZvA+Mmc8wBhJq9rHmJ9UqEmzw9iFLUP4MQKYCmG8nynjnSZt2tKYxkgZ/
         ezte1L2VMrfjS4ueo+2IGp0G80+b/vzYPQKLElpl3vLR47VFOPQLFLqglhxAeTNxIQ42
         U+FQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694593845; x=1695198645;
        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=S/m4qoBrnKRyd03TgxEHQp4zPPZKzZQzp7ClKgDf9mM=;
        b=m81G0z52iprQzs0+ky8z7TDzIqt3gSlhf7SaskjHgsYG0cXh1RcHek57Bq7GFJ6TaB
         QRusiV2r3dIo8gr5WbLtKDaJoYRSx4cZFQ6G3yVO+fIUH4N920R8QRLimnq1Dc4yQLXe
         bCnmn95cmXGjLAwIQiaTBd+Np2QjWP0Dj21TnoHVe+0OgW8AUqS1IVxH2EMxdb2M16fo
         NoPBZXbVeViWzG45cO2tKD7kF9dB6WnMjXOtmV9pMQg8U8+7aoMUsJzcJHC6Hb6vvhod
         VdtCWPr3FvipoyR7szjlP5b2PSqUH/oGw86liL0tdAaSZMJc43RoqCUZpiwk1dT2s0mi
         fJ1w==
X-Gm-Message-State: AOJu0Yyj8qR4Iw9tyypAeogQLe3js5K6cHMOj1WrGvjECyjWpdTPk+Ny
	wpeUbo9TGHVCu1XPHx/H6ilhVc5Pbv4a9RcWB975
X-Google-Smtp-Source: AGHT+IH3S+HdrO+WrhfszXBORWgOxuK8Bt869v+KdioRMyS/P70Z0GDcdEgzNATIqoLNCTL/g1pGNDfzyCOanpmZVHs=
X-Received: by 2002:a2e:a28c:0:b0:2bc:b9cd:8bc2 with SMTP id
 k12-20020a2ea28c000000b002bcb9cd8bc2mr1808706lja.4.1694593844635; Wed, 13 Sep
 2023 01:30:44 -0700 (PDT)
MIME-Version: 1.0
References: <20230831075000.984-1-owen.smith@cloud.com> <20230831075000.984-5-owen.smith@cloud.com>
 <a988d2a5-ae3a-30ab-99fd-d40f04ccb61a@xen.org>
In-Reply-To: <a988d2a5-ae3a-30ab-99fd-d40f04ccb61a@xen.org>
From: Owen Smith <osmith@tibco.com>
Date: Wed, 13 Sep 2023 09:30:36 +0100
Message-ID: <CAC_UY88esNERVwONOpPK6nbfqT2CTLc3Qx+KOcYhVtuF-sK-4Q@mail.gmail.com>
Subject: Re: [RFC: PATCH 4/5] Remove REV from DeviceID
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000260c1e0605396035"

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

Yes, it adds the requirement that the INF file must always use a revisioned
ID in the DDInstall section

Owen

On Tue, Sep 12, 2023 at 7:49=E2=80=AFAM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments
> unless you have verified the sender and know the content is safe.
>
> On 31/08/2023 08:49, Owen Smith wrote:
> > Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child
> INF DDInstall
> > section (stored as matching device id), but use the DeviceID to generat=
e
> the device
> > instance path. By keeping the device instance path the same over
> upgrades, the network
> > stack should identify this as an upgrade, rather than 'replacement
> hardware', and
> > not generate a new network connection, which would require network
> settings to be
> > copied from the existing network connection to the new network
> connection.
> >
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
>
> OK. As long as this is never used for selecting the driver to install
> then we should be safe.
>
> > ---
> >   src/xenvif/pdo.c | 10 ++--------
> >   1 file changed, 2 insertions(+), 8 deletions(-)
> >
> > diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
> > index d43702e..288419c 100644
> > --- a/src/xenvif/pdo.c
> > +++ b/src/xenvif/pdo.c
> > @@ -2062,18 +2062,12 @@ PdoQueryId(
> >           break;
> >
> >       case BusQueryDeviceID: {
> > -        ULONG                   Index;
> > -        PXENVIF_PDO_REVISION    Revision;
> > -
> >           Type =3D REG_SZ;
> > -        Index =3D ARRAYSIZE(PdoRevision) - 1;
> > -        Revision =3D &PdoRevision[Index];
> >
> >           status =3D RtlStringCbPrintfW(Buffer,
> >                                       Id.MaximumLength,
> > -                                    L"XENVIF\\VEN_%hs&DEV_NET&REV_%08X=
",
> > -                                    __PdoGetVendorName(Pdo),
> > -                                    Revision->Number);
> > +                                    L"XENVIF\\VEN_%hs&DEV_NET",
> > +                                    __PdoGetVendorName(Pdo));
> >           ASSERT(NT_SUCCESS(status));
> >
> >           Buffer +=3D wcslen(Buffer);
>
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Yes, it adds the requirement that the INF file must always use a revisio=
ned ID in the DDInstall section</div><div class=3D"gmail_default" style=3D"=
font-family:monospace"><br></div><div class=3D"gmail_default" style=3D"font=
-family:monospace">Owen</div></div><br><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">On Tue, Sep 12, 2023 at 7:49=E2=80=AFAM Paul =
Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.com">xadimgnik@gmail.com</a>&=
gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">[CAUT=
ION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments unless=
 you have verified the sender and know the content is safe.<br>
<br>
On 31/08/2023 08:49, Owen Smith wrote:<br>
&gt; Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child =
INF DDInstall<br>
&gt; section (stored as matching device id), but use the DeviceID to genera=
te the device<br>
&gt; instance path. By keeping the device instance path the same over upgra=
des, the network<br>
&gt; stack should identify this as an upgrade, rather than &#39;replacement=
 hardware&#39;, and<br>
&gt; not generate a new network connection, which would require network set=
tings to be<br>
&gt; copied from the existing network connection to the new network connect=
ion.<br>
&gt;<br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
<br>
OK. As long as this is never used for selecting the driver to install <br>
then we should be safe.<br>
<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0src/xenvif/pdo.c | 10 ++--------<br>
&gt;=C2=A0 =C2=A01 file changed, 2 insertions(+), 8 deletions(-)<br>
&gt; <br>
&gt; diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c<br>
&gt; index d43702e..288419c 100644<br>
&gt; --- a/src/xenvif/pdo.c<br>
&gt; +++ b/src/xenvif/pdo.c<br>
&gt; @@ -2062,18 +2062,12 @@ PdoQueryId(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0case BusQueryDeviceID: {<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Index;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 PXENVIF_PDO_REVISION=C2=A0 =C2=A0 Revisio=
n;<br>
&gt; -<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Type =3D REG_SZ;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 Index =3D ARRAYSIZE(PdoRevision) - 1;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 Revision =3D &amp;PdoRevision[Index];<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D RtlStringCbPrintfW(=
Buffer,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Id.Max=
imumLength,<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 L&quot;XENVIF\\VEN=
_%hs&amp;DEV_NET&amp;REV_%08X&quot;,<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __PdoGetVendorName=
(Pdo),<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Revision-&gt;Numbe=
r);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 L&quot;XENVIF\\VEN=
_%hs&amp;DEV_NET&quot;,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __PdoGetVendorName=
(Pdo));<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT(NT_SUCCESS(status));<br=
>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Buffer +=3D wcslen(Buffer);<br=
>
<br>
<br>
</blockquote></div>

--000000000000260c1e0605396035--


From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 09:29:13 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 09:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601075.937020 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgMBM-0003Ag-DP; Wed, 13 Sep 2023 09:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601075.937020; Wed, 13 Sep 2023 09:29: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 1qgMBM-00039v-3K; Wed, 13 Sep 2023 09:29:12 +0000
Received: by outflank-mailman (input) for mailman id 601075;
 Wed, 13 Sep 2023 08:36:09 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgLM1-000073-Ir
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 08:36:09 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 958e32e8-5210-11ee-9b0d-b553b5be7939;
 Wed, 13 Sep 2023 10:36:07 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2bcb54226e7so8506811fa.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 01:36:07 -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: 958e32e8-5210-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=tibco.com; s=googleworkspace; t=1694594167; x=1695198967; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=+FPwMi2MJGid5UTCl9LMEBWGtlMlXPLNaLgbjyC/tZM=;
        b=P8pfgi4CPpAns5o15fyant8/uEUe2xrKYnGpp3FCIy2Z0x5h+uoPbrvQM8i+pu1Ssf
         jqo2i4iq8VBXhyK9Qneal7ha4b/okUAnYXL37BfvZ8cKWUZsGDqTT+J1cwOZeCnJlPaZ
         wajPllJ5hY7YQZTio0WtWu0qZrMRKwoOjFVgXJcJCPOMGYUpGBkyk4+p35AcKNWOAdSF
         qaLGnFXn4x9BrdbaKYZq56uhcF2v9J21no/MPrBLrdtOaOvxLhgKB9y2eF7PvMt34pwv
         a+pgHa8W2HzSUKtUI63ONKhKb9Ght6Bzr6lyl63TENj+VzsTUveXTf5PyGcR0srneESR
         HZDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694594167; x=1695198967;
        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=+FPwMi2MJGid5UTCl9LMEBWGtlMlXPLNaLgbjyC/tZM=;
        b=kB/c30c3VfISK3MJrtx5H1i6OffTwvlMXrg5l4hRjn5/zQqzIMQ2Df4xv7z84kpwZV
         oSjgNXRc7ADgG+7WPDFYB9t5kvjz5NQLO4V+I3UNI9N7DkUYaB2jeNgwhas01x5q1sC7
         JEV07R5rnGJ9NiQwaRGY5HhE2Ps8PCAd+XFxUqSY/pApIUu9O9QxLdUNPizX00hevhqd
         yq9DyS9LIVW/3RXKE8ULKshGKgLLtGkmYWWifYOjwtqhSZNOTVNq9eT6wCVawYHOusuo
         T6txwDf5NozKwDZl0b9SMrRGAbO7Tt4OGg3ZHsyw8FLT9G7iYVbEDyybs6FqfaUi2hNT
         90cQ==
X-Gm-Message-State: AOJu0Yxo6FINagvFjDUscMr8YCQsaz3MbqA+0390AQPyEMOtDU3nYiSV
	Mn8+jP8tRu7K53LT0Z8aY9Ulye6WYpDtpag3QDt4
X-Google-Smtp-Source: AGHT+IHFepN3XhBqi4cfub9aMH2MknYLKflsK3VkNYh8UEuLN2pgCVPXes7CVgsp63wyt32tfLN2wRvZelk83y775yM=
X-Received: by 2002:a2e:9115:0:b0:2bc:db47:9ae7 with SMTP id
 m21-20020a2e9115000000b002bcdb479ae7mr609169ljg.20.1694594167311; Wed, 13 Sep
 2023 01:36:07 -0700 (PDT)
MIME-Version: 1.0
References: <20230831072921.1258-1-owen.smith@cloud.com> <20230831072921.1258-3-owen.smith@cloud.com>
 <3dbb2be2-4d4b-4d9a-f286-e6c0bc6b4ef8@xen.org>
In-Reply-To: <3dbb2be2-4d4b-4d9a-f286-e6c0bc6b4ef8@xen.org>
From: Owen Smith <osmith@tibco.com>
Date: Wed, 13 Sep 2023 09:35:58 +0100
Message-ID: <CAC_UY8_i1tjhbdqMd4BcEpGYO8Q-cy2iZdO6skVgpEuWekOp3Q@mail.gmail.com>
Subject: Re: [PATCH 2/6] Reset StorNvme's StartOverride
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000061b0eb0605397376"

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

This could be taken now (XenServer carries a patch to do this already)
It only seems to be an issue with particular emulated storage devices, so
may not be required based on the emulated configuration of the VM.

Owen

On Tue, Sep 12, 2023 at 8:18=E2=80=AFAM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments
> unless you have verified the sender and know the content is safe.
>
> On 31/08/2023 08:29, Owen Smith wrote:
> > When StorNvme does not enumerate any devices during boot start, it sets
> > the StartOverride value, which means that StorNvme does not start durin=
g
> > the next boot.
> > This can be an issue when attempting to revert to emulated boot, such a=
s
> > during a driver upgrade, as StorNvme will not be loaded and not take
> control
> > of the boot disk, leading to a 0x7B bugcheck.
> >
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
> > ---
> >   src/monitor/monitor.c | 63 ++++++++++++++++++++++++++++++++++++++++++=
+
> >   1 file changed, 63 insertions(+)
> >
>
> This seems like a straight fix for an existing problem so I could take
> it now?
>
> Reviewed-by: Paul Durrant <paul@xen.org>
>
> > diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
> > index bb872ce..185838f 100644
> > --- a/src/monitor/monitor.c
> > +++ b/src/monitor/monitor.c
> > @@ -1173,6 +1173,66 @@ fail1:
> >       return FALSE;
> >   }
> >
> > +static BOOL
> > +RemoveStartOverride(
> > +    IN PTCHAR           DriverName
> > +    )
> > +{
> > +    TCHAR               KeyName[MAX_PATH];
> > +    HKEY                Key;
> > +    DWORD               Value;
> > +    HRESULT             Error;
> > +
> > +    Error =3D StringCbPrintf(KeyName,
> > +                           MAX_PATH,
> > +                           SERVICES_KEY "\\%s\\StartOverride",
> > +                           DriverName);
> > +    assert(SUCCEEDED(Error));
> > +
> > +    Error =3D RegOpenKeyEx(HKEY_LOCAL_MACHINE,
> > +                         KeyName,
> > +                         0,
> > +                         KEY_READ | KEY_WRITE,
> > +                         &Key);
> > +    if (Error !=3D ERROR_SUCCESS) {
> > +        SetLastError(Error);
> > +        goto fail1;
> > +    }
> > +
> > +    Value =3D 0;
> > +    Error =3D RegSetValueEx(Key,
> > +                          "0",
> > +                          0,
> > +                          REG_DWORD,
> > +                          (const BYTE*)&Value,
> > +                          (DWORD) sizeof(Value));
> > +    if (Error !=3D ERROR_SUCCESS) {
> > +        SetLastError(Error);
> > +        goto fail2;
> > +    }
> > +
> > +    RegCloseKey(Key);
> > +
> > +    return TRUE;
> > +
> > +fail2:
> > +    Log("fail2");
> > +
> > +    RegCloseKey(Key);
> > +
> > +fail1:
> > +    Error =3D GetLastError();
> > +
> > +    {
> > +        PTCHAR  Message;
> > +        Message =3D GetErrorMessage(Error);
> > +        Log("fail1 (%s)", Message);
> > +        LocalFree(Message);
> > +    }
> > +
> > +    return FALSE;
> > +}
> > +
> >   VOID WINAPI
> >   MonitorMain(
> >       _In_    DWORD       argc,
> > @@ -1189,6 +1249,8 @@ MonitorMain(
> >
> >       Log("=3D=3D=3D=3D>");
> >
> > +    (VOID) RemoveStartOverride("stornvme");
> > +
> >       Error =3D RegOpenKeyEx(HKEY_LOCAL_MACHINE,
> >                            PARAMETERS_KEY(__MODULE__),
> >                            0,
> > @@ -1301,6 +1363,7 @@ done:
> >       (VOID) DeregisterEventSource(Context->EventLog);
> >
> >       CloseHandle(Context->ParametersKey);
> > +    (VOID) RemoveStartOverride("stornvme");
> >
> >       Log("<=3D=3D=3D=3D");
> >
>
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">This could be taken now (XenServer carries a patch to do this already)</=
div><div class=3D"gmail_default" style=3D"font-family:monospace">It only se=
ems to be an issue with particular emulated storage devices, so may not be =
required based on the emulated configuration of the VM.</div><div class=3D"=
gmail_default" style=3D"font-family:monospace"><br></div><div class=3D"gmai=
l_default" style=3D"font-family:monospace">Owen</div></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Sep 12, 2023=
 at 8:18=E2=80=AFAM Paul Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.com"=
>xadimgnik@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex">[CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, o=
r open attachments unless you have verified the sender and know the content=
 is safe.<br>
<br>
On 31/08/2023 08:29, Owen Smith wrote:<br>
&gt; When StorNvme does not enumerate any devices during boot start, it set=
s<br>
&gt; the StartOverride value, which means that StorNvme does not start duri=
ng<br>
&gt; the next boot.<br>
&gt; This can be an issue when attempting to revert to emulated boot, such =
as<br>
&gt; during a driver upgrade, as StorNvme will not be loaded and not take c=
ontrol<br>
&gt; of the boot disk, leading to a 0x7B bugcheck.<br>
&gt; <br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0src/monitor/monitor.c | 63 +++++++++++++++++++++++++++++++=
++++++++++++<br>
&gt;=C2=A0 =C2=A01 file changed, 63 insertions(+)<br>
&gt; <br>
<br>
This seems like a straight fix for an existing problem so I could take <br>
it now?<br>
<br>
Reviewed-by: Paul Durrant &lt;<a href=3D"mailto:paul@xen.org" target=3D"_bl=
ank">paul@xen.org</a>&gt;<br>
<br>
&gt; diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c<br>
&gt; index bb872ce..185838f 100644<br>
&gt; --- a/src/monitor/monitor.c<br>
&gt; +++ b/src/monitor/monitor.c<br>
&gt; @@ -1173,6 +1173,66 @@ fail1:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0return FALSE;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +static BOOL<br>
&gt; +RemoveStartOverride(<br>
&gt; +=C2=A0 =C2=A0 IN PTCHAR=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Drive=
rName<br>
&gt; +=C2=A0 =C2=A0 )<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 TCHAR=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0KeyName[MAX_PATH];<br>
&gt; +=C2=A0 =C2=A0 HKEY=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 Key;<br>
&gt; +=C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0Value;<br>
&gt; +=C2=A0 =C2=A0 HRESULT=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
Error;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 Error =3D StringCbPrintf(KeyName,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0MAX_PATH,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0SERVICES_KEY &quot;\\%s\\StartOverride&quot;,<b=
r>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0DriverName);<br>
&gt; +=C2=A0 =C2=A0 assert(SUCCEEDED(Error));<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 Error =3D RegOpenKeyEx(HKEY_LOCAL_MACHINE,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0KeyName,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A00,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0KEY_READ | KEY_WRITE,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0&amp;Key);<br>
&gt; +=C2=A0 =C2=A0 if (Error !=3D ERROR_SUCCESS) {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 SetLastError(Error);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto fail1;<br>
&gt; +=C2=A0 =C2=A0 }<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 Value =3D 0;<br>
&gt; +=C2=A0 =C2=A0 Error =3D RegSetValueEx(Key,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 &quot;0&quot;,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 0,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 REG_DWORD,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 (const BYTE*)&amp;Value,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 (DWORD) sizeof(Value));<br>
&gt; +=C2=A0 =C2=A0 if (Error !=3D ERROR_SUCCESS) {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 SetLastError(Error);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto fail2;<br>
&gt; +=C2=A0 =C2=A0 }<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 RegCloseKey(Key);<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 return TRUE;<br>
&gt; +<br>
&gt; +fail2:<br>
&gt; +=C2=A0 =C2=A0 Log(&quot;fail2&quot;);<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 RegCloseKey(Key);<br>
&gt; +<br>
&gt; +fail1:<br>
&gt; +=C2=A0 =C2=A0 Error =3D GetLastError();<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 PTCHAR=C2=A0 Message;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 Message =3D GetErrorMessage(Error);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 Log(&quot;fail1 (%s)&quot;, Message);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 LocalFree(Message);<br>
&gt; +=C2=A0 =C2=A0 }<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 return FALSE;<br>
&gt; +}<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0VOID WINAPI<br>
&gt;=C2=A0 =C2=A0MonitorMain(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0_In_=C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0 =C2=A0 =
=C2=A0argc,<br>
&gt; @@ -1189,6 +1249,8 @@ MonitorMain(<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Log(&quot;=3D=3D=3D=3D&gt;&quot;);<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 (VOID) RemoveStartOverride(&quot;stornvme&quot;);<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Error =3D RegOpenKeyEx(HKEY_LOCAL_MACHINE,<b=
r>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 PARAMETERS_KEY(__MODULE__),<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 0,<br>
&gt; @@ -1301,6 +1363,7 @@ done:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0(VOID) DeregisterEventSource(Context-&gt;Eve=
ntLog);<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0CloseHandle(Context-&gt;ParametersKey);<br>
&gt; +=C2=A0 =C2=A0 (VOID) RemoveStartOverride(&quot;stornvme&quot;);<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Log(&quot;&lt;=3D=3D=3D=3D&quot;);<br>
&gt;=C2=A0 =C2=A0<br>
<br>
<br>
</blockquote></div>

--00000000000061b0eb0605397376--


From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 13:45:38 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 13:45:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601347.937367 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQBW-0003xU-F4; Wed, 13 Sep 2023 13:45:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601347.937367; Wed, 13 Sep 2023 13:45:38 +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 1qgQBW-0003xN-CR; Wed, 13 Sep 2023 13:45:38 +0000
Received: by outflank-mailman (input) for mailman id 601347;
 Wed, 13 Sep 2023 13:45:37 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQBV-0003vZ-Lf
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 13:45:37 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1722f68-523b-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 15:45:36 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-31f915c3c42so4318070f8f.0
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 06:45:36 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 a7-20020a5d4d47000000b0030647449730sm331671wru.74.2023.09.13.06.45.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 06:45:35 -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: d1722f68-523b-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694612736; x=1695217536; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WuuunBPbN75dcEf8d9ft/9rgkp/+Fmah9ghjK3M+OCw=;
        b=BrZLrrkJcO0Rexj/MBxD2MX2ywVhjYeZGM+mOrwFzMk3VCdFaCJADFHc0lQ5JuUE2Q
         +0bjt7ASZupH+tAAXjIc9wRjfnyYJk6Wtj/Qx9U5iwWIeju4ovAkEAozXK4nRc7hab7m
         yuQQcyZGn+Gwo8nxEg3Vy6OHPQ7LeGPmWLhGI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694612736; x=1695217536;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WuuunBPbN75dcEf8d9ft/9rgkp/+Fmah9ghjK3M+OCw=;
        b=Ew3wtTLUGbIkJn4tTs6jO/f/+bywGjsrkOCPzOJ5eeHuwqYTVRZ34xGTJzM/tzE0eL
         QofraTtEzuzxloBm7ZWZ8G+h7wL95wOAQQeGBJsgv3YM3VW3baak/uc6bgwCLIIwTeFA
         l2eJpwFxcBQifrNY53JkVLc7IJUp6Fu5ichngf0ufftQ1tEY1AETZeqTyJufXjRBL64b
         iuAycB0NSC0Jpv4koDaYxcZsWl+TOqJZhMyfHr4FPr2aHCe7jfDuXZIg9F3h9eGgl1wb
         +ELKxIPMVAQ8FShys1blSlhbHBIt7PaeSmhIbgySSgjYLYWh0IlQisEASMU+XY6Ttofy
         JQMA==
X-Gm-Message-State: AOJu0YxOmDsrjggSUsanpgH7pvDlHcViAuJ3Jq8qjpb1U52CMEhA8EGA
	V0zC9Gx4kuTblenBIs/7PLOqi/GP7x/8zHV+5dho
X-Google-Smtp-Source: AGHT+IFtBEWwtFgVQVGvbh9HS01wA2i630nPL8je0OHqiXRO4GU1LboVaAJ1L6xtcOTnJALTMBmAog==
X-Received: by 2002:adf:ea04:0:b0:317:f714:3be6 with SMTP id q4-20020adfea04000000b00317f7143be6mr1929379wrm.61.1694612735959;
        Wed, 13 Sep 2023 06:45:35 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 2/6] Fix Length calculation in PdoQueryId
Date: Wed, 13 Sep 2023 14:45:14 +0100
Message-ID: <20230913134519.1769-3-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913134519.1769-1-owen.smith@cloud.com>
References: <20230913134519.1769-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Decrease Length by the string length of the current ID before moving
the Buffer value to the end of the current ID. Without this, Length
is not decreased, leading to potential issues with the next call to
RtlStringCbPrintfW.
Note: the second chunk it to maintain consistent ordering of operations
for clarity, and has no functional change.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xenbus/pdo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenbus/pdo.c b/src/xenbus/pdo.c
index 5e6fff3..663dd3b 100644
--- a/src/xenbus/pdo.c
+++ b/src/xenbus/pdo.c
@@ -1456,11 +1456,11 @@ PdoQueryId(
                                         Revision->Number);
             ASSERT(NT_SUCCESS(status));
 
-            Buffer += wcslen(Buffer);
             Length -= (ULONG)(wcslen(Buffer) * sizeof (WCHAR));
+            Buffer += wcslen(Buffer);
 
-            Buffer++;
             Length -= sizeof (WCHAR);
+            Buffer++;
 
             --Index;
         }
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 13:45:38 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 13:45:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601346.937363 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQBV-0003vm-Db; Wed, 13 Sep 2023 13:45:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601346.937363; Wed, 13 Sep 2023 13:45:37 +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 1qgQBV-0003vf-B3; Wed, 13 Sep 2023 13:45:37 +0000
Received: by outflank-mailman (input) for mailman id 601346;
 Wed, 13 Sep 2023 13:45:37 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQBU-0003vZ-Vx
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 13:45:37 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1035db3-523b-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 15:45:36 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-401d24f1f27so77280225e9.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 06:45:36 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 a7-20020a5d4d47000000b0030647449730sm331671wru.74.2023.09.13.06.45.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 06:45:34 -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: d1035db3-523b-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694612735; x=1695217535; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lZJhDs6TLp02X0mEgYUbmO580/FW8SRaERbmYDiWIQo=;
        b=fSbfo4rc+sHYEuF4m3RyJQuWC9e7Qeolt1CxSamNfdL3k4AJf2MYF0dYqYKZQAoHBn
         Xhi+Z57rfgBBpY7n1AZBMle0SKSMV4M97Z8w0CvNS5ZD8jmsrIxDbLX4uXp+4UdCcgrh
         HXhLDHAs2hKbc/uUF1eV4JZ35l9FH4Qqzd0Hk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694612735; x=1695217535;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lZJhDs6TLp02X0mEgYUbmO580/FW8SRaERbmYDiWIQo=;
        b=C3w5AFyizO3karS4OKKvBUE7GLRFLm9jnw2RmtriClK7PduHr/eITiWTDCDWAjBWu5
         ap3kWih8X7XGk/WzRHl5KC9c335ShldBg/XhFsRPG4zCNPLw2LB8N69SKcw76w7KAeT0
         AVzX6HG0GKXE6vsR4rdNYS4nAole91XgZAKTyaXwOQUIrL/UXh4wESvg2FgLpUTHyl+K
         eHJcd0NZKT7M6g4yubJidh3IxHi/97b+LvDnJFgg2dymLOhg2AdOejni69fLIGATiSjW
         b6Pa87T8YOx0jLEBVfaeNXVayvrfaZ8JBwoWOcr/ZrEREb6HTuA7qScTleqDojEaPGRz
         l3Qg==
X-Gm-Message-State: AOJu0Yy2nS8gt561Q6C3v6ldM36OwxgGKblUa36ucHSQk6ydhE5qlOpQ
	enJAYy1Ie452HtOySjPn8zgBmO1lEmssolrqy2Ba
X-Google-Smtp-Source: AGHT+IHaxZA/b7TtYxny3bxQRxMyUesLM0eA4f4jdhbz1kRUNqmkqMCWQNJHX/8oLOp3yxhBCZypTw==
X-Received: by 2002:a7b:c4c9:0:b0:3fe:4900:db95 with SMTP id g9-20020a7bc4c9000000b003fe4900db95mr2409435wmk.37.1694612735065;
        Wed, 13 Sep 2023 06:45:35 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 1/6] Reset StorNvme's StartOverride
Date: Wed, 13 Sep 2023 14:45:13 +0100
Message-ID: <20230913134519.1769-2-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913134519.1769-1-owen.smith@cloud.com>
References: <20230913134519.1769-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When StorNvme does not enumerate any devices during boot start, it sets
the StartOverride value, which means that StorNvme does not start during
the next boot.
This can be an issue when attempting to revert to emulated boot, such as
during a driver upgrade, as StorNvme will not be loaded and not take control
of the boot disk, leading to a 0x7B bugcheck.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/monitor/monitor.c | 63 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index bb872ce..185838f 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -1173,6 +1173,66 @@ fail1:
     return FALSE;
 }
 
+static BOOL
+RemoveStartOverride(
+    IN PTCHAR           DriverName
+    )
+{
+    TCHAR               KeyName[MAX_PATH];
+    HKEY                Key;
+    DWORD               Value;
+    HRESULT             Error;
+
+    Error = StringCbPrintf(KeyName,
+                           MAX_PATH,
+                           SERVICES_KEY "\\%s\\StartOverride",
+                           DriverName);
+    assert(SUCCEEDED(Error));
+
+    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                         KeyName,
+                         0,
+                         KEY_READ | KEY_WRITE,
+                         &Key);
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail1;
+    }
+
+    Value = 0;
+    Error = RegSetValueEx(Key,
+                          "0",
+                          0,
+                          REG_DWORD,
+                          (const BYTE*)&Value,
+                          (DWORD) sizeof(Value));
+    if (Error != ERROR_SUCCESS) {
+        SetLastError(Error);
+        goto fail2;
+    }
+
+    RegCloseKey(Key);
+
+    return TRUE;
+
+fail2:
+    Log("fail2");
+
+    RegCloseKey(Key);
+
+fail1:
+    Error = GetLastError();
+
+    {
+        PTCHAR  Message;
+        Message = GetErrorMessage(Error);
+        Log("fail1 (%s)", Message);
+        LocalFree(Message);
+    }
+
+    return FALSE;
+}
+
 VOID WINAPI
 MonitorMain(
     _In_    DWORD       argc,
@@ -1189,6 +1249,8 @@ MonitorMain(
 
     Log("====>");
 
+    (VOID) RemoveStartOverride("stornvme");
+
     Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                          PARAMETERS_KEY(__MODULE__),
                          0,
@@ -1301,6 +1363,7 @@ done:
     (VOID) DeregisterEventSource(Context->EventLog);
 
     CloseHandle(Context->ParametersKey);
+    (VOID) RemoveStartOverride("stornvme");
 
     Log("<====");
 
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 13:45:40 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 13:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601348.937372 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQBY-000400-Hv; Wed, 13 Sep 2023 13:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601348.937372; Wed, 13 Sep 2023 13:45:40 +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 1qgQBY-0003zt-Dn; Wed, 13 Sep 2023 13:45:40 +0000
Received: by outflank-mailman (input) for mailman id 601348;
 Wed, 13 Sep 2023 13:45:39 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQBX-0003z8-1k
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 13:45:39 +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 d0c01eef-523b-11ee-9b0d-b553b5be7939;
 Wed, 13 Sep 2023 15:45:35 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-31c5cac3ae2so6343660f8f.3
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 06:45:35 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 a7-20020a5d4d47000000b0030647449730sm331671wru.74.2023.09.13.06.45.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 06:45:34 -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: d0c01eef-523b-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694612734; x=1695217534; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=l6B8tCriEc/XH7z0rk8gE19d9EokX3FIqygB5SB6ivY=;
        b=BilI3TIHjl4AboOQ6QTECuodJoM4EPRtFTv3jYjbnNm0FCwR5EA7BCpmPIzAJQRUsb
         T+TF+ucmTRcMUUpt40RJ6t5Plh7curiKQNy7U48ubhDizYMtves5opmd+1s5RJJp4gcW
         HOx2Qs8pEftI9mmsiWUa0v+1+45YGBmBQrTtE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694612734; x=1695217534;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=l6B8tCriEc/XH7z0rk8gE19d9EokX3FIqygB5SB6ivY=;
        b=t9MvZP1Ba/HUsro25j3c/yoDdD7B8y8yVGCKtPAYAFeK5fdsZDhzRFZ3CZfZS7tM3N
         s6xdgHNM9ntWyyriZ/X+S5uxiuuFfMlpeowl9mplrS2U8KQzENMw37UhX/52G/fFG1Go
         xCzqADOYRsRWhHIapAFeojCNpKyoz6N1hs/FRkPIw/JSXP+Jb4bxtuWwCT4UfBSOJ2+E
         0kDfc9kF7jXCcWFm83MpvnRh2z/t3GVmx9Gan1d1qZ6enlfGlFNkxpHdxQ81zSzlCc49
         3qzZbuU+OfOd+uqVOaQXwfvcj+2ltdERp1BThClF3nBwz6OxqmJgn5ZxZj5fs6/sHvLI
         0AYg==
X-Gm-Message-State: AOJu0Yx14nAizKxp/M58DZk6rx6OLRZEHjMXmK/mq+VCu/6w0DW16d2/
	F7maHSyfny4vK8QSdwNi2Y79LiPm82M6sDR7FJ+X
X-Google-Smtp-Source: AGHT+IHnjfMCVcCA6zWT+n7+u25uhZOSgeTZpJHsjIE6KDuN3EBMNc4NYOt/l+x56zHZAlv7X5L8cg==
X-Received: by 2002:adf:ebc8:0:b0:31c:e933:9590 with SMTP id v8-20020adfebc8000000b0031ce9339590mr2025384wrn.33.1694612734511;
        Wed, 13 Sep 2023 06:45:34 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 0/6] Remove CoInstallers
Date: Wed, 13 Sep 2023 14:45:12 +0100
Message-ID: <20230913134519.1769-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
The current CoInstaller handle several edge cases that will need replacement
implementations. This patch series for most drivers offers a potential solution
to the removal of CoInstallers and the required changes to avoid upgrade issues.

CoInstallers have several uses currently:
- Adds an upgrade block function with the "AllowUpgrade" value blocking driver
  upgrades when set.
- Adds a check to prevent XenBus upgrades from a different vendor / brand.
  This checks the current device name (if it exists) matches the new device name.
- Checks all currently installed child devices have a supported set of interfaces
  common with the new parent device.
- Clears the Unplug keys only when required.
- Correctly cleans up user mode services on uninstall.

The AllowUpgrade function has not been replaced - I have not seen this used in
the current implementations of the drivers.

The vendor naming check is specific to XenBus, and I dont think there is a
reliable replacement, and was intended to prevent different vendor drivers from
attempting to coexist, or upgrade cases from particularly old versions which had
a different naming scheme.

The interface compatability checks can be replaced with the matching if RevisionIDs
in the INF files, so that child devices will only install on parent devices that
expose a matching HardwareID or CompatibleID. This does leave the case where the
new parent driver could drop support for an interface version that is currently in
use. This will mandate a further driver upgrade, and should remove the Unplug keys
and mandate a reboot where the emulated devices are present, to ensure continued
operation. After this reboot using emulated devices, updates to the child devices
should be detected and installed, requiring another reboot to revert to PV devices.

Unplug keys getting cleared on all upgrades should allow the next boot to use emulated
devices, unless a subsequent install updates dependent drivers to use a working set
of new interfaces. The requirement here is that updating any driver should always
allow a reboot with emulated devices, should any further issues be detected.

I believe that, going forward, changing the DeviceID to remove the RevisionID will
avoid the need to set network IDs and copy settings from the previous network
connection to the new network connection. This change will mean the driver selection
during installation/upgrade will use the HardwareIDs (with RevisionIDs) to match the
ID in the DDInstall INF section (with RevisionID), and use the DeviceID to generate
the Matching Device ID and Instance ID. This means that once drivers have been
upgraded, the InstanceIDs should not change, and Windows should not generate a new
network connection (with default settings) for the upgraded driver set - meaning the
correct network settings are persisted.

I dont have a good replacement for cleaning up user mode services (xenbus_monitor
xenagent and xencons_monitor) on device uninstall. This *should* be handled correctly
by the PnP manager, but failing to stop either service should not be detremental to
the operation of the VM. Selecting the "Delete Drivers" option during uninstall will
stop and disable these services, not selecting this option will leave these services
running.

Owen Smith (6):
  Reset StorNvme's StartOverride
  Fix Length calculation in PdoQueryId
  Remove REV from DeviceID
  Add Unplug v2 interface (REV_0900000A)
  Remove CoInstaller from INF
  Delete CoInstaller code

 include/revision.h                            |    3 +-
 include/unplug_interface.h                    |   30 +-
 include/xen.h                                 |    7 +
 src/coinst/coinst.c                           | 2136 -----------------
 src/coinst/xenbus_coinst.def                  |   38 -
 src/coinst/xenbus_coinst.rc                   |   57 -
 src/monitor/monitor.c                         |   63 +
 src/xen/unplug.c                              |   15 +
 src/xenbus.inf                                |   18 +-
 src/xenbus/pdo.c                              |   14 +-
 src/xenbus/unplug.c                           |   59 +
 vs2015/package/package.vcxproj                |    3 -
 vs2015/xenbus.sln                             |   22 -
 vs2015/xenbus_coinst/xenbus_coinst.vcxproj    |   64 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 vs2017/package/package.vcxproj                |    3 -
 vs2017/xenbus.sln                             |   22 -
 vs2017/xenbus_coinst/xenbus_coinst.vcxproj    |   64 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 vs2019/package/package.vcxproj                |    3 -
 vs2019/xenbus.sln                             |   22 -
 vs2019/xenbus_coinst/xenbus_coinst.vcxproj    |   70 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 vs2022/package/package.vcxproj                |    3 -
 vs2022/xenbus.sln                             |   22 -
 vs2022/xenbus_coinst/xenbus_coinst.vcxproj    |   70 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 27 files changed, 184 insertions(+), 2656 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xenbus_coinst.def
 delete mode 100644 src/coinst/xenbus_coinst.rc
 delete mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user
 delete mode 100644 vs2017/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user
 delete mode 100644 vs2019/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2019/xenbus_coinst/xenbus_coinst.vcxproj.user
 delete mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user

-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 13:45:40 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 13:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601349.937377 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQBY-00040P-N3; Wed, 13 Sep 2023 13:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601349.937377; Wed, 13 Sep 2023 13:45:40 +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 1qgQBY-000404-FS; Wed, 13 Sep 2023 13:45:40 +0000
Received: by outflank-mailman (input) for mailman id 601349;
 Wed, 13 Sep 2023 13:45:39 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQBX-0003vZ-1m
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 13:45:39 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d280b38c-523b-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 15:45:38 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-401d6f6b2e0so6167445e9.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 06:45:38 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 a7-20020a5d4d47000000b0030647449730sm331671wru.74.2023.09.13.06.45.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 06:45:37 -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: d280b38c-523b-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694612737; x=1695217537; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BTmuULZOhpjwlq7HCL3SulXerhjAuugIXfzSd/vTZzI=;
        b=ONxWs2s30ndz3pZrSSsa00XcOCl4Ah40tVsiX4u3MiHKbV0qXsWWhhCU23ogo9aoIk
         +JVLwyLjtrDYhMAUz62iDGUScAr69PByzUeWZyCfE2nlNIVAtnxJsKUBTynCwdGgIDjw
         Dx+w2pyF/IfpKEZfaEg+H/iA1jrk6K/aj3SAk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694612737; x=1695217537;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BTmuULZOhpjwlq7HCL3SulXerhjAuugIXfzSd/vTZzI=;
        b=B7rYPg1LRXAka/DJNBK5ksMys95usSUesNAuv/7YT5Z0RB4r+cujI4CYwYy4wnnOyg
         EycxYLSkV1F9/b7+k0C8eBSSdaJAJ86ZZEuyNDa1Y4hV07CBmB3clZz4QIVv/VqwgVwc
         B2ZbmfcoaB9THZhHclLmJnFI6w9nd7m1evDE66oVqo9uxUHuZ3J0j7yTrWfwDPfD7mGY
         9p44yOVd/j4Oyr8jTqPapgMuu0+p5Tawiyy+20a0PBDkqQvP4xAVkqEFW5h0sUbmlBrJ
         /6/wG0YPu2PoGD7AnGLxZWv4fB9vnBbx6ABj2SP2FIpzoenZk0HerCHFS6Y7Ak3gabel
         t+UA==
X-Gm-Message-State: AOJu0Yz7EoSoR6id1Q6oBWzsq/s58zQ13aIdGRDy/03dWeUNCVcjH6PF
	06SVQ4EOLH9vbQCPc60SJtvKB8nTLmfBQqafMtNs
X-Google-Smtp-Source: AGHT+IFQ3rzjxCkIwwsE3vfzGvjtA7ehhIS3LTgeyHddDqcpF2mI6AhwzklyI6IWPuF74k2YfuJJVQ==
X-Received: by 2002:a05:6000:ca:b0:30f:c1fa:7901 with SMTP id q10-20020a05600000ca00b0030fc1fa7901mr2335020wrx.5.1694612737613;
        Wed, 13 Sep 2023 06:45:37 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 4/6] Add Unplug v2 interface (REV_0900000A)
Date: Wed, 13 Sep 2023 14:45:16 +0100
Message-ID: <20230913134519.1769-5-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913134519.1769-1-owen.smith@cloud.com>
References: <20230913134519.1769-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Unplug v2 adds a query call to determine if a device type has had its unplug issued.
This is useful during upgrade cases when the Unplug keys have been set to 0, and can
be used to prevent XenVif from starting whilst emulated devices are present, but those
emulated devices have not been assigned a valid configuration yet (emulated devices
will receive valid configuration, but not at this point in the startup sequence during
upgrade)

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 include/revision.h         |  3 +-
 include/unplug_interface.h | 30 +++++++++++++++++--
 include/xen.h              |  7 +++++
 src/xen/unplug.c           | 15 ++++++++++
 src/xenbus/unplug.c        | 59 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 111 insertions(+), 3 deletions(-)

diff --git a/include/revision.h b/include/revision.h
index 4d91927..9577fdb 100644
--- a/include/revision.h
+++ b/include/revision.h
@@ -57,6 +57,7 @@
     DEFINE_REVISION(0x09000006,  1,  3,  8,  1,  2,  1,  2,  4,  1,  1,  1), \
     DEFINE_REVISION(0x09000007,  1,  3,  8,  1,  2,  1,  2,  4,  1,  1,  2), \
     DEFINE_REVISION(0x09000008,  1,  3,  9,  1,  2,  1,  2,  4,  1,  1,  2), \
-    DEFINE_REVISION(0x09000009,  1,  4,  9,  1,  2,  1,  2,  4,  1,  1,  2)
+    DEFINE_REVISION(0x09000009,  1,  4,  9,  1,  2,  1,  2,  4,  1,  1,  2), \
+    DEFINE_REVISION(0x0900000A,  1,  4,  9,  1,  2,  1,  2,  4,  2,  1,  2)
 
 #endif  // _REVISION_H
diff --git a/include/unplug_interface.h b/include/unplug_interface.h
index e465e2e..ca55027 100644
--- a/include/unplug_interface.h
+++ b/include/unplug_interface.h
@@ -85,6 +85,20 @@ typedef VOID
     IN  BOOLEAN                     Make
     );
 
+/*! \typedef XENBUS_UNPLUG_WASREQUESTED
+    \brief Has a type of emulated device been unplugged
+
+    \param Interface The interface header
+    \param Type The type of device
+
+    \return TRUE The type of device has been unplugged this boot.
+*/
+typedef BOOLEAN
+(*XENBUS_UNPLUG_WASREQUESTED)(
+    IN  PINTERFACE                  Interface,
+    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
+    );
+
 // {73db6517-3d06-4937-989f-199b7501e229}
 DEFINE_GUID(GUID_XENBUS_UNPLUG_INTERFACE,
 0x73db6517, 0x3d06, 0x4937, 0x98, 0x9f, 0x19, 0x9b, 0x75, 0x01, 0xe2, 0x29);
@@ -100,7 +114,19 @@ struct _XENBUS_UNPLUG_INTERFACE_V1 {
     XENBUS_UNPLUG_REQUEST   UnplugRequest;
 };
 
-typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
+/*! \struct _XENBUS_UNPLUG_INTERFACE_V2
+    \brief UNPLUG interface version 2
+    \ingroup interfaces
+*/
+struct _XENBUS_UNPLUG_INTERFACE_V2 {
+    INTERFACE                   Interface;
+    XENBUS_UNPLUG_ACQUIRE       UnplugAcquire;
+    XENBUS_UNPLUG_RELEASE       UnplugRelease;
+    XENBUS_UNPLUG_REQUEST       UnplugRequest;
+    XENBUS_UNPLUG_WASREQUESTED  UnplugWasRequested;
+};
+
+typedef struct _XENBUS_UNPLUG_INTERFACE_V2 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
 
 /*! \def XENBUS_UNPLUG
     \brief Macro at assist in method invocation
@@ -111,6 +137,6 @@ typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNP
 #endif  // _WINDLL
 
 #define XENBUS_UNPLUG_INTERFACE_VERSION_MIN  1
-#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  1
+#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  2
 
 #endif  // _XENBUS_UNPLUG_INTERFACE_H
diff --git a/include/xen.h b/include/xen.h
index 132de21..37feef4 100644
--- a/include/xen.h
+++ b/include/xen.h
@@ -377,6 +377,13 @@ UnplugDecrementValue(
     IN  UNPLUG_TYPE Type
     );
 
+XEN_API
+VOID
+UnplugIsRequested(
+    IN  UNPLUG_TYPE Type,
+    OUT PBOOLEAN    Requested
+    );
+
 // LOG
 
 typedef enum _LOG_LEVEL {
diff --git a/src/xen/unplug.c b/src/xen/unplug.c
index ab94da5..2709153 100644
--- a/src/xen/unplug.c
+++ b/src/xen/unplug.c
@@ -344,6 +344,21 @@ fail1:
     return status;
 }
 
+XEN_API
+VOID
+UnplugIsRequested(
+    IN  UNPLUG_TYPE Type,
+    OUT PBOOLEAN    Requested
+    )
+{
+    PUNPLUG_CONTEXT Context = &UnplugContext;
+    KIRQL           Irql;
+
+    AcquireHighLock(&Context->Lock, &Irql);
+    *Requested = Context->Request[Type];
+    ReleaseHighLock(&Context->Lock, Irql);
+}
+
 XEN_API
 VOID
 UnplugDevices(
diff --git a/src/xenbus/unplug.c b/src/xenbus/unplug.c
index f2f13fa..235783c 100644
--- a/src/xenbus/unplug.c
+++ b/src/xenbus/unplug.c
@@ -110,6 +110,40 @@ UnplugRequest(
     ReleaseMutex(&Context->Mutex);
 }
 
+__drv_requiresIRQL(PASSIVE_LEVEL)
+static BOOLEAN
+UnplugWasRequested(
+    IN  PINTERFACE                  Interface,
+    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
+    )
+{
+    PXENBUS_UNPLUG_CONTEXT          Context = Interface->Context;
+    BOOLEAN                         Requested;
+
+    ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
+
+    AcquireMutex(&Context->Mutex);
+
+    Requested = FALSE;
+    switch (Type) {
+    case XENBUS_UNPLUG_DEVICE_TYPE_NICS:
+        UnplugIsRequested(UNPLUG_NICS, &Requested);
+        break;
+
+    case XENBUS_UNPLUG_DEVICE_TYPE_DISKS:
+        UnplugIsRequested(UNPLUG_DISKS, &Requested);
+        break;
+
+    default:
+        ASSERT(FALSE);
+        break;
+    }
+
+    ReleaseMutex(&Context->Mutex);
+
+    return Requested;
+}
+
 static NTSTATUS
 UnplugAcquire(
     IN  PINTERFACE          Interface
@@ -157,6 +191,14 @@ static struct _XENBUS_UNPLUG_INTERFACE_V1 UnplugInterfaceVersion1 = {
     UnplugRequest
 };
 
+static struct _XENBUS_UNPLUG_INTERFACE_V2 UnplugInterfaceVersion2 = {
+    { sizeof (struct _XENBUS_UNPLUG_INTERFACE_V2), 2, NULL, NULL, NULL },
+    UnplugAcquire,
+    UnplugRelease,
+    UnplugRequest,
+    UnplugWasRequested
+};
+
 NTSTATUS
 UnplugInitialize(
     IN  PXENBUS_FDO             Fdo,
@@ -218,6 +260,23 @@ UnplugGetInterface(
         status = STATUS_SUCCESS;
         break;
     }
+    case 2: {
+        struct _XENBUS_UNPLUG_INTERFACE_V2   *UnplugInterface;
+
+        UnplugInterface = (struct _XENBUS_UNPLUG_INTERFACE_V2 *)Interface;
+
+        status = STATUS_BUFFER_OVERFLOW;
+        if (Size < sizeof (struct _XENBUS_UNPLUG_INTERFACE_V2))
+            break;
+
+        *UnplugInterface = UnplugInterfaceVersion2;
+
+        ASSERT3U(Interface->Version, ==, Version);
+        Interface->Context = Context;
+
+        status = STATUS_SUCCESS;
+        break;
+    }
     default:
         status = STATUS_NOT_SUPPORTED;
         break;
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 13:45:40 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 13:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601350.937378 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQBY-00040x-Nj; Wed, 13 Sep 2023 13:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601350.937378; Wed, 13 Sep 2023 13:45:40 +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 1qgQBY-00040I-Hc; Wed, 13 Sep 2023 13:45:40 +0000
Received: by outflank-mailman (input) for mailman id 601350;
 Wed, 13 Sep 2023 13:45:39 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQBX-0003z8-Nw
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 13:45:39 +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 d1fad276-523b-11ee-9b0d-b553b5be7939;
 Wed, 13 Sep 2023 15:45:37 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-31c73c21113so6453458f8f.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 06:45:37 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 a7-20020a5d4d47000000b0030647449730sm331671wru.74.2023.09.13.06.45.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 06:45:36 -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: d1fad276-523b-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694612737; x=1695217537; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w+mbLkhW3U6/wionSYponVanDOkH37LEfeS9XnFg6LQ=;
        b=WNH4ly6Tnbj3SAa0GGz0iorBYrWNp3506SuAhj0C8llESnAYuoWKtnclSTvhv3Czia
         BcN8F2RoSkpMQgV0okKZNWWq/lj9brIBcNgzS+fgPSgWZql0Ha0z3no3E/v+h87ebcJC
         /O+uU/7ThZdklTJqo8TT3EGJr8b0lSNfRYYl0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694612737; x=1695217537;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=w+mbLkhW3U6/wionSYponVanDOkH37LEfeS9XnFg6LQ=;
        b=JANIRYoNNp/1rOu18HiMoMjaGPjLcn6Na3jUPx4fzLgxK1WW102pMDQTqM1UyqTTia
         2fpNnAcbSEIbvclh2AWmhLJevblDzE4bT17Boson0pBs+UjNcumw2gUPEwvNodZOX0dN
         8oqzftN9W8SvHKeCSPWmeO9IY1hlj5E824ugkQZA7WtXMhk5ZK6kSAPMH912yzGDGh5w
         rMBa/J1X//cp//shD89Tj5dvHUQrsw+H0VWJqeDEwa3VmdeU0IJqBGBbKNk19WW/VwT8
         /NQeZ+mUudeuUG0x6+gL+U0R4W0YHOCw1Or5Juua4g0N8BYvfBxNVI9xV+EdkH3d5zNr
         r7HQ==
X-Gm-Message-State: AOJu0Yx1IRoCNkutPQy6A/2j3AjKRkX+YWILYKPoSdNo7w/cgjovY6Ew
	YtrnbshJwEjNaSJ61S4TnoMO/Aeb/iHBkZS5v+Vq
X-Google-Smtp-Source: AGHT+IFgO9zUMQpkU5tu+lRHkgRI3TxvQk0MhwZG43L62/fVIeXHodbhRRf+AOPGeUBw9cAodz6b8w==
X-Received: by 2002:adf:e58c:0:b0:31f:c300:cb36 with SMTP id l12-20020adfe58c000000b0031fc300cb36mr2031738wrm.50.1694612736777;
        Wed, 13 Sep 2023 06:45:36 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 3/6] Remove REV from DeviceID
Date: Wed, 13 Sep 2023 14:45:15 +0100
Message-ID: <20230913134519.1769-4-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913134519.1769-1-owen.smith@cloud.com>
References: <20230913134519.1769-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child INF DDInstall
section (stored as matching device id), but use the DeviceID to generate the device
instance path. By keeping the device instance path the same over upgrades, the network
stack should identify this as an upgrade, rather than 'replacement hardware', and
not generate a new network connection, which would require network settings to be
copied from the existing network connection to the new network connection.

Note: Adds a strict requirement on child INF DDInstall sections, to specify the full
hardware ID (including revision) to guarantee interface versions are correctly supported

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xenbus/pdo.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/xenbus/pdo.c b/src/xenbus/pdo.c
index 663dd3b..3f1e4c5 100644
--- a/src/xenbus/pdo.c
+++ b/src/xenbus/pdo.c
@@ -1416,19 +1416,13 @@ PdoQueryId(
         break;
 
     case BusQueryDeviceID: {
-        ULONG                   Index;
-        PXENBUS_PDO_REVISION    Revision;
-
         Type = REG_SZ;
-        Index = ARRAYSIZE(PdoRevision) - 1;
-        Revision = &PdoRevision[Index];
 
         status = RtlStringCbPrintfW(Buffer,
                                     Id.MaximumLength,
-                                    L"XENBUS\\VEN_%hs&DEV_%hs&REV_%08X",
+                                    L"XENBUS\\VEN_%hs&DEV_%hs",
                                     __PdoGetVendorName(Pdo),
-                                    __PdoGetName(Pdo),
-                                    Revision->Number);
+                                    __PdoGetName(Pdo));
         ASSERT(NT_SUCCESS(status));
 
         Buffer += wcslen(Buffer);
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 13:45:41 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 13:45:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601351.937383 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQBZ-000464-Nr; Wed, 13 Sep 2023 13:45:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601351.937383; Wed, 13 Sep 2023 13:45:41 +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 1qgQBZ-00045u-Kt; Wed, 13 Sep 2023 13:45:41 +0000
Received: by outflank-mailman (input) for mailman id 601351;
 Wed, 13 Sep 2023 13:45:40 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQBY-0003z8-UZ
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 13:45:40 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3031da1-523b-11ee-9b0d-b553b5be7939;
 Wed, 13 Sep 2023 15:45:39 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-402cc6b8bedso77480755e9.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 06:45:39 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 a7-20020a5d4d47000000b0030647449730sm331671wru.74.2023.09.13.06.45.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 06:45:38 -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: d3031da1-523b-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694612738; x=1695217538; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HMcUJ96r8/4BLgrjiYVPNGsjPIzXM0Dte+FjUaXs2Bw=;
        b=M3rG/ycEuQsv6p4KVyewJ4WZvQaAgObbs0NbZ5E4VDqctxZhKHdvCpGv6N/A0HvIPm
         7DCM/z+/t83SMAn5Slvpjt7J4Is0Z2Gj9VsFz/oB2MCsRZlSvpL1PLT6uIjjZffWVNAV
         hgmSyZb/XcVKtX2ahsPUQNCTA7OHRF/9GYcrs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694612738; x=1695217538;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HMcUJ96r8/4BLgrjiYVPNGsjPIzXM0Dte+FjUaXs2Bw=;
        b=ZUTDkcNRnlwItkMiyw7J3Poa+6nT950xt+gEAXGkvIKkeG7qvO/FGSpwYlyFwSXd1W
         tIootr0IA88pTvN6F4fWZ/70YopSolwOXKIqBfkfLeBEpN7VAH9WjMi24fHLhGtPQbJY
         SqfFSBup/JHyvNDTcrr5fQ9XuajDij1JZbauscw9/XS1mq4aR7/lKTVkK9fwiVQdJOUP
         rjTPew0I7eizw524BnMJQwS1HfJ8yXX9R/xqZGMw8s2dRwR4qIs1Q0OnUKdiyM5DwlvI
         PHcsNGObTyWbzh+3UGdO1SLlEO2zOgvMz6cJ0SAh/P/EYxxlkyX+jTPMh0Ek/ozdQb6l
         CTJg==
X-Gm-Message-State: AOJu0Yw+hqGu7v7EYr/WI55YZJsMA0a1T9wjjonJRCpooUOIOlTiyiAB
	hy0+NUsopa4nzKeCvrwMuNJ8wrLUKLMgbrGBY437
X-Google-Smtp-Source: AGHT+IFtDbMuxc9KHsBh9b4xv4rLyOx1dvhGBv0exQy4Z81s9WbnLJfAply+yOwaU0b+oEiW38WS0Q==
X-Received: by 2002:a5d:4941:0:b0:314:1ad7:2ea8 with SMTP id r1-20020a5d4941000000b003141ad72ea8mr2358139wrs.54.1694612738543;
        Wed, 13 Sep 2023 06:45:38 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 5/6] Remove CoInstaller from INF
Date: Wed, 13 Sep 2023 14:45:17 +0100
Message-ID: <20230913134519.1769-6-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913134519.1769-1-owen.smith@cloud.com>
References: <20230913134519.1769-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
several issues
- PnpLockdown=1 needs to be specified
- CoInstallers are no longer allowed

The CoInstaller has several functions that will need alternative solutions:
- The AllowUpdate mechanism is no longer possible
- The ability to block upgrades from installing on a different vendor's drivers
- The safety checks that ensure interface versionings remain compatible
- The cleanup of xenbus_monitor on uninstall.

Interface safety checks need to be handled by changes to child device bindings,
and assuming upgrade via emulated devices is safe. The unplug keys are cleared
in the INF to revert to emulated on the next boot, incase the current child
drivers rely on an interface that is no longer present (note: in this case,
child drivers will need updating).

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xenbus.inf | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/src/xenbus.inf b/src/xenbus.inf
index 59eab7b..bfe0025 100644
--- a/src/xenbus.inf
+++ b/src/xenbus.inf
@@ -37,10 +37,10 @@ Provider=%Vendor%
 CatalogFile=xenbus.cat
 DriverVer=@INF_DATE@,@MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@.@BUILD_NUMBER@
 DriverPackageDisplayName=%DiskDesc%
+PnpLockdown=1
 
 [DestinationDirs] 
 DefaultDestDir=12 
-CoInst_CopyFiles=11
 Monitor_CopyFiles=11
 
 [SourceDisksNames]
@@ -50,7 +50,6 @@ Monitor_CopyFiles=11
 xen.sys=0,,
 xenbus.sys=0,,
 xenfilt.sys=0,,
-xenbus_coinst.dll=0,,
 xenbus_monitor.exe=0,,
 xenbus_monitor.dll=0,,
 
@@ -59,9 +58,6 @@ xen.sys
 xenbus.sys
 xenfilt.sys
 
-[CoInst_CopyFiles]
-xenbus_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenbus_coinst.dll
-
 [Monitor_CopyFiles]
 xenbus_monitor_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.exe,xenbus_monitor.exe
 xenbus_monitor_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenbus_monitor.dll
@@ -107,6 +103,10 @@ HKR,"Interrupt Management\MessageSignaledInterruptProperties",,0x00000010
 HKR,"Interrupt Management\MessageSignaledInterruptProperties","MSISupported",0x00010001,1
 HKR,"Interrupt Management\GroupPolicy",,0x00010001,1
 
+[XenBus_Unplug]
+HKLM,%UnplugKey%,"NICS",0x00010001,0
+HKLM,%UnplugKey%,"DISKS",0x00010001,0
+
 [XenFilt_Service] 
 DisplayName=%XenFiltName%
 ServiceType=%SERVICE_KERNEL_DRIVER% 
@@ -144,13 +144,6 @@ AddReg=Monitor_EventLog_AddReg
 HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\xenbus_monitor_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll"
 HKR,,TypesSupported,0x00010001,7
 
-[XenBus_Inst.CoInstallers]
-CopyFiles=CoInst_CopyFiles
-AddReg=CoInst_AddReg
-
-[CoInst_AddReg]
-HKR,,CoInstallers32,0x00010000,"xenbus_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
-
 [Strings] 
 
 Vendor="@VENDOR_NAME@" 
@@ -160,6 +153,7 @@ XenFiltName="@PRODUCT_NAME@ Generic Bus Filter"
 MonitorName="@PRODUCT_NAME@ PV Driver Monitor"
 MonitorDesc="Provides support for @PRODUCT_NAME@ PV drivers"
 RequestKey="SYSTEM\CurrentControlSet\Services\xenbus_monitor\Request"
+UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
 DialogTitle="@PRODUCT_NAME@"
 DialogText="needs to restart the system to complete installation."
 DialogQuestion="Press 'Yes' to restart the system now or 'No' if you plan to restart the system later."
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 13:45:44 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 13:45:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601352.937388 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQBc-00049j-Q9; Wed, 13 Sep 2023 13:45:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601352.937388; Wed, 13 Sep 2023 13:45: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 1qgQBc-00049a-Ma; Wed, 13 Sep 2023 13:45:44 +0000
Received: by outflank-mailman (input) for mailman id 601352;
 Wed, 13 Sep 2023 13:45:43 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQBb-0003vZ-83
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 13:45:43 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d45b6880-523b-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 15:45:41 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-31f7400cb74so5921504f8f.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 06:45:41 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 a7-20020a5d4d47000000b0030647449730sm331671wru.74.2023.09.13.06.45.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 06:45:39 -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: d45b6880-523b-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694612741; x=1695217541; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JMd3gczAs7JD06u/z8Wh/a1j8wusp/GsfyomL3izWPI=;
        b=fXOshZdN8bFh99dfutYaehwTUOLnaFY0cqZAkTqBmXljM3mGHetrQ9Tmpbapp9Hcfk
         Ubw/3VAlPVUeaGUS6uh852diZXAKA3QRVI6pwYl51cWIUqxKC2DdSO17qftA50CmjofS
         kza9lSM76VeIGfPUZv+fRJn6C5ltdtxayf/Uo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694612741; x=1695217541;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JMd3gczAs7JD06u/z8Wh/a1j8wusp/GsfyomL3izWPI=;
        b=Rvg5kKaJ7/QHxBPIZdXJC3OBR/ejHqKlimsNtZN0DefoM7iY1UX6S9B22vCcSx0d9a
         KGhvkFPdeJq5Fd0oI3eON/C44e1co862JTAk0tQC05lNjiBSTrNEHut/HEOlz0X5OCUv
         vUMc7cyaPfbMBkRt5ZSMT36g43vt9OtzvRXmNgeldyfP/rXqAIdVAdcX7uL5TTC5WeYQ
         OKe6PHgDq/VdJnU04hgXqGbacaSY6/3Lc409TG8CQUC9qUjFm7oN/tfcqDOHJNq2gAPP
         pl/JME6LuLVpUSL4WY9JjFXkbblekNXp7Ewt6k8IVrBNFplJIILKviAQjyDKsNmviQln
         P4OA==
X-Gm-Message-State: AOJu0YwkJK9m3A7H/T8IakiC3GJfctQ/GaEix4VxTdyFEr5/0zfDryXG
	/wfBNVM4mFAQkZxXHTI9j8ur3hfu608aCJ+X/7tX
X-Google-Smtp-Source: AGHT+IFAuPr4GB3jv+SmzbwrgbWvdwL9kXw1WJi0WP4RvnP8cJWyTCPUCdkfsl/isjHsjhE8EuYWHA==
X-Received: by 2002:adf:f1c7:0:b0:31c:3136:60af with SMTP id z7-20020adff1c7000000b0031c313660afmr2059364wro.61.1694612739573;
        Wed, 13 Sep 2023 06:45:39 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 6/6] Delete CoInstaller code
Date: Wed, 13 Sep 2023 14:45:18 +0100
Message-ID: <20230913134519.1769-7-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913134519.1769-1-owen.smith@cloud.com>
References: <20230913134519.1769-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the CoInstaller removed from the INF file, delete the CoInstaller
source code and projects.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/coinst/coinst.c                           | 2136 -----------------
 src/coinst/xenbus_coinst.def                  |   38 -
 src/coinst/xenbus_coinst.rc                   |   57 -
 vs2015/package/package.vcxproj                |    3 -
 vs2015/xenbus.sln                             |   22 -
 vs2015/xenbus_coinst/xenbus_coinst.vcxproj    |   64 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 vs2017/package/package.vcxproj                |    3 -
 vs2017/xenbus.sln                             |   22 -
 vs2017/xenbus_coinst/xenbus_coinst.vcxproj    |   64 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 vs2019/package/package.vcxproj                |    3 -
 vs2019/xenbus.sln                             |   22 -
 vs2019/xenbus_coinst/xenbus_coinst.vcxproj    |   70 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 vs2022/package/package.vcxproj                |    3 -
 vs2022/xenbus.sln                             |   22 -
 vs2022/xenbus_coinst/xenbus_coinst.vcxproj    |   70 -
 .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
 19 files changed, 2631 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xenbus_coinst.def
 delete mode 100644 src/coinst/xenbus_coinst.rc
 delete mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user
 delete mode 100644 vs2017/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user
 delete mode 100644 vs2019/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2019/xenbus_coinst/xenbus_coinst.vcxproj.user
 delete mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj
 delete mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
deleted file mode 100644
index caa1102..0000000
--- a/src/coinst/coinst.c
+++ /dev/null
@@ -1,2136 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, 
- * with or without modification, are permitted provided 
- * that the following conditions are met:
- * 
- * *   Redistributions of source code must retain the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer in the documentation and/or other 
- *     materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
- * SUCH DAMAGE.
- */
-
-#define INITGUID
-
-#include <windows.h>
-#include <setupapi.h>
-#include <devguid.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <strsafe.h>
-#include <malloc.h>
-#include <assert.h>
-
-#include <version.h>
-#include <revision.h>
-
-#define stringify_literal(_text) #_text
-#define stringify(_text) stringify_literal(_text)
-#define __MODULE__ stringify(PROJECT)
-
-__user_code;
-
-#define MAXIMUM_BUFFER_SIZE 1024
-
-#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
-
-#define SERVICE_KEY(_Driver)    \
-        SERVICES_KEY ## "\\" ## #_Driver
-
-#define PARAMETERS_KEY(_Driver) \
-        SERVICE_KEY(_Driver) ## "\\Parameters"
-
-#define UNPLUG_KEY \
-        SERVICE_KEY(XEN) ## "\\Unplug"
-
-#define CONTROL_KEY "SYSTEM\\CurrentControlSet\\Control"
-
-#define CLASS_KEY   \
-        CONTROL_KEY ## "\\Class"
-
-#define ENUM_KEY    "SYSTEM\\CurrentControlSet\\Enum"
-
-#define MONITOR_NAME    "XENBUS_MONITOR"
-
-static VOID
-#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024'
-__Log(
-    IN  const CHAR  *Format,
-    IN  ...
-    )
-{
-    TCHAR               Buffer[MAXIMUM_BUFFER_SIZE];
-    va_list             Arguments;
-    size_t              Length;
-    SP_LOG_TOKEN        LogToken;
-    DWORD               Category;
-    DWORD               Flags;
-    HRESULT             Result;
-
-    va_start(Arguments, Format);
-    Result = StringCchVPrintf(Buffer, MAXIMUM_BUFFER_SIZE, Format, Arguments);
-    va_end(Arguments);
-
-    if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
-        return;
-
-    Result = StringCchLength(Buffer, MAXIMUM_BUFFER_SIZE, &Length);
-    if (Result != S_OK)
-        return;
-
-    LogToken = SetupGetThreadLogToken();
-    Category = TXTLOG_VENDOR;
-    Flags = TXTLOG_WARNING;
-
-    SetupWriteTextLog(LogToken, Category, Flags, Buffer);
-    Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
-
-    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
-    __analysis_assume(Length >= 2);
-    Buffer[Length] = '\0';
-    Buffer[Length - 1] = '\n';
-    Buffer[Length - 2] = '\r';
-
-    OutputDebugString(Buffer);
-}
-
-#define Log(_Format, ...) \
-        __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__)
-
-static PTCHAR
-GetErrorMessage(
-    IN  DWORD   Error
-    )
-{
-    PTCHAR      Message;
-    ULONG       Index;
-
-    if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                       FORMAT_MESSAGE_FROM_SYSTEM |
-                       FORMAT_MESSAGE_IGNORE_INSERTS,
-                       NULL,
-                       Error,
-                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                       (LPTSTR)&Message,
-                       0,
-                       NULL))
-        return NULL;
-
-    for (Index = 0; Message[Index] != '\0'; Index++) {
-        if (Message[Index] == '\r' || Message[Index] == '\n') {
-            Message[Index] = '\0';
-            break;
-        }
-    }
-
-    return Message;
-}
-
-static FORCEINLINE const CHAR *
-__FunctionName(
-    IN  DI_FUNCTION Function
-    )
-{
-#define _NAME(_Function)        \
-        case DIF_ ## _Function: \
-            return #_Function;
-
-    switch (Function) {
-    _NAME(INSTALLDEVICE);
-    _NAME(REMOVE);
-    _NAME(SELECTDEVICE);
-    _NAME(ASSIGNRESOURCES);
-    _NAME(PROPERTIES);
-    _NAME(FIRSTTIMESETUP);
-    _NAME(FOUNDDEVICE);
-    _NAME(SELECTCLASSDRIVERS);
-    _NAME(VALIDATECLASSDRIVERS);
-    _NAME(INSTALLCLASSDRIVERS);
-    _NAME(CALCDISKSPACE);
-    _NAME(DESTROYPRIVATEDATA);
-    _NAME(VALIDATEDRIVER);
-    _NAME(MOVEDEVICE);
-    _NAME(DETECT);
-    _NAME(INSTALLWIZARD);
-    _NAME(DESTROYWIZARDDATA);
-    _NAME(PROPERTYCHANGE);
-    _NAME(ENABLECLASS);
-    _NAME(DETECTVERIFY);
-    _NAME(INSTALLDEVICEFILES);
-    _NAME(ALLOW_INSTALL);
-    _NAME(SELECTBESTCOMPATDRV);
-    _NAME(REGISTERDEVICE);
-    _NAME(NEWDEVICEWIZARD_PRESELECT);
-    _NAME(NEWDEVICEWIZARD_SELECT);
-    _NAME(NEWDEVICEWIZARD_PREANALYZE);
-    _NAME(NEWDEVICEWIZARD_POSTANALYZE);
-    _NAME(NEWDEVICEWIZARD_FINISHINSTALL);
-    _NAME(INSTALLINTERFACES);
-    _NAME(DETECTCANCEL);
-    _NAME(REGISTER_COINSTALLERS);
-    _NAME(ADDPROPERTYPAGE_ADVANCED);
-    _NAME(ADDPROPERTYPAGE_BASIC);
-    _NAME(TROUBLESHOOTER);
-    _NAME(POWERMESSAGEWAKE);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-static BOOLEAN
-AllowUpdate(
-    IN  PTCHAR      DriverName,
-    OUT PBOOLEAN    Allow
-    )
-{
-    TCHAR           ServiceKeyName[MAX_PATH];
-    HKEY            ServiceKey;
-    HRESULT         Result;
-    HRESULT         Error;
-    DWORD           ValueLength;
-    DWORD           Value;
-    DWORD           Type;
-
-    Log("====> (%s)", DriverName);
-
-    Result = StringCbPrintf(ServiceKeyName,
-                            MAX_PATH,
-                            SERVICES_KEY "\\%s",
-                            DriverName);
-    assert(SUCCEEDED(Result));
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         ServiceKeyName,
-                         0,
-                         KEY_READ,
-                         &ServiceKey);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Value = 1;
-            goto done;
-        }
-
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    ValueLength = sizeof (Value);
-
-    Error = RegQueryValueEx(ServiceKey,
-                            "AllowUpdate",
-                            NULL,
-                            &Type,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Type = REG_DWORD;
-            Value = 1;
-        } else {
-            SetLastError(Error);
-            goto fail2;
-        }
-    }
-
-    if (Type != REG_DWORD) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail3;
-    }
-
-    RegCloseKey(ServiceKey);
-
-done:
-    if (Value == 0) {
-        Log("DISALLOWED");
-        *Allow = FALSE;
-    }
-
-    Log("<====");
-
-    return TRUE;
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ServiceKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-AllowInstall(
-    OUT PBOOLEAN    Allow
-    )
-{
-    BOOLEAN         Success;
-    HRESULT         Error;
-
-    Log("====>");
-
-    *Allow = TRUE;
-
-    Success = AllowUpdate("XEN", Allow);
-    if (!Success)
-        goto fail1;
-
-    Success = AllowUpdate("XENBUS", Allow);
-    if (!Success)
-        goto fail2;
-
-    Success = AllowUpdate("XENFILT", Allow);
-    if (!Success)
-        goto fail3;
-
-    Log("<====");
-
-    return TRUE;
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenEnumKey(
-    OUT PHKEY   EnumKey
-    )
-{
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         ENUM_KEY,
-                         0,
-                         KEY_READ,
-                         EnumKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenBusKey(
-    IN  PTCHAR  BusKeyName,
-    OUT PHKEY   BusKey
-    )
-{
-    BOOLEAN     Success;
-    HKEY        EnumKey;
-    HRESULT     Error;
-
-    Success = OpenEnumKey(&EnumKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegOpenKeyEx(EnumKey,
-                         BusKeyName,
-                         0,
-                         KEY_READ,
-                         BusKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(EnumKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(EnumKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-GetDeviceKeyName(
-    IN  PTCHAR  BusKeyName,
-    IN  PTCHAR  DeviceKeyPrefix,
-    OUT PTCHAR  *DeviceKeyName
-    )
-{
-    BOOLEAN     Success;
-    HKEY        BusKey;
-    HRESULT     Error;
-    DWORD       SubKeys;
-    DWORD       MaxSubKeyLength;
-    DWORD       SubKeyLength;
-    PTCHAR      SubKeyName;
-    DWORD       Index;
-
-    Success = OpenBusKey(BusKeyName, &BusKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegQueryInfoKey(BusKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &SubKeys,
-                            &MaxSubKeyLength,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-
-    SubKeyName = malloc(SubKeyLength);
-    if (SubKeyName == NULL)
-        goto fail3;
-
-    for (Index = 0; Index < SubKeys; Index++) {
-        SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-        memset(SubKeyName, 0, SubKeyLength);
-
-        Error = RegEnumKeyEx(BusKey,
-                             Index,
-                             (LPTSTR)SubKeyName,
-                             &SubKeyLength,
-                             NULL,
-                             NULL,
-                             NULL,
-                             NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail4;
-        }
-
-        if (strncmp(SubKeyName, DeviceKeyPrefix, strlen(DeviceKeyPrefix)) == 0)
-            goto found;
-    }
-
-    free(SubKeyName);
-    SubKeyName = NULL;
-
-found:
-    RegCloseKey(BusKey);
-
-    Log("%s", (SubKeyName != NULL) ? SubKeyName : "none found");
-
-    *DeviceKeyName = SubKeyName;
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-    free(SubKeyName);
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(BusKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-#define XEN_PLATFORM_PCI_DEVICE_STR         "VEN_5853&DEV_0001"
-#define XENSERVER_PLATFORM_PCI_DEVICE_STR   "VEN_5853&DEV_0002"
-
-static BOOLEAN
-OpenDeviceKey(
-    IN  PTCHAR  BusKeyName,
-    IN  PTCHAR  DeviceKeyName,
-    OUT PHKEY   DeviceKey
-    )
-{
-    BOOLEAN     Success;
-    HKEY        BusKey;
-    HRESULT     Error;
-
-    Success = OpenBusKey(BusKeyName, &BusKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegOpenKeyEx(BusKey,
-                         DeviceKeyName,
-                         0,
-                         KEY_READ,
-                         DeviceKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(BusKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(BusKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-GetDriverKeyName(
-    IN  HKEY    DeviceKey,
-    OUT PTCHAR  *Name,
-    OUT DWORD   *ConfigFlags
-    )
-{
-    HRESULT     Error;
-    DWORD       SubKeys;
-    DWORD       MaxSubKeyLength;
-    DWORD       SubKeyLength;
-    PTCHAR      SubKeyName;
-    DWORD       Index;
-    HKEY        SubKey;
-    PTCHAR      DriverKeyName;
-    DWORD       Flags;
-
-    Error = RegQueryInfoKey(DeviceKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &SubKeys,
-                            &MaxSubKeyLength,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-
-    SubKeyName = malloc(SubKeyLength);
-    if (SubKeyName == NULL)
-        goto fail2;
-
-    SubKey = NULL;
-    DriverKeyName = NULL;
-    Flags = 0;
-
-    for (Index = 0; Index < SubKeys; Index++) {
-        DWORD       MaxValueLength;
-        DWORD       ConfigFlagsLength;
-        DWORD       DriverKeyNameLength;
-        DWORD       Type;
-
-        SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-        memset(SubKeyName, 0, SubKeyLength);
-
-        Error = RegEnumKeyEx(DeviceKey,
-                             Index,
-                             (LPTSTR)SubKeyName,
-                             &SubKeyLength,
-                             NULL,
-                             NULL,
-                             NULL,
-                             NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail3;
-        }
-
-        Error = RegOpenKeyEx(DeviceKey,
-                             SubKeyName,
-                             0,
-                             KEY_READ,
-                             &SubKey);
-        if (Error != ERROR_SUCCESS) {
-            SubKey = NULL;
-            continue;
-        }
-
-        Error = RegQueryInfoKey(SubKey,
-                                NULL,
-                                NULL,
-                                NULL,    
-                                NULL,
-                                NULL,
-                                NULL,
-                                NULL,
-                                NULL,
-                                &MaxValueLength,
-                                NULL,
-                                NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail4;
-        }
-
-        ConfigFlagsLength = (DWORD)sizeof(DWORD);
-
-        Error = RegQueryValueEx(SubKey,
-                                "ConfigFlags",
-                                NULL,
-                                &Type,
-                                (LPBYTE)&Flags,
-                                &ConfigFlagsLength);
-        if (Error != ERROR_SUCCESS ||
-            Type != REG_DWORD)
-            Flags = 0;
-
-        DriverKeyNameLength = MaxValueLength + sizeof (TCHAR);
-
-        DriverKeyName = calloc(1, DriverKeyNameLength);
-        if (DriverKeyName == NULL)
-            goto fail5;
-
-        Error = RegQueryValueEx(SubKey,
-                                "Driver",
-                                NULL,
-                                &Type,
-                                (LPBYTE)DriverKeyName,
-                                &DriverKeyNameLength);
-        if (Error == ERROR_SUCCESS &&
-            Type == REG_SZ)
-            break;
-
-        free(DriverKeyName);
-        DriverKeyName = NULL;
-        Flags = 0;
-
-        RegCloseKey(SubKey);
-        SubKey = NULL;
-    }
-
-    Log("%s", (DriverKeyName != NULL) ? DriverKeyName : "none found");
-
-    if (SubKey != NULL)
-        RegCloseKey(SubKey);
-
-    free(SubKeyName);
-
-    *Name = DriverKeyName;
-    if (ConfigFlags)
-        *ConfigFlags = Flags;
-    return TRUE;
-
-fail5:
-    Log("fail5");
-
-fail4:
-    Log("fail4");
-
-    if (SubKey != NULL)
-        RegCloseKey(SubKey);
-
-fail3:
-    Log("fail3");
-
-    free(SubKeyName);
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenClassKey(
-    OUT PHKEY   ClassKey
-    )
-{
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         CLASS_KEY,
-                         0,
-                         KEY_READ,
-                         ClassKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenDriverKey(
-    IN  PTCHAR  DriverKeyName,
-    OUT PHKEY   DriverKey
-    )
-{
-    BOOLEAN     Success;
-    HKEY        ClassKey;
-    HRESULT     Error;
-
-    Success = OpenClassKey(&ClassKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegOpenKeyEx(ClassKey,
-                         DriverKeyName,
-                         0,
-                         KEY_READ,
-                         DriverKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(ClassKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ClassKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-MatchExistingDriver(
-    VOID
-    )
-{
-    BOOLEAN Success;
-    PTCHAR  DeviceKeyName = NULL;
-    HKEY    DeviceKey = NULL;
-    PTCHAR  DriverKeyName = NULL;
-    HKEY    DriverKey = NULL;
-    HRESULT Error;
-    DWORD   MaxValueLength;
-    DWORD   DriverDescLength;
-    PTCHAR  DriverDesc = NULL;
-    DWORD   ProductNameLength;
-    DWORD   Type;
-
-    Log("====>");
-
-    // Look for a legacy platform device
-    Success = GetDeviceKeyName("PCI",
-                               XEN_PLATFORM_PCI_DEVICE_STR,
-                               &DeviceKeyName);
-    if (!Success)
-        goto fail1;
-
-    if (DeviceKeyName != NULL)
-        goto found;
-
-    Success = GetDeviceKeyName("PCI",
-                               XENSERVER_PLATFORM_PCI_DEVICE_STR,
-                               &DeviceKeyName);
-    if (!Success)
-        goto fail2;
-
-    if (DeviceKeyName != NULL)
-        goto found;
-
-    // No legacy platform device
-    goto done;
-
-found:
-    Success = OpenDeviceKey("PCI", DeviceKeyName, &DeviceKey);
-    if (!Success)
-        goto fail3;
-
-    // Check for a bound driver
-    Success = GetDriverKeyName(DeviceKey, &DriverKeyName, NULL);
-    if (!Success)
-        goto fail4;
-
-    if (DriverKeyName == NULL)
-        goto done;
-
-    Success = OpenDriverKey(DriverKeyName, &DriverKey);
-    if (!Success)
-        goto done;
-
-    Error = RegQueryInfoKey(DriverKey,
-                            NULL,
-                            NULL,
-                            NULL,    
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &MaxValueLength,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail5;
-    }
-
-    DriverDescLength = MaxValueLength + sizeof (TCHAR);
-
-    DriverDesc = calloc(1, DriverDescLength);
-    if (DriverDesc == NULL)
-        goto fail6;
-
-    Error = RegQueryValueEx(DriverKey,
-                            "DriverDesc",
-                            NULL,
-                            &Type,
-                            (LPBYTE)DriverDesc,
-                            &DriverDescLength);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND)
-            goto done;
-
-        SetLastError(Error);
-        goto fail7;
-    }
-
-    if (Type != REG_SZ) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail8;
-    }
-
-    ProductNameLength = (DWORD)strlen(PRODUCT_NAME_STR);
-
-    if (strncmp(DriverDesc,
-                PRODUCT_NAME_STR,
-                ProductNameLength) != 0) {
-        SetLastError(ERROR_INSTALL_FAILURE);
-        goto fail9;
-    }
-
-    if (strcmp(DriverDesc + ProductNameLength,
-               " PV Bus") != 0) {
-        SetLastError(ERROR_INSTALL_FAILURE);
-        goto fail10;
-    }
-
-done:
-    if (DriverDesc != NULL) {
-        free(DriverDesc);
-        RegCloseKey(DriverKey);
-    }
-
-    if (DriverKeyName != NULL) {
-        free(DriverKeyName);
-        RegCloseKey(DeviceKey);
-    }
-
-    if (DeviceKeyName != NULL)
-        free(DeviceKeyName);
-
-    Log("<====");
-
-    return TRUE;
-
-fail10:
-    Log("fail10");
-
-fail9:
-    Log("fail9");
-
-fail8:
-    Log("fail8");
-
-fail7:
-    Log("fail7");
-
-    free(DriverDesc);
-
-fail6:
-    Log("fail6");
-
-fail5:
-    Log("fail5");
-
-    RegCloseKey(DriverKey);
-
-    free(DriverKeyName);
-
-fail4:
-    Log("fail4");
-
-    RegCloseKey(DeviceKey);
-
-fail3:
-    Log("fail3");
-
-    free(DeviceKeyName);
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-#define DEFINE_REVISION(_N, _S, _SI, _E, _D, _ST, _R, _C, _G, _U, _CO, _EM) \
-    (_N)
-
-static DWORD    DeviceRevision[] = {
-    DEFINE_REVISION_TABLE
-};
-
-#undef DEFINE_REVISION
-
-static BOOLEAN
-SupportDeviceID(
-    IN  PTCHAR      DeviceID,
-    OUT PBOOLEAN    NewBinding
-    )
-{
-    unsigned int    Revision;
-    int             Count;
-    DWORD           Index;
-    HRESULT         Error;
-
-    DeviceID = strrchr(DeviceID, '&');
-    assert(DeviceID != NULL);
-    DeviceID++;
-
-    Count = sscanf_s(DeviceID,
-                     "REV_%8x",
-                     &Revision);
-    if (Count != 1) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail1;
-    }
-
-    for (Index = 0; Index < ARRAYSIZE(DeviceRevision); Index++) {
-        if (Revision == DeviceRevision[Index])
-            goto found;
-    }
-
-    SetLastError(ERROR_FILE_NOT_FOUND);
-    goto fail2;
-
-found:
-    // If we don't match the latest revision then it means the driver
-    // binding will change.
-    if (Index < ARRAYSIZE(DeviceRevision) - 1)
-        *NewBinding = TRUE;
-
-    Log("%x", Revision);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-GetMatchingDeviceID(
-    IN  HKEY    DriverKey,
-    OUT PTCHAR  *MatchingDeviceID
-    )
-{
-    HRESULT     Error;
-    DWORD       MaxValueLength;
-    DWORD       MatchingDeviceIDLength;
-    DWORD       Type;
-    DWORD       Index;
-
-    Error = RegQueryInfoKey(DriverKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &MaxValueLength,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    MatchingDeviceIDLength = MaxValueLength + sizeof (TCHAR);
-
-    *MatchingDeviceID = calloc(1, MatchingDeviceIDLength);
-    if (*MatchingDeviceID == NULL)
-        goto fail2;
-
-    Error = RegQueryValueEx(DriverKey,
-                            "MatchingDeviceId",
-                            NULL,
-                            &Type,
-                            (LPBYTE)*MatchingDeviceID,
-                            &MatchingDeviceIDLength);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail3;
-    }
-
-    if (Type != REG_SZ) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail4;
-    }
-
-    for (Index = 0; Index < strlen(*MatchingDeviceID); Index++)
-        (*MatchingDeviceID)[Index] = (CHAR)toupper((*MatchingDeviceID)[Index]);
-
-    Log("%s", *MatchingDeviceID);
-
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-fail3:
-    Log("fail3");
-
-    free(*MatchingDeviceID);
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-GetDeviceInstanceID(
-    IN  HDEVINFO            DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA    DeviceInfoData,
-    OUT PTCHAR              *DeviceID,
-    OUT PTCHAR              *InstanceID
-    )
-{
-    DWORD                   DeviceInstanceIDLength;
-    PTCHAR                  DeviceInstanceID;
-    DWORD                   Index;
-    PTCHAR                  Prefix;
-    DWORD                   InstanceIDLength;
-    HRESULT                 Result;
-    HRESULT                 Error;
-
-    if (!SetupDiGetDeviceInstanceId(DeviceInfoSet,
-                                    DeviceInfoData,
-                                    NULL,
-                                    0,
-                                    &DeviceInstanceIDLength)) {
-        if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
-            goto fail1;
-    }
-
-    DeviceInstanceIDLength += sizeof (TCHAR);
-
-    DeviceInstanceID = calloc(1, DeviceInstanceIDLength);
-    if (DeviceInstanceID == NULL)
-        goto fail2;
-
-    if (!SetupDiGetDeviceInstanceId(DeviceInfoSet,
-                                    DeviceInfoData,
-                                    DeviceInstanceID,
-                                    DeviceInstanceIDLength,
-                                    NULL))
-        goto fail3;
-
-    for (Index = 0; Index < strlen(DeviceInstanceID); Index++)
-        DeviceInstanceID[Index] = (CHAR)toupper(DeviceInstanceID[Index]);
-
-    *DeviceID = DeviceInstanceID;
-
-    Prefix = strrchr(DeviceInstanceID, '\\');
-    assert(Prefix != NULL);
-    *Prefix++ = '\0';
-
-    DeviceInstanceID = strrchr(Prefix, '&');
-    if (DeviceInstanceID != NULL) {
-        *DeviceInstanceID++ = '\0';
-    } else {
-        DeviceInstanceID = Prefix;
-        Prefix = NULL;
-    }
-
-    if (Prefix != NULL)
-        Log("Parent Prefix = %s", Prefix);
-
-    InstanceIDLength = (ULONG)((strlen(DeviceInstanceID) +
-                                1) * sizeof (TCHAR));
-
-    *InstanceID = calloc(1, InstanceIDLength);
-    if (*InstanceID == NULL)
-        goto fail4;
-
-    Result = StringCbPrintf(*InstanceID,
-                            InstanceIDLength,
-                            "%s",
-                            DeviceInstanceID);
-    assert(SUCCEEDED(Result));
-
-    Log("DeviceID = %s", *DeviceID);
-    Log("InstanceID = %s", *InstanceID);
-
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-    DeviceInstanceID = *DeviceID;
-    *DeviceID = NULL;
-
-fail3:
-    Log("fail3");
-
-    free(DeviceInstanceID);
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-GetActiveDeviceInstanceID(
-    OUT PTCHAR  *DeviceID,
-    OUT PTCHAR  *InstanceID
-    )
-{
-    HKEY        ParametersKey;
-    DWORD       MaxValueLength;
-    DWORD       DeviceIDLength;
-    DWORD       InstanceIDLength;
-    DWORD       Type;
-    HRESULT     Error;
-
-    Error = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
-                           PARAMETERS_KEY(XENFILT),
-                           0,
-                           NULL,
-                           REG_OPTION_NON_VOLATILE,
-                           KEY_ALL_ACCESS,
-                           NULL,
-                           &ParametersKey,
-                           NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    Error = RegQueryInfoKey(ParametersKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &MaxValueLength,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    DeviceIDLength = MaxValueLength + sizeof (TCHAR);
-
-    *DeviceID = calloc(1, DeviceIDLength);
-    if (*DeviceID == NULL)
-        goto fail3;
-
-    Error = RegQueryValueEx(ParametersKey,
-                            "ActiveDeviceID",
-                            NULL,
-                            &Type,
-                            (LPBYTE)*DeviceID,
-                            &DeviceIDLength);
-    if (Error != ERROR_SUCCESS || Type != REG_SZ) {
-        free(*DeviceID);
-        *DeviceID = NULL;
-    }
-
-    InstanceIDLength = MaxValueLength + sizeof (TCHAR);
-
-    *InstanceID = calloc(1, InstanceIDLength);
-    if (*InstanceID == NULL)
-        goto fail4;
-
-    Error = RegQueryValueEx(ParametersKey,
-                            "ActiveInstanceID",
-                            NULL,
-                            &Type,
-                            (LPBYTE)*InstanceID,
-                            &InstanceIDLength);
-    if (Error != ERROR_SUCCESS || Type != REG_SZ) {
-        free(*InstanceID);
-        *InstanceID = NULL;
-    }
-
-    Log("DeviceID = %s", (*DeviceID != NULL) ? *DeviceID : "NOT SET");
-    Log("InstanceID = %s", (*InstanceID != NULL) ? *InstanceID : "NOT SET");
-
-    RegCloseKey(ParametersKey);
-
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-    if (*DeviceID != NULL) {
-        free(*DeviceID);
-        *DeviceID = NULL;
-    }
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ParametersKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-IsActiveDevice(
-    IN  HDEVINFO            DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA    DeviceInfoData,
-    OUT PBOOLEAN            ActiveDevice,
-    OUT PBOOLEAN            VendorIsActive
-    )
-{
-    PTCHAR                  ActiveDeviceID;
-    PTCHAR                  ActiveInstanceID;
-    PTCHAR                  DeviceID;
-    PTCHAR                  InstanceID;
-    HRESULT                 Error;
-    BOOLEAN                 Success;
-
-    Log("====>");
-
-    Success = GetActiveDeviceInstanceID(&ActiveDeviceID, &ActiveInstanceID);
-    if (!Success)
-        goto fail1;
-
-    if (ActiveDeviceID == NULL)
-        goto done;
-
-    assert(ActiveInstanceID != NULL);
-
-    Success = GetDeviceInstanceID(DeviceInfoSet, DeviceInfoData,
-                                  &DeviceID, &InstanceID);
-    if (!Success)
-        goto fail2;
-
-    *ActiveDevice = (_stricmp(ActiveDeviceID, DeviceID) == 0 &&
-                     _stricmp(ActiveInstanceID, InstanceID) == 0) ?
-        TRUE :
-        FALSE;
-
-#ifdef VENDOR_DEVICE_ID_STR
-
-#define DRIVER_VENDOR_DEVICE_ID "PCI\\VEN_5853&DEV_" ## VENDOR_DEVICE_ID_STR ## "&SUBSYS_C0005853&REV_01"
-
-    *VendorIsActive = (_stricmp(ActiveDeviceID, DRIVER_VENDOR_DEVICE_ID) == 0) ?
-        TRUE :
-        FALSE;
-
-#undef DRIVER_VENDOR_DEVICE_ID
-
-#else
-    *VendorIsActive = FALSE;
-#endif
-
-    free(DeviceID);
-    free(InstanceID);
-
-    free(ActiveDeviceID);
-    free(ActiveInstanceID);
-
-done:
-    Log("<====");
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    free(ActiveDeviceID);
-    free(ActiveInstanceID);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-SupportChildDrivers(
-    OUT PBOOLEAN    NewBinding
-    )
-{
-    BOOLEAN         Success;
-    HKEY            XenbusKey;
-    HRESULT         Error;
-    DWORD           SubKeys;
-    DWORD           MaxSubKeyLength;
-    DWORD           SubKeyLength;
-    PTCHAR          SubKeyName;
-    HKEY            DeviceKey;
-    PTCHAR          DriverKeyName;
-    DWORD           ConfigFlags;
-    HKEY            DriverKey;
-    PTCHAR          MatchingDeviceID;
-    DWORD           Index;
-
-    Log("====>");
-
-    Success = OpenBusKey("XENBUS", &XenbusKey);
-    if (!Success) {
-        // If there is no key then this must be a fresh installation
-        if (GetLastError() == ERROR_FILE_NOT_FOUND)
-            goto done;
-
-        goto fail1;
-    }
-
-    Error = RegQueryInfoKey(XenbusKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &SubKeys,
-                            &MaxSubKeyLength,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-
-    SubKeyName = malloc(SubKeyLength);
-    if (SubKeyName == NULL)
-        goto fail3;
-
-    for (Index = 0; Index < SubKeys; Index++) {
-        SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-        memset(SubKeyName, 0, SubKeyLength);
-
-        Error = RegEnumKeyEx(XenbusKey,
-                             Index,
-                             (LPTSTR)SubKeyName,
-                             &SubKeyLength,
-                             NULL,
-                             NULL,
-                             NULL,
-                             NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail4;
-        }
-
-        Success = OpenDeviceKey("XENBUS", SubKeyName, &DeviceKey);
-        if (!Success)
-            goto fail5;
-
-        Success = GetDriverKeyName(DeviceKey, &DriverKeyName, &ConfigFlags);
-        if (!Success)
-            goto fail6;
-
-        if (DriverKeyName == NULL)
-            goto loop1;
-
-        if (ConfigFlags & 0x20)
-            goto loop2;
-
-        Success = OpenDriverKey(DriverKeyName, &DriverKey);
-        if (!Success)
-            goto loop3;
-
-        Success = GetMatchingDeviceID(DriverKey, &MatchingDeviceID);
-        if (!Success)
-            goto loop4;
-
-        Success = SupportDeviceID(MatchingDeviceID, NewBinding);
-        if (!Success)
-            goto fail7;
-
-        free(MatchingDeviceID);
-
-    loop4:
-        RegCloseKey(DriverKey);
-
-    loop3:
-
-    loop2:
-        free(DriverKeyName);
-
-    loop1:
-        RegCloseKey(DeviceKey);
-    }
-
-    free(SubKeyName);
-
-    RegCloseKey(XenbusKey);
-
-done:
-    Log("<====");
-
-    return TRUE;
-
-fail7:
-    Log("fail7");
-
-    free(MatchingDeviceID);
-
-    RegCloseKey(DriverKey);
-
-    free(DriverKeyName);
-
-fail6:
-    Log("fail6");
-
-    RegCloseKey(DeviceKey);
-
-fail5:
-    Log("fail5");
-
-fail4:
-    Log("fail4");
-
-    free(SubKeyName);
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(XenbusKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-ClearUnplugRequest(
-    IN  PTCHAR      ClassName
-    )
-{
-    HKEY            UnplugKey;
-    HRESULT         Error;
-
-    Log("====> (%s)", ClassName);
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         UNPLUG_KEY,
-                         0,
-                         KEY_ALL_ACCESS,
-                         &UnplugKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    Error = RegDeleteValue(UnplugKey, ClassName);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(UnplugKey);
-
-    Log("<====");
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(UnplugKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOL
-MonitorDelete(
-    VOID
-    )
-{
-    SC_HANDLE           SCManager;
-    SC_HANDLE           Service;
-    BOOL                Success;
-    SERVICE_STATUS      Status;
-    HRESULT             Error;
-
-    Log("====>");
-
-    SCManager = OpenSCManager(NULL,
-                              NULL,
-                              SC_MANAGER_ALL_ACCESS);
-
-    if (SCManager == NULL)
-        goto fail1;
-
-    Service = OpenService(SCManager,
-                          MONITOR_NAME,
-                          SERVICE_ALL_ACCESS);
-
-    if (Service == NULL)
-        goto fail2;
-
-    Success = ControlService(Service,
-                             SERVICE_CONTROL_STOP,
-                             &Status);
-
-    if (!Success &&
-        GetLastError() != ERROR_SERVICE_NOT_ACTIVE)
-        goto fail3;
-
-    Success = DeleteService(Service);
-
-    if (!Success)
-        goto fail4;
-
-    CloseServiceHandle(Service);
-    CloseServiceHandle(SCManager);
-
-    Log("<====");
-
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-fail3:
-    Log("fail3");
-
-    CloseServiceHandle(Service);
-
-fail2:
-    Log("fail2");
-
-    CloseServiceHandle(SCManager);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static HRESULT
-DifInstallPreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    BOOLEAN                         Success;
-    HRESULT                         Error;
-    BOOLEAN                         Allow;
-    BOOLEAN                         NewBinding;
-
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-
-    Log("====>");
-
-    Success = AllowInstall(&Allow);
-    if (!Success)
-        goto fail1;
-
-    if (!Allow) {
-        SetLastError(ERROR_ACCESS_DENIED);
-        goto fail2;
-    }
-
-    Success = MatchExistingDriver();
-    if (!Success)
-        goto fail3;
-
-    NewBinding = FALSE;
-
-    Success = SupportChildDrivers(&NewBinding);
-    if (!Success)
-        goto fail4;
-
-    Context->PrivateData = (PVOID)(ULONG_PTR)NewBinding;
-
-    Log("<====");
-    
-    return NO_ERROR;
-
-fail4:
-    Log("fail4");
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static HRESULT
-DifInstallPostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    BOOLEAN                         NewBinding;
-    BOOLEAN                         Active;
-    BOOLEAN                         VendorIsActive;
-
-    Log("====>");
-
-    NewBinding = (BOOLEAN)(ULONG_PTR)Context->PrivateData;
-
-    Active = TRUE;
-
-    (VOID) IsActiveDevice(DeviceInfoSet,
-                          DeviceInfoData,
-                          &Active,
-                          &VendorIsActive);
-
-    Log("Active = %s", Active ? "TRUE" : "FALSE");
-    Log("NewBinding = %s", NewBinding ? "TRUE" : "FALSE");
-
-    if ((Active && NewBinding) || !VendorIsActive) {
-        (VOID) ClearUnplugRequest("DISKS");
-        (VOID) ClearUnplugRequest("NICS");
-    }
-
-    Log("<====");
-
-    return NO_ERROR;
-}
-
-static HRESULT
-DifInstall(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = DifInstallPreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) DifInstallPostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = GetErrorMessage(Error);
-            Log("NOT RUNNING (DifInstallPreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR; 
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static HRESULT
-DifRemovePreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("====>");
-
-    (VOID) MonitorDelete();
-
-    Log("<====");
-
-    return NO_ERROR;
-}
-
-static HRESULT
-DifRemovePostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static HRESULT
-DifRemove(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = DifRemovePreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) DifRemovePostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = GetErrorMessage(Error);
-            Log("NOT RUNNING (DifRemovePreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR; 
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-DWORD CALLBACK
-Entry(
-    IN  DI_FUNCTION                 Function,
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-    SP_DRVINFO_DATA                 DriverInfoData;
-    BOOLEAN                         DriverInfoAvailable;
-    BOOLEAN                         IsNullDriver;
-
-    Log("%s (%s) ===>",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    if (!Context->PostProcessing) {
-        Log("%s PreProcessing",
-            __FunctionName(Function));
-    } else {
-        Log("%s PostProcessing (%08x)",
-            __FunctionName(Function),
-            Context->InstallResult);
-    }
-
-    DriverInfoData.cbSize = sizeof(DriverInfoData);
-    DriverInfoAvailable = SetupDiGetSelectedDriver(DeviceInfoSet,
-                                                   DeviceInfoData,
-                                                   &DriverInfoData) ?
-                          TRUE :
-                          FALSE;
-    IsNullDriver = !(DriverInfoAvailable &&
-                    (DriverInfoData.DriverType == SPDIT_CLASSDRIVER ||
-                     DriverInfoData.DriverType == SPDIT_COMPATDRIVER));
-
-    switch (Function) {
-	case DIF_SELECTBESTCOMPATDRV: {
-        //
-        // If the NULL driver will be installed, treat this as we would a
-        // DIF_REMOVE to work around the fact that Windows 10 2004 doesn't
-        // call DIF_INSTALLDEVICE on uninstall.
-        // An InstallResult value of ERROR_NO_COMPAT_DRIVERS simply means
-        // that the NULL driver was selected, and so should not be treated
-        // as an error.
-        //
-        if (Context->PostProcessing &&
-            Context->InstallResult == ERROR_NO_COMPAT_DRIVERS)
-            Context->InstallResult = NO_ERROR;
-
-        Error = (IsNullDriver) ?
-                DifRemove(DeviceInfoSet, DeviceInfoData, Context) :
-                NO_ERROR;
-        break;
-    }
-    case DIF_INSTALLDEVICE: {
-        Error = (IsNullDriver) ?
-                NO_ERROR :
-                DifInstall(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    }
-    case DIF_REMOVE:
-        Error = DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    default:
-        if (!Context->PostProcessing) {
-            Error = NO_ERROR;
-        } else {
-            Error = Context->InstallResult;
-        }
-
-        break;
-    }
-
-    Log("%s (%s) <===",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return (DWORD)Error;
-}
-
-DWORD CALLBACK
-Version(
-    IN  HWND        Window,
-    IN  HINSTANCE   Module,
-    IN  PTCHAR      Buffer,
-    IN  INT         Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Window);
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Buffer);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s)",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return NO_ERROR;
-}
-
-static FORCEINLINE const CHAR *
-__ReasonName(
-    IN  DWORD       Reason
-    )
-{
-#define _NAME(_Reason)          \
-        case DLL_ ## _Reason:   \
-            return #_Reason;
-
-    switch (Reason) {
-    _NAME(PROCESS_ATTACH);
-    _NAME(PROCESS_DETACH);
-    _NAME(THREAD_ATTACH);
-    _NAME(THREAD_DETACH);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-BOOL WINAPI
-DllMain(
-    IN  HINSTANCE   Module,
-    IN  DWORD       Reason,
-    IN  PVOID       Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s): %s",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR,
-        __ReasonName(Reason));
-
-    return TRUE;
-}
diff --git a/src/coinst/xenbus_coinst.def b/src/coinst/xenbus_coinst.def
deleted file mode 100644
index 71d8f65..0000000
--- a/src/coinst/xenbus_coinst.def
+++ /dev/null
@@ -1,38 +0,0 @@
-; Copyright (c) Xen Project.
-; Copyright (c) Cloud Software Group, Inc.
-; All rights reserved.
-; 
-; Redistribution and use in source and binary forms, 
-; with or without modification, are permitted provided 
-; that the following conditions are met:
-; 
-; *   Redistributions of source code must retain the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer.
-; *   Redistributions in binary form must reproduce the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer in the documentation and/or other 
-;     materials provided with the distribution.
-; 
-; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
-; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
-; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
-; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
-; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
-; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
-; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
-; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
-; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
-; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
-; SUCH DAMAGE.
-
-LIBRARY  XENBUS_COINST
-
-EXPORTS   
-   Entry 
-   Version
-
-   DllMain PRIVATE
diff --git a/src/coinst/xenbus_coinst.rc b/src/coinst/xenbus_coinst.rc
deleted file mode 100644
index 4d46edc..0000000
--- a/src/coinst/xenbus_coinst.rc
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * *   Redistributions of source code must retain the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer in the documentation and/or other
- *     materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <windows.h>
-#include <ntverp.h>
-
-
-#undef VER_COMPANYNAME_STR
-#undef VER_PRODUCTNAME_STR
-#undef VER_PRODUCTVERSION
-#undef VER_PRODUCTVERSION_STR
-
-#include <version.h>
-
-#define VER_COMPANYNAME_STR         VENDOR_NAME_STR
-#define VER_LEGALCOPYRIGHT_STR      COPYRIGHT_STR
-
-#define VER_PRODUCTNAME_STR         "XENBUS_COINST"
-#define VER_PRODUCTVERSION          MAJOR_VERSION,MINOR_VERSION,MICRO_VERSION,BUILD_NUMBER
-#define VER_PRODUCTVERSION_STR      MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR
-
-#define VER_INTERNALNAME_STR        "XENBUS_COINST.DLL"
-#define VER_FILEDESCRIPTION_STR     "XENBUS_COINST"
-
-#define VER_FILETYPE                VFT_DRV
-#define VER_FILESUBTYPE             VFT2_DRV_SYSTEM
-
-#include <common.ver>
diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj
index 2518c3f..e536109 100644
--- a/vs2015/package/package.vcxproj
+++ b/vs2015/package/package.vcxproj
@@ -42,9 +42,6 @@
     <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>
diff --git a/vs2015/xenbus.sln b/vs2015/xenbus.sln
index ecb3540..552d43d 100644
--- a/vs2015/xenbus.sln
+++ b/vs2015/xenbus.sln
@@ -4,11 +4,6 @@ VisualStudioVersion = 14.0.25420.1
 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}
@@ -35,7 +30,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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}
@@ -69,22 +63,6 @@ Global
 		{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
-		{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
-		{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
 		{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
diff --git a/vs2015/xenbus_coinst/xenbus_coinst.vcxproj b/vs2015/xenbus_coinst/xenbus_coinst.vcxproj
deleted file mode 100644
index 1d51f96..0000000
--- a/vs2015/xenbus_coinst/xenbus_coinst.vcxproj
+++ /dev/null
@@ -1,64 +0,0 @@
-<?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>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <WarningLevel>EnableAllWarnings</WarningLevel>
-      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;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/xenbus_coinst.def</ModuleDefinitionFile>
-      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <EnableCOMDATFolding>false</EnableCOMDATFolding>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenbus_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user b/vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user
deleted file mode 100644
index db41a92..0000000
--- a/vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj
index 2a83c90..5edf0a7 100644
--- a/vs2017/package/package.vcxproj
+++ b/vs2017/package/package.vcxproj
@@ -42,9 +42,6 @@
     <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>
diff --git a/vs2017/xenbus.sln b/vs2017/xenbus.sln
index fc85d47..19fa290 100644
--- a/vs2017/xenbus.sln
+++ b/vs2017/xenbus.sln
@@ -4,11 +4,6 @@ VisualStudioVersion = 15.0.27703.2042
 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}
@@ -35,7 +30,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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}
@@ -69,22 +63,6 @@ Global
 		{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
diff --git a/vs2017/xenbus_coinst/xenbus_coinst.vcxproj b/vs2017/xenbus_coinst/xenbus_coinst.vcxproj
deleted file mode 100644
index 7eeb228..0000000
--- a/vs2017/xenbus_coinst/xenbus_coinst.vcxproj
+++ /dev/null
@@ -1,64 +0,0 @@
-<?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>
-      <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/xenbus_coinst.def</ModuleDefinitionFile>
-      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <EnableCOMDATFolding>false</EnableCOMDATFolding>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenbus_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user b/vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user
deleted file mode 100644
index db41a92..0000000
--- a/vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index 4d03e23..839c047 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -47,9 +47,6 @@
     <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>
diff --git a/vs2019/xenbus.sln b/vs2019/xenbus.sln
index 4ced8db..65867c9 100644
--- a/vs2019/xenbus.sln
+++ b/vs2019/xenbus.sln
@@ -4,11 +4,6 @@ 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}
@@ -35,7 +30,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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}
@@ -69,22 +63,6 @@ Global
 		{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
diff --git a/vs2019/xenbus_coinst/xenbus_coinst.vcxproj b/vs2019/xenbus_coinst/xenbus_coinst.vcxproj
deleted file mode 100644
index c4e47d0..0000000
--- a/vs2019/xenbus_coinst/xenbus_coinst.vcxproj
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenbus_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2019/xenbus_coinst/xenbus_coinst.vcxproj.user b/vs2019/xenbus_coinst/xenbus_coinst.vcxproj.user
deleted file mode 100644
index db41a92..0000000
--- a/vs2019/xenbus_coinst/xenbus_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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/package/package.vcxproj b/vs2022/package/package.vcxproj
index 885ce5a..e9f7a52 100644
--- a/vs2022/package/package.vcxproj
+++ b/vs2022/package/package.vcxproj
@@ -47,9 +47,6 @@
     <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>
diff --git a/vs2022/xenbus.sln b/vs2022/xenbus.sln
index 4ced8db..65867c9 100644
--- a/vs2022/xenbus.sln
+++ b/vs2022/xenbus.sln
@@ -4,11 +4,6 @@ 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}
@@ -35,7 +30,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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}
@@ -69,22 +63,6 @@ Global
 		{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
diff --git a/vs2022/xenbus_coinst/xenbus_coinst.vcxproj b/vs2022/xenbus_coinst/xenbus_coinst.vcxproj
deleted file mode 100644
index c4e47d0..0000000
--- a/vs2022/xenbus_coinst/xenbus_coinst.vcxproj
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenbus_coinst.rc" />
-  </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
deleted file mode 100644
index db41a92..0000000
--- a/vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 14:15:42 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 14:15:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601400.937401 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQec-0002ke-6U; Wed, 13 Sep 2023 14:15:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601400.937401; Wed, 13 Sep 2023 14:15:42 +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 1qgQec-0002kX-3g; Wed, 13 Sep 2023 14:15:42 +0000
Received: by outflank-mailman (input) for mailman id 601400;
 Wed, 13 Sep 2023 14:15:40 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQea-0002kL-Q0
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 14:15:40 +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 04173783-5240-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 16:15:39 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-31fd067e8d0so104741f8f.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 07:15:39 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g9-20020adff409000000b0031c79de4d8bsm15588921wro.106.2023.09.13.07.15.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 07:15:38 -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: 04173783-5240-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694614538; x=1695219338; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=2Wsr6TwjhMphCwE0wO5p0w0pBowzEKsbffC8kGKxRUo=;
        b=ClV2QeU26Ia9MqUl+n87pMGjmof1V7EBedCuN31bYuHx5zw+vB2ZqekDH05FN4j1Da
         sxOgkP0ZswAZC23RN3J/Dl3M5pnSEXHmb0HTg+f914uDUK+30j6gtEHCYf6hawPPqz7i
         PVPL2kViCCS9k2mKwrUUcxV6IqiwgTZVdXGIw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694614538; x=1695219338;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2Wsr6TwjhMphCwE0wO5p0w0pBowzEKsbffC8kGKxRUo=;
        b=wN7tramy9kTg820vKTQ5CeCpe9xeuM7Kh1SFamOWVET20bRu8qhweIwRW/27acinhg
         syY9J1OCC7Oluv8GmUtjJwYrdLaSSxeks/XHMT/KaM3dvJOd9GSWN6B+ieThx1QxAq4h
         OVKLHvfg+OckmPOQDHZHBjpGjY4vJoJyduFHN8sUCCRzht25i9Li9cBiqRDH8R+oGeNI
         3Li9CtgR/0FFMBOLm+Jla4vN46I8c9QdXJK77+6b+xNd1o7qb4OjiFGRCIuIrqh54I7i
         2h3o34oB2BHjCZ1fRTNXFMVFPQwXKrTsyIlb1fuvZsm2Fwl11gEfbO1Y4Q8GY0VFGbT9
         PnIw==
X-Gm-Message-State: AOJu0YyMrWXlS4dX4mj2/NiVUTnET2aWhQHoQ/uOSytFj0cIISYjgiIS
	t/UXpdamsJkgcgARv23GHnxL0yuuWWL4Bs7KNn9S
X-Google-Smtp-Source: AGHT+IHrVJCrBiCjtP7W6KAIimczqah7tKAQIr3i5VITESgJq9NbNpAcM9z3z04FdPhHBKk7Uew+hQ==
X-Received: by 2002:a5d:5150:0:b0:313:dee2:e052 with SMTP id u16-20020a5d5150000000b00313dee2e052mr2404399wrt.26.1694614538582;
        Wed, 13 Sep 2023 07:15:38 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 0/5] Remove CoInstallers
Date: Wed, 13 Sep 2023 15:15:19 +0100
Message-ID: <20230913141524.2046-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
The current CoInstaller handle several edge cases that will need replacement
implementations. This patch series for most drivers offers a potential solution
to the removal of CoInstallers and the required changes to avoid upgrade issues.

CoInstallers have several uses currently:
- Adds an upgrade block function with the "AllowUpgrade" value blocking driver
  upgrades when set.
- Adds a check to prevent XenBus upgrades from a different vendor / brand.
  This checks the current device name (if it exists) matches the new device name.
- Checks all currently installed child devices have a supported set of interfaces
  common with the new parent device.
- Clears the Unplug keys only when required.
- Correctly cleans up user mode services on uninstall.

The AllowUpgrade function has not been replaced - I have not seen this used in
the current implementations of the drivers.

The vendor naming check is specific to XenBus, and I dont think there is a
reliable replacement, and was intended to prevent different vendor drivers from
attempting to coexist, or upgrade cases from particularly old versions which had
a different naming scheme.

The interface compatability checks can be replaced with the matching if RevisionIDs
in the INF files, so that child devices will only install on parent devices that
expose a matching HardwareID or CompatibleID. This does leave the case where the
new parent driver could drop support for an interface version that is currently in
use. This will mandate a further driver upgrade, and should remove the Unplug keys
and mandate a reboot where the emulated devices are present, to ensure continued
operation. After this reboot using emulated devices, updates to the child devices
should be detected and installed, requiring another reboot to revert to PV devices.

Unplug keys getting cleared on all upgrades should allow the next boot to use emulated
devices, unless a subsequent install updates dependent drivers to use a working set
of new interfaces. The requirement here is that updating any driver should always
allow a reboot with emulated devices, should any further issues be detected.

I believe that, going forward, changing the DeviceID to remove the RevisionID will
avoid the need to set network IDs and copy settings from the previous network
connection to the new network connection. This change will mean the driver selection
during installation/upgrade will use the HardwareIDs (with RevisionIDs) to match the
ID in the DDInstall INF section (with RevisionID), and use the DeviceID to generate
the Matching Device ID and Instance ID. This means that once drivers have been
upgraded, the InstanceIDs should not change, and Windows should not generate a new
network connection (with default settings) for the upgraded driver set - meaning the
correct network settings are persisted.

I dont have a good replacement for cleaning up user mode services (xenbus_monitor
xenagent and xencons_monitor) on device uninstall. This *should* be handled correctly
by the PnP manager, but failing to stop either service should not be detremental to
the operation of the VM. Selecting the "Delete Drivers" option during uninstall will
stop and disable these services, not selecting this option will leave these services
running.

Owen Smith (5):
  Fix Length calculation in PdoQueryId
  Remove REV from DeviceID
  Add Unplug v2 (REV_0900000A)
  Remove CoInstaller from INF
  Delete CoInstaller code

 include/unplug_interface.h                    |   30 +-
 src/coinst/coinst.c                           | 1732 -----------------
 src/coinst/xenvif_coinst.def                  |   38 -
 src/coinst/xenvif_coinst.rc                   |   57 -
 src/xenvif.inf                                |   23 +-
 src/xenvif/pdo.c                              |   38 +-
 vs2015/package/package.vcxproj                |    3 -
 vs2015/xenvif.sln                             |   26 -
 vs2015/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 vs2017/package/package.vcxproj                |    3 -
 vs2017/xenvif.sln                             |   27 -
 vs2017/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 vs2019/package/package.vcxproj                |    3 -
 vs2019/xenvif.sln                             |   27 -
 vs2019/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 vs2022/package/package.vcxproj                |    3 -
 vs2022/xenvif.sln                             |   27 -
 vs2022/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 22 files changed, 62 insertions(+), 2279 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xenvif_coinst.def
 delete mode 100644 src/coinst/xenvif_coinst.rc
 delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user
 delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user
 delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user
 delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user

-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 14:15:43 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 14:15:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601401.937406 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQed-0002mY-87; Wed, 13 Sep 2023 14:15:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601401.937406; Wed, 13 Sep 2023 14:15: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 1qgQed-0002mR-5A; Wed, 13 Sep 2023 14:15:43 +0000
Received: by outflank-mailman (input) for mailman id 601401;
 Wed, 13 Sep 2023 14:15:41 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQeb-0002kL-EV
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 14:15:41 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0441de24-5240-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 16:15:39 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-401b5516104so72791795e9.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 07:15:39 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g9-20020adff409000000b0031c79de4d8bsm15588921wro.106.2023.09.13.07.15.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 07:15:38 -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: 0441de24-5240-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694614539; x=1695219339; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6bL7puGdWN5G3fBEthbXZmR8AbkwPBeK/bxbbbCitV0=;
        b=RVc07DZxkOnGdojfT8ZlfP24y83z3tKc1geVKChDAvwodP1AJt3Bm3+T1+8iv7PDsh
         pv/r5Kp3q18C/YPHq/Ld+5VDtI0NUXgadYUZQSuXqL4L1f48j9kant7CVO9PE1mTfxfo
         AIrRviKiW+oT8fnnbwV4UJxrD9lztkMzv25+c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694614539; x=1695219339;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6bL7puGdWN5G3fBEthbXZmR8AbkwPBeK/bxbbbCitV0=;
        b=Sk+xVbdtE3TeaVHLMjgiVl1P6fIBY4OlPkraibVQ+vrUmGki136T9/IOZXlgxkaxKw
         KrMUfIsRvW0MXS35mz4PdLog3VfaJ0fLv3splkDKE5vlB/wNwTxU4R0sRl0yOUi9kC5w
         NQQWsueZHq49N9E0y/pgjDQtdJMRglGX9WREgJ70MtPkG/3yBXilvHI3/v/tHYrryNLH
         TcrPfTJTFwATKZ+RtJ/Vh4AsX12osy+6AoF5785gvrMi+8N93bQlUsjRdGipsB0tTWQJ
         4e0EBqeOBapkOX+UbSIlTPgptPCCYdiYra+vT3/mctfywKH6Xd+Uqbnj+x3IvSoc9tWu
         +PVQ==
X-Gm-Message-State: AOJu0Yzbj7aRUE2/zv3MEt4Gcf9xqouB50Q5nrwpY9s4yJ+lna5Aqnul
	/KMavDbgPcDFOBjFx3qVIxk5Bfa5anPiCk9PisgD
X-Google-Smtp-Source: AGHT+IEI5WQFieJ+dN4LX9kjbrwRhgCSV/uMCHzP/pN2If1vQroYBj47XZmXxujRqqzc7Rnc3FW0lg==
X-Received: by 2002:a1c:7902:0:b0:3fb:e4ce:cc65 with SMTP id l2-20020a1c7902000000b003fbe4cecc65mr2304718wme.25.1694614539159;
        Wed, 13 Sep 2023 07:15:39 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 1/5] Fix Length calculation in PdoQueryId
Date: Wed, 13 Sep 2023 15:15:20 +0100
Message-ID: <20230913141524.2046-2-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913141524.2046-1-owen.smith@cloud.com>
References: <20230913141524.2046-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Decrease Length by the string length of the current ID before moving
the Buffer value to the end of the current ID. Without this, Length
is not decreased, leading to potential issues with the next call to
RtlStringCbPrintfW.
Note: second chunk it to maintain consistent ordering of operations,
  and is not a functional change

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xenvif/pdo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index 1d163c9..d43702e 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -2100,11 +2100,11 @@ PdoQueryId(
                                         Revision->Number);
             ASSERT(NT_SUCCESS(status));
 
-            Buffer += wcslen(Buffer);
             Length -= (ULONG)(wcslen(Buffer) * sizeof (WCHAR));
+            Buffer += wcslen(Buffer);
 
-            Buffer++;
             Length -= sizeof (WCHAR);
+            Buffer++;
 
             --Index;
         }
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 14:15:44 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 14:15:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601402.937409 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQee-0002oa-9a; Wed, 13 Sep 2023 14:15:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601402.937409; Wed, 13 Sep 2023 14:15: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 1qgQee-0002oS-6X; Wed, 13 Sep 2023 14:15:44 +0000
Received: by outflank-mailman (input) for mailman id 601402;
 Wed, 13 Sep 2023 14:15:42 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQec-0002kL-Ep
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 14:15:42 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04d45dc4-5240-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 16:15:40 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-31aec0a1a8bso676561f8f.0
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 07:15:40 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g9-20020adff409000000b0031c79de4d8bsm15588921wro.106.2023.09.13.07.15.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 07:15:39 -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: 04d45dc4-5240-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694614540; x=1695219340; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=smjbIcD2IwQQrFBt7GZXxpfLP4BeWXMnRAFAVFFOO18=;
        b=LGjnY/sQTB10oHQFLgnkaO0E/mPitefEIJGwGeCbnI3819SOTN03NzG1tNl9/ICaLt
         sc4rDxpVZukrYjhzhtqeDQzUbVHE2Mkrd1pmnDt9iuLjeF9239nzAWAJQP3uTEgdzVEo
         i864yXivgIwdBp25WuH1BV0yxMGpt1MOXTvvA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694614540; x=1695219340;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=smjbIcD2IwQQrFBt7GZXxpfLP4BeWXMnRAFAVFFOO18=;
        b=Cr6kWtgi2Z/7mVd/iE5uMYzjmQ25a+bRuJOFGwO4HO48L6EQCcDuYD4nbZNoYUjuh7
         eapUsRrDW2tJgEdVHyX9yZEAJcDjarAHPsMMdkp3noDSgs+KcdSpoYLlA7rMD8DnOgo6
         +QN/uP7UYQoXlWww7xrELsrj9nNc0C77XKFNHID5v7Gb2pVkjnGaApHYL+PB+PiFarlq
         9qmCchajf03TOszPQH2sLkY4+edJPAusTn8ushP9CKi9E81oUWIN5/0I2iIVAugnDF4t
         NoF732U7TzqYPIKUD3DuVzJMxBLJiDYR8udAPwykWxugbMC1qVz+vfdTRri4D8T5ODWe
         xfbQ==
X-Gm-Message-State: AOJu0YwPt0KpbbGgMWGD/yv1t9R8Ehn9+ohxsuL3BmRLU9N18FhMCgok
	NKuxMu5O0Pqd2VQh1T71m+90nZxdkw+aTAYGiVjl
X-Google-Smtp-Source: AGHT+IFYa2IsImjsWODuMOqQgL7C8jQEXKHVFtGogLL1HOY74O51k2QrUbVZrLF3A65xxddtpgDxyA==
X-Received: by 2002:a05:6000:1043:b0:313:e88d:e6d3 with SMTP id c3-20020a056000104300b00313e88de6d3mr4482058wrx.14.1694614540043;
        Wed, 13 Sep 2023 07:15:40 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 2/5] Remove REV from DeviceID
Date: Wed, 13 Sep 2023 15:15:21 +0100
Message-ID: <20230913141524.2046-3-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913141524.2046-1-owen.smith@cloud.com>
References: <20230913141524.2046-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child INF DDInstall
section (stored as matching device id), but use the DeviceID to generate the device
instance path. By keeping the device instance path the same over upgrades, the network
stack should identify this as an upgrade, rather than 'replacement hardware', and
not generate a new network connection, which would require network settings to be
copied from the existing network connection to the new network connection.

Note: This introduces a strict requirement for child device INF DDInstall sections to
  reference devices by the full (including revision) hardware ID

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xenvif/pdo.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index d43702e..2e47be2 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -2062,18 +2062,11 @@ PdoQueryId(
         break;
 
     case BusQueryDeviceID: {
-        ULONG                   Index;
-        PXENVIF_PDO_REVISION    Revision;
-
         Type = REG_SZ;
-        Index = ARRAYSIZE(PdoRevision) - 1;
-        Revision = &PdoRevision[Index];
-
         status = RtlStringCbPrintfW(Buffer,
                                     Id.MaximumLength,
-                                    L"XENVIF\\VEN_%hs&DEV_NET&REV_%08X",
-                                    __PdoGetVendorName(Pdo),
-                                    Revision->Number);
+                                    L"XENVIF\\VEN_%hs&DEV_NET",
+                                    __PdoGetVendorName(Pdo));
         ASSERT(NT_SUCCESS(status));
 
         Buffer += wcslen(Buffer);
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 14:15:45 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 14:15:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601403.937413 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQef-0002qs-Ae; Wed, 13 Sep 2023 14:15:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601403.937413; Wed, 13 Sep 2023 14:15:45 +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 1qgQef-0002qk-87; Wed, 13 Sep 2023 14:15:45 +0000
Received: by outflank-mailman (input) for mailman id 601403;
 Wed, 13 Sep 2023 14:15:43 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQed-0002kL-F7
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 14:15:43 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05619202-5240-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 16:15:41 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-401b393ddd2so77944705e9.0
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 07:15:41 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g9-20020adff409000000b0031c79de4d8bsm15588921wro.106.2023.09.13.07.15.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 07:15:40 -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: 05619202-5240-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694614541; x=1695219341; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=P0CU6TC9PKCmnHs+SPlGNyquIa98cwj8rvOE0phVnwg=;
        b=jUYCBV1IT9Vw9I9KzGHTFAWAC8qXpm2fSm1lCr/JgIpU0bNx9b4EPics+1PxuMv9dE
         WD4kuaI2ugcwBVMFkhmJ6yZTWMirESELvsCbUnpISZGcE8nEBivkmReqLH0wQivIkTHs
         S683n73yM9kF0IW+QiXHFk/rNzQkWErhh/Jrk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694614541; x=1695219341;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=P0CU6TC9PKCmnHs+SPlGNyquIa98cwj8rvOE0phVnwg=;
        b=RzSSycgu2iXCq7+gUjKg9RaJrFiuZwQEyTl5b7LFlhlLwgvLqvlSwxbXWdXvVf7iqQ
         7N4KtjfPpv4DfLX9LRby6pWwf8sop1wz6qVrZ2UKAcq5OgF5PgZ5K1Kac5iEOGK1fzF/
         +VQ64AIlHki/njfi7B+BJTJ+KNvE/HJjldyYiuomG2cxt6iCfvjcEAZCcyhueirHseiu
         KKBj2nSARk0us028IeLe+0vZivPY8ZvW3E+JgknQEqQ2WWeZEQ4KooPhmHwiKct0H8OJ
         72tKdyk1NIs13gZ9GG5XT2xRk/DekVOXQ26lwPj/Mtfbrq7MhGfBvZg2avJaggYalr1Y
         WcgQ==
X-Gm-Message-State: AOJu0YyRFOTaWwlNg+4MBJ0lIKC1e85A5zkggWsWbuEdcMVjmQiBc575
	CzISugQ+aeHRrBA30IJ0T6Mg+oRwEkGKH125TeeA
X-Google-Smtp-Source: AGHT+IFb+b2/Uw0ggNL4z1ykkrx8uIcK9gw6dmNW9bRw6r1ovlzAU9N+Ut1xIXT4/r2NEqloPQzsSg==
X-Received: by 2002:adf:cc81:0:b0:317:6c19:6445 with SMTP id p1-20020adfcc81000000b003176c196445mr2392863wrj.39.1694614541059;
        Wed, 13 Sep 2023 07:15:41 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 3/5] Add Unplug v2 (REV_0900000A)
Date: Wed, 13 Sep 2023 15:15:22 +0100
Message-ID: <20230913141524.2046-4-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913141524.2046-1-owen.smith@cloud.com>
References: <20230913141524.2046-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

If NICs have not been unplugged, do not start PV network devices and trigger a
required reboot.
This is to avoid the upgrade case where both emulated and PV devices could be
present, due to a 'revert to emulated' policy and emulated NICs not currently
getting IP configurations so the HasAlias value is not determined correctly.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 include/unplug_interface.h | 30 ++++++++++++++++++++++++++++--
 src/xenvif.inf             |  6 +++---
 src/xenvif/pdo.c           | 23 ++++++++++++++++++++++-
 3 files changed, 53 insertions(+), 6 deletions(-)

diff --git a/include/unplug_interface.h b/include/unplug_interface.h
index e465e2e..ca55027 100644
--- a/include/unplug_interface.h
+++ b/include/unplug_interface.h
@@ -85,6 +85,20 @@ typedef VOID
     IN  BOOLEAN                     Make
     );
 
+/*! \typedef XENBUS_UNPLUG_WASREQUESTED
+    \brief Has a type of emulated device been unplugged
+
+    \param Interface The interface header
+    \param Type The type of device
+
+    \return TRUE The type of device has been unplugged this boot.
+*/
+typedef BOOLEAN
+(*XENBUS_UNPLUG_WASREQUESTED)(
+    IN  PINTERFACE                  Interface,
+    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
+    );
+
 // {73db6517-3d06-4937-989f-199b7501e229}
 DEFINE_GUID(GUID_XENBUS_UNPLUG_INTERFACE,
 0x73db6517, 0x3d06, 0x4937, 0x98, 0x9f, 0x19, 0x9b, 0x75, 0x01, 0xe2, 0x29);
@@ -100,7 +114,19 @@ struct _XENBUS_UNPLUG_INTERFACE_V1 {
     XENBUS_UNPLUG_REQUEST   UnplugRequest;
 };
 
-typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
+/*! \struct _XENBUS_UNPLUG_INTERFACE_V2
+    \brief UNPLUG interface version 2
+    \ingroup interfaces
+*/
+struct _XENBUS_UNPLUG_INTERFACE_V2 {
+    INTERFACE                   Interface;
+    XENBUS_UNPLUG_ACQUIRE       UnplugAcquire;
+    XENBUS_UNPLUG_RELEASE       UnplugRelease;
+    XENBUS_UNPLUG_REQUEST       UnplugRequest;
+    XENBUS_UNPLUG_WASREQUESTED  UnplugWasRequested;
+};
+
+typedef struct _XENBUS_UNPLUG_INTERFACE_V2 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
 
 /*! \def XENBUS_UNPLUG
     \brief Macro at assist in method invocation
@@ -111,6 +137,6 @@ typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNP
 #endif  // _WINDLL
 
 #define XENBUS_UNPLUG_INTERFACE_VERSION_MIN  1
-#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  1
+#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  2
 
 #endif  // _XENBUS_UNPLUG_INTERFACE_H
diff --git a/src/xenvif.inf b/src/xenvif.inf
index 4b5c9f7..3db059d 100644
--- a/src/xenvif.inf
+++ b/src/xenvif.inf
@@ -60,9 +60,9 @@ xenvif_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll
 ; DisplayName		Section		DeviceID
 ; -----------		-------		--------
 
-%XenVifName%		=XenVif_Inst,	XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VIF&REV_09000009
-%XenVifName%		=XenVif_Inst,	XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VIF&REV_09000009
-%XenVifName%		=XenVif_Inst,	XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VIF&REV_09000009
+%XenVifName%		=XenVif_Inst,	XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VIF&REV_0900000A
+%XenVifName%		=XenVif_Inst,	XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VIF&REV_0900000A
+%XenVifName%		=XenVif_Inst,	XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VIF&REV_0900000A
 
 [XenVif_Inst] 
 CopyFiles=XenVif_Copyfiles
diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index 2e47be2..3ce6e20 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -1247,6 +1247,27 @@ PdoUnplugRequest(
     XENBUS_UNPLUG(Release, &Pdo->UnplugInterface);
 }
 
+static BOOLEAN
+PdoUnplugRequested(
+    IN  PXENVIF_PDO Pdo
+    )
+{
+    BOOLEAN         State;
+    NTSTATUS        status;
+
+    status = XENBUS_UNPLUG(Acquire, &Pdo->UnplugInterface);
+    if (!NT_SUCCESS(status))
+        return FALSE;
+
+    State = XENBUS_UNPLUG(WasRequested,
+                          &Pdo->UnplugInterface,
+                          XENBUS_UNPLUG_DEVICE_TYPE_NICS);
+
+    XENBUS_UNPLUG(Release, &Pdo->UnplugInterface);
+
+    return State;
+}
+
 static DECLSPEC_NOINLINE NTSTATUS
 PdoStartDevice(
     IN  PXENVIF_PDO     Pdo,
@@ -1343,7 +1364,7 @@ PdoStartDevice(
         break;
     }
 
-    if (Pdo->HasAlias) {
+    if (Pdo->HasAlias || !PdoUnplugRequested(Pdo)) {
         PdoUnplugRequest(Pdo, TRUE);
 
         status = STATUS_PNP_REBOOT_REQUIRED;
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 14:15:46 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 14:15:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601404.937417 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQeg-0002sz-Ce; Wed, 13 Sep 2023 14:15:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601404.937417; Wed, 13 Sep 2023 14:15: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 1qgQeg-0002ss-9r; Wed, 13 Sep 2023 14:15:46 +0000
Received: by outflank-mailman (input) for mailman id 601404;
 Wed, 13 Sep 2023 14:15:44 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQee-0002kL-FK
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 14:15:44 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06025b75-5240-11ee-8786-cb3800f73035;
 Wed, 13 Sep 2023 16:15:42 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-31c73c21113so6490646f8f.1
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 07:15:42 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g9-20020adff409000000b0031c79de4d8bsm15588921wro.106.2023.09.13.07.15.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 07:15:41 -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: 06025b75-5240-11ee-8786-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694614542; x=1695219342; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wog2Yv+FEQaxEc8X41c0RmdiSKIN2DUjGI+UD2oImyQ=;
        b=BsEhCDfocJWRH6hsSVhOtZSwU6mjcvr0KrYog++pnoWc+PIQXIUZQwJsvMOsqsXiW8
         r+Wk5YVoollTEKOZcqwj/6mfeQNkEBit27NeExbB91sZ0zyvP2td8RwvtQBZYIuvtRUV
         B2tFVY2A/S3zacKfOicSliGRsvJ+imq3botNQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694614542; x=1695219342;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Wog2Yv+FEQaxEc8X41c0RmdiSKIN2DUjGI+UD2oImyQ=;
        b=rotui7dnv/CYwcrUszmmB/Qbi6tadwq6mSaoYQZthXFQ9Jpq8/f8hS7zxY8KmatC2+
         +T2krczqit0o2A6w3em9GwSfy4UvTQIn9G+E0IkJAYEpbsWDo71ySpZl9da8vMx/QgsY
         NU8j1HIFTwEJ9Tq5SNAF1jZIv905Dh9VnlITYh7+C4vn2z/AdbmSa5puPPM1QEuifXSp
         CRqcl2sXZC0c9NthP2a947sNAbezYbg+QanSewvE5MYTxCwaxq6jzFoZU4vj3x9l1PyY
         T2BebsiH44p8HpCEn+GKHpyK9a9joBR5Wd05YrsJ4dNuWuDdQefLZZeWkQo4t71twdCQ
         i7SQ==
X-Gm-Message-State: AOJu0YzmgcwUJaNRdJFvzr+S3gUWf2NAPGH7UQJ4pDl1IHi6MNdApZ/d
	yFVyB3v+ZGkJEsSfBXn4y1Qj4KvsstOnj/JhnuG8
X-Google-Smtp-Source: AGHT+IE8gY/Peez+FWAklZjEK2W0pRgO9++n3ani+Gc6fF/yqJmOmTtuRXEkQ8ODge+NsQknzj8FcQ==
X-Received: by 2002:a5d:5232:0:b0:31c:7001:3873 with SMTP id i18-20020a5d5232000000b0031c70013873mr2539196wra.60.1694614541961;
        Wed, 13 Sep 2023 07:15:41 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 4/5] Remove CoInstaller from INF
Date: Wed, 13 Sep 2023 15:15:23 +0100
Message-ID: <20230913141524.2046-5-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913141524.2046-1-owen.smith@cloud.com>
References: <20230913141524.2046-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL requires INF file pass "InfVerif /k", which highlights
several issues
- PnpLockdown=1 needs to be specified
- CoInstallers are no longer allowed

The CoInstaller has several functions that will need alternative solutions:
- The AllowUpdate mechanism is no longer possible
- The safety checks that ensure interface versionings remain compatible
- The writing of 'current' network identifiers to the registry in order to
  copy network settings.

Interface safety checks need to be handled by changes to child device bindings,
and assuming upgrade via emulated devices is safe. The unplug key is cleared
in the INF to revert to emulated NICs on the next boot, incase the current child
drivers rely on an interface that is no longer present (note: in this case,
child drivers will need updating).

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xenvif.inf | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/src/xenvif.inf b/src/xenvif.inf
index 3db059d..8bfc37c 100644
--- a/src/xenvif.inf
+++ b/src/xenvif.inf
@@ -38,20 +38,16 @@ Provider=%Vendor%
 CatalogFile=xenvif.cat
 DriverVer=@INF_DATE@,@MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@.@BUILD_NUMBER@
 DriverPackageDisplayName=%DiskDesc%
+PnpLockdown=1
 
 [DestinationDirs] 
 DefaultDestDir=12 
-CoInst_CopyFiles=11
 
 [SourceDisksNames]
 0=%DiskDesc%
 
 [SourceDisksFiles]
 xenvif.sys=0,,
-xenvif_coinst.dll=0,,
-
-[CoInst_CopyFiles]
-xenvif_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenvif_coinst.dll
 
 [Manufacturer] 
 %Vendor%=Inst,NT@INF_ARCH@
@@ -80,7 +76,7 @@ StartType=%SERVICE_DEMAND_START%
 ErrorControl=%SERVICE_ERROR_NORMAL% 
 ServiceBinary=%12%\xenvif.sys 
 LoadOrderGroup="NDIS"
-AddReg = XenVif_BootFlags, XenVif_Parameters
+AddReg = XenVif_BootFlags, XenVif_Parameters, XenVif_Unplug
 
 [XenVif_BootFlags]
 HKR,,"BootFlags",0x00010003,0x81
@@ -90,12 +86,8 @@ HKR,"Parameters",,0x00000010
 HKR,"Parameters","RequestKey",0x00000000,%RequestKey%
 HKR,"Parameters","FrontendMaxQueues",0x00010001,0x00000008
 
-[XenVif_Inst.CoInstallers]
-CopyFiles=CoInst_CopyFiles
-AddReg=CoInst_AddReg
-
-[CoInst_AddReg]
-HKR,,CoInstallers32,0x00010000,"xenvif_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
+[XenVif_Unplug]
+HKLM,%UnplugKey%,"NICS",0x00010001,0
 
 [Strings] 
 
@@ -103,6 +95,7 @@ Vendor="@VENDOR_NAME@"
 DiskDesc="@PRODUCT_NAME@ PV Network Class Package"
 XenVifName="@PRODUCT_NAME@ PV Network Class"
 RequestKey="SYSTEM\CurrentControlSet\Services\xenbus_monitor\Request"
+UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
 
 SERVICE_BOOT_START=0x0 
 SERVICE_SYSTEM_START=0x1 
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Wed Sep 13 14:15:51 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 13 Sep 2023 14:15:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.601405.937422 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qgQel-0002yv-FD; Wed, 13 Sep 2023 14:15:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 601405.937422; Wed, 13 Sep 2023 14:15:51 +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 1qgQel-0002yo-CE; Wed, 13 Sep 2023 14:15:51 +0000
Received: by outflank-mailman (input) for mailman id 601405;
 Wed, 13 Sep 2023 14:15:50 +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=KFT2=E5=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qgQek-0002xv-1F
 for win-pv-devel@lists.xenproject.org; Wed, 13 Sep 2023 14:15:50 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0785b75f-5240-11ee-9b0d-b553b5be7939;
 Wed, 13 Sep 2023 16:15:45 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4013454fa93so78010675e9.0
 for <win-pv-devel@lists.xenproject.org>; Wed, 13 Sep 2023 07:15:45 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g9-20020adff409000000b0031c79de4d8bsm15588921wro.106.2023.09.13.07.15.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Sep 2023 07:15: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: 0785b75f-5240-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694614544; x=1695219344; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BVq5ZOTmba5sYMbL6Yoip/npaBbzlu0CAelZWPwGYeM=;
        b=lk4hiFmb9LQBoWHssfU86tyQn/xbr4eT/ROpc4dr2H+WhjrUsUBLLsCVq9q3ZXuIjW
         M3fUYR1cK2nbiaVMYgPExGPdeSI36Y4D1sowjb/BpT0VkC9KiSXfRm9Bc20RY6u7kPvo
         i5c4yIr94nQdNbzl1Gcv60eQbytwjp6vbOtxg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694614544; x=1695219344;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BVq5ZOTmba5sYMbL6Yoip/npaBbzlu0CAelZWPwGYeM=;
        b=Ei0gSOxfrhHfDIEpr2U/IETwWYN+nLDUCqxkiu/KdSwOjOdT/Dmk/s3gSbbZ9xZmTw
         Qvov9VuwvY4FTDmQ8tSXopT7TgI4EcKMCfk9a+XAy30wSsrCCkBksopyCtH3Cmc0JMpg
         v75/0uSCZsFqr0hlYGdZw2GMdI73mXW3jbK7kC+4VkKM8P9mZnNux+8YQc9USpS/LKna
         1p7QgDa+z7RY9QGdi2zlpOE1RkJCZ25C0iDvTsz1hi+iKhVktJ2uz41DvIXXIztCtGJs
         sYiwllkGeE2oY5md36WuU3CrZwnsPw534yzWakot56VSmIOjBeOyj3HsDgyfp6Nzrpxz
         4SRA==
X-Gm-Message-State: AOJu0YzcDOBZNlIHUNdKHW5hhTQ6C/Vy6ZpiqJgo6xHzTspn2J8uwn9V
	D2D23yqKcS81jvr80PBua7ABKQVFQldo+Y5Z3cTO
X-Google-Smtp-Source: AGHT+IHZl9lIIfmfXOYbYZ1ETaNDeJ4FC+RPtBy9AlQU20p7Rd46orpLbLdsjH15Cc0upYYEmUQTEQ==
X-Received: by 2002:adf:ee07:0:b0:31c:81ef:f90a with SMTP id y7-20020adfee07000000b0031c81eff90amr2162954wrn.47.1694614543841;
        Wed, 13 Sep 2023 07:15:43 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH v2 5/5] Delete CoInstaller code
Date: Wed, 13 Sep 2023 15:15:24 +0100
Message-ID: <20230913141524.2046-6-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230913141524.2046-1-owen.smith@cloud.com>
References: <20230913141524.2046-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the CoInstaller removed from the INF file, delete the CoInstaller
source code and projects.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/coinst/coinst.c                           | 1732 -----------------
 src/coinst/xenvif_coinst.def                  |   38 -
 src/coinst/xenvif_coinst.rc                   |   57 -
 vs2015/package/package.vcxproj                |    3 -
 vs2015/xenvif.sln                             |   26 -
 vs2015/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 vs2017/package/package.vcxproj                |    3 -
 vs2017/xenvif.sln                             |   27 -
 vs2017/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 vs2019/package/package.vcxproj                |    3 -
 vs2019/xenvif.sln                             |   27 -
 vs2019/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 vs2022/package/package.vcxproj                |    3 -
 vs2022/xenvif.sln                             |   27 -
 vs2022/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
 .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
 19 files changed, 2250 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xenvif_coinst.def
 delete mode 100644 src/coinst/xenvif_coinst.rc
 delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user
 delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user
 delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user
 delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj
 delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
deleted file mode 100644
index 49d76db..0000000
--- a/src/coinst/coinst.c
+++ /dev/null
@@ -1,1732 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, 
- * with or without modification, are permitted provided 
- * that the following conditions are met:
- * 
- * *   Redistributions of source code must retain the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer in the documentation and/or other 
- *     materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
- * SUCH DAMAGE.
- */
-
-#include <windows.h>
-#include <setupapi.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <strsafe.h>
-#include <malloc.h>
-#include <assert.h>
-#include <iphlpapi.h>
-
-#include <version.h>
-#include <revision.h>
-
-#define stringify_literal(_text) #_text
-#define stringify(_text) stringify_literal(_text)
-#define __MODULE__ stringify(PROJECT)
-
-__user_code;
-
-#define MAXIMUM_BUFFER_SIZE 1024
-
-#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
-
-#define SERVICE_KEY(_Driver)    \
-        SERVICES_KEY ## "\\" ## #_Driver
-
-#define UNPLUG_KEY \
-        SERVICE_KEY(XEN) ## "\\Unplug"
-
-#define SETTINGS_KEY \
-        SERVICE_KEY(XENVIF) ## "\\Settings"
-
-#define CONTROL_KEY "SYSTEM\\CurrentControlSet\\Control"
-
-#define CLASS_KEY   \
-        CONTROL_KEY ## "\\Class"
-
-#define ENUM_KEY    "SYSTEM\\CurrentControlSet\\Enum"
-
-#define NETWORK_CLASS_GUID \
-        "{4d36e972-e325-11ce-bfc1-08002be10318}"
-
-static VOID
-#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024'
-__Log(
-    IN  const CHAR  *Format,
-    IN  ...
-    )
-{
-    TCHAR               Buffer[MAXIMUM_BUFFER_SIZE];
-    va_list             Arguments;
-    size_t              Length;
-    SP_LOG_TOKEN        LogToken;
-    DWORD               Category;
-    DWORD               Flags;
-    HRESULT             Result;
-
-    va_start(Arguments, Format);
-    Result = StringCchVPrintf(Buffer, MAXIMUM_BUFFER_SIZE, Format, Arguments);
-    va_end(Arguments);
-
-    if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
-        return;
-
-    Result = StringCchLength(Buffer, MAXIMUM_BUFFER_SIZE, &Length);
-    if (Result != S_OK)
-        return;
-
-    LogToken = SetupGetThreadLogToken();
-    Category = TXTLOG_VENDOR;
-    Flags = TXTLOG_WARNING;
-
-    SetupWriteTextLog(LogToken, Category, Flags, Buffer);
-    Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
-
-    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
-    __analysis_assume(Length >= 2);
-    Buffer[Length] = '\0';
-    Buffer[Length - 1] = '\n';
-    Buffer[Length - 2] = '\r';
-
-    OutputDebugString(Buffer);
-}
-
-#define Log(_Format, ...) \
-        __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__)
-
-static PTCHAR
-GetErrorMessage(
-    IN  DWORD   Error
-    )
-{
-    PTCHAR      Message;
-    ULONG       Index;
-
-    if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                       FORMAT_MESSAGE_FROM_SYSTEM |
-                       FORMAT_MESSAGE_IGNORE_INSERTS,
-                       NULL,
-                       Error,
-                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                       (LPTSTR)&Message,
-                       0,
-                       NULL))
-        return NULL;
-
-    for (Index = 0; Message[Index] != '\0'; Index++) {
-        if (Message[Index] == '\r' || Message[Index] == '\n') {
-            Message[Index] = '\0';
-            break;
-        }
-    }
-
-    return Message;
-}
-
-static FORCEINLINE const CHAR *
-__FunctionName(
-    IN  DI_FUNCTION Function
-    )
-{
-#define _NAME(_Function)        \
-        case DIF_ ## _Function: \
-            return #_Function;
-
-    switch (Function) {
-    _NAME(INSTALLDEVICE);
-    _NAME(REMOVE);
-    _NAME(SELECTDEVICE);
-    _NAME(ASSIGNRESOURCES);
-    _NAME(PROPERTIES);
-    _NAME(FIRSTTIMESETUP);
-    _NAME(FOUNDDEVICE);
-    _NAME(SELECTCLASSDRIVERS);
-    _NAME(VALIDATECLASSDRIVERS);
-    _NAME(INSTALLCLASSDRIVERS);
-    _NAME(CALCDISKSPACE);
-    _NAME(DESTROYPRIVATEDATA);
-    _NAME(VALIDATEDRIVER);
-    _NAME(MOVEDEVICE);
-    _NAME(DETECT);
-    _NAME(INSTALLWIZARD);
-    _NAME(DESTROYWIZARDDATA);
-    _NAME(PROPERTYCHANGE);
-    _NAME(ENABLECLASS);
-    _NAME(DETECTVERIFY);
-    _NAME(INSTALLDEVICEFILES);
-    _NAME(ALLOW_INSTALL);
-    _NAME(SELECTBESTCOMPATDRV);
-    _NAME(REGISTERDEVICE);
-    _NAME(NEWDEVICEWIZARD_PRESELECT);
-    _NAME(NEWDEVICEWIZARD_SELECT);
-    _NAME(NEWDEVICEWIZARD_PREANALYZE);
-    _NAME(NEWDEVICEWIZARD_POSTANALYZE);
-    _NAME(NEWDEVICEWIZARD_FINISHINSTALL);
-    _NAME(INSTALLINTERFACES);
-    _NAME(DETECTCANCEL);
-    _NAME(REGISTER_COINSTALLERS);
-    _NAME(ADDPROPERTYPAGE_ADVANCED);
-    _NAME(ADDPROPERTYPAGE_BASIC);
-    _NAME(TROUBLESHOOTER);
-    _NAME(POWERMESSAGEWAKE);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-static BOOLEAN
-ClearUnplugRequest(
-    IN  PTCHAR      ClassName
-    )
-{
-    HKEY            UnplugKey;
-    HRESULT         Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         UNPLUG_KEY,
-                         0,
-                         KEY_ALL_ACCESS,
-                         &UnplugKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    Error = RegDeleteValue(UnplugKey, ClassName);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(UnplugKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(UnplugKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-AllowUpdate(
-    IN  PTCHAR      DriverName,
-    OUT PBOOLEAN    Allow
-    )
-{
-    TCHAR           ServiceKeyName[MAX_PATH];
-    HKEY            ServiceKey;
-    HRESULT         Result;
-    HRESULT         Error;
-    DWORD           ValueLength;
-    DWORD           Value;
-    DWORD           Type;
-
-    Log("====> (%s)", DriverName);
-
-    Result = StringCbPrintf(ServiceKeyName,
-                            MAX_PATH,
-                            SERVICES_KEY "\\%s",
-                            DriverName);
-    assert(SUCCEEDED(Result));
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         ServiceKeyName,
-                         0,
-                         KEY_READ,
-                         &ServiceKey);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Value = 1;
-            goto done;
-        }
-
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    ValueLength = sizeof (Value);
-
-    Error = RegQueryValueEx(ServiceKey,
-                            "AllowUpdate",
-                            NULL,
-                            &Type,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Type = REG_DWORD;
-            Value = 1;
-        } else {
-            SetLastError(Error);
-            goto fail2;
-        }
-    }
-
-    if (Type != REG_DWORD) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail3;
-    }
-
-    RegCloseKey(ServiceKey);
-
-done:
-    if (Value == 0) {
-        Log("DISALLOWED");
-        *Allow = FALSE;
-    }
-
-    Log("<====");
-
-    return TRUE;
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ServiceKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-AllowInstall(
-    OUT PBOOLEAN    Allow
-    )
-{
-    BOOLEAN         Success;
-    HRESULT         Error;
-
-    Log("====>");
-
-    *Allow = TRUE;
-
-    Success = AllowUpdate("XENVIF", Allow);
-    if (!Success)
-        goto fail1;
-
-    Log("<====");
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenEnumKey(
-    OUT PHKEY   EnumKey
-    )
-{
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         ENUM_KEY,
-                         0,
-                         KEY_READ,
-                         EnumKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenBusKey(
-    IN  PTCHAR  BusKeyName,
-    OUT PHKEY   BusKey
-    )
-{
-    BOOLEAN     Success;
-    HKEY        EnumKey;
-    HRESULT     Error;
-
-    Success = OpenEnumKey(&EnumKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegOpenKeyEx(EnumKey,
-                         BusKeyName,
-                         0,
-                         KEY_READ,
-                         BusKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(EnumKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(EnumKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenDeviceKey(
-    IN  PTCHAR  BusKeyName,
-    IN  PTCHAR  DeviceKeyName,
-    OUT PHKEY   DeviceKey
-    )
-{
-    BOOLEAN     Success;
-    HKEY        BusKey;
-    HRESULT     Error;
-
-    Success = OpenBusKey(BusKeyName, &BusKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegOpenKeyEx(BusKey,
-                         DeviceKeyName,
-                         0,
-                         KEY_READ,
-                         DeviceKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(BusKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(BusKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-GetDriverKeyName(
-    IN  HKEY    DeviceKey,
-    OUT PTCHAR  *Name,
-    OUT DWORD   *ConfigFlags
-    )
-{
-    HRESULT     Error;
-    DWORD       SubKeys;
-    DWORD       MaxSubKeyLength;
-    DWORD       SubKeyLength;
-    PTCHAR      SubKeyName;
-    DWORD       Index;
-    HKEY        SubKey;
-    PTCHAR      DriverKeyName;
-    DWORD       Flags;
-
-    Error = RegQueryInfoKey(DeviceKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &SubKeys,
-                            &MaxSubKeyLength,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-
-    SubKeyName = malloc(SubKeyLength);
-    if (SubKeyName == NULL)
-        goto fail2;
-
-    SubKey = NULL;
-    DriverKeyName = NULL;
-    Flags = 0;
-
-    for (Index = 0; Index < SubKeys; Index++) {
-        DWORD       MaxValueLength;
-        DWORD       ConfigFlagsLength;
-        DWORD       DriverKeyNameLength;
-        DWORD       Type;
-
-        SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-        memset(SubKeyName, 0, SubKeyLength);
-
-        Error = RegEnumKeyEx(DeviceKey,
-                             Index,
-                             (LPTSTR)SubKeyName,
-                             &SubKeyLength,
-                             NULL,
-                             NULL,
-                             NULL,
-                             NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail3;
-        }
-
-        Error = RegOpenKeyEx(DeviceKey,
-                             SubKeyName,
-                             0,
-                             KEY_READ,
-                             &SubKey);
-        if (Error != ERROR_SUCCESS) {
-            SubKey = NULL;
-            continue;
-        }
-
-        Error = RegQueryInfoKey(SubKey,
-                                NULL,
-                                NULL,
-                                NULL,
-                                NULL,
-                                NULL,
-                                NULL,
-                                NULL,
-                                NULL,
-                                &MaxValueLength,
-                                NULL,
-                                NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail4;
-        }
-
-        ConfigFlagsLength = (DWORD)sizeof(DWORD);
-
-        Error = RegQueryValueEx(SubKey,
-                                "ConfigFlags",
-                                NULL,
-                                &Type,
-                                (LPBYTE)&Flags,
-                                &ConfigFlagsLength);
-        if (Error != ERROR_SUCCESS ||
-            Type != REG_DWORD)
-            Flags = 0;
-
-        DriverKeyNameLength = MaxValueLength + sizeof (TCHAR);
-
-        DriverKeyName = calloc(1, DriverKeyNameLength);
-        if (DriverKeyName == NULL)
-            goto fail5;
-
-        Error = RegQueryValueEx(SubKey,
-                                "Driver",
-                                NULL,
-                                &Type,
-                                (LPBYTE)DriverKeyName,
-                                &DriverKeyNameLength);
-        if (Error == ERROR_SUCCESS &&
-            Type == REG_SZ)
-            break;
-
-        free(DriverKeyName);
-        DriverKeyName = NULL;
-        Flags = 0;
-
-        RegCloseKey(SubKey);
-        SubKey = NULL;
-    }
-
-    Log("%s", (DriverKeyName != NULL) ? DriverKeyName : "none found");
-
-    if (SubKey != NULL)
-        RegCloseKey(SubKey);
-
-    free(SubKeyName);
-
-    *Name = DriverKeyName;
-    *ConfigFlags = Flags;
-
-    return TRUE;
-
-fail5:
-    Log("fail5");
-
-fail4:
-    Log("fail4");
-
-    if (SubKey != NULL)
-        RegCloseKey(SubKey);
-
-fail3:
-    Log("fail3");
-
-    free(SubKeyName);
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenClassKey(
-    OUT PHKEY   ClassKey
-    )
-{
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         CLASS_KEY,
-                         0,
-                         KEY_READ,
-                         ClassKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OpenDriverKey(
-    IN  PTCHAR  DriverKeyName,
-    OUT PHKEY   DriverKey
-    )
-{
-    BOOLEAN     Success;
-    HKEY        ClassKey;
-    HRESULT     Error;
-
-    Success = OpenClassKey(&ClassKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegOpenKeyEx(ClassKey,
-                         DriverKeyName,
-                         0,
-                         KEY_READ,
-                         DriverKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(ClassKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ClassKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-#define DEFINE_REVISION(_N, _C, _V, _ST, _SU) \
-    (_N)
-
-static DWORD    DeviceRevision[] = {
-    DEFINE_REVISION_TABLE
-};
-
-#undef DEFINE_REVISION
-
-static BOOLEAN
-SupportDeviceID(
-    IN  PTCHAR      DeviceID
-    )
-{
-    unsigned int    Revision;
-    int             Count;
-    DWORD           Index;
-    HRESULT         Error;
-
-    DeviceID = strrchr(DeviceID, '&');
-    assert(DeviceID != NULL);
-    DeviceID++;
-
-    Count = sscanf_s(DeviceID,
-                     "REV_%8x",
-                     &Revision);
-    if (Count != 1) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail1;
-    }
-
-    for (Index = 0; Index < ARRAYSIZE(DeviceRevision); Index++) {
-        if (Revision == DeviceRevision[Index])
-            goto found;
-    }
-
-    SetLastError(ERROR_FILE_NOT_FOUND);
-    goto fail2;
-
-found:
-    Log("%x", Revision);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-GetMatchingDeviceID(
-    IN  HKEY    DriverKey,
-    OUT PTCHAR  *MatchingDeviceID
-    )
-{
-    HRESULT     Error;
-    DWORD       MaxValueLength;
-    DWORD       MatchingDeviceIDLength;
-    DWORD       Type;
-    DWORD       Index;
-
-    Error = RegQueryInfoKey(DriverKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &MaxValueLength,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    MatchingDeviceIDLength = MaxValueLength + sizeof (TCHAR);
-
-    *MatchingDeviceID = calloc(1, MatchingDeviceIDLength);
-    if (*MatchingDeviceID == NULL)
-        goto fail2;
-
-    Error = RegQueryValueEx(DriverKey,
-                            "MatchingDeviceId",
-                            NULL,
-                            &Type,
-                            (LPBYTE)*MatchingDeviceID,
-                            &MatchingDeviceIDLength);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail3;
-    }
-
-    if (Type != REG_SZ) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail4;
-    }
-
-    for (Index = 0; Index < strlen(*MatchingDeviceID); Index++)
-        (*MatchingDeviceID)[Index] = (CHAR)toupper((*MatchingDeviceID)[Index]);
-
-    Log("%s", *MatchingDeviceID);
-
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-fail3:
-    Log("fail3");
-
-    free(*MatchingDeviceID);
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-SupportChildDrivers(
-    VOID
-    )
-{
-    BOOLEAN     Success;
-    HKEY        XenbusKey;
-    HRESULT     Error;
-    DWORD       SubKeys;
-    DWORD       MaxSubKeyLength;
-    DWORD       SubKeyLength;
-    PTCHAR      SubKeyName;
-    HKEY        DeviceKey;
-    PTCHAR      DriverKeyName;
-    DWORD       ConfigFlags;
-    HKEY        DriverKey;
-    PTCHAR      MatchingDeviceID;
-    DWORD       Index;
-
-    Log("====>");
-
-    Success = OpenBusKey("XENVIF", &XenbusKey);
-    if (!Success) {
-        // If there is no key then this must be a fresh installation
-        if (GetLastError() == ERROR_FILE_NOT_FOUND)
-            goto done;
-
-        goto fail1;
-    }
-
-    Error = RegQueryInfoKey(XenbusKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &SubKeys,
-                            &MaxSubKeyLength,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-
-    SubKeyName = malloc(SubKeyLength);
-    if (SubKeyName == NULL)
-        goto fail3;
-
-    for (Index = 0; Index < SubKeys; Index++) {
-        SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-        memset(SubKeyName, 0, SubKeyLength);
-
-        Error = RegEnumKeyEx(XenbusKey,
-                             Index,
-                             (LPTSTR)SubKeyName,
-                             &SubKeyLength,
-                             NULL,
-                             NULL,
-                             NULL,
-                             NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail4;
-        }
-
-        Success = OpenDeviceKey("XENVIF", SubKeyName, &DeviceKey);
-        if (!Success)
-            goto fail5;
-
-        Success = GetDriverKeyName(DeviceKey, &DriverKeyName, &ConfigFlags);
-        if (!Success)
-            goto fail6;
-
-        if (DriverKeyName == NULL)
-            goto loop1;
-
-        if (ConfigFlags & 0x20)
-            goto loop2;
-
-        Success = OpenDriverKey(DriverKeyName, &DriverKey);
-        if (!Success)
-            goto loop3;
-
-        Success = GetMatchingDeviceID(DriverKey, &MatchingDeviceID);
-        if (!Success)
-            goto loop4;
-
-        Success = SupportDeviceID(MatchingDeviceID);
-        if (!Success)
-            goto fail7;
-
-        free(MatchingDeviceID);
-
-    loop4:
-        RegCloseKey(DriverKey);
-
-    loop3:
-
-    loop2:
-        free(DriverKeyName);
-
-    loop1:
-        RegCloseKey(DeviceKey);
-    }
-
-    free(SubKeyName);
-
-    RegCloseKey(XenbusKey);
-
-done:
-    Log("<====");
-
-    return TRUE;
-
-fail7:
-    Log("fail7");
-
-    free(MatchingDeviceID);
-
-    RegCloseKey(DriverKey);
-
-    free(DriverKeyName);
-
-fail6:
-    Log("fail6");
-
-    RegCloseKey(DeviceKey);
-
-fail5:
-    Log("fail5");
-
-fail4:
-    Log("fail4");
-
-    free(SubKeyName);
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(XenbusKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-CreateSettingsKey(
-    IN  PTCHAR  KeyName,
-    OUT PHKEY   Key
-    )
-{
-    HKEY        SettingsKey;
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         SETTINGS_KEY,
-                         0,
-                         KEY_ALL_ACCESS,
-                         &SettingsKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    Error = RegCreateKeyEx(SettingsKey,
-                           KeyName,
-                           0,
-                           NULL,
-                           REG_OPTION_NON_VOLATILE,
-                           KEY_ALL_ACCESS,
-                           NULL,
-                           Key,
-                           NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(SettingsKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(SettingsKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-CopyNetworkID(
-    IN  PTCHAR  VifIndex,
-    IN  HKEY    DriverKey
-    )
-{
-    BOOLEAN     Success;
-    HRESULT     Error;
-    TCHAR       NetCfgInstanceId[MAX_PATH];
-    DWORD       NetCfgInstanceIdLength;
-    DWORD       Value;
-    DWORD       ValueLength;
-    NET_LUID    NetLuid;
-    HKEY        SettingsKey;
-
-    NetCfgInstanceIdLength = sizeof(NetCfgInstanceId);
-    Error = RegQueryValueEx(DriverKey,
-                            "NetCfgInstanceId",
-                            NULL,
-                            NULL,
-                            (LPBYTE)NetCfgInstanceId,
-                            &NetCfgInstanceIdLength);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    NetLuid.Value = 0ull;
-
-    ValueLength = sizeof(DWORD);
-    Error = RegQueryValueEx(DriverKey,
-                            "NetLuidIndex",
-                            NULL,
-                            NULL,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    NetLuid.Info.NetLuidIndex = Value;
-
-    ValueLength = sizeof(DWORD);
-    Error = RegQueryValueEx(DriverKey,
-                            "*IfType",
-                            NULL,
-                            NULL,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail3;
-    }
-
-    NetLuid.Info.IfType = Value;
-
-    Log("VIF/%s was %s", VifIndex, NetCfgInstanceId);
-
-    Success = CreateSettingsKey(VifIndex, &SettingsKey);
-    if (!Success)
-        goto fail4;
-
-    Error = RegSetValueEx(SettingsKey,
-                          "NetCfgInstanceId",
-                          0,
-                          REG_SZ,
-                          (const BYTE*)NetCfgInstanceId,
-                          NetCfgInstanceIdLength);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail5;
-    }
-
-    Error = RegSetValueEx(SettingsKey,
-                          "NetLuid",
-                          0,
-                          REG_BINARY,
-                          (const BYTE*)&NetLuid,
-                          sizeof(NET_LUID));
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail6;
-    }
-
-    Value = 1;
-    Error = RegSetValueEx(SettingsKey,
-                          "HasSettings",
-                          0,
-                          REG_DWORD,
-                          (const BYTE*)&Value,
-                          sizeof(DWORD));
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail7;
-    }
-
-    RegCloseKey(SettingsKey);
-
-    return TRUE;
-
-fail7:
-    Log("fail7");
-
-fail6:
-    Log("fail6");
-
-fail5:
-    Log("fail5");
-
-    RegCloseKey(SettingsKey);
-
-fail4:
-    Log("fail4");
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-CopyNetworkIDs(
-    VOID
-    )
-{
-    BOOLEAN     Success;
-    HRESULT     Error;
-    HKEY        ClassKey;
-    DWORD       SubKeys;
-    DWORD       MaxSubKeyLength;
-    DWORD       Index;
-    DWORD       SubKeyLength;
-    PTCHAR      SubKeyName;
-
-    Log("====>");
-
-    Success = OpenDriverKey(NETWORK_CLASS_GUID, &ClassKey);
-    if (!Success)
-        goto fail1;
-
-    Error = RegQueryInfoKey(ClassKey,
-                            NULL,
-                            NULL,
-                            NULL,
-                            &SubKeys,
-                            &MaxSubKeyLength,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL,
-                            NULL);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-
-    SubKeyName = malloc(SubKeyLength);
-    if (SubKeyName == NULL)
-        goto fail3;
-
-    for (Index = 0; Index < SubKeys; ++Index) {
-        HKEY        DriverKey;
-        TCHAR       DeviceInstanceID[MAX_PATH];
-        PTCHAR      VifIndex;
-        DWORD       Length;
-
-        SubKeyLength = MaxSubKeyLength + sizeof (TCHAR);
-        memset(SubKeyName, 0, SubKeyLength);
-
-        Error = RegEnumKeyEx(ClassKey,
-                             Index,
-                             (LPTSTR)SubKeyName,
-                             &SubKeyLength,
-                             NULL,
-                             NULL,
-                             NULL,
-                             NULL);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto fail4;
-        }
-
-        Error = RegOpenKeyEx(ClassKey,
-                             SubKeyName,
-                             0,
-                             KEY_READ,
-                             &DriverKey);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            continue;
-        }
-
-        Length = sizeof(DeviceInstanceID);
-        Error = RegQueryValueEx(DriverKey,
-                                "DeviceInstanceID",
-                                NULL,
-                                NULL,
-                                (LPBYTE)DeviceInstanceID,
-                                &Length);
-        if (Error != ERROR_SUCCESS) {
-            SetLastError(Error);
-            goto loop1;
-        }
-
-        if (_strnicmp("XENVIF", DeviceInstanceID, strlen("XENVIF")) != 0)
-            goto loop2;
-
-        VifIndex = strrchr(DeviceInstanceID, '\\');
-        if (VifIndex == NULL)
-            goto loop3;
-
-        ++VifIndex;
-
-        CopyNetworkID(VifIndex, DriverKey);
-
-    loop3:
-    loop2:
-    loop1:
-        RegCloseKey(DriverKey);
-    }
-
-    free(SubKeyName);
-    RegCloseKey(ClassKey);
-
-    Log("<====");
-
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-    free(SubKeyName);
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ClassKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static HRESULT
-DifInstallPreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-    BOOLEAN                         Success;
-    BOOLEAN                         Allow;
-
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("====>");
-
-    Success = AllowInstall(&Allow);
-    if (!Success)
-        goto fail1;
-
-    if (!Allow) {
-        SetLastError(ERROR_ACCESS_DENIED);
-        goto fail2;
-    }
-
-    Success = SupportChildDrivers();
-    if (!Success)
-        goto fail3;
-
-    Success = CopyNetworkIDs();
-    if (!Success)
-        goto fail4;
-
-    Log("<====");
-
-    return NO_ERROR;
-
-fail4:
-    Log("fail4");
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static HRESULT
-DifInstallPostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static DECLSPEC_NOINLINE HRESULT
-DifInstall(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = DifInstallPreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) DifInstallPostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = GetErrorMessage(Error);
-            Log("NOT RUNNING (DifInstallPreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR; 
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static HRESULT
-DifRemovePreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR; 
-}
-
-static HRESULT
-DifRemovePostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static DECLSPEC_NOINLINE HRESULT
-DifRemove(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = DifRemovePreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) DifRemovePostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = GetErrorMessage(Error);
-            Log("NOT RUNNING (DifRemovePreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR; 
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-DWORD CALLBACK
-Entry(
-    IN  DI_FUNCTION                 Function,
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-
-    Log("%s (%s) ===>",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    if (!Context->PostProcessing) {
-        Log("%s PreProcessing",
-            __FunctionName(Function));
-    } else {
-        Log("%s PostProcessing (%08x)",
-            __FunctionName(Function),
-            Context->InstallResult);
-    }
-
-    switch (Function) {
-    case DIF_INSTALLDEVICE: {
-        SP_DRVINFO_DATA         DriverInfoData;
-        BOOLEAN                 DriverInfoAvailable;
-
-        DriverInfoData.cbSize = sizeof (DriverInfoData);
-        DriverInfoAvailable = SetupDiGetSelectedDriver(DeviceInfoSet,
-                                                       DeviceInfoData,
-                                                       &DriverInfoData) ?
-                              TRUE :
-                              FALSE;
-
-        // If there is no driver information then the NULL driver is being
-        // installed. Treat this as we would a DIF_REMOVE.
-        Error = (DriverInfoAvailable) ?
-                DifInstall(DeviceInfoSet, DeviceInfoData, Context) :
-                DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    }
-    case DIF_REMOVE:
-        Error = DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    default:
-        if (!Context->PostProcessing) {
-            Error = NO_ERROR;
-        } else {
-            Error = Context->InstallResult;
-        }
-
-        break;
-    }
-
-    Log("%s (%s) <===",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return (DWORD)Error;
-}
-
-DWORD CALLBACK
-Version(
-    IN  HWND        Window,
-    IN  HINSTANCE   Module,
-    IN  PTCHAR      Buffer,
-    IN  INT         Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Window);
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Buffer);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s)",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return NO_ERROR;
-}
-
-static FORCEINLINE const CHAR *
-__ReasonName(
-    IN  DWORD       Reason
-    )
-{
-#define _NAME(_Reason)          \
-        case DLL_ ## _Reason:   \
-            return #_Reason;
-
-    switch (Reason) {
-    _NAME(PROCESS_ATTACH);
-    _NAME(PROCESS_DETACH);
-    _NAME(THREAD_ATTACH);
-    _NAME(THREAD_DETACH);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-BOOL WINAPI
-DllMain(
-    IN  HINSTANCE   Module,
-    IN  DWORD       Reason,
-    IN  PVOID       Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s): %s",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR,
-        __ReasonName(Reason));
-
-    return TRUE;
-}
diff --git a/src/coinst/xenvif_coinst.def b/src/coinst/xenvif_coinst.def
deleted file mode 100644
index 71d8f65..0000000
--- a/src/coinst/xenvif_coinst.def
+++ /dev/null
@@ -1,38 +0,0 @@
-; Copyright (c) Xen Project.
-; Copyright (c) Cloud Software Group, Inc.
-; All rights reserved.
-; 
-; Redistribution and use in source and binary forms, 
-; with or without modification, are permitted provided 
-; that the following conditions are met:
-; 
-; *   Redistributions of source code must retain the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer.
-; *   Redistributions in binary form must reproduce the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer in the documentation and/or other 
-;     materials provided with the distribution.
-; 
-; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
-; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
-; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
-; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
-; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
-; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
-; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
-; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
-; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
-; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
-; SUCH DAMAGE.
-
-LIBRARY  XENBUS_COINST
-
-EXPORTS   
-   Entry 
-   Version
-
-   DllMain PRIVATE
diff --git a/src/coinst/xenvif_coinst.rc b/src/coinst/xenvif_coinst.rc
deleted file mode 100644
index c1235ce..0000000
--- a/src/coinst/xenvif_coinst.rc
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * *   Redistributions of source code must retain the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer in the documentation and/or other
- *     materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <windows.h>
-#include <ntverp.h>
-
-
-#undef VER_COMPANYNAME_STR
-#undef VER_PRODUCTNAME_STR
-#undef VER_PRODUCTVERSION
-#undef VER_PRODUCTVERSION_STR
-
-#include <version.h>
-
-#define VER_COMPANYNAME_STR         VENDOR_NAME_STR
-#define VER_LEGALCOPYRIGHT_STR      COPYRIGHT_STR
-
-#define VER_PRODUCTNAME_STR         "XENVIF_COINST"
-#define VER_PRODUCTVERSION          MAJOR_VERSION,MINOR_VERSION,MICRO_VERSION,BUILD_NUMBER
-#define VER_PRODUCTVERSION_STR      MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR
-
-#define VER_INTERNALNAME_STR        "XENVIF_COINST.DLL"
-#define VER_FILEDESCRIPTION_STR     "XENVIF_COINST"
-
-#define VER_FILETYPE                VFT_DRV
-#define VER_FILESUBTYPE             VFT2_DRV_SYSTEM
-
-#include <common.ver>
diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj
index 3db0b5e..989cff6 100644
--- a/vs2015/package/package.vcxproj
+++ b/vs2015/package/package.vcxproj
@@ -41,9 +41,6 @@
     <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)')">
diff --git a/vs2015/xenvif.sln b/vs2015/xenvif.sln
index 8d808f0..d65f3fe 100644
--- a/vs2015/xenvif.sln
+++ b/vs2015/xenvif.sln
@@ -9,17 +9,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvif", "xenvif\xenvif.vcx
 		{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
@@ -51,25 +44,6 @@ Global
 		{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
diff --git a/vs2015/xenvif_coinst/xenvif_coinst.vcxproj b/vs2015/xenvif_coinst/xenvif_coinst.vcxproj
deleted file mode 100644
index 18f6bdd..0000000
--- a/vs2015/xenvif_coinst/xenvif_coinst.vcxproj
+++ /dev/null
@@ -1,65 +0,0 @@
-<?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>{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;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/xenvif_coinst.def</ModuleDefinitionFile>
-      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvif_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user b/vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user
deleted file mode 100644
index ff14020..0000000
--- a/vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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>
diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj
index 3aec237..af14958 100644
--- a/vs2017/package/package.vcxproj
+++ b/vs2017/package/package.vcxproj
@@ -41,9 +41,6 @@
     <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)')">
diff --git a/vs2017/xenvif.sln b/vs2017/xenvif.sln
index cf1d7db..1ef5eb8 100644
--- a/vs2017/xenvif.sln
+++ b/vs2017/xenvif.sln
@@ -6,17 +6,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvif", "xenvif\xenvif.vcx
 		{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
@@ -47,26 +40,6 @@ Global
 		{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
diff --git a/vs2017/xenvif_coinst/xenvif_coinst.vcxproj b/vs2017/xenvif_coinst/xenvif_coinst.vcxproj
deleted file mode 100644
index 39a3a4f..0000000
--- a/vs2017/xenvif_coinst/xenvif_coinst.vcxproj
+++ /dev/null
@@ -1,65 +0,0 @@
-<?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/xenvif_coinst.def</ModuleDefinitionFile>
-      <AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvif_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user b/vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user
deleted file mode 100644
index ff14020..0000000
--- a/vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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>
diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index 8987c1d..86e6354 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -46,9 +46,6 @@
     <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)')">
diff --git a/vs2019/xenvif.sln b/vs2019/xenvif.sln
index 33d0808..9c41ef5 100644
--- a/vs2019/xenvif.sln
+++ b/vs2019/xenvif.sln
@@ -8,17 +8,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvif", "xenvif\xenvif.vcx
 		{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
@@ -49,26 +42,6 @@ Global
 		{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
diff --git a/vs2019/xenvif_coinst/xenvif_coinst.vcxproj b/vs2019/xenvif_coinst/xenvif_coinst.vcxproj
deleted file mode 100644
index 19914c6..0000000
--- a/vs2019/xenvif_coinst/xenvif_coinst.vcxproj
+++ /dev/null
@@ -1,71 +0,0 @@
-<?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>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\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\xenvif_coinst.def" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvif_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user b/vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user
deleted file mode 100644
index ff14020..0000000
--- a/vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
index 016a1c0..0ea6508 100644
--- a/vs2022/package/package.vcxproj
+++ b/vs2022/package/package.vcxproj
@@ -46,9 +46,6 @@
     <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)')">
diff --git a/vs2022/xenvif.sln b/vs2022/xenvif.sln
index 33d0808..9c41ef5 100644
--- a/vs2022/xenvif.sln
+++ b/vs2022/xenvif.sln
@@ -8,17 +8,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvif", "xenvif\xenvif.vcx
 		{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
@@ -49,26 +42,6 @@ Global
 		{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
diff --git a/vs2022/xenvif_coinst/xenvif_coinst.vcxproj b/vs2022/xenvif_coinst/xenvif_coinst.vcxproj
deleted file mode 100644
index 19914c6..0000000
--- a/vs2022/xenvif_coinst/xenvif_coinst.vcxproj
+++ /dev/null
@@ -1,71 +0,0 @@
-<?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>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\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\xenvif_coinst.def" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvif_coinst.rc" />
-  </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
deleted file mode 100644
index ff14020..0000000
--- a/vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 14 08:25:41 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Sep 2023 08:25:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.602125.938507 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qghfN-00088t-L4; Thu, 14 Sep 2023 08:25:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 602125.938507; Thu, 14 Sep 2023 08:25:37 +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 1qghfN-00088m-IV; Thu, 14 Sep 2023 08:25:37 +0000
Received: by outflank-mailman (input) for mailman id 602125;
 Thu, 14 Sep 2023 08:25:36 +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=pNLe=E6=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qghfL-00088a-VI
 for win-pv-devel@lists.xenproject.org; Thu, 14 Sep 2023 08:25:35 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 462ac3c0-52d8-11ee-9b0d-b553b5be7939;
 Thu, 14 Sep 2023 10:25:33 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2bceca8a41aso10500821fa.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 14 Sep 2023 01:25:33 -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: 462ac3c0-52d8-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1694679933; x=1695284733; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:in-reply-to:references:mime-version
         :from:to:cc:subject:date:message-id:reply-to;
        bh=gl5AoFuCiqsluq7S7iE78b/f8CAOYGrOOfeCMbbKY5E=;
        b=XriXF7rzuHj51FVUIazoQPszpYlS9eZ3p9xO7NVRoldeaz55c+4UQKVP+Tr9E//SvK
         xHDc5AZum24fyY2Z5Q4TY9cXjX7hvrU4KbpY0ieuytsXXrzmgou+HE9TYqapg8qz/rMB
         6dhSDs+0+rEjIpwhn0O1EaWD5VdnmLModuS6s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694679933; x=1695284733;
        h=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=gl5AoFuCiqsluq7S7iE78b/f8CAOYGrOOfeCMbbKY5E=;
        b=C+pGKWhdLhrtagEQdrtjX5ltolEpZR70yNZ6KirLx9h/Lm5Td6WGdk0v/w20pJMtwD
         XnFoFe0HGwed2PwUY5oyAEO/DT3h8bRb5JxVxlXujJJINyNsS0T3/7ejsQ9gWsuqyn+u
         uza4kQYkwtwjqZmIw/6YQmpwcJ4y6R7IRUPLZo1qpyIreiSCR98e56Rf/XWoy7U6GMAL
         eC50tJ94nNKVMBLnhZ5Je8hKB5R32hnEHWCMkv0mVcp5nHZnsKbSqnIhpainPMHRuIY9
         QQIcQyQ0oHGr/RsCW1U2PQovIwiI29uWhdTe1i3KgvGJxTSaHf+p+vtW6orSmPRwurpo
         IPgA==
X-Gm-Message-State: AOJu0Yxsqi+06w1evbRIvAyztEIKNvnUTvKO2kutO8K5nf/hHAzegx59
	5q9d8JCiGVSPauTXZZzU6uv6BFRBKE27RFdOHmrusOPfacL3qvXq3g==
X-Google-Smtp-Source: AGHT+IEd5ZxN6hVI5CQ3lTs9xSbf2xzJN4mcXlXn8bhur22sEszISO2vMbsKp1zrjyckt/qAER6E8gESV7YJUjXjm9I=
X-Received: by 2002:a2e:9dc5:0:b0:2bc:b557:cee9 with SMTP id
 x5-20020a2e9dc5000000b002bcb557cee9mr4591905ljj.43.1694679933136; Thu, 14 Sep
 2023 01:25:33 -0700 (PDT)
MIME-Version: 1.0
References: <20230913084835.1446-1-owen.smith@cloud.com>
In-Reply-To: <20230913084835.1446-1-owen.smith@cloud.com>
From: Owen Smith <owen.smith@cloud.com>
Date: Thu, 14 Sep 2023 09:25:22 +0100
Message-ID: <CAC_UY8-CHKx44ioCmPT6UWXRPHBN2kRG5Yd3CK9A7HJY45uw6Q@mail.gmail.com>
Subject: Re: [PATCH] Add script to generate pooltag.txt for debugger use
To: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000006c54d806054d6b7d"

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

This script can be applied to all driver repos to generate pooltag.txt

Owen

On Wed, Sep 13, 2023 at 9:48=E2=80=AFAM Owen Smith <owen.smith@cloud.com> w=
rote:

> Note: script does not correctly handle src/common paths and attributes
>   pool tags discovered within to 'common.sys'
>
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>  gentags.ps1 | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
>  create mode 100644 gentags.ps1
>
> diff --git a/gentags.ps1 b/gentags.ps1
> new file mode 100644
> index 0000000..9c2efa1
> --- /dev/null
> +++ b/gentags.ps1
> @@ -0,0 +1,26 @@
> +Function Parse-Tags {
> +    param(
> +        [string]$drivername
> +    )
> +
> +    Get-ChildItem ("./src/" + $drivername) | Foreach-Object {
> +        $file =3D $_.Name
> +        Get-Content $_.FullName | ForEach {
> +            if ($_.Contains("TAG") -And $_.Contains("#define")) {
> +                $vals =3D $_.Split(' ', 3)
> +                $name =3D $vals[1].Trim()
> +                $tags =3D $vals[2].Trim().Trim("'").PadRight(4)
> +                Write-Host "TAG:" $name "=3D" $tags
> +                $driver =3D ($drivername + ".sys").PadRight(16)
> +                ($tags + " - " + $driver + " - XEN " + $drivername + "\"
> + $file + " " + $name) | Add-Content "./pooltag.txt"
> +            }
> +        }
> +    }
> +}
> +
> +if (Test-Path "./pooltag.txt") {
> +    Remove-Item "./pooltag.txt"
> +}
> +Get-ChildItem "./src" | ?{$_.PSIsContainer}  | ForEach-Object {
> +    Parse-Tags $_.Name
> +}
> --
> 2.41.0.windows.3
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">This script can be applied to all driver repos to generate pooltag.txt</=
div><div class=3D"gmail_default" style=3D"font-family:monospace"><br></div>=
<div class=3D"gmail_default" style=3D"font-family:monospace">Owen</div></di=
v><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On W=
ed, Sep 13, 2023 at 9:48=E2=80=AFAM Owen Smith &lt;<a href=3D"mailto:owen.s=
mith@cloud.com">owen.smith@cloud.com</a>&gt; wrote:<br></div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">Note: script does not correctly handle =
src/common paths and attributes<br>
=C2=A0 pool tags discovered within to &#39;common.sys&#39;<br>
<br>
Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" targe=
t=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
---<br>
=C2=A0gentags.ps1 | 26 ++++++++++++++++++++++++++<br>
=C2=A01 file changed, 26 insertions(+)<br>
=C2=A0create mode 100644 gentags.ps1<br>
<br>
diff --git a/gentags.ps1 b/gentags.ps1<br>
new file mode 100644<br>
index 0000000..9c2efa1<br>
--- /dev/null<br>
+++ b/gentags.ps1<br>
@@ -0,0 +1,26 @@<br>
+Function Parse-Tags {<br>
+=C2=A0 =C2=A0 param(<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 [string]$drivername<br>
+=C2=A0 =C2=A0 )<br>
+<br>
+=C2=A0 =C2=A0 Get-ChildItem (&quot;./src/&quot; + $drivername) | Foreach-O=
bject {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 $file =3D $_.Name<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 Get-Content $_.FullName | ForEach {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if ($_.Contains(&quot;TAG&quot;)=
 -And $_.Contains(&quot;#define&quot;)) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 $vals =3D $_.Split=
(&#39; &#39;, 3)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 $name =3D $vals[1]=
.Trim()<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 $tags =3D $vals[2]=
.Trim().Trim(&quot;&#39;&quot;).PadRight(4)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Write-Host &quot;T=
AG:&quot; $name &quot;=3D&quot; $tags<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 $driver =3D ($driv=
ername + &quot;.sys&quot;).PadRight(16)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ($tags + &quot; - =
&quot; + $driver + &quot; - XEN &quot; + $drivername + &quot;\&quot; + $fil=
e + &quot; &quot; + $name) | Add-Content &quot;./pooltag.txt&quot;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
+=C2=A0 =C2=A0 }<br>
+}<br>
+<br>
+if (Test-Path &quot;./pooltag.txt&quot;) {<br>
+=C2=A0 =C2=A0 Remove-Item &quot;./pooltag.txt&quot;<br>
+}<br>
+Get-ChildItem &quot;./src&quot; | ?{$_.PSIsContainer}=C2=A0 | ForEach-Obje=
ct {<br>
+=C2=A0 =C2=A0 Parse-Tags $_.Name<br>
+}<br>
-- <br>
2.41.0.windows.3<br>
<br>
</blockquote></div>

--0000000000006c54d806054d6b7d--


From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 10:47:19 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 10:47:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609481.948591 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qloY9-0002xY-Vy; Thu, 28 Sep 2023 10:47:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609481.948591; Thu, 28 Sep 2023 10:47: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 1qloY9-0002xP-TL; Thu, 28 Sep 2023 10:47:17 +0000
Received: by outflank-mailman (input) for mailman id 609481;
 Thu, 28 Sep 2023 10:47:16 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qloY8-0002wx-M7
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 10:47:16 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 625e58c9-5dec-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 12:47:14 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-32487efc319so441764f8f.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 03:47:14 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 n7-20020adff087000000b0031c6e1ea4c7sm1937594wro.90.2023.09.28.03.47.11
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 03:47: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: 625e58c9-5dec-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695898033; x=1696502833; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=BQCCpBYACQAHXiVfNDFUYA1YeNMJK5ms48wIFEmMmAE=;
        b=e8eC9OoyB4owCraGWRdN3+EFsStEILungoIOjdvO1wKlqJaq2QokfG9Pj+Cj0TeQDa
         aQul6D11ILNcSx2T3jF96Gs7SUwbRTFrEy/e04ZRhmiNav3p7S47ManvBBFnfML8USZX
         gVi4PnacfCL68D84FMkY31Tf+B+vi8+m5qxcg1Q/BCTUO0pgXMwIvwqhBZx4I/Fn/IZe
         NZBysrkiI1ZRYqZtGfEWQ8rqBZjq6RsTlGj6GXR4yjocpVKF/XxQ+8/qva2G3NG0xOg3
         78GMI7jpis1JQ8fAyF1A46UfXbX5La2y/xojbIkKvOwL7BcUl/12YBP31yd8BNjFHU7x
         ACBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695898033; x=1696502833;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BQCCpBYACQAHXiVfNDFUYA1YeNMJK5ms48wIFEmMmAE=;
        b=bOJG8DoWjE/sCbT4jzfZMRDX7JOKbLBhVwZVlm/BkoawHTSJf8SpBidtEpejWr6GvZ
         bIkJKN35sStZY2EEWrmg3TZJMVW1sBksrnvJ7/O6KIJYvKKWv3NWYzJh1mk2WJ4wHaR5
         +s9Q07vlAb453CrlNNxqV1Guln41ZNdgSYsgJ+HosBhvurZtfDNp3p/k1sAm+otw6fY2
         eMRC8NQAB68XCFZGFw49fbz/ZTXfpxkfXXWLvVOLB+ifXGf5LJcZyJNR4p2w5h0BFoQh
         vEKtNCvjvymec+CIiww0zbDJwr3UTSRtdhsEgZaFUpr9a7dz9HsCuD30nUPVho06DtUK
         QANw==
X-Gm-Message-State: AOJu0Ywu/L6i79vNPWE2jCV1A/h/vKvM/5XepfeFJaKAY9WgW/YQmf4Q
	f2ApBNShfZI/pYVzd4RbC5/8esAmTK/cfQ==
X-Google-Smtp-Source: AGHT+IGdNcnf0DGSC8ETaSWKBNbm8JOPa1jzHhw+JXREA2m3hKh5y6xW0w4eahBK9qAHQMks+mCuvA==
X-Received: by 2002:a05:6000:11ca:b0:31f:fe14:d2f7 with SMTP id i10-20020a05600011ca00b0031ffe14d2f7mr838147wrx.4.1695898033156;
        Thu, 28 Sep 2023 03:47:13 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <04ff1e58-a6e1-4ca9-b095-707d743aa38a@xen.org>
Date: Thu, 28 Sep 2023 11:47:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH] Add script to generate pooltag.txt for debugger use
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913084835.1446-1-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913084835.1446-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 09:48, Owen Smith wrote:
> Note: script does not correctly handle src/common paths and attributes
>    pool tags discovered within to 'common.sys'
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   gentags.ps1 | 26 ++++++++++++++++++++++++++
>   1 file changed, 26 insertions(+)
>   create mode 100644 gentags.ps1
> 

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

> diff --git a/gentags.ps1 b/gentags.ps1
> new file mode 100644
> index 0000000..9c2efa1
> --- /dev/null
> +++ b/gentags.ps1
> @@ -0,0 +1,26 @@
> +Function Parse-Tags {
> +    param(
> +        [string]$drivername
> +    )
> +
> +    Get-ChildItem ("./src/" + $drivername) | Foreach-Object {
> +        $file = $_.Name
> +        Get-Content $_.FullName | ForEach {
> +            if ($_.Contains("TAG") -And $_.Contains("#define")) {
> +                $vals = $_.Split(' ', 3)
> +                $name = $vals[1].Trim()
> +                $tags = $vals[2].Trim().Trim("'").PadRight(4)
> +                Write-Host "TAG:" $name "=" $tags
> +                $driver = ($drivername + ".sys").PadRight(16)
> +                ($tags + " - " + $driver + " - XEN " + $drivername + "\" + $file + " " + $name) | Add-Content "./pooltag.txt"
> +            }
> +        }
> +    }
> +}
> +
> +if (Test-Path "./pooltag.txt") {
> +    Remove-Item "./pooltag.txt"
> +}
> +Get-ChildItem "./src" | ?{$_.PSIsContainer}  | ForEach-Object {
> +    Parse-Tags $_.Name
> +}



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 10:48:36 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 10:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609491.948596 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qloZQ-00039h-49; Thu, 28 Sep 2023 10:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609491.948596; Thu, 28 Sep 2023 10:48:36 +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 1qloZQ-00039a-1M; Thu, 28 Sep 2023 10:48:36 +0000
Received: by outflank-mailman (input) for mailman id 609491;
 Thu, 28 Sep 2023 10:48: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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qloZO-00039U-B6
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 10:48:34 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 916666d3-5dec-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 12:48:33 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-405361bb93bso126629075e9.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 03:48:33 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 n7-20020adff087000000b0031c6e1ea4c7sm1937594wro.90.2023.09.28.03.48.31
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 03:48:31 -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: 916666d3-5dec-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695898112; x=1696502912; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=xFQimaKVYMKhYJpbpviFMFfiRVf3P16rRUsv9dvQQzw=;
        b=GJHH/qznmO9+hDYWdxFfPuqJ6R6Hom6SZmlDSIRdlrqf9Zj+HgNU2tLL95HDku9lL0
         GYFuQXJL/fwv35B6cQZdlCj3e6sqBhSL3v158iBFL4rZiebmkq7s5JeDlEdaix8zHesa
         QFAAWxaLMiDdG39gz8SwK5uutALbI1V/1BryAaWCz5hpKViqhc33lSo8mU4zPbkxl4rj
         LfFoTUIkSCfTjT4prV65tlsG3A5BMu7tR9pYMeRAiZrRppOXRldQRh3//9QLidGiDFjn
         m35xnN6J8Udptc2wJNd0SHmhcSPzcySn80yeAzoHbRLVk17djBx0u7/qWVhExaaVZ9Dl
         RwXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695898112; x=1696502912;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xFQimaKVYMKhYJpbpviFMFfiRVf3P16rRUsv9dvQQzw=;
        b=e0BP3frwtYbE8hgKkjVrTiuYi+paGLCRCdaLfzbTJa4sCfxC20+2HSj9t/gOv1o8ff
         LSZLrU9Fl71JAkZkuGn0/Eg5IWiEoOv9iRU3YgNpRn2yR9wljrz1Vm9QzdxOPLXAmV9M
         TspHB6VVlWv/knHnsmQXUYShIHPzXPlFMcojJGCIhWLImKI2XnDt9lcikjPu43+FGJSd
         iwUEIBXlHaZWZQNwmGJ5Y/2LDlQ7L324mASLEYQSknbW9wQDjJuPi9qb2SnbBMO6u7rH
         Qt/ePHJlbR6n12ZqKywQXvrh1RjF/bXjOOFgbOd8MezL38VA3WIWOosy7iEn+X7lw+s+
         yqrg==
X-Gm-Message-State: AOJu0YxiYYpS8vf9Dcxqh1+dfGqxY9LpG1XHMz5Hf1uM5fZ1g/DNA0K7
	n4J6ZI8WcIT5Q5kaJ/Uu4h6f36g4veXJbA==
X-Google-Smtp-Source: AGHT+IE6HiDO9NWz5SsmdiNr61KWUrhW9s+exPLBF3W6sT+PdjnYs5Sjiq1ho7QuFDCR2qpbpkPi8g==
X-Received: by 2002:a5d:62c6:0:b0:314:4237:8832 with SMTP id o6-20020a5d62c6000000b0031442378832mr775725wrv.48.1695898112301;
        Thu, 28 Sep 2023 03:48:32 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <ba6d376d-b4a7-4878-b57d-4ba133d9db58@xen.org>
Date: Thu, 28 Sep 2023 11:48:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH] Add script to generate pooltag.txt for debugger use
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913084835.1446-1-owen.smith@cloud.com>
 <CAC_UY8-CHKx44ioCmPT6UWXRPHBN2kRG5Yd3CK9A7HJY45uw6Q@mail.gmail.com>
Organization: Xen Project
In-Reply-To: <CAC_UY8-CHKx44ioCmPT6UWXRPHBN2kRG5Yd3CK9A7HJY45uw6Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 14/09/2023 09:25, Owen Smith wrote:
> This script can be applied to all driver repos to generate pooltag.txt
> 

Thanks. Will do.

   Paul





From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 11:59:35 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 11:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609533.948660 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlpg3-00030M-MJ; Thu, 28 Sep 2023 11:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609533.948660; Thu, 28 Sep 2023 11:59:31 +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 1qlpg3-00030F-Jb; Thu, 28 Sep 2023 11:59:31 +0000
Received: by outflank-mailman (input) for mailman id 609533;
 Thu, 28 Sep 2023 11:59:30 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlpg2-000307-Bn
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 11:59:30 +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 7a8bb428-5df6-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 13:59:29 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-405361bb9f7so132195725e9.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 04:59:29 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 u8-20020a7bc048000000b003fe2b081661sm22668649wmc.30.2023.09.28.04.59.27
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 04:59:27 -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: 7a8bb428-5df6-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695902369; x=1696507169; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Wkc+ZIsJN6mzAYCN/Bjw8w1nGXT8N5WO+Q/tZIPECl0=;
        b=Jg4hmAUzi9xGT7COrbDmWFekO9czkrggFfEgNNSVbN66/jkOB1yTPWEZ8vGe6KDtds
         eN2QG+EJGxDnmZSsPKuqjUWkfvSVcLs66IpTM2GpDUIOVoGA5jDyiRV8EkmhWJAnaVmm
         f7UXyQ9yqFrVZEVRvLSBQFkCCkd0BCVmQWMZblwjj5Cqa3Q1Dsa7qkHIoJwtpn6rIsPs
         pnMhT1i/FWPeFb1U2sRRDqCo4LiJ4LcLLc7J1aEarR33arSG0gN4p1iqYEOtlLyfbPzD
         URTFUw7L52hpqDLKs9YU+ZXL3Aj01ENZCKUmxHCTeYduK71lgDWtoY18HtiM7meHtalg
         G/ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695902369; x=1696507169;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wkc+ZIsJN6mzAYCN/Bjw8w1nGXT8N5WO+Q/tZIPECl0=;
        b=h8Vstuvgt8ZYD5Z446xkHqQzraQT5EjrXj37GmnwXBrqqhtAAUe8nGH1vHlnR0Fr5B
         SuFsjlMDS9tlAmA6sgs3zia16W+ztlgmt63NXzNEzO+1Qgkxu7G4so5BZOrOJXalRkuq
         JNHMyL4cU+rd26dndbTweZY3iJvdYmKl0BZJ2m0LqehDTJD9kuxAZ5ssMcyaTH6MyblQ
         jMUEDpFxxho0jGQtkMigt7Si75aRAistGeB8+5Oy7RgGe5KwkRSEWmPYoKgVli6lYZTv
         qqDf7gfN4eiPsLrYRYUfq8HSZzmqVNYhE4RkCdPdo4yIwdiiI5zFqZMroOs7JDi+q8kt
         bB5g==
X-Gm-Message-State: AOJu0YxCOhxzEbFDPDqzDFYvHLOMgSq9StEKrwgGx2GDZ9UIW41wkGTD
	VAokZFyKweUHUvhEcyI9LdKsc7hx1OenoQ==
X-Google-Smtp-Source: AGHT+IHPy5ZRR8F3/DJJfAo0g0ZMxQSLEum+EVDv1LlHasI6KrOQvr50FamJZ8lSeYASiPEh9zpc6Q==
X-Received: by 2002:a1c:720c:0:b0:402:8896:bb7b with SMTP id n12-20020a1c720c000000b004028896bb7bmr956588wmc.6.1695902368910;
        Thu, 28 Sep 2023 04:59:28 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <f40e4a00-cc87-425a-93fa-3e569607f7db@xen.org>
Date: Thu, 28 Sep 2023 12:59:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 1/5] Fix Length calculation in PdoQueryId
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
 <20230913141524.2046-2-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913141524.2046-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 15:15, Owen Smith wrote:
> Decrease Length by the string length of the current ID before moving
> the Buffer value to the end of the current ID. Without this, Length
> is not decreased, leading to potential issues with the next call to
> RtlStringCbPrintfW.
> Note: second chunk it to maintain consistent ordering of operations,
>    and is not a functional change
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenvif/pdo.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)

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

> 
> diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
> index 1d163c9..d43702e 100644
> --- a/src/xenvif/pdo.c
> +++ b/src/xenvif/pdo.c
> @@ -2100,11 +2100,11 @@ PdoQueryId(
>                                           Revision->Number);
>               ASSERT(NT_SUCCESS(status));
>   
> -            Buffer += wcslen(Buffer);
>               Length -= (ULONG)(wcslen(Buffer) * sizeof (WCHAR));
> +            Buffer += wcslen(Buffer);
>   
> -            Buffer++;
>               Length -= sizeof (WCHAR);
> +            Buffer++;
>   
>               --Index;
>           }



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:04:24 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:04:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609560.948683 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlpkl-0005Y6-Qb; Thu, 28 Sep 2023 12:04:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609560.948683; Thu, 28 Sep 2023 12:04:23 +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 1qlpkl-0005Xz-O5; Thu, 28 Sep 2023 12:04:23 +0000
Received: by outflank-mailman (input) for mailman id 609560;
 Thu, 28 Sep 2023 12:04:22 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlpkk-0005Xm-LF
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:04:22 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28eb244f-5df7-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 14:04:22 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4053c6f1087so120957715e9.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:04:22 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 c20-20020a7bc854000000b0040652e8ca13sm948614wml.43.2023.09.28.05.04.20
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:04:21 -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: 28eb244f-5df7-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695902661; x=1696507461; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=mXfIna+sRLo6rn1EylOrF0G40zctBbiCoL1GiIQpgWs=;
        b=NcmWaC84VjlIWmJzvEECHYP9JXYg7Tlyw9UeAXF8KD+ltPImBjkHt9cqrqkpwe4eAf
         xq+Dk55CO2wNKR1jdLlYpZ4RTLZlUnhEoZOpJ7AKmxbehcgbkPFsr2Rwtw3C1hq6bP67
         8+XxO35yV68RizIOTQaFkzOOY+1aStJ3MeuTt3Lu0OuRoO+1g2JTv7IPVsNPyOKZ2vVL
         F+FtqmWZc1BLBWBUKvqJlfKtA0a9kuOXexEsXvyWMKquUPoIZOMywvCtiGmrGTIoGNmf
         /9opj4TdnS8K5SEfQTHvGvF2QbqbTjHk98nLCVm3rzePfR3m51SSI2vXnePsEHO43h2n
         umxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695902661; x=1696507461;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mXfIna+sRLo6rn1EylOrF0G40zctBbiCoL1GiIQpgWs=;
        b=XG44mZQKd+QWCdRh8hVMJwqMVGVyG8mWqk0i2bi+6ykDQajklv2HalWg8GWGuIrvo/
         EIHDcWlZ26IAKx5qMs7UAjQEgPEWA0vadpf5xoIfbRBc1yVxrD216t+ARrUYseA/yXgs
         +BnYGD9fhXWVWXN8s8HLEbrptzg7vwIkGnj4pGzch5Nq1qa3GCf+jT1s644IDpMnR0e9
         TneaP4H0JYkvlJSNaFPXqnTjpLv86vjTOZl1oHGphsK0Jos8t1gs8Tx5bzayA8K4nP5b
         SWVjqO4oCXsCNZDYiBptAfLtPQ99ynTu1+RB49osbqpixgHeIadp2dUAKawSOQ3R0AgH
         1WOw==
X-Gm-Message-State: AOJu0YwIMU69g+TXVP0kDcpd/B9SiC0TNhGCSPKg0uzMXPIWA/bMun/I
	HK2s8oyoRPMRi1dmQwhGWuh9PvDRJyjpPA==
X-Google-Smtp-Source: AGHT+IEaDFeeNwNWKDyV2bgFdxPd8OjRqCrWeycF9sbPlGu5/fQtwyfrQeoJj/P1Fk+lAoq3p340iw==
X-Received: by 2002:a05:600c:22cf:b0:405:4776:735a with SMTP id 15-20020a05600c22cf00b004054776735amr1119540wmg.2.1695902661355;
        Thu, 28 Sep 2023 05:04:21 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <1e082d1e-a844-447e-a0f2-2db6d517d142@xen.org>
Date: Thu, 28 Sep 2023 13:04:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 2/5] Remove REV from DeviceID
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
 <20230913141524.2046-3-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913141524.2046-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 15:15, Owen Smith wrote:
> Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child INF DDInstall
> section (stored as matching device id), but use the DeviceID to generate the device
> instance path. By keeping the device instance path the same over upgrades, the network
> stack should identify this as an upgrade, rather than 'replacement hardware', and
> not generate a new network connection, which would require network settings to be
> copied from the existing network connection to the new network connection.
> 
> Note: This introduces a strict requirement for child device INF DDInstall sections to
>    reference devices by the full (including revision) hardware ID
> 

Do you have a XENNET patch for this. What happens if I install an 
existing build of XENNET on top of a XENVIF with this change?

   Paul

> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenvif/pdo.c | 11 ++---------
>   1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
> index d43702e..2e47be2 100644
> --- a/src/xenvif/pdo.c
> +++ b/src/xenvif/pdo.c
> @@ -2062,18 +2062,11 @@ PdoQueryId(
>           break;
>   
>       case BusQueryDeviceID: {
> -        ULONG                   Index;
> -        PXENVIF_PDO_REVISION    Revision;
> -
>           Type = REG_SZ;
> -        Index = ARRAYSIZE(PdoRevision) - 1;
> -        Revision = &PdoRevision[Index];
> -
>           status = RtlStringCbPrintfW(Buffer,
>                                       Id.MaximumLength,
> -                                    L"XENVIF\\VEN_%hs&DEV_NET&REV_%08X",
> -                                    __PdoGetVendorName(Pdo),
> -                                    Revision->Number);
> +                                    L"XENVIF\\VEN_%hs&DEV_NET",
> +                                    __PdoGetVendorName(Pdo));
>           ASSERT(NT_SUCCESS(status));
>   
>           Buffer += wcslen(Buffer);



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:07:31 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609571.948688 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlpnn-0005rh-3E; Thu, 28 Sep 2023 12:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609571.948688; Thu, 28 Sep 2023 12:07:31 +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 1qlpnn-0005ra-0J; Thu, 28 Sep 2023 12:07:31 +0000
Received: by outflank-mailman (input) for mailman id 609571;
 Thu, 28 Sep 2023 12:07:30 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlpnm-0005rU-1f
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:07:30 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97c37a1d-5df7-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:07:28 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4053c6f0e50so124815825e9.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:07:28 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 f17-20020a1c6a11000000b00402f745c5ffsm19950551wmc.8.2023.09.28.05.07.12
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:07:19 -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: 97c37a1d-5df7-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695902847; x=1696507647; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=HTyGBzi/fMp5y++dV9GLmEoZycmj+gjKNjsC+UsOTTA=;
        b=XZTt11hjw6FZEpnnvsKTCLxgdMEX4yrhuGa9B7wWTVJoOnXQgGTYnYjnGChqzjRZSz
         V7kVXC3S7OxI3PumrAfBQg4eDQhPlp4E8NqFBPlPj8JZgAI5lnFohgJv3qL20SnLs2F6
         aZbxCt3Ekxm0qZ7g2ePUmqFpaFSktNur6PwfohGWijXpm/1VKCfVx/CO+j9zJLkTC+GT
         opqJ3MinaMU1ISxW7d2fu905rbE51tIaIr1l78gpyQwIU+D5a8uXqO1Pn2BwE4t4THkh
         qjsDCnj72kGLhMOmcfGh4URUD7GY17An3GVHNbnxVav6quJaMzCQJ0AJzxwloIKtC/qI
         Rj/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695902847; x=1696507647;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HTyGBzi/fMp5y++dV9GLmEoZycmj+gjKNjsC+UsOTTA=;
        b=FYx8LxilC301cBy2zD02SWNZO2Nznz1Ym6jKx3xH2XJuxSbYjlsifugmiKZv2phTF2
         j/WhBN5yo6gH/kh74ziXJG9Y1yU9OhjVqDBLa3nXO07kPPoD+LlUoqB7DSjKmX+pVVuM
         m4b2Qfo1+z9K6HXctIj6sFEsuNiUASdbvpYy3/3e7O2cvlghpOnRhLBJLoPUOiqqXbFs
         k2o9jkJ7zE4P+bhOEhpxnjAecbw7yHBBFQC1ID93hfYNkDP8zrYnRPdh6XtTEHBawCzs
         rw+n3cjaiQR8hhiWOPkv9QbBpHa8u12raEDAtDssMPYMscgZJfGzuWqEYjtTt5yLdAIP
         r5VA==
X-Gm-Message-State: AOJu0Yyxyf7jAQi/he5658labmxezpOlcXz/LQPUgnClBqnToTzCfmhh
	gXYXTazRvqMIVxxB+1Gu0tktVsCVYGmEAA==
X-Google-Smtp-Source: AGHT+IGWQREhVgMoRsNRhH04IZHuoswWqvw90Rs8WN3BlAoyKiA/FjsjrKHZ0RtUxEvBdO/YTVqtWg==
X-Received: by 2002:a05:600c:2258:b0:406:513d:7373 with SMTP id a24-20020a05600c225800b00406513d7373mr1028476wmm.11.1695902847348;
        Thu, 28 Sep 2023 05:07:27 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <4ef3290a-57e1-4df5-a8a7-dbdb67098c27@xen.org>
Date: Thu, 28 Sep 2023 13:07:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 2/5] Remove REV from DeviceID
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
 <20230913141524.2046-3-owen.smith@cloud.com>
 <1e082d1e-a844-447e-a0f2-2db6d517d142@xen.org>
Organization: Xen Project
In-Reply-To: <1e082d1e-a844-447e-a0f2-2db6d517d142@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 28/09/2023 13:04, Paul Durrant wrote:
> On 13/09/2023 15:15, Owen Smith wrote:
>> Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child 
>> INF DDInstall
>> section (stored as matching device id), but use the DeviceID to 
>> generate the device
>> instance path. By keeping the device instance path the same over 
>> upgrades, the network
>> stack should identify this as an upgrade, rather than 'replacement 
>> hardware', and
>> not generate a new network connection, which would require network 
>> settings to be
>> copied from the existing network connection to the new network 
>> connection.
>>
>> Note: This introduces a strict requirement for child device INF 
>> DDInstall sections to
>>    reference devices by the full (including revision) hardware ID
>>
> 
> Do you have a XENNET patch for this. What happens if I install an 
> existing build of XENNET on top of a XENVIF with this change?
> 

Oh. Now that I check, XENNET *does* use the full h/w id already. I guess 
what you meant was that previously this was not necessary.

   Paul



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:08:28 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:08:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609577.948692 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlpoi-0005zA-6T; Thu, 28 Sep 2023 12:08:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609577.948692; Thu, 28 Sep 2023 12:08:28 +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 1qlpoi-0005z3-3b; Thu, 28 Sep 2023 12:08:28 +0000
Received: by outflank-mailman (input) for mailman id 609577;
 Thu, 28 Sep 2023 12:08:27 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlpoh-0005xM-Cv
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:08:27 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ba3c425e-5df7-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:08:25 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40566f89f6eso100516465e9.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:08:25 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 f17-20020a1c6a11000000b00402f745c5ffsm19950551wmc.8.2023.09.28.05.08.23
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:08:23 -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: ba3c425e-5df7-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695902905; x=1696507705; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Rmk8tYhUkJoNcSFUH/OuEqCiDTau2ve4IZBMoBhJWdI=;
        b=QrQ/qol1B6AasJPwesfVFKOk8hEbW+abRxJyome5iU9zoW91UqGjO8nbx4XOEuk/vl
         tNnXfKGg4/d58QQfcybSEtx+BPHUO4u/uKBzWiWqvwLUynkk7FSIvmz04OWTKp4cpc50
         K7YeEt9VaABd5Q23wju+E37SkIPC5wpCROtI5/526RUkekynXhUTnT7BTX2jGz+Gts14
         y9FoY7L2rSF+hRfy6gaafHV7lY8YPJ7OTsmgo1lEpTgXdlFGnioxX+V75XZtQ96k1xfT
         AnWJR3Zw8Q8wGkQ00BGaUZClFOiHuBuceL2ZzxwJzbW4J5rXS5UMcjVKjd4dEYv5NSt1
         Bhhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695902905; x=1696507705;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Rmk8tYhUkJoNcSFUH/OuEqCiDTau2ve4IZBMoBhJWdI=;
        b=IFs0jxn3xRURr8Rre7jPMVEXe9uUDc4XEO+tK1JLnwVmq/ZTY6zxmRUhKtobIhtbq/
         q+vtwAVqchRfPFVYT1cTaNUIBBSKX9nc7u5FFo5W29+14tf95D9o4ma3e9G0IOrngxG/
         j2NFkllgU+m2qqg8Yfgqcg74oC2Vdd+YeztAZkN0DQcglScI7I/GGUhfjeP2IxwltBEg
         fo+WyXYElox8IPzdC5W+NUf9RjR/6igBt6Rc5/HCB3G6ot+9c0teZ0qQ4F4YO9ShS4I1
         3ebp8Q6eeky3E6WhJKLtoqmkJV+rTEBHhjueFvLc3qGpPlF+fD5H0E448vmZJgoc0fuT
         ctYQ==
X-Gm-Message-State: AOJu0Yw+MzELCtHU6RRNK+bhT1aSt1mxKcbX+cK/5iHzKUwMrxT/lbRq
	uTJy5fnd7bQaE4kzDvyjGBCUdM4dr98uJg==
X-Google-Smtp-Source: AGHT+IEbYMSf1Y7/T80clWUoPsT7ynIP3Gv7t/y7H7opKLoqkU2BlGQF7Uo52eUmjxiVCDhrO+mw/A==
X-Received: by 2002:a05:600c:2116:b0:401:519:c9 with SMTP id u22-20020a05600c211600b00401051900c9mr998109wml.13.1695902905276;
        Thu, 28 Sep 2023 05:08:25 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <c4ef4bc1-36ba-4a19-9ea3-f424f3e8f671@xen.org>
Date: Thu, 28 Sep 2023 13:08:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 2/5] Remove REV from DeviceID
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
 <20230913141524.2046-3-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913141524.2046-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 15:15, Owen Smith wrote:
> Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child INF DDInstall
> section (stored as matching device id), but use the DeviceID to generate the device
> instance path. By keeping the device instance path the same over upgrades, the network
> stack should identify this as an upgrade, rather than 'replacement hardware', and
> not generate a new network connection, which would require network settings to be
> copied from the existing network connection to the new network connection.
> 
> Note: This introduces a strict requirement for child device INF DDInstall sections to
>    reference devices by the full (including revision) hardware ID
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenvif/pdo.c | 11 ++---------
>   1 file changed, 2 insertions(+), 9 deletions(-)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:09:14 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609589.948705 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlppS-0006aM-Fl; Thu, 28 Sep 2023 12:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609589.948705; Thu, 28 Sep 2023 12:09: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 1qlppS-0006aF-D6; Thu, 28 Sep 2023 12:09:14 +0000
Received: by outflank-mailman (input) for mailman id 609589;
 Thu, 28 Sep 2023 12:09:13 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlppR-0005xM-0Y
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:09:13 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5676836-5df7-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:09:11 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4064014bca5so45655475e9.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:09:11 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 f17-20020a1c6a11000000b00402f745c5ffsm19950551wmc.8.2023.09.28.05.09.09
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:09:10 -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: d5676836-5df7-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695902951; x=1696507751; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=aBKApG0OFcYxFVnxYn2Ri38dLrIJRZyHQKEDErVE6YQ=;
        b=m7YdDBI7RncMV/s9IBs/mheklGEBkdgJ4u0cJvIoHoBCCBqEqTrjUZSjW844eWNflC
         Q4Gp61c1uazrzHakJRBdHz8Wzi/dP7F/ullCugbYi4xI6rhlr1cF8qUKUUs1tgn+RuhS
         y3r28SZTwU/Phzer5ALlpC3aHtTRPDVpgEibqDnNJXWlhb/RJmGtEemWmF+l7qqygJ+H
         /9f/h0c8RNoplPnEKareWlgA609PNYR1VzbMPHubhJSiGsoYFts+7Fw0ossVECrnB3nV
         UTDp3BFwZ+oZh8C0H8YrSxJdEqOsa1HxywKtt3YWu7/E5YNa6dw0clqEY/oGars+wZ4w
         xk0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695902951; x=1696507751;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aBKApG0OFcYxFVnxYn2Ri38dLrIJRZyHQKEDErVE6YQ=;
        b=icpP0VDuYfFfNC+ohJ8m+DpCGcS/WKXQGeanHpOJ6H/j4daEdxD4hbkGQdJ3cZjpeW
         SNg/E0TEvuwCvimsPx79gaQIG7j2AWO5dmpKUbyCwzFRaVqm32YTgyYoqzxxdM7oDvmu
         fNz2V39cMrTuEc7Zn47GLJtCGzuQGNd/qcEF4SkH5Kg+V2RI5Qw8CYpr80XwFueJxNA9
         NP2+jnd/4IQbaBBF+c2Im85EJUwJ97djEVL0/43MzBK+Csr4qXfzWlwlDNh3aQjpAOPT
         C77MhBCUsm8A2ZBwK/g8z40nCpS6JJS3r/3pzUvTAys69U9G98vkaMGwqTj3/t07tJQh
         3isQ==
X-Gm-Message-State: AOJu0YwO+FEmiWW775beHokP1zF0RBokiqyN4Es4QGV0AhcyU6YBUQk2
	nU23nVXySLNul0vYwPQBU7r1TkEtJZOybQ==
X-Google-Smtp-Source: AGHT+IEkwTIgOr0hLVquZGzwe3jIy1fv5hJgVc7AimGPEMYgf4cN3ZPyP30k8UAqh3HUbAPRsSjmbw==
X-Received: by 2002:a7b:cc8d:0:b0:401:38dc:8916 with SMTP id p13-20020a7bcc8d000000b0040138dc8916mr1077169wma.10.1695902950857;
        Thu, 28 Sep 2023 05:09:10 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <c0e43283-e126-489b-824a-3ca7fa9593af@xen.org>
Date: Thu, 28 Sep 2023 13:09:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 3/5] Add Unplug v2 (REV_0900000A)
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
 <20230913141524.2046-4-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913141524.2046-4-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 15:15, Owen Smith wrote:
> If NICs have not been unplugged, do not start PV network devices and trigger a
> required reboot.
> This is to avoid the upgrade case where both emulated and PV devices could be
> present, due to a 'revert to emulated' policy and emulated NICs not currently
> getting IP configurations so the HasAlias value is not determined correctly.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   include/unplug_interface.h | 30 ++++++++++++++++++++++++++++--
>   src/xenvif.inf             |  6 +++---
>   src/xenvif/pdo.c           | 23 ++++++++++++++++++++++-
>   3 files changed, 53 insertions(+), 6 deletions(-)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:11:54 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:11:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609596.948710 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlprx-00081x-My; Thu, 28 Sep 2023 12:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609596.948710; Thu, 28 Sep 2023 12:11:49 +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 1qlprx-00081q-KF; Thu, 28 Sep 2023 12:11:49 +0000
Received: by outflank-mailman (input) for mailman id 609596;
 Thu, 28 Sep 2023 12:11:48 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlprw-00080V-64
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:11:48 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31bdbca7-5df8-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:11:46 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-40651a726acso5812915e9.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:11:46 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 v29-20020adfa1dd000000b003247f732c07sm2603890wrv.12.2023.09.28.05.11.44
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:11:45 -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: 31bdbca7-5df8-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695903106; x=1696507906; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=fxc02VB4LM0FLnrS3Hwd/PQmC1dupdI7UJ+GWb35rTs=;
        b=YnF3wl0niRtG82XlZPb8OgmxWX20Bk/GS3JNwbV1ve2JM3UzSbHTGF2e4tiAAAy6sL
         qSKU43/XWaswR6qwOOsOYZ7U6I2wslGFKxIDbBvJUn2zky84taPWEd/5B8+ON5dpOSFE
         2TiGKtwMwq/rOUZjD//T9ic6K7tR8DUI5mhagcZ2/ms6H1ehGkSHGAM7yOrp9JMmPcwK
         l641m44mCzeOKFSnsaflp5hSYVkvpa+PQ5wSQFaKrimAgQpwEYg1wts2/k9y1kJ5sw4i
         LvYF29D+SgkwR/WYMbIeyThBYH3gQBEZ3wMYNVp3CACZ+IxAxOeO1lwekKfFjrxBB8eW
         oSgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695903106; x=1696507906;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fxc02VB4LM0FLnrS3Hwd/PQmC1dupdI7UJ+GWb35rTs=;
        b=rohigOaPQo6PAgVcsrqYNGSTz0i7NuHZsR6ULcDBTdr6yHhV664KqjymY2pEjxa7E9
         Q/llblkyndCbyg9sTK0nI3Yg+QVJJMV9PauDygtLKUS9yjy4csOMVYm+9ng3LrNPGVC0
         HzbU/vwVeqX4/DQ1OYeDPpl2wzqOxwleVW5xjKx3NrQXcjALq7jdzEy9n/VT6k/jz45/
         fxmUOd/B7lWZOCsrheSKn67NxbYZizWwJZaOzJ/PgsmUO062aCf0HuOpeEak+WcYgzar
         +rH412V1LeliqHq54nJ0nnrYEzVi182qb3zkzY7yEtfBxh2T/REZd/uuiX8NZs884y4r
         kiiQ==
X-Gm-Message-State: AOJu0YwtQdqakCHMO/jmNF3CFpmAeyUdF/vXtGzo8ex5zGQx+eLyFBuU
	4l8cv7HIi0O26cxA8/mUekh5Juogm00kSw==
X-Google-Smtp-Source: AGHT+IEVm2f3a0t8AbMnOH0B+3DHLO/f/BrHHvqSMrh9JdvhZr/erD0QSoLn5OpsT5MAMP9uvbbpjw==
X-Received: by 2002:a7b:ca53:0:b0:404:fc52:a3c6 with SMTP id m19-20020a7bca53000000b00404fc52a3c6mr1081445wml.25.1695903105612;
        Thu, 28 Sep 2023 05:11:45 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <11d029f7-da6f-4995-815a-6f2fd851cb81@xen.org>
Date: Thu, 28 Sep 2023 13:11:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 4/5] Remove CoInstaller from INF
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
 <20230913141524.2046-5-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913141524.2046-5-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 15:15, Owen Smith wrote:
> Windows 11 22H2 WHQL requires INF file pass "InfVerif /k", which highlights
> several issues
> - PnpLockdown=1 needs to be specified
> - CoInstallers are no longer allowed
> 
> The CoInstaller has several functions that will need alternative solutions:
> - The AllowUpdate mechanism is no longer possible
> - The safety checks that ensure interface versionings remain compatible
> - The writing of 'current' network identifiers to the registry in order to
>    copy network settings.
> 
> Interface safety checks need to be handled by changes to child device bindings,
> and assuming upgrade via emulated devices is safe. The unplug key is cleared
> in the INF to revert to emulated NICs on the next boot, incase the current child
> drivers rely on an interface that is no longer present (note: in this case,
> child drivers will need updating).
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenvif.inf | 17 +++++------------
>   1 file changed, 5 insertions(+), 12 deletions(-)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:13:24 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609607.948723 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlptU-0000OS-9e; Thu, 28 Sep 2023 12:13:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609607.948723; Thu, 28 Sep 2023 12:13:24 +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 1qlptU-0000OL-6x; Thu, 28 Sep 2023 12:13:24 +0000
Received: by outflank-mailman (input) for mailman id 609607;
 Thu, 28 Sep 2023 12:13:22 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlptS-00008p-QJ
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:13:22 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a460d25-5df8-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:13:21 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-401d6f6b2e0so92414025e9.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:13:21 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 v29-20020adfa1dd000000b003247f732c07sm2603890wrv.12.2023.09.28.05.13.19
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:13:19 -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: 6a460d25-5df8-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695903201; x=1696508001; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=yVD5OhtoO5NJuvz8ZH3TgC8HxjE761COFUKqFP5YG1s=;
        b=SdReABTpxTpleaF6xYTMVTebqJOjKtt2w3pROeYcwnFwjuZssnFH0KVMO43dGSTqrI
         uBSKG9V7pk+2JSkkUkpWZ2TNPRrCbRQ8fmDTP4XdLUAGAOLpVmkA21Y8iup8B+HmCK3E
         GjoyGWzRqpOgBP244S1zjMNE2VIeEyapx3EfbRl2cdMygrFqAr8AraX1l9LGNDrdSKEQ
         wKMnQ9OeKjbgqRdgMJQ2U2pIWzJFAO+wWdUe5MkqHTrR8O9paaPetKkQD03nnedTRpuN
         r8bTmxeR3JQSPVV+wXctp6qtgOekp9B9qRDY2lvBu9iqyxv6YVzeRIDZSqe0Wizylsck
         gkZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695903201; x=1696508001;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yVD5OhtoO5NJuvz8ZH3TgC8HxjE761COFUKqFP5YG1s=;
        b=A5BWs33JLKlG1D6L/DK2HTUt5OGqj/fjaLSzLwSP60pdug/XjsGq/mujFsBgxtVQMa
         t78U09hfN8bkhM/K0qOQ9e8QRzbyNzCO3luLd0YMCxaDRqVnJA0RFxcik9SaUhJhcVL2
         bI+q57x/vD1kz5ETtmgTZXrNN42Iam9n50TMIBCgnBIKwHGpSVwasef5Gv8ILzyGDkqg
         gSmy4z1PBm05PXQZhVvwwT5Y2lPghso21pEPC1QH58pu8RRdp/hGInemrf6PVivCTt1x
         TKfeumQIphpo7O0Fpt1Isy4VAde/hJd38Ew/rXWGQDJkWoIUXJbGDIDhIvC/LIx6MqX1
         MV9w==
X-Gm-Message-State: AOJu0YweKALC8jc4MfZPjxXTKHEirDvdDxYjGazorgpRcf7+WHLuMYBD
	OhGxKo0bwv/Ni5/+iZF0oBCVB2ZQtuQljQ==
X-Google-Smtp-Source: AGHT+IGDbKC3ye4yhYD/i5iFpWNlCvQBwjg+L2UW5E45522NPT85j+acdZILcu/VexgcwvgjKx9sEg==
X-Received: by 2002:a5d:5265:0:b0:314:314e:fdda with SMTP id l5-20020a5d5265000000b00314314efddamr1208573wrc.23.1695903200598;
        Thu, 28 Sep 2023 05:13:20 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <b7585442-e0f9-466a-8ca9-915c799273eb@xen.org>
Date: Thu, 28 Sep 2023 13:13:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 5/5] Delete CoInstaller code
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
 <20230913141524.2046-6-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913141524.2046-6-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 15:15, Owen Smith wrote:
> With the CoInstaller removed from the INF file, delete the CoInstaller
> source code and projects.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/coinst/coinst.c                           | 1732 -----------------
>   src/coinst/xenvif_coinst.def                  |   38 -
>   src/coinst/xenvif_coinst.rc                   |   57 -
>   vs2015/package/package.vcxproj                |    3 -
>   vs2015/xenvif.sln                             |   26 -
>   vs2015/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   vs2017/package/package.vcxproj                |    3 -
>   vs2017/xenvif.sln                             |   27 -
>   vs2017/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   vs2019/package/package.vcxproj                |    3 -
>   vs2019/xenvif.sln                             |   27 -
>   vs2019/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   vs2022/package/package.vcxproj                |    3 -
>   vs2022/xenvif.sln                             |   27 -
>   vs2022/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   19 files changed, 2250 deletions(-)

That's a lot of code :-)

>   delete mode 100644 src/coinst/coinst.c
>   delete mode 100644 src/coinst/xenvif_coinst.def
>   delete mode 100644 src/coinst/xenvif_coinst.rc
>   delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user
>   delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user
>   delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user
>   delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user
> 

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


From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:14:59 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:14:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609617.948728 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlpv1-0000yX-Fh; Thu, 28 Sep 2023 12:14:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609617.948728; Thu, 28 Sep 2023 12:14: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 1qlpv1-0000yQ-Ca; Thu, 28 Sep 2023 12:14:59 +0000
Received: by outflank-mailman (input) for mailman id 609617;
 Thu, 28 Sep 2023 12:14:57 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlpuz-0000yG-Fv
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:14:57 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2f6d349-5df8-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 14:14:56 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-31f71b25a99so12695879f8f.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:14:56 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 v29-20020adfa1dd000000b003247f732c07sm2603890wrv.12.2023.09.28.05.14.54
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:14:54 -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: a2f6d349-5df8-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695903296; x=1696508096; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=90lJqy+bP7LKxStSytv2Ngl6ICItqES/K+neKVjwey8=;
        b=X5btfjEDaQ5dXAVVbJCRm7GzHh6/XBMUraoY82EdkVooUiid1hbJPSJmBB/C2pJ7yk
         PY+pcVHLTnZOWX3ozNClRWJ1ZCaKmKGi9StwycmjuifQnOr0mG/lg96+hBNjkpuD7xvx
         8vZROgUWyKFZmjJ5LkEgR0wS64yaY1SnXQvl4n0BEllPWp8yLmnxuDwuquiaJduXjEfI
         QNA5LehrYROrlyMo9q2j3yyNmVSKUf9gG6hrToQglHfwHCVN3aZJb4JoIT2bbrAouOkr
         OFuNryn43M9/UexK42+S4fbonVhP5qzyu6X6jdtT/j156Z2BGTlsG1oc1s9GgncyuYNS
         G7UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695903296; x=1696508096;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=90lJqy+bP7LKxStSytv2Ngl6ICItqES/K+neKVjwey8=;
        b=Eg06txl7uFMelNgsZfrvVCuJO4hgZLZYrdJhoTCfy2nu+kW34f3QI1Q9OiG39OVdrz
         iFDYSZhqCyvZF5xewhk60NAHVvsKYlBZVx/Anb6P6kimdF7y8QiQuxivZp/DHeQfDyuE
         t1tiW/p4R0WH93t0skqhRD9RvB8t7jCB0MaDnjXCk5i/Jn6zE2PDbkeXsCEvpZ86Of5D
         JNPLRJ7PPIynFyJfDrThhLEgGDZI/99vzRix2dG+26fiPe0kDMfZl70+F+8aFw8EJ7kh
         GMx5W6Xzbr0Rk6azICcRdMrGU/lC/vCsckqBSakYYeFzSiAGR4XerNdZ/2Zufmj+PTCw
         K+mA==
X-Gm-Message-State: AOJu0YwHYHnyPpl9BK5srblBdD9NVCr5UrSpXk4PWsk9fjNDY9VL1iPf
	NUnOwMsQ3IxhO/ZRQ93HYatvyA/7V14u3A==
X-Google-Smtp-Source: AGHT+IEpmck8f2w0AdwRXAeUn20tbeW9fY/cwQmXu2c09V1SSo3jcTK6FvyYnqYVs1oO+lz4Dv0weA==
X-Received: by 2002:adf:e6c7:0:b0:321:6953:6ad6 with SMTP id y7-20020adfe6c7000000b0032169536ad6mr1013953wrm.16.1695903295270;
        Thu, 28 Sep 2023 05:14:55 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <51913dda-9773-489a-8faf-5b88dc0e9c05@xen.org>
Date: Thu, 28 Sep 2023 13:14:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 0/5] Remove CoInstallers
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913141524.2046-1-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913141524.2046-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 15:15, Owen Smith wrote:
> Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
> The current CoInstaller handle several edge cases that will need replacement
> implementations. This patch series for most drivers offers a potential solution
> to the removal of CoInstallers and the required changes to avoid upgrade issues.
> 
> CoInstallers have several uses currently:
> - Adds an upgrade block function with the "AllowUpgrade" value blocking driver
>    upgrades when set.
> - Adds a check to prevent XenBus upgrades from a different vendor / brand.

BTW I guess you meant XenVif here :-)

   Paul

>    This checks the current device name (if it exists) matches the new device name.
> - Checks all currently installed child devices have a supported set of interfaces
>    common with the new parent device.
> - Clears the Unplug keys only when required.
> - Correctly cleans up user mode services on uninstall.
> 
> The AllowUpgrade function has not been replaced - I have not seen this used in
> the current implementations of the drivers.
> 
> The vendor naming check is specific to XenBus, and I dont think there is a
> reliable replacement, and was intended to prevent different vendor drivers from
> attempting to coexist, or upgrade cases from particularly old versions which had
> a different naming scheme.
> 
> The interface compatability checks can be replaced with the matching if RevisionIDs
> in the INF files, so that child devices will only install on parent devices that
> expose a matching HardwareID or CompatibleID. This does leave the case where the
> new parent driver could drop support for an interface version that is currently in
> use. This will mandate a further driver upgrade, and should remove the Unplug keys
> and mandate a reboot where the emulated devices are present, to ensure continued
> operation. After this reboot using emulated devices, updates to the child devices
> should be detected and installed, requiring another reboot to revert to PV devices.
> 
> Unplug keys getting cleared on all upgrades should allow the next boot to use emulated
> devices, unless a subsequent install updates dependent drivers to use a working set
> of new interfaces. The requirement here is that updating any driver should always
> allow a reboot with emulated devices, should any further issues be detected.
> 
> I believe that, going forward, changing the DeviceID to remove the RevisionID will
> avoid the need to set network IDs and copy settings from the previous network
> connection to the new network connection. This change will mean the driver selection
> during installation/upgrade will use the HardwareIDs (with RevisionIDs) to match the
> ID in the DDInstall INF section (with RevisionID), and use the DeviceID to generate
> the Matching Device ID and Instance ID. This means that once drivers have been
> upgraded, the InstanceIDs should not change, and Windows should not generate a new
> network connection (with default settings) for the upgraded driver set - meaning the
> correct network settings are persisted.
> 
> I dont have a good replacement for cleaning up user mode services (xenbus_monitor
> xenagent and xencons_monitor) on device uninstall. This *should* be handled correctly
> by the PnP manager, but failing to stop either service should not be detremental to
> the operation of the VM. Selecting the "Delete Drivers" option during uninstall will
> stop and disable these services, not selecting this option will leave these services
> running.
> 
> Owen Smith (5):
>    Fix Length calculation in PdoQueryId
>    Remove REV from DeviceID
>    Add Unplug v2 (REV_0900000A)
>    Remove CoInstaller from INF
>    Delete CoInstaller code
> 
>   include/unplug_interface.h                    |   30 +-
>   src/coinst/coinst.c                           | 1732 -----------------
>   src/coinst/xenvif_coinst.def                  |   38 -
>   src/coinst/xenvif_coinst.rc                   |   57 -
>   src/xenvif.inf                                |   23 +-
>   src/xenvif/pdo.c                              |   38 +-
>   vs2015/package/package.vcxproj                |    3 -
>   vs2015/xenvif.sln                             |   26 -
>   vs2015/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   vs2017/package/package.vcxproj                |    3 -
>   vs2017/xenvif.sln                             |   27 -
>   vs2017/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   vs2019/package/package.vcxproj                |    3 -
>   vs2019/xenvif.sln                             |   27 -
>   vs2019/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   vs2022/package/package.vcxproj                |    3 -
>   vs2022/xenvif.sln                             |   27 -
>   vs2022/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
>   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
>   22 files changed, 62 insertions(+), 2279 deletions(-)
>   delete mode 100644 src/coinst/coinst.c
>   delete mode 100644 src/coinst/xenvif_coinst.def
>   delete mode 100644 src/coinst/xenvif_coinst.rc
>   delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user
>   delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user
>   delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user
>   delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj
>   delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user
> 



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:25:02 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:25:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609633.948742 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlq4h-0002gZ-EA; Thu, 28 Sep 2023 12:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609633.948742; Thu, 28 Sep 2023 12:24: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 1qlq4h-0002gS-BK; Thu, 28 Sep 2023 12:24:59 +0000
Received: by outflank-mailman (input) for mailman id 609633;
 Thu, 28 Sep 2023 12:24: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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlq4g-0002gF-Lw
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:24:58 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09a1caa1-5dfa-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 14:24:58 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-405361bb9cdso130871245e9.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:24:58 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 o7-20020a1c7507000000b004051f8d6207sm19990461wmc.6.2023.09.28.05.24.56
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:24: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: 09a1caa1-5dfa-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695903897; x=1696508697; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=4V4viszcEmhXL67eMdebH5BO/wxUI3yHo6zNcq5yXrs=;
        b=TH58p66hh4LbjDODLfvD+a1efOC0K2vaEbLkv9nuVswzvQRKmXGJiZhDaHbRW4ESxi
         b34jDl+hY6BdbcSS/oKGBQN+5C2jRb3Al4ir/5weJKd4Fgv9IXwHM7ukwY1pM9Qxr/ab
         rDourXbBj2etEynalb6DUk5V2fkPO2I2ck1uFdggkAkf5zOJ36TD1SgU1MCtE0giS2zu
         ZBFIOrrB2X3gUY/dD3/WrKI1qjTengwNt95aMqIHYW242RI8DOS1D/glYRlyliuqSAeg
         1qcicrnVJwk7o3VTpvIMQciu3DkSg2aTnC8N2Nqlfhduaje4JxAPYPFHkgjG1IYUn+W2
         39jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695903897; x=1696508697;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4V4viszcEmhXL67eMdebH5BO/wxUI3yHo6zNcq5yXrs=;
        b=oHZRliZqFgUkAN3NwO+h9iKv3ekL33H085TmXtmTUkgXue8OOxS1Ds09lzXwfwkxNy
         eiaxCO3iV5iyIM/WJAnT/nder3c+kIzq+KvuZ8NHq7C4KzoBU9FB4iscex3Hi9X+BzVp
         zLa+zG0CI9Mjhkwf8j4hZ5hI39ZoqhVa4uIX7FTeRcaceIzwyW3da6sxASZqvfJUQU6B
         wNygAowlGQ8w2opJnN0bhX+f0abMnw7/CeKqqeQ1uNK5mj+0WJsAwPurSf+MHiZemm2J
         Q/XJ58pJQVZnIvrbzSu1QcQ+41x62Xxy+zNv6LSsKReFQSRH67Be/Gu1ynEDbf4EwfPw
         qT/A==
X-Gm-Message-State: AOJu0YwKEqlF1leP/YcP9kvjmYffmc0ByDTQIqUlANIcvHHmWEszTnws
	hzwV84aTdjz88xOgjyJTTy7WhHu6Y7jXxg==
X-Google-Smtp-Source: AGHT+IEXHm9q8nAmwOCg5yVZoZ1UxI7LSTGkOM9YNSa8Pf78UvOEPqR8OZi5QjEvrRg/Vsip4YOeYA==
X-Received: by 2002:a7b:cd18:0:b0:402:906:1e87 with SMTP id f24-20020a7bcd18000000b0040209061e87mr1043509wmj.31.1695903897470;
        Thu, 28 Sep 2023 05:24:57 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <67982a2c-fa8d-4fb8-81f0-1c1d0a22eb9e@xen.org>
Date: Thu, 28 Sep 2023 13:24:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 1/6] Reset StorNvme's StartOverride
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913134519.1769-1-owen.smith@cloud.com>
 <20230913134519.1769-2-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913134519.1769-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 14:45, Owen Smith wrote:
> When StorNvme does not enumerate any devices during boot start, it sets
> the StartOverride value, which means that StorNvme does not start during
> the next boot.
> This can be an issue when attempting to revert to emulated boot, such as
> during a driver upgrade, as StorNvme will not be loaded and not take control
> of the boot disk, leading to a 0x7B bugcheck.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/monitor/monitor.c | 63 +++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 63 insertions(+)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:29:38 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609641.948746 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlq9C-0002p1-NA; Thu, 28 Sep 2023 12:29:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609641.948746; Thu, 28 Sep 2023 12:29:38 +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 1qlq9C-0002ot-K6; Thu, 28 Sep 2023 12:29:38 +0000
Received: by outflank-mailman (input) for mailman id 609641;
 Thu, 28 Sep 2023 12:29:38 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlq9C-0002on-CW
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:29:38 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b00b3e94-5dfa-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 14:29:37 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4053c6f1087so121217885e9.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:29:37 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 iw7-20020a05600c54c700b003fc16ee2864sm18307005wmb.48.2023.09.28.05.29.35
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:29:35 -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: b00b3e94-5dfa-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695904177; x=1696508977; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=VP/iRtKuEUhAk6/SWivtAwHXCs93vQOCywuBHvm5cLQ=;
        b=Uk4NHqYRFDfSFKMBx+ixcs8zYGR5bc1k/pytZuicdwttO+BDakYMYzR1ii0MgffzJr
         LgNcMvTokXuAwpEQDCaOmy0NdND66ZeshEZOdLVPIxStjW9hbbAsvUVhXxs9wR1UPVll
         bCLBtk+ptFKfHM0tXX3ClE9GIFAnXptr6bmD/wZhHQteoZ350Keo8Te0oJlSQSbrLEyu
         W/Zb5kcm9ModLDbOiE19q202a4YFy3aQvYjem6bGr4qjEHHAJDdxnEgIDnlOt+dDR9y3
         ypnOpoyoDnQOeJ3TYIYTDTMprdhKg3C+KxP1vlNd3BeY1igChyvsLki4H4pUIHzQ27Lc
         MEZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695904177; x=1696508977;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VP/iRtKuEUhAk6/SWivtAwHXCs93vQOCywuBHvm5cLQ=;
        b=iLi7zYyhQrR/G0QJGz9+yWD0Ncr4+SPhnqtaII45b9T+MuuH1vtUbjie6eJPL7DaA0
         PTDGVUjUTqZDPdBpuEFLumoIumycHgFNAOo2gEeFBUR6edemK5aPSeyDJ3f7web+6n4R
         3otFoEeZZVXZ6cqrOB6i/Wp0B+Slcym3q1raoI/mjdoReH+BviDfXeuKYxCUGeQjS/qV
         JDrafiQ57fw01R3YRvNl1kvuEvLBssN6rsGvroky86x6hY+LTYAx1su10emzqdI1xzyy
         kB+OH+b3Zg/P6KKGr+wn780jaFs1eGkXoOd0n4gMOjso5GsbTcKLaP4ZujHWLTy6SsTB
         aU8Q==
X-Gm-Message-State: AOJu0Yzdm96KV7hGjA6jMERjcFNXeEXrkzVH6ef8H+ec1UEvSxxh/WMN
	NBi4pOvMdDi4YNe1qRrq4LXUsB/yXjyV7A==
X-Google-Smtp-Source: AGHT+IEDU/Y+DMKUHTGHLdeygkXRur8O3tKKYOV9WtUoVclqhlmXqcl8z6ISZMzCz+Hvt8mET34SjQ==
X-Received: by 2002:adf:cc91:0:b0:317:5168:c21f with SMTP id p17-20020adfcc91000000b003175168c21fmr937270wrj.31.1695904176659;
        Thu, 28 Sep 2023 05:29:36 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <1e5f7aa5-f106-446d-b5f6-ab0f767602fe@xen.org>
Date: Thu, 28 Sep 2023 13:29:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 2/6] Fix Length calculation in PdoQueryId
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913134519.1769-1-owen.smith@cloud.com>
 <20230913134519.1769-3-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913134519.1769-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 14:45, Owen Smith wrote:
> Decrease Length by the string length of the current ID before moving
> the Buffer value to the end of the current ID. Without this, Length
> is not decreased, leading to potential issues with the next call to
> RtlStringCbPrintfW.
> Note: the second chunk it to maintain consistent ordering of operations
> for clarity, and has no functional change.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenbus/pdo.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:30:51 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:30:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609647.948750 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlqAM-0003jJ-Ql; Thu, 28 Sep 2023 12:30:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609647.948750; Thu, 28 Sep 2023 12:30:50 +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 1qlqAM-0003jC-OE; Thu, 28 Sep 2023 12:30:50 +0000
Received: by outflank-mailman (input) for mailman id 609647;
 Thu, 28 Sep 2023 12:30:50 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlqAM-0003iO-4A
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:30:50 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da806f7e-5dfa-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:30:48 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-405524e6740so110141795e9.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:30:48 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 iw7-20020a05600c54c700b003fc16ee2864sm18307005wmb.48.2023.09.28.05.30.46
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:30:47 -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: da806f7e-5dfa-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695904248; x=1696509048; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=v5SoAkCz0vpBqTbRnO7yotjdcal7axwXt9tOtB06m8Q=;
        b=iKsL3gJFXX8Vrae9NeowfgQS+k1zvqoN8KQPQ6cDnj7hi+lhw7iBe8lZAFmDCmdhye
         ckf1x3KzGu14Q6Ng1FUb9w4PlbqoARlaT995c4yjvmiZpP0GLSTOOAFna4sw0LgS0lTJ
         Bt+4jYF/1GHv/mk3rIif2iBPci+Q8L2c/xem+/QAiEvplAS+lMwIqrT97iPyq2rzY+h0
         zHvBh51OdYPLb8pLjWAFTVqNBySvhLKEsEuSs/RXFykZdZXddNsTQO2HLCD7gnwmOFCd
         vpOLEPUcTYqxRgU48f/QMZIUwnWhVdiARif6jaGozrfV9CSZ4xtikRhHE7SacXx9d52m
         nzLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695904248; x=1696509048;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v5SoAkCz0vpBqTbRnO7yotjdcal7axwXt9tOtB06m8Q=;
        b=w5uKqEo4hMMWDU57u0IqeKZ5Ls1BtVT8RDrrMsaMiCvf9tOryYgk6fBFzDomxjkgZR
         L1DTmypllcvZMbXz6YMo3A5jyyPKGe56cdO6z4weOZhjxyTCz7CopS18XZEvq33tOH+V
         8f66CfeqktdgcAxhcbt8NYM8aNYQuOw4LULPik7A3XRT6e7FH/HDwbHHcAiqy7QCC2lB
         oJVF7vQOrhFyjrwgJGz+0+ihRv7nVOXO4Ad3QDrSakXDWivBc9mVLQVI7q2iKWyRAIPk
         BKdspXpwFGCsWc6huVonI38Sn9rIoKuPR29CrD9KpRkVZ8JzwuDcLJJ+qjGz9AsNs04F
         lTSQ==
X-Gm-Message-State: AOJu0YxQkM6v8r+jGMG8VdYMQ+cNHx7mvRPMhopxFB9VQZ45xhg2oGSp
	1Fnx7x5tkFyS8db2LNLuZplOmKsiGBYHlg==
X-Google-Smtp-Source: AGHT+IG1GZWN2lbiY+By3Lf3w4nQmDJVXcZ+7NQse6TzD7CXCxHoRnKl5iFNJIx+++4naG5KD9rysw==
X-Received: by 2002:a7b:ce89:0:b0:406:44e6:c00d with SMTP id q9-20020a7bce89000000b0040644e6c00dmr1123663wmj.2.1695904247860;
        Thu, 28 Sep 2023 05:30:47 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <59684fb6-31fc-48fe-8a8b-a0a262011271@xen.org>
Date: Thu, 28 Sep 2023 13:30:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 3/6] Remove REV from DeviceID
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913134519.1769-1-owen.smith@cloud.com>
 <20230913134519.1769-4-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913134519.1769-4-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 14:45, Owen Smith wrote:
> Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child INF DDInstall
> section (stored as matching device id), but use the DeviceID to generate the device
> instance path. By keeping the device instance path the same over upgrades, the network
> stack should identify this as an upgrade, rather than 'replacement hardware', and
> not generate a new network connection, which would require network settings to be
> copied from the existing network connection to the new network connection.
> 
> Note: Adds a strict requirement on child INF DDInstall sections, to specify the full
> hardware ID (including revision) to guarantee interface versions are correctly supported
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenbus/pdo.c | 10 ++--------
>   1 file changed, 2 insertions(+), 8 deletions(-)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:36:56 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609659.948763 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlqGF-0004sK-Fy; Thu, 28 Sep 2023 12:36:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609659.948763; Thu, 28 Sep 2023 12:36:55 +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 1qlqGF-0004sD-D7; Thu, 28 Sep 2023 12:36:55 +0000
Received: by outflank-mailman (input) for mailman id 609659;
 Thu, 28 Sep 2023 12:36:54 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlqGE-0004s7-BJ
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:36:54 +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 b36ade5a-5dfb-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:36:52 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-405417465aaso121467295e9.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:36:52 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 e11-20020a5d594b000000b003140f47224csm1327434wri.15.2023.09.28.05.36.50
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:36:51 -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: b36ade5a-5dfb-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695904612; x=1696509412; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=n4LTUZ/kk26/p7kkVSU2FSU0TYu6T8PJZUY+ApDzgQU=;
        b=GU96FaXCyEJjHvOc4NiIKhklyzNWH31une+RNm00/OnQtyAy5OuDd4lCPzKqv27YU2
         OX3f5ZzTzeWW5p3qb3/nF9KbEHQqaWflBsaHghieAivCRaa0c0n4mb54CNtoDIuocauF
         SZLoxlnoL1cD0w20hnqRAhMPm6AyBKv+QC3sxbfvxZmS1QihlY2zva7K4xB/blbdxvqy
         bb1uQQmyjmD4ehLwxOGObwIeQIwmGmMHUpwXnn0rJaoh6WQ1U4EXTp3ys15jkKeE+Mm4
         UUGE0qnhXHwXhkBHPji5+eCVLn5I22EJPjIOIXOGo+hk6nCYBI9BLUelBT0J7ADpiDw1
         TCBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695904612; x=1696509412;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n4LTUZ/kk26/p7kkVSU2FSU0TYu6T8PJZUY+ApDzgQU=;
        b=BEsnFGIUIBmy9m1+0MDHwpau54nqlgNoob7/c5RJncXqy7F2kHW+uWWzrLtMlU+fI+
         FRc5oyaqD0DCbQfkxFBwezSQdLOzN+GE7lppbrhSDGT+PNVBR3aTshD/UvoKO9hXUNAo
         mZh2+r+HV/gVmt90ia3NA4VhQE+rvzxZw0gNxf2qF3gENBJto6MayPWq9OtJq7waGOrs
         T3qyUWCm8+mTvDVwUtuy4G7VWGLisYKKZqdgfeWt7ibP2XurqjMSHUqtUkrApNbPv6d/
         IPlz5jMWIXBvFh4RwerH7oJiCRkOqzuxrXx5mpUCcKYZaNrPniIMOw4avEvUh2o8YOXi
         /LqA==
X-Gm-Message-State: AOJu0Yyoe3xCa2u8noENnMfOxblPvkxg0p41NTGoZNlmjNNy+3KV1PUK
	QBnr9h6hqtCaesUjAbQoggwOB0QCMDoR5g==
X-Google-Smtp-Source: AGHT+IGfX1ov8tIgYIyI3P9ZUdSj/y2Vab1r8XEhUVXDftohZMh5YHbpn23WRfOEgEDfa3A1TaTquA==
X-Received: by 2002:a5d:6952:0:b0:31f:b7b2:d4e1 with SMTP id r18-20020a5d6952000000b0031fb7b2d4e1mr1060094wrw.20.1695904611684;
        Thu, 28 Sep 2023 05:36:51 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <c1a4e676-3e6d-4b52-8d0b-9dc718dc8127@xen.org>
Date: Thu, 28 Sep 2023 13:36:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 4/6] Add Unplug v2 interface (REV_0900000A)
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913134519.1769-1-owen.smith@cloud.com>
 <20230913134519.1769-5-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913134519.1769-5-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 14:45, Owen Smith wrote:
> Unplug v2 adds a query call to determine if a device type has had its unplug issued.
> This is useful during upgrade cases when the Unplug keys have been set to 0, and can
> be used to prevent XenVif from starting whilst emulated devices are present, but those
> emulated devices have not been assigned a valid configuration yet (emulated devices
> will receive valid configuration, but not at this point in the startup sequence during
> upgrade)
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   include/revision.h         |  3 +-
>   include/unplug_interface.h | 30 +++++++++++++++++--
>   include/xen.h              |  7 +++++
>   src/xen/unplug.c           | 15 ++++++++++
>   src/xenbus/unplug.c        | 59 ++++++++++++++++++++++++++++++++++++++
>   5 files changed, 111 insertions(+), 3 deletions(-)
> 

Not sure about the 'Was' versus 'Is' thing. I think I'd prefer 
consistency, but I'll deal with that.

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:39:38 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:39:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609668.948768 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlqIs-000658-OL; Thu, 28 Sep 2023 12:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609668.948768; Thu, 28 Sep 2023 12:39:38 +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 1qlqIs-000651-LK; Thu, 28 Sep 2023 12:39:38 +0000
Received: by outflank-mailman (input) for mailman id 609668;
 Thu, 28 Sep 2023 12:39:38 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlqIr-00064t-Vj
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:39:37 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 159530f9-5dfc-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 14:39:37 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40566f89f6eso100866555e9.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:39:37 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 l7-20020a1c7907000000b003fef60005b5sm12388825wme.9.2023.09.28.05.39.35
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:39:35 -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: 159530f9-5dfc-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695904776; x=1696509576; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=MAt+H61LwCCa3CTIU9sRhfos/ccYeCQwlzXHHOf0Q2Q=;
        b=m5XxQGxl+3VhZ7Dq658BXHiuj+ePbQwh/694zaMcHTmRYxCZyMEaUMezQRV2Rz0LT1
         BiCVAoYLQEy9PMYzqm5d3/nlTzwBxddQ+l0PPvoGpwPWbDMrCyNJVI+aJwcdW+q+mtuj
         QWgyvnAEpCIjgMajGyUaDSmuGJhaJNsySURdmFp0ggca1uXIpc+g80WdFq6EGGhuRyTJ
         j3blyOsKU6cQtRPZf/0fENovY4K0bPjDeqAInsuuYV63b6EaMcWvw9mfCcDfx4gviTTy
         tyuOR6HrV1NGH3HkvjBJWnL5JCrXwGpa2+bWawduT7XMi3AaZ8q68gF8ZLFNTVKkaysE
         cCeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695904776; x=1696509576;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MAt+H61LwCCa3CTIU9sRhfos/ccYeCQwlzXHHOf0Q2Q=;
        b=KI8+pOkWVx0ek+l4PU7lRy7fQGhn7ipfhs8fIbT/a0YtT7M+pbu1C9tqioWFXm7bn2
         p72nf1230y2OLohzNCwefua9iDppV6Yv2JvPLjlbdfnWssXbswBuojdRb7PXDc/kY0TT
         PXrATanjcSIkC8CK3fPTKtDHO4CwditVO1r2ySsE0t3rCvYLRN+VUE1yhkafZSL4mzIX
         fdAps7wy576Jdf7E98Y6p76NgPSzmK8OrurQ/+tEKgumbmCcpsEft3OSQZ00j4MQ3QMF
         C1R2yF3kwdRuknu+jzWmtL066y+MEBTdo87VwoXKChUj3ajTxgohKIBUFLnVfmWw/zhY
         Smpw==
X-Gm-Message-State: AOJu0YzxPt1jXXt1BLIEObw8hzjmVPiUPEcGqvtLRofIoiBpM2fK17dp
	hN9I3Ue6ML9Wrxj02xt0v3LEsZ0NNf6VkQ==
X-Google-Smtp-Source: AGHT+IG8C9yg5PQ45zMkZH++/+l3XTYodeuTTQaUJEPoS8WMlfkXnzla148FqThZbb956Ldd96/kMA==
X-Received: by 2002:a7b:ce16:0:b0:406:4501:9095 with SMTP id m22-20020a7bce16000000b0040645019095mr1243924wmc.40.1695904776452;
        Thu, 28 Sep 2023 05:39:36 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <f53c610d-9ae0-4b2e-9101-09fa711ee4e6@xen.org>
Date: Thu, 28 Sep 2023 13:39:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 5/6] Remove CoInstaller from INF
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913134519.1769-1-owen.smith@cloud.com>
 <20230913134519.1769-6-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913134519.1769-6-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 14:45, Owen Smith wrote:
> Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
> several issues
> - PnpLockdown=1 needs to be specified
> - CoInstallers are no longer allowed
> 
> The CoInstaller has several functions that will need alternative solutions:
> - The AllowUpdate mechanism is no longer possible
> - The ability to block upgrades from installing on a different vendor's drivers
> - The safety checks that ensure interface versionings remain compatible
> - The cleanup of xenbus_monitor on uninstall.
> 
> Interface safety checks need to be handled by changes to child device bindings,
> and assuming upgrade via emulated devices is safe. The unplug keys are cleared
> in the INF to revert to emulated on the next boot, incase the current child
> drivers rely on an interface that is no longer present (note: in this case,
> child drivers will need updating).
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenbus.inf | 18 ++++++------------
>   1 file changed, 6 insertions(+), 12 deletions(-)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 12:40:24 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 12:40:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609674.948772 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlqJb-00070O-Rb; Thu, 28 Sep 2023 12:40:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609674.948772; Thu, 28 Sep 2023 12:40:23 +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 1qlqJb-00070H-Ot; Thu, 28 Sep 2023 12:40:23 +0000
Received: by outflank-mailman (input) for mailman id 609674;
 Thu, 28 Sep 2023 12:40:23 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlqJb-00070B-5d
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 12:40:23 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2fc7e735-5dfc-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 14:40:21 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4064014bca5so46002795e9.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 05:40:21 -0700 (PDT)
Received: from [192.168.6.213] (54-240-197-239.amazon.com. [54.240.197.239])
 by smtp.gmail.com with ESMTPSA id
 l7-20020a1c7907000000b003fef60005b5sm12388825wme.9.2023.09.28.05.40.19
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Sep 2023 05:40:19 -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: 2fc7e735-5dfc-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695904820; x=1696509620; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=HuR4k0iGYt1aceX0Do0LXswPAE7dyydRqROZeKkuWmo=;
        b=FLEs7hYpVgo/aiA7v2nVCaM4J8W5sft59UJXgbXGFZyPmNmCIAT6odo1m9pRubqI5z
         MF1xIIad83Me0dDrwsmN9puWgDboWTZYe1J9zfkfATKFcUGmRDCO0NJBWAnkrsmlQM6H
         a8GscarR15h67zvBJWhUGT4pMsR0L3bVWc1TDtTsAXXlrUDUU4EZLNlbGIF4L/1KwTqK
         EEwrC9fDCBa0TZ60UGHFFIRuM1+hXtFOtKsl+lHKgW/NMC+kojq6DexbfhcHL/ChiTLl
         88yl3Seu+dZTgbJQ2KjJH5TdxvwwW93vaJzXFU7cXuSKlUI4mPLRS/mGCsY5sfCLmav3
         Izzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695904820; x=1696509620;
        h=content-transfer-encoding:in-reply-to:organization:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HuR4k0iGYt1aceX0Do0LXswPAE7dyydRqROZeKkuWmo=;
        b=Gig7Ez/0Vi+JApG1++Hu6NAFdbE05eAyZHru4Mk+V8ihxp84MK906km6jVOwrFEaBw
         7nUr8bcfpXOyyL7PyQmjlASDsH/EGSAExP2dLLpFswL1gptMYPRCC/EkmVvHcL7hH9V2
         xyZ+9lfI/uT0LgPib73QaCNC+YCS/4En8K5d8GOYnwK21pGdzfOC2QUyq2mUkw6svb5q
         9dv5KGvplBN6rYGA2+W67eo6UBRxtznrCKL1c23+Lo7P4VIxgiONijWQ4a7JCFB4/jIB
         2QYNTdrsz7RzkbvCm2tLfeQnEecLOBm5n2ofvxtRNBdLE/8NF6XagnRYjLPJxFzq2Ceg
         n+Dw==
X-Gm-Message-State: AOJu0YyBbImZpA24rwM6vVukrG4iUi83fEVXBhA3l1TFMsoouvSNz74Y
	HsQMrRnUdCFPtNyFr+WOtj6C3g6e/TtHdw==
X-Google-Smtp-Source: AGHT+IEmeVdm9xBOZ4oquuJN68Irg/31tKD1tcTIBxYXdy9uG8eA0vHVlNl9u/Q4j+k2Yb4wQf7B0g==
X-Received: by 2002:a7b:c397:0:b0:3fe:3004:1ffd with SMTP id s23-20020a7bc397000000b003fe30041ffdmr1058840wmj.4.1695904820385;
        Thu, 28 Sep 2023 05:40:20 -0700 (PDT)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <abb91f03-32b4-4a3e-9be1-42ea6bc72269@xen.org>
Date: Thu, 28 Sep 2023 13:40:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH v2 6/6] Delete CoInstaller code
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230913134519.1769-1-owen.smith@cloud.com>
 <20230913134519.1769-7-owen.smith@cloud.com>
Organization: Xen Project
In-Reply-To: <20230913134519.1769-7-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 13/09/2023 14:45, Owen Smith wrote:
> With the CoInstaller removed from the INF file, delete the CoInstaller
> source code and projects.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/coinst/coinst.c                           | 2136 -----------------
>   src/coinst/xenbus_coinst.def                  |   38 -
>   src/coinst/xenbus_coinst.rc                   |   57 -
>   vs2015/package/package.vcxproj                |    3 -
>   vs2015/xenbus.sln                             |   22 -
>   vs2015/xenbus_coinst/xenbus_coinst.vcxproj    |   64 -
>   .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
>   vs2017/package/package.vcxproj                |    3 -
>   vs2017/xenbus.sln                             |   22 -
>   vs2017/xenbus_coinst/xenbus_coinst.vcxproj    |   64 -
>   .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
>   vs2019/package/package.vcxproj                |    3 -
>   vs2019/xenbus.sln                             |   22 -
>   vs2019/xenbus_coinst/xenbus_coinst.vcxproj    |   70 -
>   .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
>   vs2022/package/package.vcxproj                |    3 -
>   vs2022/xenbus.sln                             |   22 -
>   vs2022/xenbus_coinst/xenbus_coinst.vcxproj    |   70 -
>   .../xenbus_coinst/xenbus_coinst.vcxproj.user  |    8 -
>   19 files changed, 2631 deletions(-)
>   delete mode 100644 src/coinst/coinst.c
>   delete mode 100644 src/coinst/xenbus_coinst.def
>   delete mode 100644 src/coinst/xenbus_coinst.rc
>   delete mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj
>   delete mode 100644 vs2015/xenbus_coinst/xenbus_coinst.vcxproj.user
>   delete mode 100644 vs2017/xenbus_coinst/xenbus_coinst.vcxproj
>   delete mode 100644 vs2017/xenbus_coinst/xenbus_coinst.vcxproj.user
>   delete mode 100644 vs2019/xenbus_coinst/xenbus_coinst.vcxproj
>   delete mode 100644 vs2019/xenbus_coinst/xenbus_coinst.vcxproj.user
>   delete mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj
>   delete mode 100644 vs2022/xenbus_coinst/xenbus_coinst.vcxproj.user
> 

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



From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 14:02:19 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 14:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609851.949008 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlran-0006Yg-Dw; Thu, 28 Sep 2023 14:02:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609851.949008; Thu, 28 Sep 2023 14:02:13 +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 1qlran-0006YZ-BR; Thu, 28 Sep 2023 14:02:13 +0000
Received: by outflank-mailman (input) for mailman id 609851;
 Thu, 28 Sep 2023 14:02: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=UJCc=FM=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qlram-0006YT-04
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 14:02:12 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d4ed2f2-5e07-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 16:02:09 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-2c1886777d9so36847191fa.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 07:02: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: 9d4ed2f2-5e07-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=tibco.com; s=googleworkspace; t=1695909729; x=1696514529; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=dcNcTlkJZjQSdbRgkRtbsrvKlF3QeQHthag1TJ1rVpQ=;
        b=ltnMn9FFDXorMoZtoer5C9vhfcG0GdXjX6I2j8+zJI2N6dRMLGY9GW1tzGVob8lAsf
         GxcRwiYYwv/uxQG77mvbHbweTEXZerCxi56iY7RUpZRALqftGISHiJHAKJ97zsItxAvo
         rACge3YJqXek4aecAU+suV5jx0rS7LnFUTrFQLQT9SNWWJCI1Cnx6p6lqLFJzFd+G3EQ
         SMuZ10QlyPx+nNUjApgzApa3+h8IEuOhErb2VJD6XveUzFDvuEtcxvB98kRRbiql/lnj
         1E/09TptuZNRKxpxCbRHPO88dAbMphlxXVCPgr4jzc9cxx6+9aW1DQEZsjUKu1J3l7QG
         H14Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695909729; x=1696514529;
        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=dcNcTlkJZjQSdbRgkRtbsrvKlF3QeQHthag1TJ1rVpQ=;
        b=MoqAfQ3zyExOsaoZCG1ryPJNY4yGjgySNOdCRdkxa89zbbT2cZrT/33ukCKnOS8va3
         nahDddYo/JubmyN4BkAI9lFtUMyyG45p2HNfk9PVFBB1C2N6+9hPqmd60Qrg+/+M/u6v
         MjkShye6utszg3RlUoNy4lrFfjJKuhkrt0qafk/SKmFCpzQh2cZFwp5Jno+f3DTMWg/6
         6sJ4nC1dFaVCZfR/uDv3ByIC2xvGFiZ+aFJkrOvt5TtQStFFuESlRCVasufnS/D1etDQ
         W5ZqYuT1GDjPvDk6D44elSxQBSSamFvYT0kYRkxWooYGXJdU43w6D2hu4ViU0V+LKfn7
         Qsxg==
X-Gm-Message-State: AOJu0Yy/vRQ9RbgkjEJvkUIWjolYz7CHuqGgv7w+Qdq0xx8mZa9fSZgQ
	uDkpWhHH7EvIHmf+KodKnQOI40sGTjUMJ77L9eXdc0sTjx7t5WXBjg==
X-Google-Smtp-Source: AGHT+IGJkPNLlnsgZ417DV9vDNyM9KREh++hF+SSPyC6pyFgBtlamq/urcnmKewgl1BZnTAsPzez3qJhW0DgW7bgBOI=
X-Received: by 2002:a2e:b0f7:0:b0:2bc:39f5:ecb4 with SMTP id
 h23-20020a2eb0f7000000b002bc39f5ecb4mr1224972ljl.25.1695909729146; Thu, 28
 Sep 2023 07:02:09 -0700 (PDT)
MIME-Version: 1.0
References: <20230913141524.2046-1-owen.smith@cloud.com> <20230913141524.2046-3-owen.smith@cloud.com>
 <1e082d1e-a844-447e-a0f2-2db6d517d142@xen.org>
In-Reply-To: <1e082d1e-a844-447e-a0f2-2db6d517d142@xen.org>
From: Owen Smith <osmith@tibco.com>
Date: Thu, 28 Sep 2023 15:01:57 +0100
Message-ID: <CAC_UY88aJMOwqpg_YEqFxMjXNCjSTmNRRJ8eEi3aih2_JF9rbQ@mail.gmail.com>
Subject: Re: [PATCH v2 2/5] Remove REV from DeviceID
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000fa41c606066bc00f"

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

I am prepping XenNet patches (and XenIface/XenVbd).
The current XenNet driver will bind to an entry in the HardwareIDs list
(REV_09000003) and should install successfully.

Owen

On Thu, Sep 28, 2023 at 1:05=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments
> unless you have verified the sender and know the content is safe.
>
> On 13/09/2023 15:15, Owen Smith wrote:
> > Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child
> INF DDInstall
> > section (stored as matching device id), but use the DeviceID to generat=
e
> the device
> > instance path. By keeping the device instance path the same over
> upgrades, the network
> > stack should identify this as an upgrade, rather than 'replacement
> hardware', and
> > not generate a new network connection, which would require network
> settings to be
> > copied from the existing network connection to the new network
> connection.
> >
> > Note: This introduces a strict requirement for child device INF
> DDInstall sections to
> >    reference devices by the full (including revision) hardware ID
> >
>
> Do you have a XENNET patch for this. What happens if I install an
> existing build of XENNET on top of a XENVIF with this change?
>
>    Paul
>
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
> > ---
> >   src/xenvif/pdo.c | 11 ++---------
> >   1 file changed, 2 insertions(+), 9 deletions(-)
> >
> > diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
> > index d43702e..2e47be2 100644
> > --- a/src/xenvif/pdo.c
> > +++ b/src/xenvif/pdo.c
> > @@ -2062,18 +2062,11 @@ PdoQueryId(
> >           break;
> >
> >       case BusQueryDeviceID: {
> > -        ULONG                   Index;
> > -        PXENVIF_PDO_REVISION    Revision;
> > -
> >           Type =3D REG_SZ;
> > -        Index =3D ARRAYSIZE(PdoRevision) - 1;
> > -        Revision =3D &PdoRevision[Index];
> > -
> >           status =3D RtlStringCbPrintfW(Buffer,
> >                                       Id.MaximumLength,
> > -                                    L"XENVIF\\VEN_%hs&DEV_NET&REV_%08X=
",
> > -                                    __PdoGetVendorName(Pdo),
> > -                                    Revision->Number);
> > +                                    L"XENVIF\\VEN_%hs&DEV_NET",
> > +                                    __PdoGetVendorName(Pdo));
> >           ASSERT(NT_SUCCESS(status));
> >
> >           Buffer +=3D wcslen(Buffer);
>
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">I am prepping XenNet patches (and XenIface/XenVbd).</div><div class=3D"g=
mail_default" style=3D"font-family:monospace">The current=C2=A0XenNet drive=
r will bind to an entry in the HardwareIDs list (REV_09000003) and should i=
nstall successfully.</div><div class=3D"gmail_default" style=3D"font-family=
:monospace"><br></div><div class=3D"gmail_default" style=3D"font-family:mon=
ospace">Owen</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" cla=
ss=3D"gmail_attr">On Thu, Sep 28, 2023 at 1:05=E2=80=AFPM Paul Durrant &lt;=
<a href=3D"mailto:xadimgnik@gmail.com">xadimgnik@gmail.com</a>&gt; wrote:<b=
r></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex">[CAUTION - EXTERN=
AL EMAIL] DO NOT reply, click links, or open attachments unless you have ve=
rified the sender and know the content is safe.<br>
<br>
On 13/09/2023 15:15, Owen Smith wrote:<br>
&gt; Driver upgrades use HardwareIDs (or CompatibleIDs) to match the child =
INF DDInstall<br>
&gt; section (stored as matching device id), but use the DeviceID to genera=
te the device<br>
&gt; instance path. By keeping the device instance path the same over upgra=
des, the network<br>
&gt; stack should identify this as an upgrade, rather than &#39;replacement=
 hardware&#39;, and<br>
&gt; not generate a new network connection, which would require network set=
tings to be<br>
&gt; copied from the existing network connection to the new network connect=
ion.<br>
&gt; <br>
&gt; Note: This introduces a strict requirement for child device INF DDInst=
all sections to<br>
&gt;=C2=A0 =C2=A0 reference devices by the full (including revision) hardwa=
re ID<br>
&gt; <br>
<br>
Do you have a XENNET patch for this. What happens if I install an <br>
existing build of XENNET on top of a XENVIF with this change?<br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0src/xenvif/pdo.c | 11 ++---------<br>
&gt;=C2=A0 =C2=A01 file changed, 2 insertions(+), 9 deletions(-)<br>
&gt; <br>
&gt; diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c<br>
&gt; index d43702e..2e47be2 100644<br>
&gt; --- a/src/xenvif/pdo.c<br>
&gt; +++ b/src/xenvif/pdo.c<br>
&gt; @@ -2062,18 +2062,11 @@ PdoQueryId(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0case BusQueryDeviceID: {<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Index;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 PXENVIF_PDO_REVISION=C2=A0 =C2=A0 Revisio=
n;<br>
&gt; -<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Type =3D REG_SZ;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 Index =3D ARRAYSIZE(PdoRevision) - 1;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 Revision =3D &amp;PdoRevision[Index];<br>
&gt; -<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D RtlStringCbPrintfW(=
Buffer,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Id.Max=
imumLength,<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 L&quot;XENVIF\\VEN=
_%hs&amp;DEV_NET&amp;REV_%08X&quot;,<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __PdoGetVendorName=
(Pdo),<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Revision-&gt;Numbe=
r);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 L&quot;XENVIF\\VEN=
_%hs&amp;DEV_NET&quot;,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __PdoGetVendorName=
(Pdo));<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT(NT_SUCCESS(status));<br=
>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Buffer +=3D wcslen(Buffer);<br=
>
<br>
<br>
</blockquote></div>

--000000000000fa41c606066bc00f--


From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 14:05:12 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 14:05:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609861.949023 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlrdf-0007MB-Va; Thu, 28 Sep 2023 14:05:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609861.949023; Thu, 28 Sep 2023 14:05:11 +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 1qlrdf-0007M4-SE; Thu, 28 Sep 2023 14:05:11 +0000
Received: by outflank-mailman (input) for mailman id 609861;
 Thu, 28 Sep 2023 14:05:10 +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=UJCc=FM=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qlrde-0007Lw-6F
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 14:05:10 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 07aa769c-5e08-11ee-9b0d-b553b5be7939;
 Thu, 28 Sep 2023 16:05:07 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-2c135cf2459so197743151fa.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 07:05:08 -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: 07aa769c-5e08-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=tibco.com; s=googleworkspace; t=1695909908; x=1696514708; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Z1X3t8G2Pqaq5i3+6JLJVOgI0s8IGysv7vVwJEf3rC0=;
        b=P3mkOiMNDs9zUlX3/9aJLRYIw/jVisDZwffhlV+ZKr3TN7mTLwCzrXlVHB9dfbzIS5
         5rh7TOGazgR6lMSYL2BtHniVcgOpnVj2zwYAClo2QdRo+JtmZzurpPFO+mTRpNSwsmv9
         Oh816zYeoXcUm4XirZIW2edfboNOSWzMomlgXoVPf3bj7UTtaMMbm7NGNa792vmIClXi
         8h8QIn14SBPY7dpRdH0TLkLy3J921WyM0n2z9qsk8KHIxGt37B65cXA8iw2wrUoKTpBK
         oR2dfRiXAsfP13OH12hIhgoSJhGmwXzJKSdBdiLyaOMOdmAzoqgr9+z4dkqjqYx2niFv
         TT3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695909908; x=1696514708;
        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=Z1X3t8G2Pqaq5i3+6JLJVOgI0s8IGysv7vVwJEf3rC0=;
        b=LIbjtIrz9Y0OHiplK9yUFr1SAhUr5dtxZ37Qf6EpT1l0k7FPUEvnDtzyFb76WZ6Tht
         hSPtQA9yLufOXou4gLW6R8Lu+d9q/saYDPhzZC7FfbbP+6C6Jiyf56230AYEaK9EE3Nt
         D9J24P4JduuFAnW5l3zmOlOED307QAyXWV8N7cy3vJ7/K3owv1zvPOWPYcnaqfFMaJCC
         r8mVLEsplxJhgxgWLxqzMiiVAEjpRCPAp/RMw7NOCtTyabxB8tZtWYb0ORuSgvZ0t39M
         lgZni/gfmovaKhu2+HbGyt2/WLQLobU9Pb3IXxNq14DJeaKX5KXJagPLjbpBGc+p2aiR
         vt+g==
X-Gm-Message-State: AOJu0YzE1HQLdPxGL74s+tnCYvW79ZV+HwM6eGPsUtYEg8ulmcMAoSmk
	OeI4tCrSDyy88egOBfIZLaCcPPgIc65alyemhtZMiibOXGWrhr0o2g==
X-Google-Smtp-Source: AGHT+IE+TkDUGJWjX//RX84SjErKNvz5uEsD0GucDlnU/oM2KB0ZfzUFlA7Lv7Dme6/ax08EDD/1qDnjUlIBjViuL4o=
X-Received: by 2002:a2e:9ac3:0:b0:2bf:ee57:f18 with SMTP id
 p3-20020a2e9ac3000000b002bfee570f18mr1485836ljj.16.1695909907684; Thu, 28 Sep
 2023 07:05:07 -0700 (PDT)
MIME-Version: 1.0
References: <20230913134519.1769-1-owen.smith@cloud.com> <20230913134519.1769-5-owen.smith@cloud.com>
 <c1a4e676-3e6d-4b52-8d0b-9dc718dc8127@xen.org>
In-Reply-To: <c1a4e676-3e6d-4b52-8d0b-9dc718dc8127@xen.org>
From: Owen Smith <osmith@tibco.com>
Date: Thu, 28 Sep 2023 15:04:56 +0100
Message-ID: <CAC_UY8-2jh-T9NkO696f3obKdJxn6tUGtsywwWvHDMZgFp9UtQ@mail.gmail.com>
Subject: Re: [PATCH v2 4/6] Add Unplug v2 interface (REV_0900000A)
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000009e853406066bcbd3"

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

Theres a linker issue picking the correct functions -
UNPLUG(WasRequested,...) -> UnplugWasRequested in unplug.c which needs to
call UnplugIsRequested in xen.sys otherwise the linker complains about
function redefinitions

Owen

On Thu, Sep 28, 2023 at 1:37=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments
> unless you have verified the sender and know the content is safe.
>
> On 13/09/2023 14:45, Owen Smith wrote:
> > Unplug v2 adds a query call to determine if a device type has had its
> unplug issued.
> > This is useful during upgrade cases when the Unplug keys have been set
> to 0, and can
> > be used to prevent XenVif from starting whilst emulated devices are
> present, but those
> > emulated devices have not been assigned a valid configuration yet
> (emulated devices
> > will receive valid configuration, but not at this point in the startup
> sequence during
> > upgrade)
> >
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
> > ---
> >   include/revision.h         |  3 +-
> >   include/unplug_interface.h | 30 +++++++++++++++++--
> >   include/xen.h              |  7 +++++
> >   src/xen/unplug.c           | 15 ++++++++++
> >   src/xenbus/unplug.c        | 59 +++++++++++++++++++++++++++++++++++++=
+
> >   5 files changed, 111 insertions(+), 3 deletions(-)
> >
>
> Not sure about the 'Was' versus 'Is' thing. I think I'd prefer
> consistency, but I'll deal with that.
>
> Acked-by: Paul Durrant <paul@xen.org>
>
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Theres a linker issue picking the correct functions - UNPLUG(WasRequeste=
d,...) -&gt; UnplugWasRequested in unplug.c which needs to call UnplugIsReq=
uested in xen.sys otherwise the linker complains about function redefinitio=
ns</div><div class=3D"gmail_default" style=3D"font-family:monospace"><br></=
div><div class=3D"gmail_default" style=3D"font-family:monospace">Owen</div>=
</div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">=
On Thu, Sep 28, 2023 at 1:37=E2=80=AFPM Paul Durrant &lt;<a href=3D"mailto:=
xadimgnik@gmail.com">xadimgnik@gmail.com</a>&gt; wrote:<br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex">[CAUTION - EXTERNAL EMAIL] DO NOT r=
eply, click links, or open attachments unless you have verified the sender =
and know the content is safe.<br>
<br>
On 13/09/2023 14:45, Owen Smith wrote:<br>
&gt; Unplug v2 adds a query call to determine if a device type has had its =
unplug issued.<br>
&gt; This is useful during upgrade cases when the Unplug keys have been set=
 to 0, and can<br>
&gt; be used to prevent XenVif from starting whilst emulated devices are pr=
esent, but those<br>
&gt; emulated devices have not been assigned a valid configuration yet (emu=
lated devices<br>
&gt; will receive valid configuration, but not at this point in the startup=
 sequence during<br>
&gt; upgrade)<br>
&gt; <br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0include/revision.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 3 +-<br>
&gt;=C2=A0 =C2=A0include/unplug_interface.h | 30 +++++++++++++++++--<br>
&gt;=C2=A0 =C2=A0include/xen.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 |=C2=A0 7 +++++<br>
&gt;=C2=A0 =C2=A0src/xen/unplug.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=
 15 ++++++++++<br>
&gt;=C2=A0 =C2=A0src/xenbus/unplug.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 59 ++++++=
++++++++++++++++++++++++++++++++<br>
&gt;=C2=A0 =C2=A05 files changed, 111 insertions(+), 3 deletions(-)<br>
&gt; <br>
<br>
Not sure about the &#39;Was&#39; versus &#39;Is&#39; thing. I think I&#39;d=
 prefer <br>
consistency, but I&#39;ll deal with that.<br>
<br>
Acked-by: Paul Durrant &lt;<a href=3D"mailto:paul@xen.org" target=3D"_blank=
">paul@xen.org</a>&gt;<br>
<br>
<br>
</blockquote></div>

--0000000000009e853406066bcbd3--


From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 14:10:44 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 14:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609878.949036 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlrj1-0000ez-K3; Thu, 28 Sep 2023 14:10:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609878.949036; Thu, 28 Sep 2023 14:10: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 1qlrj1-0000es-HT; Thu, 28 Sep 2023 14:10:43 +0000
Received: by outflank-mailman (input) for mailman id 609878;
 Thu, 28 Sep 2023 14:10:41 +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=pB08=FM=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qlriz-0000em-HY
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 14:10:41 +0000
Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com
 [2607:f8b0:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd9ccc2e-5e08-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 16:10:40 +0200 (CEST)
Received: by mail-ot1-x336.google.com with SMTP id
 46e09a7af769-6c4b9e09528so6512878a34.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 07:10:40 -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: cd9ccc2e-5e08-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695910239; x=1696515039; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=q2wa7gM+3cSH80TcwYvfTcNvqjz68xl1EXkW8LOojug=;
        b=HyE0qh7kYO54yQJgevS4FlftQooVyPyPShqdttduGIzVPMEdLHSX4gyxfpltYooW4r
         5FCjlWvwvUi/buyQtTznqD/2/D7Cq3rtH94XccH0IKKlya4EUMJuUMY1MXNZRwalr1AJ
         lG7tSy1ieW3apu3MDxy0ei1IAAY2wt2MsInOmdhm7CB24jujSD+5usC/OPKYR75nvYbg
         D24jaS3yCECfm/3+ZWBwIPpYEsimYWjqLk6Hnnoxd+Y+Qgy08FhQJxhq82GQTnT+jsBz
         ZKLg6sEil85n+tCWDM8C6gtuKYzSm/S6XyIuPYZc/+pR9lGs3jz0my61XS3KlIsnTIto
         P8Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695910239; x=1696515039;
        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=q2wa7gM+3cSH80TcwYvfTcNvqjz68xl1EXkW8LOojug=;
        b=wz89rtyrC1bXgXzKgTlYGIdhH+vw6WukqG/TpeE3rGhftx9UT7x3QA6ROj+xWGjuEg
         0tIDhROSfzpllw08qRFhjcjLDMmyEfpCxRNeS0a7aSf2wQB7jJuw5pCofAL6Iy+b1dd4
         d8yBr2gTvx5DDsovNs9GGz7ngxQX1+3bYzDBSvNWoqA0TaEYGBl0LllsaLm3QJNQXLFw
         4g9Sb3u1Q8cad4tZFVk2mDoNQ/njsgVvLlwGgoBYsZH0ZrGayVxRqUcnFNs/Uxs68zt7
         7WezTrd+RYlRpTiUMZmuaNoazNhVYYmyGM0uIRTC0QPEJ16As5vL349VYy0nRda2OMuc
         C9mA==
X-Gm-Message-State: AOJu0Yzt7IDvfF8MZiC7mP/dmDatIbjQtmar+G6sDG7M0HH6LSVQpCSm
	BPS6t1mUdb7f5VRcsziMoPdxZjCPh9x+q4aJFCQ=
X-Google-Smtp-Source: AGHT+IGyRgfL+QF1aJRJr9+nwZl8diPp5meNgVM2MPTH9yfa+LWlcULKr36jyjY2cdEIXSBNhe8AquQDntlGpCyw3D4=
X-Received: by 2002:a05:6830:1d77:b0:6c4:7696:e89 with SMTP id
 l23-20020a0568301d7700b006c476960e89mr1162088oti.6.1695910238843; Thu, 28 Sep
 2023 07:10:38 -0700 (PDT)
MIME-Version: 1.0
References: <20230913134519.1769-1-owen.smith@cloud.com> <20230913134519.1769-5-owen.smith@cloud.com>
 <c1a4e676-3e6d-4b52-8d0b-9dc718dc8127@xen.org> <CAC_UY8-2jh-T9NkO696f3obKdJxn6tUGtsywwWvHDMZgFp9UtQ@mail.gmail.com>
In-Reply-To: <CAC_UY8-2jh-T9NkO696f3obKdJxn6tUGtsywwWvHDMZgFp9UtQ@mail.gmail.com>
From: Paul Durrant <xadimgnik@gmail.com>
Date: Thu, 28 Sep 2023 15:10:27 +0100
Message-ID: <CAAgS=Sk8dzDey-wJ=Osuawenm+4adniGZH00_0o3RpzcascocQ@mail.gmail.com>
Subject: Re: [PATCH v2 4/6] Add Unplug v2 interface (REV_0900000A)
To: Owen Smith <osmith@tibco.com>
Cc: paul@xen.org, win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000005b77cb06066bdf7f"

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

I'm going to rename the xen.dll function to UnplugGetRequest() so we can
sensibly name the interface function.

  Paul

On Thu, Sep 28, 2023 at 3:05=E2=80=AFPM Owen Smith <osmith@tibco.com> wrote=
:

> Theres a linker issue picking the correct functions -
> UNPLUG(WasRequested,...) -> UnplugWasRequested in unplug.c which needs to
> call UnplugIsRequested in xen.sys otherwise the linker complains about
> function redefinitions
>
> Owen
>
> On Thu, Sep 28, 2023 at 1:37=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com=
> wrote:
>
>> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachment=
s
>> unless you have verified the sender and know the content is safe.
>>
>> On 13/09/2023 14:45, Owen Smith wrote:
>> > Unplug v2 adds a query call to determine if a device type has had its
>> unplug issued.
>> > This is useful during upgrade cases when the Unplug keys have been set
>> to 0, and can
>> > be used to prevent XenVif from starting whilst emulated devices are
>> present, but those
>> > emulated devices have not been assigned a valid configuration yet
>> (emulated devices
>> > will receive valid configuration, but not at this point in the startup
>> sequence during
>> > upgrade)
>> >
>> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
>> > ---
>> >   include/revision.h         |  3 +-
>> >   include/unplug_interface.h | 30 +++++++++++++++++--
>> >   include/xen.h              |  7 +++++
>> >   src/xen/unplug.c           | 15 ++++++++++
>> >   src/xenbus/unplug.c        | 59 ++++++++++++++++++++++++++++++++++++=
++
>> >   5 files changed, 111 insertions(+), 3 deletions(-)
>> >
>>
>> Not sure about the 'Was' versus 'Is' thing. I think I'd prefer
>> consistency, but I'll deal with that.
>>
>> Acked-by: Paul Durrant <paul@xen.org>
>>
>>
>>

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

<div dir=3D"ltr">I&#39;m going to rename the xen.dll function to UnplugGetR=
equest() so we can sensibly name the interface function.<div><br></div><div=
>=C2=A0 Paul</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" cla=
ss=3D"gmail_attr">On Thu, Sep 28, 2023 at 3:05=E2=80=AFPM Owen Smith &lt;<a=
 href=3D"mailto:osmith@tibco.com">osmith@tibco.com</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div cla=
ss=3D"gmail_default" style=3D"font-family:monospace">Theres a linker issue =
picking the correct functions - UNPLUG(WasRequested,...) -&gt; UnplugWasReq=
uested in unplug.c which needs to call UnplugIsRequested in xen.sys otherwi=
se the linker complains about function redefinitions</div><div class=3D"gma=
il_default" style=3D"font-family:monospace"><br></div><div class=3D"gmail_d=
efault" style=3D"font-family:monospace">Owen</div></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Sep 28, 2023 at 1=
:37=E2=80=AFPM Paul Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.com" targ=
et=3D"_blank">xadimgnik@gmail.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">[CAUTION - EXTERNAL EMAIL] DO NOT reply, c=
lick links, or open attachments unless you have verified the sender and kno=
w the content is safe.<br>
<br>
On 13/09/2023 14:45, Owen Smith wrote:<br>
&gt; Unplug v2 adds a query call to determine if a device type has had its =
unplug issued.<br>
&gt; This is useful during upgrade cases when the Unplug keys have been set=
 to 0, and can<br>
&gt; be used to prevent XenVif from starting whilst emulated devices are pr=
esent, but those<br>
&gt; emulated devices have not been assigned a valid configuration yet (emu=
lated devices<br>
&gt; will receive valid configuration, but not at this point in the startup=
 sequence during<br>
&gt; upgrade)<br>
&gt; <br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0include/revision.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 3 +-<br>
&gt;=C2=A0 =C2=A0include/unplug_interface.h | 30 +++++++++++++++++--<br>
&gt;=C2=A0 =C2=A0include/xen.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 |=C2=A0 7 +++++<br>
&gt;=C2=A0 =C2=A0src/xen/unplug.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=
 15 ++++++++++<br>
&gt;=C2=A0 =C2=A0src/xenbus/unplug.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 59 ++++++=
++++++++++++++++++++++++++++++++<br>
&gt;=C2=A0 =C2=A05 files changed, 111 insertions(+), 3 deletions(-)<br>
&gt; <br>
<br>
Not sure about the &#39;Was&#39; versus &#39;Is&#39; thing. I think I&#39;d=
 prefer <br>
consistency, but I&#39;ll deal with that.<br>
<br>
Acked-by: Paul Durrant &lt;<a href=3D"mailto:paul@xen.org" target=3D"_blank=
">paul@xen.org</a>&gt;<br>
<br>
<br>
</blockquote></div>
</blockquote></div>

--0000000000005b77cb06066bdf7f--


From win-pv-devel-bounces@lists.xenproject.org Thu Sep 28 14:13:00 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 28 Sep 2023 14:13:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.609886.949040 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qlrlD-00018U-QD; Thu, 28 Sep 2023 14:12:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 609886.949040; Thu, 28 Sep 2023 14:12: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 1qlrlD-00018N-NL; Thu, 28 Sep 2023 14:12:59 +0000
Received: by outflank-mailman (input) for mailman id 609886;
 Thu, 28 Sep 2023 14:12: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=UJCc=FM=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qlrlB-000172-Ui
 for win-pv-devel@lists.xenproject.org; Thu, 28 Sep 2023 14:12:58 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f3bcb14-5e09-11ee-878a-cb3800f73035;
 Thu, 28 Sep 2023 16:12:56 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-2bff936e10fso165652481fa.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 28 Sep 2023 07:12: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: 1f3bcb14-5e09-11ee-878a-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=tibco.com; s=googleworkspace; t=1695910376; x=1696515176; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=4o/SjEWhq+RqN3hzDHb1ZNLbiAxKM65ChVpr+QnVpZ8=;
        b=rcjIicH69daqI2+E5jbEJ+OVfO8IjFsm5C/SbkqcKApYFDGShprKsGWz7wVdyUq8kN
         +1kI+L/OKW5hPDY/r7VplKWwvEOv7xCjH3tvd+FHCW3KX26qCECndBwAWvdIBIKVz5H5
         LVW8bsjcUK5GwTuAlRsfdargbDxb5JhB0nK1g5pQr72uQHYtU3dKusyEvtJ+T4Uo0/L3
         GVlEmtLcyn1gNltIcfp4SrcQStbd9gEB5sLrkP5Vuwt1kzn0U6jiJreiZxdc1mGhAbhC
         j5+fYqOS1plo3dYikZu7cdi/LPnDdfmVpSBzGx1MKu/TaVQ+frcbvyhBu6N1Q6E167Vc
         8d0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695910376; x=1696515176;
        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=4o/SjEWhq+RqN3hzDHb1ZNLbiAxKM65ChVpr+QnVpZ8=;
        b=q84IONvnFOkAUJTzy6qPQL54PS6sWIBAlwwSqOCKCFJ5aNIzZrj4U8yHVPwTsFF8Dc
         aXxAnxUiL77a2lHylt4wMagTovI1TuG8pJe+9oTDy8wCnZgkOQxMoTrIuqYIa3bHfoly
         s4Ls6bXo1Rf5rSyiOvKmk9zV9U+sPIIhR+RWqqJZsNR0/wQt2D9/FS0ilRTtUZZivr8U
         RlOIIV/T6dm250x4ez9I9N8f40JbM1/YcUIFJl+VgJATvAJ1BqagqgakelOVew1G8Oa3
         HW1857ICU5zHMw/q/vjok3YLBK3h8vxrxhoGwnIoeYuyMCac1ZIsEyvqlE2yNhRGQ6BQ
         MEfw==
X-Gm-Message-State: AOJu0YyasUjnnNWwZqurtjnFmWjpymC5/0vA69OftaphbB2YQs5uQITm
	BFq1zv9oQE9zRYFaS6R6Xf8GUNz8VPT37BIHyIFqzd3mX+kz2zCEd0x4
X-Google-Smtp-Source: AGHT+IEUVV2+p0DBiXyE2kjQuMWuFo5vgPOFELMnI6LTSuiANwuCQJ8vzVcKB544pemgTOgMPMBS0dns7sPH7Vx3/1U=
X-Received: by 2002:a2e:9c4c:0:b0:2bf:f244:f229 with SMTP id
 t12-20020a2e9c4c000000b002bff244f229mr1120617ljj.24.1695910376028; Thu, 28
 Sep 2023 07:12:56 -0700 (PDT)
MIME-Version: 1.0
References: <20230913141524.2046-1-owen.smith@cloud.com> <51913dda-9773-489a-8faf-5b88dc0e9c05@xen.org>
In-Reply-To: <51913dda-9773-489a-8faf-5b88dc0e9c05@xen.org>
From: Owen Smith <osmith@tibco.com>
Date: Thu, 28 Sep 2023 15:12:44 +0100
Message-ID: <CAC_UY89bo-Xdy0oKXLEMoDsWXhato+_CSbpdjKm34oZp+wbGcA@mail.gmail.com>
Subject: Re: [PATCH v2 0/5] Remove CoInstallers
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000088e7f206066be75f"

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

This is referring to XenBus's coinstaller checking DriverDesc of the
current driver and PRODUCT_NAME_STR
(
https://xenbits.xen.org/gitweb/?p=3Dpvdrivers/win/xenbus.git;a=3Dblob;f=3Ds=
rc/coinst/coinst.c;h=3Dcaa110290698cab91577326a961acf65731553db;hb=3DHEAD#l=
929
)

Owen

On Thu, Sep 28, 2023 at 1:15=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments
> unless you have verified the sender and know the content is safe.
>
> On 13/09/2023 15:15, Owen Smith wrote:
> > Windows 11 22H2 WHQL testing has highlighted the need to remove
> CoInstallers.
> > The current CoInstaller handle several edge cases that will need
> replacement
> > implementations. This patch series for most drivers offers a potential
> solution
> > to the removal of CoInstallers and the required changes to avoid upgrad=
e
> issues.
> >
> > CoInstallers have several uses currently:
> > - Adds an upgrade block function with the "AllowUpgrade" value blocking
> driver
> >    upgrades when set.
> > - Adds a check to prevent XenBus upgrades from a different vendor /
> brand.
>
> BTW I guess you meant XenVif here :-)
>
>    Paul
>
> >    This checks the current device name (if it exists) matches the new
> device name.
> > - Checks all currently installed child devices have a supported set of
> interfaces
> >    common with the new parent device.
> > - Clears the Unplug keys only when required.
> > - Correctly cleans up user mode services on uninstall.
> >
> > The AllowUpgrade function has not been replaced - I have not seen this
> used in
> > the current implementations of the drivers.
> >
> > The vendor naming check is specific to XenBus, and I dont think there i=
s
> a
> > reliable replacement, and was intended to prevent different vendor
> drivers from
> > attempting to coexist, or upgrade cases from particularly old versions
> which had
> > a different naming scheme.
> >
> > The interface compatability checks can be replaced with the matching if
> RevisionIDs
> > in the INF files, so that child devices will only install on parent
> devices that
> > expose a matching HardwareID or CompatibleID. This does leave the case
> where the
> > new parent driver could drop support for an interface version that is
> currently in
> > use. This will mandate a further driver upgrade, and should remove the
> Unplug keys
> > and mandate a reboot where the emulated devices are present, to ensure
> continued
> > operation. After this reboot using emulated devices, updates to the
> child devices
> > should be detected and installed, requiring another reboot to revert to
> PV devices.
> >
> > Unplug keys getting cleared on all upgrades should allow the next boot
> to use emulated
> > devices, unless a subsequent install updates dependent drivers to use a
> working set
> > of new interfaces. The requirement here is that updating any driver
> should always
> > allow a reboot with emulated devices, should any further issues be
> detected.
> >
> > I believe that, going forward, changing the DeviceID to remove the
> RevisionID will
> > avoid the need to set network IDs and copy settings from the previous
> network
> > connection to the new network connection. This change will mean the
> driver selection
> > during installation/upgrade will use the HardwareIDs (with RevisionIDs)
> to match the
> > ID in the DDInstall INF section (with RevisionID), and use the DeviceID
> to generate
> > the Matching Device ID and Instance ID. This means that once drivers
> have been
> > upgraded, the InstanceIDs should not change, and Windows should not
> generate a new
> > network connection (with default settings) for the upgraded driver set =
-
> meaning the
> > correct network settings are persisted.
> >
> > I dont have a good replacement for cleaning up user mode services
> (xenbus_monitor
> > xenagent and xencons_monitor) on device uninstall. This *should* be
> handled correctly
> > by the PnP manager, but failing to stop either service should not be
> detremental to
> > the operation of the VM. Selecting the "Delete Drivers" option during
> uninstall will
> > stop and disable these services, not selecting this option will leave
> these services
> > running.
> >
> > Owen Smith (5):
> >    Fix Length calculation in PdoQueryId
> >    Remove REV from DeviceID
> >    Add Unplug v2 (REV_0900000A)
> >    Remove CoInstaller from INF
> >    Delete CoInstaller code
> >
> >   include/unplug_interface.h                    |   30 +-
> >   src/coinst/coinst.c                           | 1732 ----------------=
-
> >   src/coinst/xenvif_coinst.def                  |   38 -
> >   src/coinst/xenvif_coinst.rc                   |   57 -
> >   src/xenvif.inf                                |   23 +-
> >   src/xenvif/pdo.c                              |   38 +-
> >   vs2015/package/package.vcxproj                |    3 -
> >   vs2015/xenvif.sln                             |   26 -
> >   vs2015/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
> >   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
> >   vs2017/package/package.vcxproj                |    3 -
> >   vs2017/xenvif.sln                             |   27 -
> >   vs2017/xenvif_coinst/xenvif_coinst.vcxproj    |   65 -
> >   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
> >   vs2019/package/package.vcxproj                |    3 -
> >   vs2019/xenvif.sln                             |   27 -
> >   vs2019/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
> >   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
> >   vs2022/package/package.vcxproj                |    3 -
> >   vs2022/xenvif.sln                             |   27 -
> >   vs2022/xenvif_coinst/xenvif_coinst.vcxproj    |   71 -
> >   .../xenvif_coinst/xenvif_coinst.vcxproj.user  |    8 -
> >   22 files changed, 62 insertions(+), 2279 deletions(-)
> >   delete mode 100644 src/coinst/coinst.c
> >   delete mode 100644 src/coinst/xenvif_coinst.def
> >   delete mode 100644 src/coinst/xenvif_coinst.rc
> >   delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj
> >   delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxproj.user
> >   delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj
> >   delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxproj.user
> >   delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj
> >   delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxproj.user
> >   delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj
> >   delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxproj.user
> >
>
>
>

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

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">This is referring=C2=A0to XenBus&#39;s coinstaller checking DriverDesc o=
f the current driver and PRODUCT_NAME_STR</div><div class=3D"gmail_default"=
 style=3D"font-family:monospace">(<a href=3D"https://xenbits.xen.org/gitweb=
/?p=3Dpvdrivers/win/xenbus.git;a=3Dblob;f=3Dsrc/coinst/coinst.c;h=3Dcaa1102=
90698cab91577326a961acf65731553db;hb=3DHEAD#l929">https://xenbits.xen.org/g=
itweb/?p=3Dpvdrivers/win/xenbus.git;a=3Dblob;f=3Dsrc/coinst/coinst.c;h=3Dca=
a110290698cab91577326a961acf65731553db;hb=3DHEAD#l929</a>)</div><div class=
=3D"gmail_default" style=3D"font-family:monospace"><br></div><div class=3D"=
gmail_default" style=3D"font-family:monospace">Owen</div></div><br><div cla=
ss=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Sep 28, 20=
23 at 1:15=E2=80=AFPM Paul Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.co=
m">xadimgnik@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">[CAUTION - EXTERNAL EMAIL] DO NOT reply, click links,=
 or open attachments unless you have verified the sender and know the conte=
nt is safe.<br>
<br>
On 13/09/2023 15:15, Owen Smith wrote:<br>
&gt; Windows 11 22H2 WHQL testing has highlighted the need to remove CoInst=
allers.<br>
&gt; The current CoInstaller handle several edge cases that will need repla=
cement<br>
&gt; implementations. This patch series for most drivers offers a potential=
 solution<br>
&gt; to the removal of CoInstallers and the required changes to avoid upgra=
de issues.<br>
&gt; <br>
&gt; CoInstallers have several uses currently:<br>
&gt; - Adds an upgrade block function with the &quot;AllowUpgrade&quot; val=
ue blocking driver<br>
&gt;=C2=A0 =C2=A0 upgrades when set.<br>
&gt; - Adds a check to prevent XenBus upgrades from a different vendor / br=
and.<br>
<br>
BTW I guess you meant XenVif here :-)<br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt;=C2=A0 =C2=A0 This checks the current device name (if it exists) matche=
s the new device name.<br>
&gt; - Checks all currently installed child devices have a supported set of=
 interfaces<br>
&gt;=C2=A0 =C2=A0 common with the new parent device.<br>
&gt; - Clears the Unplug keys only when required.<br>
&gt; - Correctly cleans up user mode services on uninstall.<br>
&gt; <br>
&gt; The AllowUpgrade function has not been replaced - I have not seen this=
 used in<br>
&gt; the current implementations of the drivers.<br>
&gt; <br>
&gt; The vendor naming check is specific to XenBus, and I dont think there =
is a<br>
&gt; reliable replacement, and was intended to prevent different vendor dri=
vers from<br>
&gt; attempting to coexist, or upgrade cases from particularly old versions=
 which had<br>
&gt; a different naming scheme.<br>
&gt; <br>
&gt; The interface compatability checks can be replaced with the matching i=
f RevisionIDs<br>
&gt; in the INF files, so that child devices will only install on parent de=
vices that<br>
&gt; expose a matching HardwareID or CompatibleID. This does leave the case=
 where the<br>
&gt; new parent driver could drop support for an interface version that is =
currently in<br>
&gt; use. This will mandate a further driver upgrade, and should remove the=
 Unplug keys<br>
&gt; and mandate a reboot where the emulated devices are present, to ensure=
 continued<br>
&gt; operation. After this reboot using emulated devices, updates to the ch=
ild devices<br>
&gt; should be detected and installed, requiring another reboot to revert t=
o PV devices.<br>
&gt; <br>
&gt; Unplug keys getting cleared on all upgrades should allow the next boot=
 to use emulated<br>
&gt; devices, unless a subsequent install updates dependent drivers to use =
a working set<br>
&gt; of new interfaces. The requirement here is that updating any driver sh=
ould always<br>
&gt; allow a reboot with emulated devices, should any further issues be det=
ected.<br>
&gt; <br>
&gt; I believe that, going forward, changing the DeviceID to remove the Rev=
isionID will<br>
&gt; avoid the need to set network IDs and copy settings from the previous =
network<br>
&gt; connection to the new network connection. This change will mean the dr=
iver selection<br>
&gt; during installation/upgrade will use the HardwareIDs (with RevisionIDs=
) to match the<br>
&gt; ID in the DDInstall INF section (with RevisionID), and use the DeviceI=
D to generate<br>
&gt; the Matching Device ID and Instance ID. This means that once drivers h=
ave been<br>
&gt; upgraded, the InstanceIDs should not change, and Windows should not ge=
nerate a new<br>
&gt; network connection (with default settings) for the upgraded driver set=
 - meaning the<br>
&gt; correct network settings are persisted.<br>
&gt; <br>
&gt; I dont have a good replacement for cleaning up user mode services (xen=
bus_monitor<br>
&gt; xenagent and xencons_monitor) on device uninstall. This *should* be ha=
ndled correctly<br>
&gt; by the PnP manager, but failing to stop either service should not be d=
etremental to<br>
&gt; the operation of the VM. Selecting the &quot;Delete Drivers&quot; opti=
on during uninstall will<br>
&gt; stop and disable these services, not selecting this option will leave =
these services<br>
&gt; running.<br>
&gt; <br>
&gt; Owen Smith (5):<br>
&gt;=C2=A0 =C2=A0 Fix Length calculation in PdoQueryId<br>
&gt;=C2=A0 =C2=A0 Remove REV from DeviceID<br>
&gt;=C2=A0 =C2=A0 Add Unplug v2 (REV_0900000A)<br>
&gt;=C2=A0 =C2=A0 Remove CoInstaller from INF<br>
&gt;=C2=A0 =C2=A0 Delete CoInstaller code<br>
&gt; <br>
&gt;=C2=A0 =C2=A0include/unplug_interface.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A030 +-<br>
&gt;=C2=A0 =C2=A0src/coinst/coinst.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 1732 ---------=
--------<br>
&gt;=C2=A0 =C2=A0src/coinst/xenvif_coinst.def=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A038 -<br>
&gt;=C2=A0 =C2=A0src/coinst/xenvif_coinst.rc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A057 -<br>
&gt;=C2=A0 =C2=A0src/xenvif.inf=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=
=A0 =C2=A023 +-<br>
&gt;=C2=A0 =C2=A0src/xenvif/pdo.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=
=A038 +-<br>
&gt;=C2=A0 =C2=A0vs2015/package/package.vcxproj=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 3 -<br>
&gt;=C2=A0 =C2=A0vs2015/xenvif.sln=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=
=A026 -<br>
&gt;=C2=A0 =C2=A0vs2015/xenvif_coinst/xenvif_coinst.vcxproj=C2=A0 =C2=A0 |=
=C2=A0 =C2=A065 -<br>
&gt;=C2=A0 =C2=A0.../xenvif_coinst/xenvif_coinst.vcxproj.user=C2=A0 |=C2=A0=
 =C2=A0 8 -<br>
&gt;=C2=A0 =C2=A0vs2017/package/package.vcxproj=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 3 -<br>
&gt;=C2=A0 =C2=A0vs2017/xenvif.sln=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=
=A027 -<br>
&gt;=C2=A0 =C2=A0vs2017/xenvif_coinst/xenvif_coinst.vcxproj=C2=A0 =C2=A0 |=
=C2=A0 =C2=A065 -<br>
&gt;=C2=A0 =C2=A0.../xenvif_coinst/xenvif_coinst.vcxproj.user=C2=A0 |=C2=A0=
 =C2=A0 8 -<br>
&gt;=C2=A0 =C2=A0vs2019/package/package.vcxproj=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 3 -<br>
&gt;=C2=A0 =C2=A0vs2019/xenvif.sln=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=
=A027 -<br>
&gt;=C2=A0 =C2=A0vs2019/xenvif_coinst/xenvif_coinst.vcxproj=C2=A0 =C2=A0 |=
=C2=A0 =C2=A071 -<br>
&gt;=C2=A0 =C2=A0.../xenvif_coinst/xenvif_coinst.vcxproj.user=C2=A0 |=C2=A0=
 =C2=A0 8 -<br>
&gt;=C2=A0 =C2=A0vs2022/package/package.vcxproj=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 3 -<br>
&gt;=C2=A0 =C2=A0vs2022/xenvif.sln=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=
=A027 -<br>
&gt;=C2=A0 =C2=A0vs2022/xenvif_coinst/xenvif_coinst.vcxproj=C2=A0 =C2=A0 |=
=C2=A0 =C2=A071 -<br>
&gt;=C2=A0 =C2=A0.../xenvif_coinst/xenvif_coinst.vcxproj.user=C2=A0 |=C2=A0=
 =C2=A0 8 -<br>
&gt;=C2=A0 =C2=A022 files changed, 62 insertions(+), 2279 deletions(-)<br>
&gt;=C2=A0 =C2=A0delete mode 100644 src/coinst/coinst.c<br>
&gt;=C2=A0 =C2=A0delete mode 100644 src/coinst/xenvif_coinst.def<br>
&gt;=C2=A0 =C2=A0delete mode 100644 src/coinst/xenvif_coinst.rc<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxp=
roj<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2015/xenvif_coinst/xenvif_coinst.vcxp=
roj.user<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxp=
roj<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2017/xenvif_coinst/xenvif_coinst.vcxp=
roj.user<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxp=
roj<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2019/xenvif_coinst/xenvif_coinst.vcxp=
roj.user<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxp=
roj<br>
&gt;=C2=A0 =C2=A0delete mode 100644 vs2022/xenvif_coinst/xenvif_coinst.vcxp=
roj.user<br>
&gt; <br>
<br>
<br>
</blockquote></div>

--00000000000088e7f206066be75f--


From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 07:40:17 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 07:40:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610214.949553 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm86h-0004Pv-RG; Fri, 29 Sep 2023 07:40:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610214.949553; Fri, 29 Sep 2023 07:40:15 +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 1qm86h-0004Po-OM; Fri, 29 Sep 2023 07:40:15 +0000
Received: by outflank-mailman (input) for mailman id 610214;
 Fri, 29 Sep 2023 07:40: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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm86g-0004Pi-U1
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 07:40:14 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d2366a4-5e9b-11ee-878b-cb3800f73035;
 Fri, 29 Sep 2023 09:40:14 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-307d58b3efbso11952762f8f.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 00:40:14 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g12-20020a5d698c000000b0031c8a43712asm20979564wru.69.2023.09.29.00.40.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 00:40: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: 6d2366a4-5e9b-11ee-878b-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695973213; x=1696578013; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4WnRQDsS0M8msnjNgRKcdRcQiJGqbAepB6gI3DP9fi8=;
        b=MAxAcoJFyPrqehbnjfqjtAUVhSZ/DrXU9dhwhaGGGgBubLr5XeTW/7VRugOx4lxPxi
         1+phST6LpvU+//pscd40BDlj8DHEYURTwFqpBVr06/H/lWw84+R19hJUyi6jAvS/dXVU
         bYbRMf5yqzmlt3legCd1JXBc4/fROAykME9AE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695973213; x=1696578013;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4WnRQDsS0M8msnjNgRKcdRcQiJGqbAepB6gI3DP9fi8=;
        b=lnns40ih4KRTC7zuYKL3lcEHVHYHiapJMw8yPcK+x5Il2rrHP18JH2rlgYrc4RJcps
         gljDcA/+ZZ+P0meOys5qLs3362Wp6Ljapwst9IBYXo0BvGeocLE5h5WB85WubZopJi2L
         Hch/R9LNDCCtQfHleKlMzF5ozppp+lmeCt0ULgSX84B/Ph/wXcAse7dsOd2BVZnuhn1I
         f038J2NqQLCZm+dCiMibqLyMTgmFbGYyyeXFx2DEsLEnj8RdueovNqi1GNjL91DgUNvE
         LSFXk1KR/2ko7Wzdg5oKJJ8KnzrLCcywMklVvQqb4WWMd0rvkcbiwO0V8iqtlV7p9NiY
         vGyQ==
X-Gm-Message-State: AOJu0Ywi/ptWXtvZ2qmzgToT2Clx8rShunKvvmN8U92a05IF1lNz3tTe
	BEzqTfWLGlxYt79x26IFd1HWzeLHhszyrsOYyBzP
X-Google-Smtp-Source: AGHT+IG3xjBciPu1FGkMaoxmI5nwCIcABXTUwKUGOmg4N+24lhXTyYGu44D7uXbRjlMnFNIJq1LVbQ==
X-Received: by 2002:a5d:40c8:0:b0:323:264d:9cef with SMTP id b8-20020a5d40c8000000b00323264d9cefmr2777927wrq.12.1695973213251;
        Fri, 29 Sep 2023 00:40:13 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 1/2] Remove CoInstaller from INF
Date: Fri, 29 Sep 2023 08:39:57 +0100
Message-ID: <20230929073958.840-2-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230929073958.840-1-owen.smith@cloud.com>
References: <20230929073958.840-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
several issues
- PnpLockdown=1 needs to be specified
- CoInstallers are no longer allowed

The CoInstaller has several functions that will need alternative solutions:
- The AllowUpdate mechanism is no longer possible
- The safety checks that ensure interface versionings remain compatible

Interface safety checks need to be handled by changes to child device bindings,
and assuming upgrade via emulated devices is safe. The unplug key is cleared
in the INF to revert to emulated NICs on the next boot, incase the current child
drivers rely on an interface that is no longer present (note: in this case,
child drivers will need updating).

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xennet.inf | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/src/xennet.inf b/src/xennet.inf
index 27cb2e2..b1d1105 100644
--- a/src/xennet.inf
+++ b/src/xennet.inf
@@ -37,24 +37,20 @@ Provider=%Vendor%
 CatalogFile=xennet.cat
 DriverVer=@INF_DATE@,@MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@.@BUILD_NUMBER@
 DriverPackageDisplayName=%DiskDesc%
+PnpLockdown=1
 
 [DestinationDirs] 
 DefaultDestDir=12 
-CoInst_CopyFiles=11
 
 [SourceDisksNames]
 0=%DiskDesc%
 
 [SourceDisksFiles]
 xennet.sys=0,,
-xennet_coinst.dll=0,,
 
 [XenNet_Copyfiles]
 xennet.sys
 
-[CoInst_CopyFiles]
-xennet_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xennet_coinst.dll
-
 [Manufacturer] 
 %Vendor%=Inst,NT@INF_ARCH@
 
@@ -195,13 +191,6 @@ AddReg=XenNet_EventLog_AddReg
 HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\netevent.dll"
 HKR,,TypesSupported,0x00010001,7
 
-[XenNet_Inst.CoInstallers]
-CopyFiles=CoInst_CopyFiles
-AddReg=CoInst_AddReg
-
-[CoInst_AddReg]
-HKR,,CoInstallers32,0x00010000,"xennet_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
-
 [Strings] 
 
 Vendor="@VENDOR_NAME@"
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 07:40:18 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 07:40:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610215.949557 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm86j-0004S1-Ud; Fri, 29 Sep 2023 07:40:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610215.949557; Fri, 29 Sep 2023 07:40: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 1qm86j-0004Ru-QZ; Fri, 29 Sep 2023 07:40:17 +0000
Received: by outflank-mailman (input) for mailman id 610215;
 Fri, 29 Sep 2023 07:40:16 +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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm86i-0004RP-PU
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 07:40:16 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c9b0490-5e9b-11ee-9b0d-b553b5be7939;
 Fri, 29 Sep 2023 09:40:13 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-406612943f7so23145e9.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 00:40:13 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g12-20020a5d698c000000b0031c8a43712asm20979564wru.69.2023.09.29.00.40.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 00:40:11 -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: 6c9b0490-5e9b-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695973212; x=1696578012; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=ZFxuDPTl0nOBUbiiduWhbyfBhxY3hgT4zd0AT2A3ecw=;
        b=WaowpliGk5JNXIaNNsbJCiZo199Cd93w1/mJxM63p+KQ2xHyOLOetPVrohbHRYF/08
         GvwPPfxNTACs3m1oUxmFbnZXMHu1q9G4la3AohZY4ZLm2BC1S+7kWioevabLVIiDY5OE
         ANgtS8XKn7S5Gk7kh6UH+KMqrmEOUvZZG20mE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695973212; x=1696578012;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZFxuDPTl0nOBUbiiduWhbyfBhxY3hgT4zd0AT2A3ecw=;
        b=QvBa6NYjBREFo09r/cH7jEBerchoFPdp1IwT6Wy85WkP5WXQ+ITLmeh8HqU8SxstAQ
         unOoPXaUKMt/BvbBc6aYJi3yWPQigQN/boEID0p1k8YQmqKI779S2Kd/j9ruN46z4GLL
         +5BQ1/6Q/YavatoRSqOlOpwrA8913aPPSY4X4MPz7/t+/pRQQZ321bWj9nHmXE0ost/1
         X8qMmU2AV6Yn+fa6I2u3U7/0ryakrOQlxuplfViBZ/XUeuBact0xSTWl2cf3Qwnzpi0J
         WfRJqFG5vZ3ztK1KpZ4fVN9/JXuVKDj1XhlBJkVmioISFBw4yrXfFlup2nl3WkzmSkEa
         Sygg==
X-Gm-Message-State: AOJu0Yxdqpm4DodavmG3lOUs+IXfyF0Ev9H+tEbZYAoEGd1vqDAcZbsO
	Y0fVZRZIV/NRKWCNPj0mUclYzOOpop9WcTxfV8Di
X-Google-Smtp-Source: AGHT+IGC6J4SV+ITaWXR8qOMJF/fcoNn7vtGOVv/6l6c7rRCqMJBcL7JxthW/6SbnV1NCLBiRhon5Q==
X-Received: by 2002:a5d:5390:0:b0:324:7bdb:873a with SMTP id d16-20020a5d5390000000b003247bdb873amr3202719wrv.58.1695973212242;
        Fri, 29 Sep 2023 00:40:12 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 0/2] Remove CoInstallers
Date: Fri, 29 Sep 2023 08:39:56 +0100
Message-ID: <20230929073958.840-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
The current CoInstaller handle several edge cases that will need replacement
implementations. This patch series for most drivers offers a potential solution
to the removal of CoInstallers and the required changes to avoid upgrade issues.

CoInstallers have several uses currently:
- Adds an upgrade block function with the "AllowUpgrade" value blocking driver
  upgrades when set.
- Checks all currently installed child devices have a supported set of interfaces
  common with the new parent device.

The AllowUpgrade function has not been replaced - I have not seen this used in
the current implementations of the drivers.

The interface compatability checks can be replaced with the matching if RevisionIDs
in the INF files, so that child devices will only install on parent devices that
expose a matching HardwareID or CompatibleID. This does leave the case where the
new parent driver could drop support for an interface version that is currently in
use. This will mandate a further driver upgrade, and should remove the Unplug keys
and mandate a reboot where the emulated devices are present, to ensure continued
operation. After this reboot using emulated devices, updates to the child devices
should be detected and installed, requiring another reboot to revert to PV devices.

I believe that, going forward, changing the DeviceID to remove the RevisionID will
avoid the need to set network IDs and copy settings from the previous network
connection to the new network connection. This change will mean the driver selection
during installation/upgrade will use the HardwareIDs (with RevisionIDs) to match the
ID in the DDInstall INF section (with RevisionID), and use the DeviceID to generate
the Matching Device ID and Instance ID. This means that once drivers have been
upgraded, the InstanceIDs should not change, and Windows should not generate a new
network connection (with default settings) for the upgraded driver set - meaning the
correct network settings are persisted.

Owen Smith (2):
  Remove CoInstaller from INF
  Delete CoInstaller code

 src/coinst/coinst.c                           | 603 ------------------
 src/coinst/xennet_coinst.def                  |  38 --
 src/coinst/xennet_coinst.rc                   |  57 --
 src/xennet.inf                                |  13 +-
 vs2015/package/package.vcxproj                |   3 -
 vs2015/xennet.sln                             |  31 -
 vs2015/xennet_coinst/xennet_coinst.vcxproj    |  63 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 vs2017/package/package.vcxproj                |   3 -
 vs2017/xennet.sln                             |  31 -
 vs2017/xennet_coinst/xennet_coinst.vcxproj    |  63 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 vs2019/package/package.vcxproj                |   3 -
 vs2019/xennet.sln                             |  31 -
 vs2019/xennet_coinst/xennet_coinst.vcxproj    |  69 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 vs2022/package/package.vcxproj                |   3 -
 vs2022/xennet.sln                             |  31 -
 vs2022/xennet_coinst/xennet_coinst.vcxproj    |  69 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 20 files changed, 1 insertion(+), 1142 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xennet_coinst.def
 delete mode 100644 src/coinst/xennet_coinst.rc
 delete mode 100644 vs2015/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2015/xennet_coinst/xennet_coinst.vcxproj.user
 delete mode 100644 vs2017/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2017/xennet_coinst/xennet_coinst.vcxproj.user
 delete mode 100644 vs2019/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2019/xennet_coinst/xennet_coinst.vcxproj.user
 delete mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj.user

-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 07:40:18 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 07:40:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610216.949561 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm86k-0004SJ-0f; Fri, 29 Sep 2023 07:40:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610216.949561; Fri, 29 Sep 2023 07:40: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 1qm86j-0004S5-SF; Fri, 29 Sep 2023 07:40:17 +0000
Received: by outflank-mailman (input) for mailman id 610216;
 Fri, 29 Sep 2023 07:40:17 +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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm86i-0004Pi-VQ
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 07:40:17 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6df1260d-5e9b-11ee-878b-cb3800f73035;
 Fri, 29 Sep 2023 09:40:15 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-323168869daso10921246f8f.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 00:40:15 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 g12-20020a5d698c000000b0031c8a43712asm20979564wru.69.2023.09.29.00.40.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 00:40:13 -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: 6df1260d-5e9b-11ee-878b-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695973214; x=1696578014; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Aa0P1GdLXNzw8YoNyOcwuhHOQbMqRM/PruS/twULOro=;
        b=GZAiNSMqZ1XAiBmNpbCQvYfVHqKPmJr+RqCyylQ5gVlpKVuOlQqtW+PFODC6q63SCD
         PXv8BVhI1XwLahdIQzUibrZiok9AiuYSsZzsIHK3JIMYGT1zWKHBLoyZM3AWXOxOWxJv
         w6gtuHQ2F+P8a1UOG/iK+WprleMij0J1zEBOQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695973214; x=1696578014;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Aa0P1GdLXNzw8YoNyOcwuhHOQbMqRM/PruS/twULOro=;
        b=vwEpb9+PQ1V4gJ7iyJ3nUgbTWD15LdSJ0YgKUo9y4Sv/t0vmqQZ5WUUL5YAwCar6Hi
         jPy+zwByt2BV2ToJQK0Pupan6g+wUfjWqPh8TdxYQx/CJUGP++rePSEU/dkiaLjW3VUW
         yy4go2WUuW+aFiwaL4q1azFOY6+l3t02/gbkoEnWOcMwZD747V9rxdFUPZ9SOLANZvPA
         s3jRYkumSc+B4e1N9gHMn2f3OUnIg5lNDiecr5ReWXiO4MJseuiTmxXtEhSDgcmva3Se
         dnJZFRvi2TF0BgHGOTojE0NAoyv52ZUOAHYPSy9utN6C0iMFhIe/7YwBJLKC5wsALb/t
         zDqQ==
X-Gm-Message-State: AOJu0YwEtp++W3lfg2hD+rcKnVYowBqTYh9srgPZk2+4l8Ow5Shl+Tuo
	zsNTZ4sF9Bej+UUqKw0Ijbt6hRsSHX2cInuaFv40
X-Google-Smtp-Source: AGHT+IEpvKFPyCAjuvfsu2/rGwJK/4PnUX2mR3hjhxSM6ba24O810fpeF8lNvpyNze8k0+sB8lMQAg==
X-Received: by 2002:a5d:6604:0:b0:314:3a4b:6cc6 with SMTP id n4-20020a5d6604000000b003143a4b6cc6mr2936215wru.53.1695973214032;
        Fri, 29 Sep 2023 00:40:14 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 2/2] Delete CoInstaller code
Date: Fri, 29 Sep 2023 08:39:58 +0100
Message-ID: <20230929073958.840-3-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230929073958.840-1-owen.smith@cloud.com>
References: <20230929073958.840-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the CoInstaller removed from the INF file, delete the CoInstaller
source code and projects.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/coinst/coinst.c                           | 603 ------------------
 src/coinst/xennet_coinst.def                  |  38 --
 src/coinst/xennet_coinst.rc                   |  57 --
 vs2015/package/package.vcxproj                |   3 -
 vs2015/xennet.sln                             |  31 -
 vs2015/xennet_coinst/xennet_coinst.vcxproj    |  63 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 vs2017/package/package.vcxproj                |   3 -
 vs2017/xennet.sln                             |  31 -
 vs2017/xennet_coinst/xennet_coinst.vcxproj    |  63 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 vs2019/package/package.vcxproj                |   3 -
 vs2019/xennet.sln                             |  31 -
 vs2019/xennet_coinst/xennet_coinst.vcxproj    |  69 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 vs2022/package/package.vcxproj                |   3 -
 vs2022/xennet.sln                             |  31 -
 vs2022/xennet_coinst/xennet_coinst.vcxproj    |  69 --
 .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
 19 files changed, 1130 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xennet_coinst.def
 delete mode 100644 src/coinst/xennet_coinst.rc
 delete mode 100644 vs2015/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2015/xennet_coinst/xennet_coinst.vcxproj.user
 delete mode 100644 vs2017/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2017/xennet_coinst/xennet_coinst.vcxproj.user
 delete mode 100644 vs2019/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2019/xennet_coinst/xennet_coinst.vcxproj.user
 delete mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj
 delete mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj.user

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
deleted file mode 100644
index f25c0f5..0000000
--- a/src/coinst/coinst.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, 
- * with or without modification, are permitted provided 
- * that the following conditions are met:
- * 
- * *   Redistributions of source code must retain the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer in the documentation and/or other 
- *     materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
- * SUCH DAMAGE.
- */
-
-#define INITGUID
-
-#include <windows.h>
-#include <ws2def.h>
-#include <ws2ipdef.h>
-#include <iphlpapi.h>
-#include <setupapi.h>
-#include <devguid.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <tchar.h>
-#include <strsafe.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <vif_interface.h>
-
-#include <tcpip.h>
-#include <version.h>
-
-#define stringify_literal(_text) #_text
-#define stringify(_text) stringify_literal(_text)
-#define __MODULE__ stringify(PROJECT)
-
-__user_code;
-
-#define MAXIMUM_BUFFER_SIZE 1024
-
-#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
-
-static VOID
-#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024'
-__Log(
-    IN  const CHAR  *Format,
-    IN  ...
-    )
-{
-    TCHAR               Buffer[MAXIMUM_BUFFER_SIZE];
-    va_list             Arguments;
-    size_t              Length;
-    SP_LOG_TOKEN        LogToken;
-    DWORD               Category;
-    DWORD               Flags;
-    HRESULT             Result;
-
-    va_start(Arguments, Format);
-    Result = StringCchVPrintf(Buffer, MAXIMUM_BUFFER_SIZE, Format, Arguments);
-    va_end(Arguments);
-
-    if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
-        return;
-
-    Result = StringCchLength(Buffer, MAXIMUM_BUFFER_SIZE, &Length);
-    if (Result != S_OK)
-        return;
-
-    LogToken = SetupGetThreadLogToken();
-    Category = TXTLOG_VENDOR;
-    Flags = TXTLOG_WARNING;
-
-    SetupWriteTextLog(LogToken, Category, Flags, Buffer);
-    Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
-
-    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
-    __analysis_assume(Length >= 2);
-    Buffer[Length] = '\0';
-    Buffer[Length - 1] = '\n';
-    Buffer[Length - 2] = '\r';
-
-    OutputDebugString(Buffer);
-}
-
-#define Log(_Format, ...) \
-        __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__)
-
-static FORCEINLINE PTCHAR
-__GetErrorMessage(
-    IN  DWORD   Error
-    )
-{
-    PTCHAR      Message;
-    ULONG       Index;
-
-    if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                       FORMAT_MESSAGE_FROM_SYSTEM |
-                       FORMAT_MESSAGE_IGNORE_INSERTS,
-                       NULL,
-                       Error,
-                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                       (LPTSTR)&Message,
-                       0,
-                       NULL))
-        return NULL;
-
-    for (Index = 0; Message[Index] != '\0'; Index++) {
-        if (Message[Index] == '\r' || Message[Index] == '\n') {
-            Message[Index] = '\0';
-            break;
-        }
-    }
-
-    return Message;
-}
-
-static FORCEINLINE const CHAR *
-__FunctionName(
-    IN  DI_FUNCTION Function
-    )
-{
-#define _NAME(_Function)        \
-        case DIF_ ## _Function: \
-            return #_Function;
-
-    switch (Function) {
-    _NAME(INSTALLDEVICE);
-    _NAME(REMOVE);
-    _NAME(SELECTDEVICE);
-    _NAME(ASSIGNRESOURCES);
-    _NAME(PROPERTIES);
-    _NAME(FIRSTTIMESETUP);
-    _NAME(FOUNDDEVICE);
-    _NAME(SELECTCLASSDRIVERS);
-    _NAME(VALIDATECLASSDRIVERS);
-    _NAME(INSTALLCLASSDRIVERS);
-    _NAME(CALCDISKSPACE);
-    _NAME(DESTROYPRIVATEDATA);
-    _NAME(VALIDATEDRIVER);
-    _NAME(MOVEDEVICE);
-    _NAME(DETECT);
-    _NAME(INSTALLWIZARD);
-    _NAME(DESTROYWIZARDDATA);
-    _NAME(PROPERTYCHANGE);
-    _NAME(ENABLECLASS);
-    _NAME(DETECTVERIFY);
-    _NAME(INSTALLDEVICEFILES);
-    _NAME(ALLOW_INSTALL);
-    _NAME(SELECTBESTCOMPATDRV);
-    _NAME(REGISTERDEVICE);
-    _NAME(NEWDEVICEWIZARD_PRESELECT);
-    _NAME(NEWDEVICEWIZARD_SELECT);
-    _NAME(NEWDEVICEWIZARD_PREANALYZE);
-    _NAME(NEWDEVICEWIZARD_POSTANALYZE);
-    _NAME(NEWDEVICEWIZARD_FINISHINSTALL);
-    _NAME(INSTALLINTERFACES);
-    _NAME(DETECTCANCEL);
-    _NAME(REGISTER_COINSTALLERS);
-    _NAME(ADDPROPERTYPAGE_ADVANCED);
-    _NAME(ADDPROPERTYPAGE_BASIC);
-    _NAME(TROUBLESHOOTER);
-    _NAME(POWERMESSAGEWAKE);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-static BOOLEAN
-AllowUpdate(
-    IN  PTCHAR      DriverName,
-    OUT PBOOLEAN    Allow
-    )
-{
-    TCHAR           ServiceKeyName[MAX_PATH];
-    HKEY            ServiceKey;
-    HRESULT         Result;
-    HRESULT         Error;
-    DWORD           ValueLength;
-    DWORD           Value;
-    DWORD           Type;
-
-    Log("====> (%s)", DriverName);
-
-    Result = StringCbPrintf(ServiceKeyName,
-                            MAX_PATH,
-                            SERVICES_KEY "\\%s",
-                            DriverName);
-    assert(SUCCEEDED(Result));
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         ServiceKeyName,
-                         0,
-                         KEY_READ,
-                         &ServiceKey);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Value = 1;
-            goto done;
-        }
-
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    ValueLength = sizeof (Value);
-
-    Error = RegQueryValueEx(ServiceKey,
-                            "AllowUpdate",
-                            NULL,
-                            &Type,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Type = REG_DWORD;
-            Value = 1;
-        } else {
-            SetLastError(Error);
-            goto fail2;
-        }
-    }
-
-    if (Type != REG_DWORD) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail3;
-    }
-
-    RegCloseKey(ServiceKey);
-
-done:
-    if (Value == 0) {
-        Log("DISALLOWED");
-        *Allow = FALSE;
-    }
-
-    Log("<====");
-
-    return TRUE;
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ServiceKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-AllowInstall(
-    OUT PBOOLEAN    Allow
-    )
-{
-    BOOLEAN         Success;
-    HRESULT         Error;
-
-    Log("====>");
-
-    *Allow = TRUE;
-
-    Success = AllowUpdate("XENNET", Allow);
-    if (!Success)
-        goto fail1;
-
-    Log("<====");
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static FORCEINLINE HRESULT
-__DifInstallPreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-    BOOLEAN                         Success;
-    BOOLEAN                         Allow;
-
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("====>");
-
-    Success = AllowInstall(&Allow);
-    if (!Success)
-        goto fail1;
-
-    if (!Allow) {
-        SetLastError(ERROR_ACCESS_DENIED);
-        goto fail2;
-    }
-
-    Log("<====");
-
-    return NO_ERROR; 
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static FORCEINLINE HRESULT
-__DifInstallPostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static DECLSPEC_NOINLINE HRESULT
-DifInstall(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-
-    if (!Context->PostProcessing) {
-        Error = __DifInstallPreProcess(DeviceInfoSet, DeviceInfoData, Context);
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) __DifInstallPostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = __GetErrorMessage(Error);
-            Log("NOT RUNNING (__DifInstallPreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-    }
-
-    return Error;
-}
-
-static FORCEINLINE HRESULT
-__DifRemovePreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static FORCEINLINE HRESULT
-__DifRemovePostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static DECLSPEC_NOINLINE HRESULT
-DifRemove(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-
-    if (!Context->PostProcessing) {
-        Error = __DifRemovePreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) __DifRemovePostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = __GetErrorMessage(Error);
-            Log("NOT RUNNING (__DifRemovePreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-    }
-
-    return Error;
-}
-
-DWORD CALLBACK
-Entry(
-    IN  DI_FUNCTION                 Function,
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-
-    Log("%s (%s) ===>",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    if (!Context->PostProcessing) {
-        Log("%s PreProcessing",
-            __FunctionName(Function));
-    } else {
-        Log("%s PostProcessing (%08x)",
-            __FunctionName(Function),
-            Context->InstallResult);
-    }
-
-    switch (Function) {
-    case DIF_INSTALLDEVICE: {
-        SP_DRVINFO_DATA         DriverInfoData;
-        BOOLEAN                 DriverInfoAvailable;
-
-        DriverInfoData.cbSize = sizeof (DriverInfoData);
-        DriverInfoAvailable = SetupDiGetSelectedDriver(DeviceInfoSet,
-                                                       DeviceInfoData,
-                                                       &DriverInfoData) ?
-                              TRUE :
-                              FALSE;
-
-        // The NET class installer will call DIF_REMOVE even in the event of
-        // a NULL driver add. However, the default installer (for the NULL
-        // driver) then fails for some reason so we squash the error in
-        // post-processing.
-        if (DriverInfoAvailable) {
-            Error = DifInstall(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            if (!Context->PostProcessing) {
-                Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-            } else {
-                Error = NO_ERROR;
-            }
-        }
-        break;
-    }
-    case DIF_REMOVE:
-        Error = DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    default:
-        if (!Context->PostProcessing) {
-            Error = NO_ERROR;
-        } else {
-            Error = Context->InstallResult;
-        }
-
-        break;
-    }
-
-    Log("%s (%s) <===",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return (DWORD)Error;
-}
-
-DWORD CALLBACK
-Version(
-    IN  HWND        Window,
-    IN  HINSTANCE   Module,
-    IN  PTCHAR      Buffer,
-    IN  INT         Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Window);
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Buffer);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s)",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return NO_ERROR;
-}
-
-static FORCEINLINE const CHAR *
-__ReasonName(
-    IN  DWORD       Reason
-    )
-{
-#define _NAME(_Reason)          \
-        case DLL_ ## _Reason:   \
-            return #_Reason;
-
-    switch (Reason) {
-    _NAME(PROCESS_ATTACH);
-    _NAME(PROCESS_DETACH);
-    _NAME(THREAD_ATTACH);
-    _NAME(THREAD_DETACH);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-BOOL WINAPI
-DllMain(
-    IN  HINSTANCE   Module,
-    IN  DWORD       Reason,
-    IN  PVOID       Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s): %s",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR,
-        __ReasonName(Reason));
-
-    return TRUE;
-}
diff --git a/src/coinst/xennet_coinst.def b/src/coinst/xennet_coinst.def
deleted file mode 100644
index 3a3f0fb..0000000
--- a/src/coinst/xennet_coinst.def
+++ /dev/null
@@ -1,38 +0,0 @@
-; Copyright (c) Xen Project.
-; Copyright (c) Cloud Software Group, Inc.
-; All rights reserved.
-; 
-; Redistribution and use in source and binary forms, 
-; with or without modification, are permitted provided 
-; that the following conditions are met:
-; 
-; *   Redistributions of source code must retain the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer.
-; *   Redistributions in binary form must reproduce the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer in the documentation and/or other 
-;     materials provided with the distribution.
-; 
-; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
-; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
-; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
-; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
-; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
-; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
-; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
-; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
-; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
-; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
-; SUCH DAMAGE.
-
-LIBRARY  XENNET_COINST
-
-EXPORTS   
-   Entry 
-   Version
-
-   DllMain PRIVATE
diff --git a/src/coinst/xennet_coinst.rc b/src/coinst/xennet_coinst.rc
deleted file mode 100644
index e4635d4..0000000
--- a/src/coinst/xennet_coinst.rc
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * *   Redistributions of source code must retain the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer in the documentation and/or other
- *     materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <windows.h>
-#include <ntverp.h>
-
-
-#undef VER_COMPANYNAME_STR
-#undef VER_PRODUCTNAME_STR
-#undef VER_PRODUCTVERSION
-#undef VER_PRODUCTVERSION_STR
-
-#include <version.h>
-
-#define	VER_COMPANYNAME_STR         VENDOR_NAME_STR
-#define VER_LEGALCOPYRIGHT_STR      COPYRIGHT_STR
-
-#define VER_PRODUCTNAME_STR         "XENNET_COINST"
-#define VER_PRODUCTVERSION          MAJOR_VERSION,MINOR_VERSION,MICRO_VERSION,BUILD_NUMBER
-#define VER_PRODUCTVERSION_STR      MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR
-
-#define VER_INTERNALNAME_STR        "XENNET_COINST.DLL"
-#define VER_FILEDESCRIPTION_STR     "XENNET_COINST"
-
-#define VER_FILETYPE                VFT_DRV
-#define VER_FILESUBTYPE             VFT2_DRV_SYSTEM
-
-#include <common.ver>
diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj
index 5433b1f..cce27d2 100644
--- a/vs2015/package/package.vcxproj
+++ b/vs2015/package/package.vcxproj
@@ -41,9 +41,6 @@
     <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)')">
diff --git a/vs2015/xennet.sln b/vs2015/xennet.sln
index 7cbf8ca..875f691 100644
--- a/vs2015/xennet.sln
+++ b/vs2015/xennet.sln
@@ -9,16 +9,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcx
 		{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
@@ -73,30 +66,6 @@ Global
 		{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
diff --git a/vs2015/xennet_coinst/xennet_coinst.vcxproj b/vs2015/xennet_coinst/xennet_coinst.vcxproj
deleted file mode 100644
index 2bbd383..0000000
--- a/vs2015/xennet_coinst/xennet_coinst.vcxproj
+++ /dev/null
@@ -1,63 +0,0 @@
-<?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>{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>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>PROJECT=$(ProjectName);;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <WarningLevel>EnableAllWarnings</WarningLevel>
-      <DisableSpecificWarnings>4548;4820;4668;4255;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>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xennet_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2015/xennet_coinst/xennet_coinst.vcxproj.user b/vs2015/xennet_coinst/xennet_coinst.vcxproj.user
deleted file mode 100644
index 8b034c4..0000000
--- a/vs2015/xennet_coinst/xennet_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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>
diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj
index dd794b5..975bef2 100644
--- a/vs2017/package/package.vcxproj
+++ b/vs2017/package/package.vcxproj
@@ -41,9 +41,6 @@
     <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)')">
diff --git a/vs2017/xennet.sln b/vs2017/xennet.sln
index fde116e..0d24a12 100644
--- a/vs2017/xennet.sln
+++ b/vs2017/xennet.sln
@@ -6,16 +6,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcx
 		{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
@@ -70,30 +63,6 @@ Global
 		{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
diff --git a/vs2017/xennet_coinst/xennet_coinst.vcxproj b/vs2017/xennet_coinst/xennet_coinst.vcxproj
deleted file mode 100644
index 310d709..0000000
--- a/vs2017/xennet_coinst/xennet_coinst.vcxproj
+++ /dev/null
@@ -1,63 +0,0 @@
-<?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>
-      <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>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xennet_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2017/xennet_coinst/xennet_coinst.vcxproj.user b/vs2017/xennet_coinst/xennet_coinst.vcxproj.user
deleted file mode 100644
index 8b034c4..0000000
--- a/vs2017/xennet_coinst/xennet_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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>
diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index 098252d..232227e 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -46,9 +46,6 @@
     <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)')">
diff --git a/vs2019/xennet.sln b/vs2019/xennet.sln
index 2928c20..50ef6c3 100644
--- a/vs2019/xennet.sln
+++ b/vs2019/xennet.sln
@@ -9,16 +9,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcx
 		{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
@@ -73,30 +66,6 @@ Global
 		{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
diff --git a/vs2019/xennet_coinst/xennet_coinst.vcxproj b/vs2019/xennet_coinst/xennet_coinst.vcxproj
deleted file mode 100644
index ca24ed4..0000000
--- a/vs2019/xennet_coinst/xennet_coinst.vcxproj
+++ /dev/null
@@ -1,69 +0,0 @@
-<?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>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\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\xennet_coinst.def" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xennet_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2019/xennet_coinst/xennet_coinst.vcxproj.user b/vs2019/xennet_coinst/xennet_coinst.vcxproj.user
deleted file mode 100644
index 8b034c4..0000000
--- a/vs2019/xennet_coinst/xennet_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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>
diff --git a/vs2022/package/package.vcxproj b/vs2022/package/package.vcxproj
index 3df4166..5df9967 100644
--- a/vs2022/package/package.vcxproj
+++ b/vs2022/package/package.vcxproj
@@ -46,9 +46,6 @@
     <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)')">
diff --git a/vs2022/xennet.sln b/vs2022/xennet.sln
index 2928c20..50ef6c3 100644
--- a/vs2022/xennet.sln
+++ b/vs2022/xennet.sln
@@ -9,16 +9,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcx
 		{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
@@ -73,30 +66,6 @@ Global
 		{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
diff --git a/vs2022/xennet_coinst/xennet_coinst.vcxproj b/vs2022/xennet_coinst/xennet_coinst.vcxproj
deleted file mode 100644
index ca24ed4..0000000
--- a/vs2022/xennet_coinst/xennet_coinst.vcxproj
+++ /dev/null
@@ -1,69 +0,0 @@
-<?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>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>..\..\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\xennet_coinst.def" />
-  </ItemGroup>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xennet_coinst.rc" />
-  </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
deleted file mode 100644
index 8b034c4..0000000
--- a/vs2022/xennet_coinst/xennet_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 08:03:32 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 08:03:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610269.949614 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm8TD-00054B-Hs; Fri, 29 Sep 2023 08:03:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610269.949614; Fri, 29 Sep 2023 08:03:31 +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 1qm8TD-000544-FF; Fri, 29 Sep 2023 08:03:31 +0000
Received: by outflank-mailman (input) for mailman id 610269;
 Fri, 29 Sep 2023 08:03:30 +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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm8TC-00053y-8n
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 08:03:30 +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 acb16e86-5e9e-11ee-878b-cb3800f73035;
 Fri, 29 Sep 2023 10:03:29 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4053c6f1087so131246415e9.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 01:03:29 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 c5-20020adfed85000000b0032196c508e3sm21046406wro.53.2023.09.29.01.03.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 01:03:27 -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: acb16e86-5e9e-11ee-878b-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695974608; x=1696579408; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=NKmnjpqFT6X/It1w14H7fAh7ri1apK3UcE2OG7K/He0=;
        b=JVwpNP02Q0lTTSZ5JOSs7JR4x8YGkot0vjY2lIl7GwWQsCIAZbuFFnZwKxjZayspIB
         zLx4B6OsgNC7H9qssCvLp/HBMYrS2vG9YAgyRZ07dLycDBSII52JT34LLxwZKVmu9Jtn
         NAe24psgT/tycWN+M+kRPR/LZW+f/r2KhwZac=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695974608; x=1696579408;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NKmnjpqFT6X/It1w14H7fAh7ri1apK3UcE2OG7K/He0=;
        b=tJ7DOvAGKNAGEYojvB7VsXk8Fo8hEpGCyP03d6MsQKmolkb/oX5Sn4l2rTEpO1FH0v
         /z9CL9oVk1PmNQdmVxnW9dFbeK0myafrPwbW+XCA8b7fcp6Y8exOIBH3TDWIbQm+rpXW
         xc/84k8ydLKf/ouvUSIRRWQ6iGrFOYwIa8jvQRsRWBAdWoUWpaJrcNI1GT7Nlt3La1Q6
         jxLep7fJKKFmofZqBPJQ1KyiPPJgzH2s3w6n71zmYPnfdbUD++suilztZUTBgfLGbzaw
         ENDYZyutUbRuinRJpHynUqmySWuDyNYJnGmeeT2sByg1m4me/L8qRxSZS9oVX3p4GjZv
         2Ujg==
X-Gm-Message-State: AOJu0YzcrwqVsx3azLK3+HjzH7d6FSsd0BGw91UNICS/hReri7hrkFjY
	pmTp/Hk1/Nj/nZ5sHZMrZ77y7/u0l7WhetPJdLl+
X-Google-Smtp-Source: AGHT+IH1CFCgkVPGsoEp8BNV3ORr64/CDYqeNxNCzKlbU6/M7FZroPIH3C6oTVmvOSvXCyCESHGezw==
X-Received: by 2002:a05:600c:4f45:b0:404:7462:1f6f with SMTP id m5-20020a05600c4f4500b0040474621f6fmr3177344wmq.8.1695974608214;
        Fri, 29 Sep 2023 01:03:28 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 0/2] Remove CoInstallers
Date: Fri, 29 Sep 2023 09:03:13 +0100
Message-ID: <20230929080315.422-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
The current CoInstaller handle several edge cases that will need replacement
implementations. This patch series for most drivers offers a potential solution
to the removal of CoInstallers and the required changes to avoid upgrade issues.

CoInstallers have several uses currently:
- Adds an upgrade block function with the "AllowUpgrade" value blocking driver
  upgrades when set.
- Checks all currently installed child devices have a supported set of interfaces
  common with the new parent device.
- Several Windows registry value are set, controlling the storage stack for boot
  devices.

The AllowUpgrade function has not been replaced - I have not seen this used in
the current implementations of the drivers.

The interface compatability checks can be replaced with the matching if RevisionIDs
in the INF files, so that child devices will only install on parent devices that
expose a matching HardwareID or CompatibleID. This does leave the case where the
new parent driver could drop support for an interface version that is currently in
use. This will mandate a further driver upgrade, and should remove the Unplug keys
and mandate a reboot where the emulated devices are present, to ensure continued
operation. After this reboot using emulated devices, updates to the child devices
should be detected and installed, requiring another reboot to revert to PV devices.

I believe that, going forward, changing the DeviceID to remove the RevisionID will
avoid the need to set network IDs and copy settings from the previous network
connection to the new network connection. This change will mean the driver selection
during installation/upgrade will use the HardwareIDs (with RevisionIDs) to match the
ID in the DDInstall INF section (with RevisionID), and use the DeviceID to generate
the Matching Device ID and Instance ID. This means that once drivers have been
upgraded, the InstanceIDs should not change, and Windows should not generate a new
network connection (with default settings) for the upgraded driver set - meaning the
correct network settings are persisted.

Owen Smith (2):
  Remove CoInstaller from INF
  Delete CoInstaller code

 include/unplug_interface.h                    |  30 +-
 src/coinst/coinst.c                           | 917 ------------------
 src/coinst/xenvbd_coinst.def                  |  38 -
 src/coinst/xenvbd_coinst.rc                   |  57 --
 src/xenvbd.inf                                |  32 +-
 vs2015/package/package.vcxproj                |   3 -
 vs2015/xenvbd.sln                             |  21 +-
 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj    |  62 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 vs2017/package/package.vcxproj                |   3 -
 vs2017/xenvbd.sln                             |  24 +-
 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj    |  62 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 vs2019/package/package.vcxproj                |   3 -
 vs2019/xenvbd.sln                             |  24 +-
 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj    |  68 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 vs2022/package/package.vcxproj                |   3 -
 vs2022/xenvbd.sln                             |  24 +-
 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj    |  68 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 21 files changed, 49 insertions(+), 1422 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xenvbd_coinst.def
 delete mode 100644 src/coinst/xenvbd_coinst.rc
 delete mode 100644 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj.user
 delete mode 100644 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj.user
 delete mode 100644 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj.user
 delete mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user

-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 08:03:57 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 08:03:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610271.949620 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm8Td-00059P-MU; Fri, 29 Sep 2023 08:03:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610271.949620; Fri, 29 Sep 2023 08:03:57 +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 1qm8Td-00059I-Hk; Fri, 29 Sep 2023 08:03:57 +0000
Received: by outflank-mailman (input) for mailman id 610271;
 Fri, 29 Sep 2023 08:03:56 +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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm8Tc-00058n-5U
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 08:03:56 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id baabf31e-5e9e-11ee-9b0d-b553b5be7939;
 Fri, 29 Sep 2023 10:03:52 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-40566f8a093so107545105e9.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 01:03:52 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 c5-20020adfed85000000b0032196c508e3sm21046406wro.53.2023.09.29.01.03.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 01:03:51 -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: baabf31e-5e9e-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695974632; x=1696579432; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BMdz8/feYwkHYNCDVK60FMQ1T80UECAg/CUy+lwZtlQ=;
        b=EphseSIUgDLAnDRK0WwDSanTdIqdfkSUB/s+vrr4m1hIxbx7kR2D8vlPMkf9rR0FMF
         SghVA2TTU4sFqhAxKCQsS0Iw/LowsblmplyPNfQ/PbaSi9FjUTkSSIWZgRN1FxKVhNN8
         q/52WFNCCzMegiCDRu1vQ4seOjq23Kx1Kq+Vg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695974632; x=1696579432;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BMdz8/feYwkHYNCDVK60FMQ1T80UECAg/CUy+lwZtlQ=;
        b=RcqzLnk7VLH3hD5YwyVGvJj+NWrtzOHHCeDN2KL7SASa5QAuIkQxe5ID3opgCADv12
         qxn08hVtAsRvnqBpxkjBC+yHMw4I53Px7DiokS8/+6fYDMHens/qd6ZyEz7GivYZZXQX
         Xkdp2U7iGJPdcNS6Y0aRaFcVbutlHXxn1DrdFTOt0CmJDxabyrI4Xf+XJFweyc4CVj66
         C1tBaxTP8U6rg2FkTJHYIyMv3jhVK3pVFyPAEN7IQWbsybpni/hWU2srmBvacGfh6x4I
         t33AJQRGlC5IESjtSHHf/P86EQ082YtuMxTULHE+oUuSaYIxe3ljLjOGMuuD8/AWB95W
         va+A==
X-Gm-Message-State: AOJu0YyY/cPRwRNaDsDpgsiAsx5MHBtiEDcIahFGag8ZnrcRb13uTmm+
	siE7v7S26K8600JHgo6XR5UvhcUMecd1GgbKzari
X-Google-Smtp-Source: AGHT+IE0YjnErW5qaZ0KWEFi3pFV9/vm5/p6FMDNUJljMhGmc3doP2d6SRE7ONOayJzkWHVb0JpW0g==
X-Received: by 2002:adf:ee48:0:b0:321:4790:bb5e with SMTP id w8-20020adfee48000000b003214790bb5emr3460187wro.38.1695974631689;
        Fri, 29 Sep 2023 01:03:51 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 1/2] Remove CoInstaller from INF
Date: Fri, 29 Sep 2023 09:03:14 +0100
Message-ID: <20230929080315.422-2-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230929080315.422-1-owen.smith@cloud.com>
References: <20230929080315.422-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
several issues
- PnpLockdown=1 needs to be specified
- CoInstallers are no longer allowed

The CoInstaller has several functions that will need alternative solutions:
- The AllowUpdate mechanism is no longer possible
- The safety checks that ensure interface versionings remain compatible
- The updating of various system config registry values

Interface safety checks need to be handled by changes to child device bindings,
and assuming upgrade via emulated devices is safe. The unplug keys are cleared
in the INF to revert to emulated on the next boot, incase the current child
drivers rely on an interface that is no longer present (note: in this case,
child drivers will need updating).

Also updates unplug_interface.h and device bindings so that this driver is only
loaded on a later XenBus that has removed the XenBus CoInstaller.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 include/unplug_interface.h | 30 ++++++++++++++++++++++++++++--
 src/xenvbd.inf             | 32 +++++++++++++++++---------------
 2 files changed, 45 insertions(+), 17 deletions(-)

diff --git a/include/unplug_interface.h b/include/unplug_interface.h
index 46c5dd4..9bad290 100644
--- a/include/unplug_interface.h
+++ b/include/unplug_interface.h
@@ -85,6 +85,20 @@ typedef VOID
     IN  BOOLEAN                     Make
     );
 
+/*! \typedef XENBUS_UNPLUG_GETSTATE
+    \brief Has a type of emulated device been unplugged
+
+    \param Interface The interface header
+    \param Type The type of device
+
+    \return TRUE The type of device has been unplugged this boot
+*/
+typedef BOOLEAN
+(*XENBUS_UNPLUG_GETSTATE)(
+    IN  PINTERFACE                  Interface,
+    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
+    );
+
 // {73db6517-3d06-4937-989f-199b7501e229}
 DEFINE_GUID(GUID_XENBUS_UNPLUG_INTERFACE,
 0x73db6517, 0x3d06, 0x4937, 0x98, 0x9f, 0x19, 0x9b, 0x75, 0x01, 0xe2, 0x29);
@@ -100,7 +114,19 @@ struct _XENBUS_UNPLUG_INTERFACE_V1 {
     XENBUS_UNPLUG_REQUEST   UnplugRequest;
 };
 
-typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
+/*! \struct _XENBUS_UNPLUG_INTERFACE_V2
+    \brief UNPLUG interface version 2
+    \ingroup interfaces
+*/
+struct _XENBUS_UNPLUG_INTERFACE_V2 {
+    INTERFACE               Interface;
+    XENBUS_UNPLUG_ACQUIRE   UnplugAcquire;
+    XENBUS_UNPLUG_RELEASE   UnplugRelease;
+    XENBUS_UNPLUG_REQUEST   UnplugRequest;
+    XENBUS_UNPLUG_GETSTATE  UnplugGetState;
+};
+
+typedef struct _XENBUS_UNPLUG_INTERFACE_V2 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
 
 /*! \def XENBUS_UNPLUG
     \brief Macro at assist in method invocation
@@ -111,6 +137,6 @@ typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNP
 #endif  // _WINDLL
 
 #define XENBUS_UNPLUG_INTERFACE_VERSION_MIN  1
-#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  1
+#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  2
 
 #endif  // _XENBUS_UNPLUG_INTERFACE_H
diff --git a/src/xenvbd.inf b/src/xenvbd.inf
index 94553d7..8bb7998 100644
--- a/src/xenvbd.inf
+++ b/src/xenvbd.inf
@@ -37,10 +37,10 @@ Provider=%Vendor%
 CatalogFile=xenvbd.cat
 DriverVer=@INF_DATE@,@MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@.@BUILD_NUMBER@
 DriverPackageDisplayName=%DiskDesc%
+PnpLockdown=1
 
 [DestinationDirs] 
 DefaultDestDir=12 
-CoInst_CopyFiles=11
 
 [SourceDisksNames]
 0=%DiskDesc%
@@ -49,15 +49,14 @@ CoInst_CopyFiles=11
 xenvbd.sys=0,,
 xencrsh.sys=0,,
 xendisk.sys=0,,
-xenvbd_coinst.dll=0,,
 
 [Manufacturer] 
 %Vendor%=Inst,NT@INF_ARCH@
 
 [Inst.NT@INF_ARCH@]
-%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VBD&REV_09000009
-%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VBD&REV_09000009
-%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VBD&REV_09000009
+%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VBD&REV_0900000A
+%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VBD&REV_0900000A
+%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VBD&REV_0900000A
 
 [XenVbd_Inst] 
 CopyFiles=XenVbd_Copyfiles
@@ -96,7 +95,7 @@ StartType=%SERVICE_BOOT_START%
 ErrorControl=%SERVICE_ERROR_NORMAL% 
 ServiceBinary=%12%\xenvbd.sys 
 LoadOrderGroup="Scsi Miniport"
-AddReg=XenVbd_Parameters
+AddReg=XenVbd_Parameters, XenVbd_Unplug, XenVbd_Extras
 
 [XenVbd_Parameters] 
 HKR,"Parameters",,0x00000010
@@ -106,23 +105,26 @@ HKR,"Parameters","RequestKey",0x00000000,%RequestKey%
 HKR,"Parameters","max-ring-page-order",0x00010001,0x00000001
 HKR,"Parameters","multi-queue-max-queues",0x00010001,0x00000002
 
-[XenVbd_Inst.CoInstallers]
-CopyFiles=CoInst_CopyFiles
-AddReg=CoInst_AddReg
+[XenVbd_Unplug]
+HKLM,%UnplugKey%,"DISKS",0x00010001,0
 
-[CoInst_CopyFiles]
-xenvbd_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenvbd_coinst.dll
+[XenVbd_Extras]
+HKLM,%PnpKey%,"DisableCDDB",0x00010001,0
+HKLM,%PnpKey%,"DontStartRawDevices",0x00010001,0
+HKLM,%PartMgrKey%,"SanPolicy",0x00010001,1
+HKLM,%DiskKey%,"TimeOutValue",0x00010001,120
 
-[CoInst_AddReg]
-HKR,,CoInstallers32,0x00010000,"xenvbd_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
-
-[Strings] 
+[Strings]
 
 Vendor = "@VENDOR_NAME@"
 DiskDesc = "@PRODUCT_NAME@ PV Storage Host Adapter Package" 
 XenVbdName= "@PRODUCT_NAME@ PV Storage Host Adapter"
 XenDiskName= "@PRODUCT_NAME@ PV Storage Filter"
 RequestKey="SYSTEM\CurrentControlSet\Services\xenbus_monitor\Request"
+UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
+PnpKey="SYSTEM\CurrentControlSet\Control\Pnp"
+PartMgrKey="SYSTEM\CurrentControlSet\Services\PartMgr\Parameters"
+DiskKey="SYSTEM\CurrentControlSet\Services\Disk"
 
 SERVICE_BOOT_START = 0x0 
 SERVICE_SYSTEM_START = 0x1 
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 08:03:57 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 08:03:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610272.949623 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm8Td-00059k-Oi; Fri, 29 Sep 2023 08:03:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610272.949623; Fri, 29 Sep 2023 08:03:57 +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 1qm8Td-00059T-JR; Fri, 29 Sep 2023 08:03:57 +0000
Received: by outflank-mailman (input) for mailman id 610272;
 Fri, 29 Sep 2023 08:03:56 +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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm8Tb-00053y-RU
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 08:03:56 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb9a0f4a-5e9e-11ee-878b-cb3800f73035;
 Fri, 29 Sep 2023 10:03:54 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3226b8de467so11853915f8f.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 01:03:54 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 c5-20020adfed85000000b0032196c508e3sm21046406wro.53.2023.09.29.01.03.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 01:03:52 -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: bb9a0f4a-5e9e-11ee-878b-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695974633; x=1696579433; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gaVgJi09EQBAYFybMncdsdArhBBdsHY//VOJc2pcDqo=;
        b=TBZUy0q1+GdTzXnMX0tssitW8xmhwBZFqQN/wOgQssOvLfVNmCDdoEJligjjjEbHN1
         DTFuqeSj91q9RP/cZhlds5vn2UENZl1aWJsG1oAQjbZhQL2p/TUbZGMgL5kszgTfVNq/
         U2ALVwAIEymilM3NW7jnUCrHD5RaTAZWq7xcE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695974633; x=1696579433;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gaVgJi09EQBAYFybMncdsdArhBBdsHY//VOJc2pcDqo=;
        b=cvok7L/bcHvaXxzDi+27LNVp4tFYv6xZf0J4a/2kTGU0g3xs6QvcFsW5106sLHqXuM
         NuNhH+PGJeBDbmpc6jPG4TDUsac9Rjdthz5L4Wai9/J9USYc64ud5W28wYiJMAWOFyiR
         QdC6m8MjLrG4IEYaWS+mzGQzfEO/JegWNLWlqMq0p+AsWgCAGN83LQ0Yk0VsNW/8LLzF
         ciYNJg2Jv/CdZGw7ma0uezuR0mR8PUDsa2MSy8VdRh6HlzEMAT+Qd2kysDbKIoRqoJVv
         s4LKLejVLy9b7HYyp3lKgGnh3vkXw45I1d78mA9ueRd5kx3jKsuWcjxFpgd9vNICYfJy
         xf3w==
X-Gm-Message-State: AOJu0YxmfORQBP7DXsmesBSnUYGYDTUnt7PbE3pEKk3nSawo5L2HFHZx
	E1Aj8rzHX6Bblye+6tzEI4kRTQ6mKo5jgUOVoO4d
X-Google-Smtp-Source: AGHT+IHrsa22Y40CLVjS3SGaLRt/nZ3fXSAOaA6Twc1KeHceGQEht11KOXSjYPg71ZRkFrMVFwjP2g==
X-Received: by 2002:a05:6000:11ca:b0:31f:fe14:d2f7 with SMTP id i10-20020a05600011ca00b0031ffe14d2f7mr2967431wrx.4.1695974632638;
        Fri, 29 Sep 2023 01:03:52 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 2/2] Delete CoInstaller code
Date: Fri, 29 Sep 2023 09:03:15 +0100
Message-ID: <20230929080315.422-3-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230929080315.422-1-owen.smith@cloud.com>
References: <20230929080315.422-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the CoInstaller removed from the INF file, delete the CoInstaller
source code and projects.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/coinst/coinst.c                           | 917 ------------------
 src/coinst/xenvbd_coinst.def                  |  38 -
 src/coinst/xenvbd_coinst.rc                   |  57 --
 vs2015/package/package.vcxproj                |   3 -
 vs2015/xenvbd.sln                             |  21 +-
 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj    |  62 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 vs2017/package/package.vcxproj                |   3 -
 vs2017/xenvbd.sln                             |  24 +-
 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj    |  62 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 vs2019/package/package.vcxproj                |   3 -
 vs2019/xenvbd.sln                             |  24 +-
 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj    |  68 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 vs2022/package/package.vcxproj                |   3 -
 vs2022/xenvbd.sln                             |  24 +-
 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj    |  68 --
 .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
 19 files changed, 4 insertions(+), 1405 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xenvbd_coinst.def
 delete mode 100644 src/coinst/xenvbd_coinst.rc
 delete mode 100644 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj.user
 delete mode 100644 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj.user
 delete mode 100644 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj.user
 delete mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
 delete mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
deleted file mode 100644
index 6c6a09f..0000000
--- a/src/coinst/coinst.c
+++ /dev/null
@@ -1,917 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, 
- * with or without modification, are permitted provided 
- * that the following conditions are met:
- * 
- * *   Redistributions of source code must retain the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above 
- *     copyright notice, this list of conditions and the 
- *     following disclaimer in the documentation and/or other 
- *     materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
- * SUCH DAMAGE.
- */
-
-#include <windows.h>
-#include <setupapi.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <strsafe.h>
-
-#include <version.h>
-
-#define stringify_literal(_text) #_text
-#define stringify(_text) stringify_literal(_text)
-#define __MODULE__ stringify(PROJECT)
-
-__user_code;
-
-#define MAXIMUM_BUFFER_SIZE 1024
-
-#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
-
-#define SERVICE_KEY(_Driver)    \
-        SERVICES_KEY ## "\\" ## #_Driver
-
-#define PARAMETERS_KEY(_Driver) \
-        SERVICE_KEY(_Driver) ## "\\Parameters"
-
-#define UNPLUG_KEY \
-        SERVICE_KEY(XEN) ## "\\Unplug"
-
-#define CONTROL_KEY "SYSTEM\\CurrentControlSet\\Control"
-
-#define PNP_KEY \
-        CONTROL_KEY ## "\\Pnp"
-
-static VOID
-#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024'
-__Log(
-    IN  const CHAR  *Format,
-    IN  ...
-    )
-{
-    TCHAR               Buffer[MAXIMUM_BUFFER_SIZE];
-    va_list             Arguments;
-    size_t              Length;
-    SP_LOG_TOKEN        LogToken;
-    DWORD               Category;
-    DWORD               Flags;
-    HRESULT             Result;
-
-    va_start(Arguments, Format);
-    Result = StringCchVPrintf(Buffer, MAXIMUM_BUFFER_SIZE, Format, Arguments);
-    va_end(Arguments);
-
-    if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
-        return;
-
-    Result = StringCchLength(Buffer, MAXIMUM_BUFFER_SIZE, &Length);
-    if (Result != S_OK)
-        return;
-
-    LogToken = SetupGetThreadLogToken();
-    Category = TXTLOG_VENDOR;
-    Flags = TXTLOG_WARNING;
-
-    SetupWriteTextLog(LogToken, Category, Flags, Buffer);
-    Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
-
-    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
-    __analysis_assume(Length >= 2);
-    Buffer[Length] = '\0';
-    Buffer[Length - 1] = '\n';
-    Buffer[Length - 2] = '\r';
-
-    OutputDebugString(Buffer);
-}
-
-#define Log(_Format, ...) \
-        __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__)
-
-static FORCEINLINE PTCHAR
-__GetErrorMessage(
-    IN  DWORD   Error
-    )
-{
-    PTCHAR      Message;
-    ULONG       Index;
-
-    if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                       FORMAT_MESSAGE_FROM_SYSTEM |
-                       FORMAT_MESSAGE_IGNORE_INSERTS,
-                       NULL,
-                       Error,
-                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                       (LPTSTR)&Message,
-                       0,
-                       NULL))
-        return NULL;
-
-    for (Index = 0; Message[Index] != '\0'; Index++) {
-        if (Message[Index] == '\r' || Message[Index] == '\n') {
-            Message[Index] = '\0';
-            break;
-        }
-    }
-
-    return Message;
-}
-
-static FORCEINLINE const CHAR *
-__FunctionName(
-    IN  DI_FUNCTION Function
-    )
-{
-#define _NAME(_Function)        \
-        case DIF_ ## _Function: \
-            return #_Function;
-
-    switch (Function) {
-    _NAME(INSTALLDEVICE);
-    _NAME(REMOVE);
-    _NAME(SELECTDEVICE);
-    _NAME(ASSIGNRESOURCES);
-    _NAME(PROPERTIES);
-    _NAME(FIRSTTIMESETUP);
-    _NAME(FOUNDDEVICE);
-    _NAME(SELECTCLASSDRIVERS);
-    _NAME(VALIDATECLASSDRIVERS);
-    _NAME(INSTALLCLASSDRIVERS);
-    _NAME(CALCDISKSPACE);
-    _NAME(DESTROYPRIVATEDATA);
-    _NAME(VALIDATEDRIVER);
-    _NAME(MOVEDEVICE);
-    _NAME(DETECT);
-    _NAME(INSTALLWIZARD);
-    _NAME(DESTROYWIZARDDATA);
-    _NAME(PROPERTYCHANGE);
-    _NAME(ENABLECLASS);
-    _NAME(DETECTVERIFY);
-    _NAME(INSTALLDEVICEFILES);
-    _NAME(ALLOW_INSTALL);
-    _NAME(SELECTBESTCOMPATDRV);
-    _NAME(REGISTERDEVICE);
-    _NAME(NEWDEVICEWIZARD_PRESELECT);
-    _NAME(NEWDEVICEWIZARD_SELECT);
-    _NAME(NEWDEVICEWIZARD_PREANALYZE);
-    _NAME(NEWDEVICEWIZARD_POSTANALYZE);
-    _NAME(NEWDEVICEWIZARD_FINISHINSTALL);
-    _NAME(INSTALLINTERFACES);
-    _NAME(DETECTCANCEL);
-    _NAME(REGISTER_COINSTALLERS);
-    _NAME(ADDPROPERTYPAGE_ADVANCED);
-    _NAME(ADDPROPERTYPAGE_BASIC);
-    _NAME(TROUBLESHOOTER);
-    _NAME(POWERMESSAGEWAKE);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-static BOOLEAN
-ClearUnplugRequest(
-    IN  PTCHAR      ClassName
-    )
-{
-    HKEY            UnplugKey;
-    HRESULT         Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         UNPLUG_KEY,
-                         0,
-                         KEY_ALL_ACCESS,
-                         &UnplugKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    Error = RegDeleteValue(UnplugKey, ClassName);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(UnplugKey);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(UnplugKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-OverrideGroupPolicyOptions(
-    )
-{
-    HKEY        PnpKey;
-    DWORD       Value;
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         PNP_KEY,
-                         0,
-                         KEY_ALL_ACCESS,
-                         &PnpKey);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    Value = 0;
-
-    Error = RegSetValueEx(PnpKey,
-                          "DisableCDDB",
-                          0,
-                          REG_DWORD,
-                          (LPBYTE)&Value,
-                          (DWORD)sizeof (DWORD));
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    Error = RegSetValueEx(PnpKey,
-                          "DontStartRawDevices",
-                          0,
-                          REG_DWORD,
-                          (LPBYTE)&Value,
-                          (DWORD)sizeof (DWORD));
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail3;
-    }
-
-    RegCloseKey(PnpKey);
-
-    return TRUE;
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(PnpKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-#pragma warning(push)
-#pragma warning(disable:6102) // Using value from failed function call
-
-static BOOLEAN
-IncreaseDiskTimeOut(
-    VOID
-    )
-{
-    HKEY        Key;
-    DWORD       Type;
-    DWORD       Value;
-    DWORD       ValueLength;
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         SERVICE_KEY(Disk),
-                         0,
-                         KEY_ALL_ACCESS,
-                         &Key);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    ValueLength = sizeof (DWORD);
-
-    Error = RegQueryValueEx(Key,
-                            "TimeOutValue",
-                            NULL,
-                            &Type,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        if (Error != ERROR_FILE_NOT_FOUND)
-            goto fail2;
-
-        Type = REG_DWORD;
-        Value = 0;
-    }
-
-    if (Type != REG_DWORD) {
-        SetLastError(ERROR_INVALID_DATA);
-        goto fail3;
-    }
-
-    if (Value >= 120)
-        goto done;
-
-    Value = 120;
-
-    Error = RegSetValueEx(Key,
-                          "TimeOutValue",
-                          0,
-                          REG_DWORD,
-                          (LPBYTE)&Value,
-                          ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail4;
-    }
-
-done:
-    RegCloseKey(Key);
-
-    return TRUE;
-
-fail4:
-    Log("fail4\n");
-
-fail3:
-    Log("fail3\n");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(Key);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-#pragma warning(pop)
-
-static BOOLEAN
-OverrideSanPolicy(
-    VOID
-    )
-{
-    HKEY        Key;
-    DWORD       Value;
-    HRESULT     Error;
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         PARAMETERS_KEY(PARTMGR),
-                         0,
-                         KEY_ALL_ACCESS,
-                         &Key);
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    Value = 1;
-
-    Error = RegSetValueEx(Key,
-                          "SanPolicy",
-                          0,
-                          REG_DWORD,
-                          (LPBYTE)&Value,
-                          (DWORD)sizeof (DWORD));
-    if (Error != ERROR_SUCCESS) {
-        SetLastError(Error);
-        goto fail2;
-    }
-
-    RegCloseKey(Key);
-
-    return TRUE;
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(Key);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-AllowUpdate(
-    IN  PTCHAR      DriverName,
-    OUT PBOOLEAN    Allow
-    )
-{
-    TCHAR           ServiceKeyName[MAX_PATH];
-    HKEY            ServiceKey;
-    HRESULT         Error;
-    DWORD           ValueLength;
-    DWORD           Value;
-    DWORD           Type;
-
-    Log("====> (%s)", DriverName);
-
-    (VOID) StringCbPrintf(ServiceKeyName,
-                          MAX_PATH,
-                          SERVICES_KEY "\\%s",
-                          DriverName);
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         ServiceKeyName,
-                         0,
-                         KEY_READ,
-                         &ServiceKey);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Value = 1;
-            goto done;
-        }
-
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    ValueLength = sizeof (Value);
-
-    Error = RegQueryValueEx(ServiceKey,
-                            "AllowUpdate",
-                            NULL,
-                            &Type,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Type = REG_DWORD;
-            Value = 1;
-        } else {
-            SetLastError(Error);
-            goto fail2;
-        }
-    }
-
-    if (Type != REG_DWORD) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail3;
-    }
-
-    RegCloseKey(ServiceKey);
-
-done:
-    if (Value == 0) {
-        Log("DISALLOWED");
-        *Allow = FALSE;
-    }
-
-    Log("<====");
-
-    return TRUE;
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ServiceKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-AllowInstall(
-    OUT PBOOLEAN    Allow
-    )
-{
-    BOOLEAN         Success;
-    HRESULT         Error;
-
-    Log("====>");
-
-    *Allow = TRUE;
-
-    Success = AllowUpdate("XENVBD", Allow);
-    if (!Success)
-        goto fail1;
-
-    Log("<====");
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static FORCEINLINE HRESULT
-__DifInstallPreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-    BOOLEAN                         Success;
-    BOOLEAN                         Allow;
-
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("====>");
-
-    Success = AllowInstall(&Allow);
-    if (!Success)
-        goto fail1;
-
-    if (!Allow) {
-        SetLastError(ERROR_ACCESS_DENIED);
-        goto fail2;
-    }
-
-    Log("<====");
-
-    return NO_ERROR;
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static FORCEINLINE HRESULT
-__DifInstallPostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("====>");
-
-    (VOID) OverrideGroupPolicyOptions();
-    (VOID) OverrideSanPolicy();
-    (VOID) IncreaseDiskTimeOut();
-
-    Log("<====");
-
-    return NO_ERROR;
-}
-
-static DECLSPEC_NOINLINE HRESULT
-DifInstall(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = __DifInstallPreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) __DifInstallPostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = __GetErrorMessage(Error);
-            Log("NOT RUNNING (__DifInstallPreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR; 
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static FORCEINLINE HRESULT
-__DifRemovePreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    (VOID) ClearUnplugRequest("DISKS");
-
-    return NO_ERROR; 
-}
-
-static FORCEINLINE HRESULT
-__DifRemovePostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static DECLSPEC_NOINLINE HRESULT
-DifRemove(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = __DifRemovePreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED; 
-    } else {
-        Error = Context->InstallResult;
-        
-        if (Error == NO_ERROR) {
-            (VOID) __DifRemovePostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = __GetErrorMessage(Error);
-            Log("NOT RUNNING (__DifRemovePreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR; 
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = __GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-DWORD CALLBACK
-Entry(
-    IN  DI_FUNCTION                 Function,
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-
-    Log("%s (%s) ===>",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    if (!Context->PostProcessing) {
-        Log("%s PreProcessing",
-            __FunctionName(Function));
-    } else {
-        Log("%s PostProcessing (%08x)",
-            __FunctionName(Function),
-            Context->InstallResult);
-    }
-
-    switch (Function) {
-    case DIF_INSTALLDEVICE: {
-        SP_DRVINFO_DATA         DriverInfoData;
-        BOOLEAN                 DriverInfoAvailable;
-
-        DriverInfoData.cbSize = sizeof (DriverInfoData);
-        DriverInfoAvailable = SetupDiGetSelectedDriver(DeviceInfoSet,
-                                                       DeviceInfoData,
-                                                       &DriverInfoData) ?
-                              TRUE :
-                              FALSE;
-
-        // If there is no driver information then the NULL driver is being
-        // installed. Treat this as we would a DIF_REMOVE.
-        Error = (DriverInfoAvailable) ?
-                DifInstall(DeviceInfoSet, DeviceInfoData, Context) :
-                DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    }
-    case DIF_REMOVE:
-        Error = DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    default:
-        if (!Context->PostProcessing) {
-            Error = NO_ERROR;
-        } else {
-            Error = Context->InstallResult;
-        }
-
-        break;
-    }
-
-    Log("%s (%s) <===",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return (DWORD)Error;
-}
-
-DWORD CALLBACK
-Version(
-    IN  HWND        Window,
-    IN  HINSTANCE   Module,
-    IN  PTCHAR      Buffer,
-    IN  INT         Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Window);
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Buffer);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s)",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return NO_ERROR;
-}
-
-static FORCEINLINE const CHAR *
-__ReasonName(
-    IN  DWORD       Reason
-    )
-{
-#define _NAME(_Reason)          \
-        case DLL_ ## _Reason:   \
-            return #_Reason;
-
-    switch (Reason) {
-    _NAME(PROCESS_ATTACH);
-    _NAME(PROCESS_DETACH);
-    _NAME(THREAD_ATTACH);
-    _NAME(THREAD_DETACH);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-BOOL WINAPI
-DllMain(
-    IN  HINSTANCE   Module,
-    IN  DWORD       Reason,
-    IN  PVOID       Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s): %s",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR,
-        __ReasonName(Reason));
-
-    return TRUE;
-}
diff --git a/src/coinst/xenvbd_coinst.def b/src/coinst/xenvbd_coinst.def
deleted file mode 100644
index 67c4d82..0000000
--- a/src/coinst/xenvbd_coinst.def
+++ /dev/null
@@ -1,38 +0,0 @@
-; Copyright (c) Xen Project.
-; Copyright (c) Cloud Software Group, Inc.
-; All rights reserved.
-;
-; Redistribution and use in source and binary forms, 
-; with or without modification, are permitted provided 
-; that the following conditions are met:
-;
-; *   Redistributions of source code must retain the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer.
-; *   Redistributions in binary form must reproduce the above 
-;     copyright notice, this list of conditions and the 
-;     following disclaimer in the documentation and/or other 
-;     materials provided with the distribution.
-;
-; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
-; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
-; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
-; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
-; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
-; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
-; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
-; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
-; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
-; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
-; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
-; SUCH DAMAGE.
- 
- LIBRARY  XENVBD_COINST
-
-EXPORTS   
-   Entry 
-   Version
-
-   DllMain PRIVATE
diff --git a/src/coinst/xenvbd_coinst.rc b/src/coinst/xenvbd_coinst.rc
deleted file mode 100644
index d3444d4..0000000
--- a/src/coinst/xenvbd_coinst.rc
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * *   Redistributions of source code must retain the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer in the documentation and/or other
- *     materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <windows.h>
-#include <ntverp.h>
-
-
-#undef VER_COMPANYNAME_STR
-#undef VER_PRODUCTNAME_STR
-#undef VER_PRODUCTVERSION
-#undef VER_PRODUCTVERSION_STR
-
-#include <version.h>
-
-#define VER_COMPANYNAME_STR         VENDOR_NAME_STR
-#define VER_LEGALCOPYRIGHT_STR      COPYRIGHT_STR
-
-#define VER_PRODUCTNAME_STR         "XENVBD_COINST"
-#define VER_PRODUCTVERSION          MAJOR_VERSION,MINOR_VERSION,MICRO_VERSION,BUILD_NUMBER
-#define VER_PRODUCTVERSION_STR      MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR
-
-#define VER_INTERNALNAME_STR        "XENVBD_COINST.DLL"
-#define VER_FILEDESCRIPTION_STR     "XENVBD_COINST"
-
-#define VER_FILETYPE                VFT_DRV
-#define VER_FILESUBTYPE             VFT2_DRV_SYSTEM
-
-#include <common.ver>
diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj
index d816647..4a3a397 100644
--- a/vs2015/package/package.vcxproj
+++ b/vs2015/package/package.vcxproj
@@ -38,9 +38,6 @@
     <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>
diff --git a/vs2015/xenvbd.sln b/vs2015/xenvbd.sln
index de1644f..7a350f5 100644
--- a/vs2015/xenvbd.sln
+++ b/vs2015/xenvbd.sln
@@ -20,12 +20,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xendisk", "xendisk\xendisk.
 		{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}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{AB8DAED3-9D70-4907-99A3-C643F1FC1972}"
-    ProjectSection(ProjectDependencies) = postProject
+	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}
@@ -91,22 +88,6 @@ Global
 		{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
diff --git a/vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj b/vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj
deleted file mode 100644
index 92949f0..0000000
--- a/vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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>{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>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <WarningLevel>EnableAllWarnings</WarningLevel>
-      <DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;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>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvbd_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj.user b/vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj.user
deleted file mode 100644
index e4f96db..0000000
--- a/vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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\xenvbd.pfx</TestCertificate>
-		<TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
-	</PropertyGroup>
-</Project>
diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj
index 51c57a1..1c77308 100644
--- a/vs2017/package/package.vcxproj
+++ b/vs2017/package/package.vcxproj
@@ -38,9 +38,6 @@
     <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>
diff --git a/vs2017/xenvbd.sln b/vs2017/xenvbd.sln
index 26d069d..065d4a9 100644
--- a/vs2017/xenvbd.sln
+++ b/vs2017/xenvbd.sln
@@ -17,15 +17,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xendisk", "xendisk\xendisk.
 		{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
+	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}
@@ -91,22 +85,6 @@ Global
 		{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
diff --git a/vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj b/vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj
deleted file mode 100644
index e792592..0000000
--- a/vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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>
-      <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>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvbd_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj.user b/vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj.user
deleted file mode 100644
index b017ec2..0000000
--- a/vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index 987ea18..aedb5d2 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -43,9 +43,6 @@
     <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>
diff --git a/vs2019/xenvbd.sln b/vs2019/xenvbd.sln
index acc17fc..ad41d7f 100644
--- a/vs2019/xenvbd.sln
+++ b/vs2019/xenvbd.sln
@@ -20,15 +20,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xendisk", "xendisk\xendisk.
 		{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
+	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}
@@ -94,22 +88,6 @@ Global
 		{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
diff --git a/vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj b/vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj
deleted file mode 100644
index 3bb2fe2..0000000
--- a/vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvbd_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj.user b/vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj.user
deleted file mode 100644
index b017ec2..0000000
--- a/vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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/package/package.vcxproj b/vs2022/package/package.vcxproj
index e85c516..dea0a97 100644
--- a/vs2022/package/package.vcxproj
+++ b/vs2022/package/package.vcxproj
@@ -43,9 +43,6 @@
     <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>
diff --git a/vs2022/xenvbd.sln b/vs2022/xenvbd.sln
index acc17fc..ad41d7f 100644
--- a/vs2022/xenvbd.sln
+++ b/vs2022/xenvbd.sln
@@ -20,15 +20,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xendisk", "xendisk\xendisk.
 		{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
+	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}
@@ -94,22 +88,6 @@ Global
 		{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
diff --git a/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj b/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
deleted file mode 100644
index 3bb2fe2..0000000
--- a/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xenvbd_coinst.rc" />
-  </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
deleted file mode 100644
index b017ec2..0000000
--- a/vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 08:34:03 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 08:34:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610344.949721 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm8wl-00038N-GO; Fri, 29 Sep 2023 08:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610344.949721; Fri, 29 Sep 2023 08:34:03 +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 1qm8wl-00038F-DT; Fri, 29 Sep 2023 08:34:03 +0000
Received: by outflank-mailman (input) for mailman id 610344;
 Fri, 29 Sep 2023 08:34:02 +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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm8wk-000383-Id
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 08:34:02 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef7f3f60-5ea2-11ee-9b0d-b553b5be7939;
 Fri, 29 Sep 2023 10:33:59 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40535597f01so140114565e9.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 01:33:59 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 s28-20020adfa29c000000b003232f167df5sm10624071wra.108.2023.09.29.01.33.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 01:33:57 -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: ef7f3f60-5ea2-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695976438; x=1696581238; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Cd+ufKlWaqPqa1IWQm4/F4b06H90U2OwGvpcPbf3110=;
        b=fU93ARG62zu1EYG0YFH/g9cQ2gqNAVjZyhcbj1lSFh96WmLiTsl6t9cgMufE1T/PDr
         XYduVLqXO3VSpLD6ikfekb8Pw7VTJV1AU/evc2ndQb6azfO66K0RiVz1t7oh8cuiy5Zk
         mG4K1ttyq2Ti+6fnxwc1yQdaTbuCMslOGa5jY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695976438; x=1696581238;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Cd+ufKlWaqPqa1IWQm4/F4b06H90U2OwGvpcPbf3110=;
        b=jLB5pPZXwsrgfGXwH5q4LhbsSzGgwgUz6zOjyWITC5RQmIeisCrrRzlVgkyzhCOGXd
         +Fzjzcb4f9tFNazbh96rTr25iqIwRzRdzHZ/XlaxItCuksyjRc+5fMCPRB95lneMotJu
         p/JsHtzE9tm3l+isUnt8L7Os0o/5KTOxu/17ZMAiJ+D3KHmJqbhn5HAXu7GlK1umegXG
         6QeUnsnFZccUkmSGfwD+HHQzy8IKOVGYa3doNg3t5aK5NJDF6tsjUMC6PEt8plp7OLgB
         ASIlPLzbA/rTWXcIZllOTqe6pjbonGF+/4mCvRvhITXrbW43GOc7HF/HovOwJZ8slHhe
         IxVw==
X-Gm-Message-State: AOJu0YzlG/zJoytMKdrJaw1dAE/B+z0J1839+vo4VPTI/Shwsvk81FOx
	2nlwhi04w367ZgiTsaAIDwS1DVmdUa3I3bKiZRQT
X-Google-Smtp-Source: AGHT+IE6DKd6yGutd+V8Xp9KOn8NFVPMEhU3/DMT2DPQb6VsDs1dMjH58ygyKwwRJELkqdUqfCnPMA==
X-Received: by 2002:a05:600c:204:b0:3fe:fc0f:52e2 with SMTP id 4-20020a05600c020400b003fefc0f52e2mr3379547wmi.37.1695976438258;
        Fri, 29 Sep 2023 01:33:58 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 1/2] Remove CoInstaller from INF
Date: Fri, 29 Sep 2023 09:33:42 +0100
Message-ID: <20230929083343.1564-2-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230929083343.1564-1-owen.smith@cloud.com>
References: <20230929083343.1564-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
several issues
- PnpLockdown=1 needs to be specified
- CoInstallers are no longer allowed

The CoInstaller has several functions that will need alternative solutions:
- The AllowUpdate mechanism is no longer possible
- The safety checks that ensure interface versionings remain compatible
- The cleanup of xenagent on uninstall.

Also updates the INF binding to match the version of XenBus with CoInstaller removed

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/xeniface.inf | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/src/xeniface.inf b/src/xeniface.inf
index ec596ef..fdb78ea 100644
--- a/src/xeniface.inf
+++ b/src/xeniface.inf
@@ -37,10 +37,10 @@ Provider=%Vendor%
 DriverVer=@INF_DATE@,@MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@.@BUILD_NUMBER@
 CatalogFile=xeniface.cat
 DriverPackageDisplayName=%DiskId1%
+PnpLockdown=1
 
 [DestinationDirs]
 DefaultDestDir = 12
-Coinst.Copy = 11
 ServiceDestDir.Copy = 11
 
 [Manufacturer]
@@ -50,9 +50,9 @@ ServiceDestDir.Copy = 11
 ; DisplayName		    Section	      DeviceID
 ; -----------		    -------	      --------
 
-%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_IFACE&REV_09000009
-%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_IFACE&REV_09000009
-%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_IFACE&REV_09000009
+%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_IFACE&REV_0900000A
+%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_IFACE&REV_0900000A
+%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_IFACE&REV_0900000A
 
 [XenIface_Device]
 CopyFiles=XenIface_Device.Copy
@@ -61,9 +61,6 @@ CopyFiles=ServiceDestDir.Copy
 [XenIFace_Device.Copy]
 xeniface.sys
 
-[CoInst.Copy]
-xeniface_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xeniface_coinst.dll
-
 [ServiceDestDir.Copy]
 xenagent_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.exe,xenagent.exe
 xenagent_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenagent.dll
@@ -84,13 +81,6 @@ AddReg = Xeniface_Parameters
 [Xeniface_Parameters]
 HKR,"Parameters",,0x00000010
 
-[Xeniface_Device.Coinstallers]
-CopyFiles=CoInst.Copy
-AddReg=CoInst_AddReg
-
-[CoInst_AddReg]
-HKR,,CoInstallers32,0x00010000,"xeniface_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
-
 [xenagent_Service_Inst]
 DisplayName    = %xenagent.SVCDESC%
 ServiceType    = 16              ; SERVICE_WIN32_OWN_PROCESS
@@ -112,7 +102,6 @@ HKR,,TypesSupported,0x00010001,7
 xeniface.sys  = 1,,
 xenagent.exe = 1,,
 xenagent.dll = 1,,
-xeniface_coinst.dll=1,,
 
 [Strings]
 SPSVCINST_ASSOCSERVICE= 0x00000002
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 08:34:03 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 08:34:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610343.949716 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm8wi-00036Z-EP; Fri, 29 Sep 2023 08:34:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610343.949716; Fri, 29 Sep 2023 08:34: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 1qm8wi-00036S-Bi; Fri, 29 Sep 2023 08:34:00 +0000
Received: by outflank-mailman (input) for mailman id 610343;
 Fri, 29 Sep 2023 08:33:59 +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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm8wh-00035D-BS
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 08:33:59 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eee270bd-5ea2-11ee-878b-cb3800f73035;
 Fri, 29 Sep 2023 10:33:58 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-317c3ac7339so13236523f8f.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 01:33:58 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 s28-20020adfa29c000000b003232f167df5sm10624071wra.108.2023.09.29.01.33.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 01:33:57 -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: eee270bd-5ea2-11ee-878b-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695976437; x=1696581237; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=w7US+jIe/xQuda9zKKm/xSIPqkK9RWX71cgYO0e97Vo=;
        b=Le/J5gcCGtg9Q8HeVREa0OdPRSjiQxJg+Eq38/iJn4faU+k9QrWTfIj5VyvV9Ti6+7
         Ny+cQrx35i9IhcBNOKEcaV65Sdcs95TLnbetnkqJqp5+tZfebCYL34mdFsxeC4mRNSgm
         erpqGidnyvBSu3Cl/A7/s0G/dH3+yXi+73wCg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695976437; x=1696581237;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=w7US+jIe/xQuda9zKKm/xSIPqkK9RWX71cgYO0e97Vo=;
        b=dVvFahOkCMaFiipBfQhPBFArSUuJcvKRNiGnfOOMLLN+BVoM+b1KsNEesKZfhCd270
         ydO+FOocWyh8BSgJXlWO7IuahKF1AcqpmZsSNpq+qdmpwkCpTlmsqtNClcJcty4Wtyyi
         4+Ox0Ky0X+wlfHWzFC5J1dSPm0Akblan9e4NRy10zPMEdhrDyc8el7IX3zV9ANsJSaNg
         BRukU28cmeIwou3YHk1z2fCfkPzOCQmE70FGM8pj0y//Rm4iewSH5QMYYYQyuLSDKL7Z
         qN8dtEK+IAlVlN8olZDygn8vLmTRGwcL9YvnxWoQqWWjE0z+DheNJEyY2UuuXgxLH000
         oxKw==
X-Gm-Message-State: AOJu0YwLjkJXk+/wglt0bTZ5mbqdgFuD8aGikTkEbOX4NBdhGfxt0XV2
	GV52PrTClqjvdmpsAOuhmj5a8/ygng91bRQwdSEV
X-Google-Smtp-Source: AGHT+IFuWY0w4FgVHMBBFKRPFfN22I9sH0wmhu9wm+Y8b3Cf9b9mUVUq8IipfyTZawPahZVFpRs0mg==
X-Received: by 2002:adf:fac9:0:b0:319:785a:fce0 with SMTP id a9-20020adffac9000000b00319785afce0mr3163825wrs.26.1695976437309;
        Fri, 29 Sep 2023 01:33:57 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 0/2] Remove CoInstallers
Date: Fri, 29 Sep 2023 09:33:41 +0100
Message-ID: <20230929083343.1564-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windows 11 22H2 WHQL testing has highlighted the need to remove CoInstallers.
The current CoInstaller handle several edge cases that will need replacement
implementations. This patch series for most drivers offers a potential solution
to the removal of CoInstallers and the required changes to avoid upgrade issues.

CoInstallers have several uses currently:
- Adds an upgrade block function with the "AllowUpgrade" value blocking driver
  upgrades when set.
- Correctly cleans up user mode services on uninstall.

The AllowUpgrade function has not been replaced - I have not seen this used in
the current implementations of the drivers.

The interface compatability checks can be replaced with the matching if RevisionIDs
in the INF files, so that child devices will only install on parent devices that
expose a matching HardwareID or CompatibleID. This does leave the case where the
new parent driver could drop support for an interface version that is currently in
use. This will mandate a further driver upgrade, and should remove the Unplug keys
and mandate a reboot where the emulated devices are present, to ensure continued
operation. After this reboot using emulated devices, updates to the child devices
should be detected and installed, requiring another reboot to revert to PV devices.

I dont have a good replacement for cleaning up user mode services (xenagent) on
device uninstall. This *should* be handled correctly by the PnP manager, but failing
to stop either service should not be detremental to the operation of the VM. Selecting
the "Delete Drivers" option during uninstall will stop and disable these services, not
selecting this option will leave these services running.

Owen Smith (2):
  Remove CoInstaller from INF
  Delete CoInstaller code

 src/coinst/coinst.c                           | 722 ------------------
 src/coinst/xeniface_coinst.def                |  38 -
 src/coinst/xeniface_coinst.rc                 |  58 --
 src/xeniface.inf                              |  19 +-
 vs2015/package/package.vcxproj                |   3 -
 vs2015/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2017/package/package.vcxproj                |   3 -
 vs2017/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2019/package/package.vcxproj                |   3 -
 vs2019/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2022/package/package.vcxproj                |   3 -
 vs2022/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 20 files changed, 4 insertions(+), 1257 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xeniface_coinst.def
 delete mode 100644 src/coinst/xeniface_coinst.rc
 delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user

-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 08:34:04 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 08:34:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610345.949725 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qm8wm-0003AO-Io; Fri, 29 Sep 2023 08:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610345.949725; Fri, 29 Sep 2023 08:34: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 1qm8wm-0003AH-F1; Fri, 29 Sep 2023 08:34:04 +0000
Received: by outflank-mailman (input) for mailman id 610345;
 Fri, 29 Sep 2023 08:34: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=s+5o=FN=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1qm8wk-00035D-Lp
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 08:34:03 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0644827-5ea2-11ee-878b-cb3800f73035;
 Fri, 29 Sep 2023 10:34:00 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-317c3ac7339so13236561f8f.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 01:34:00 -0700 (PDT)
Received: from localhost.localdomain ([185.25.65.68])
 by smtp.gmail.com with ESMTPSA id
 s28-20020adfa29c000000b003232f167df5sm10624071wra.108.2023.09.29.01.33.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Sep 2023 01:33:58 -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: f0644827-5ea2-11ee-878b-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1695976440; x=1696581240; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2wzkGUHIGJN31Yn+AYB5H7VakD5DYrFehRw/VHRLfuk=;
        b=ZJ8gDVzMGXDtDhtGgcWVY4C4Ezdlmfl9wPXXMXHbC6sN3MmgREHG7NKr865TK1gHXa
         lSOljkEuHig3v5ZV2S3+++DTzI6s2P5hf6Etk0jIplzEqJe6DvQem+g8xykuu9E4IPH3
         vn0+Ujlplm8VgTqCYfxP2IAf0QHmuOYLoNcME=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695976440; x=1696581240;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2wzkGUHIGJN31Yn+AYB5H7VakD5DYrFehRw/VHRLfuk=;
        b=D9/go8FZBnPOxz4zJMZwyPha1OGir2W0+p/UzpYfq1lmLvOPCBpjQhOhIj2fe0/Br0
         X8V8sanK3709JVGinccHUrb4emKgC63WcorhYyyjDp4yBST3jq3tioZfpTUY5j5pMRch
         aKyL0+ahCHrt4ZVbuXAVFIs74rb/MBz3/0PkqCWEfO4KpLX3zLapcDVRkN5zytdha+x2
         lMIZAu8BiVkbqJhnaFV1y/HNQ+4nLxQJao2be9TiTtuSzGxBBq1KyJgcK9Dj3lK8iwl4
         F3OClerEg0DYCkfZP6lUYD3lzNVT15gM7CZ8axiYZj0LThtI8fMLBCjCM8ROa7Iw9uP7
         Q4aQ==
X-Gm-Message-State: AOJu0Yyq16J9JUvqYXMKFVsnwWMnPaZcfL0/TF0gZYqUb6rbuo3BP/6r
	q4gIjWay5XENNHIqJHkfvqF1QGXSej88W5wXhfNf
X-Google-Smtp-Source: AGHT+IG7C7xcFuKMQ9ChUSCDbfoFV5J0X7ac24Q1W+spTMbr/6PkDXR22r0JKgIL4dwGFHiyIjv2BQ==
X-Received: by 2002:a05:6000:128e:b0:319:7722:30c with SMTP id f14-20020a056000128e00b003197722030cmr3340890wrx.22.1695976439167;
        Fri, 29 Sep 2023 01:33:59 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH 2/2] Delete CoInstaller code
Date: Fri, 29 Sep 2023 09:33:43 +0100
Message-ID: <20230929083343.1564-3-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
In-Reply-To: <20230929083343.1564-1-owen.smith@cloud.com>
References: <20230929083343.1564-1-owen.smith@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the CoInstaller removed from the INF file, delete the CoInstaller
source code and projects.

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 src/coinst/coinst.c                           | 722 ------------------
 src/coinst/xeniface_coinst.def                |  38 -
 src/coinst/xeniface_coinst.rc                 |  58 --
 vs2015/package/package.vcxproj                |   3 -
 vs2015/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2017/package/package.vcxproj                |   3 -
 vs2017/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2019/package/package.vcxproj                |   3 -
 vs2019/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 vs2022/package/package.vcxproj                |   3 -
 vs2022/xeniface.sln                           |  30 -
 .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
 .../xeniface_coinst.vcxproj.user              |   8 -
 19 files changed, 1242 deletions(-)
 delete mode 100644 src/coinst/coinst.c
 delete mode 100644 src/coinst/xeniface_coinst.def
 delete mode 100644 src/coinst/xeniface_coinst.rc
 delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj.user
 delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj
 delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user

diff --git a/src/coinst/coinst.c b/src/coinst/coinst.c
deleted file mode 100644
index 8cd3523..0000000
--- a/src/coinst/coinst.c
+++ /dev/null
@@ -1,722 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * *   Redistributions of source code must retain the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer in the documentation and/or other
- *     materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define INITGUID
-
-#include <windows.h>
-#include <setupapi.h>
-#include <devguid.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <strsafe.h>
-#include <malloc.h>
-#include <assert.h>
-
-#include <suspend_interface.h>
-#include <shared_info_interface.h>
-#include <store_interface.h>
-
-#include <version.h>
-
-#define stringify_literal(_text) #_text
-#define stringify(_text) stringify_literal(_text)
-#define __MODULE__ stringify(PROJECT)
-
-__user_code;
-
-#define MAXIMUM_BUFFER_SIZE 1024
-
-#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
-
-#define SERVICE_KEY(_Driver)    \
-        SERVICES_KEY ## "\\" ## #_Driver
-
-#define AGENT_NAME    "XENAGENT"
-
-static VOID
-#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024'
-__Log(
-    IN  const CHAR  *Format,
-    IN  ...
-    )
-{
-    TCHAR               Buffer[MAXIMUM_BUFFER_SIZE];
-    va_list             Arguments;
-    size_t              Length;
-    SP_LOG_TOKEN        LogToken;
-    DWORD               Category;
-    DWORD               Flags;
-    HRESULT             Result;
-
-    va_start(Arguments, Format);
-    Result = StringCchVPrintf(Buffer, MAXIMUM_BUFFER_SIZE, Format, Arguments);
-    va_end(Arguments);
-
-    if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER)
-        return;
-
-    Result = StringCchLength(Buffer, MAXIMUM_BUFFER_SIZE, &Length);
-    if (Result != S_OK)
-        return;
-
-    LogToken = SetupGetThreadLogToken();
-    Category = TXTLOG_VENDOR;
-    Flags = TXTLOG_WARNING;
-
-    SetupWriteTextLog(LogToken, Category, Flags, Buffer);
-    Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2);
-
-    __analysis_assume(Length < MAXIMUM_BUFFER_SIZE);
-    __analysis_assume(Length >= 2);
-    Buffer[Length] = '\0';
-    Buffer[Length - 1] = '\n';
-    Buffer[Length - 2] = '\r';
-
-    OutputDebugString(Buffer);
-}
-
-#define Log(_Format, ...) \
-        __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__)
-
-static PTCHAR
-GetErrorMessage(
-    IN  DWORD   Error
-    )
-{
-    PTCHAR      Message;
-    ULONG       Index;
-
-    if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                       FORMAT_MESSAGE_FROM_SYSTEM |
-                       FORMAT_MESSAGE_IGNORE_INSERTS,
-                       NULL,
-                       Error,
-                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                       (LPTSTR)&Message,
-                       0,
-                       NULL))
-        return NULL;
-
-    for (Index = 0; Message[Index] != '\0'; Index++) {
-        if (Message[Index] == '\r' || Message[Index] == '\n') {
-            Message[Index] = '\0';
-            break;
-        }
-    }
-
-    return Message;
-}
-
-static const CHAR *
-FunctionName(
-    IN  DI_FUNCTION Function
-    )
-{
-#define _NAME(_Function)        \
-        case DIF_ ## _Function: \
-            return #_Function;
-
-    switch (Function) {
-    _NAME(INSTALLDEVICE);
-    _NAME(REMOVE);
-    _NAME(SELECTDEVICE);
-    _NAME(ASSIGNRESOURCES);
-    _NAME(PROPERTIES);
-    _NAME(FIRSTTIMESETUP);
-    _NAME(FOUNDDEVICE);
-    _NAME(SELECTCLASSDRIVERS);
-    _NAME(VALIDATECLASSDRIVERS);
-    _NAME(INSTALLCLASSDRIVERS);
-    _NAME(CALCDISKSPACE);
-    _NAME(DESTROYPRIVATEDATA);
-    _NAME(VALIDATEDRIVER);
-    _NAME(MOVEDEVICE);
-    _NAME(DETECT);
-    _NAME(INSTALLWIZARD);
-    _NAME(DESTROYWIZARDDATA);
-    _NAME(PROPERTYCHANGE);
-    _NAME(ENABLECLASS);
-    _NAME(DETECTVERIFY);
-    _NAME(INSTALLDEVICEFILES);
-    _NAME(ALLOW_INSTALL);
-    _NAME(SELECTBESTCOMPATDRV);
-    _NAME(REGISTERDEVICE);
-    _NAME(NEWDEVICEWIZARD_PRESELECT);
-    _NAME(NEWDEVICEWIZARD_SELECT);
-    _NAME(NEWDEVICEWIZARD_PREANALYZE);
-    _NAME(NEWDEVICEWIZARD_POSTANALYZE);
-    _NAME(NEWDEVICEWIZARD_FINISHINSTALL);
-    _NAME(INSTALLINTERFACES);
-    _NAME(DETECTCANCEL);
-    _NAME(REGISTER_COINSTALLERS);
-    _NAME(ADDPROPERTYPAGE_ADVANCED);
-    _NAME(ADDPROPERTYPAGE_BASIC);
-    _NAME(TROUBLESHOOTER);
-    _NAME(POWERMESSAGEWAKE);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-static BOOLEAN
-AllowUpdate(
-    IN  PTCHAR      DriverName,
-    OUT PBOOLEAN    Allow
-    )
-{
-    TCHAR           ServiceKeyName[MAX_PATH];
-    HKEY            ServiceKey;
-    HRESULT         Error;
-    DWORD           ValueLength;
-    DWORD           Value;
-    DWORD           Type;
-
-    Log("====> (%s)", DriverName);
-
-    (VOID) StringCbPrintf(ServiceKeyName,
-                          MAX_PATH,
-                          SERVICES_KEY "\\%s",
-                          DriverName);
-
-    Error = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                         ServiceKeyName,
-                         0,
-                         KEY_READ,
-                         &ServiceKey);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Value = 1;
-            goto done;
-        }
-
-        SetLastError(Error);
-        goto fail1;
-    }
-
-    ValueLength = sizeof (Value);
-
-    Error = RegQueryValueEx(ServiceKey,
-                            "AllowUpdate",
-                            NULL,
-                            &Type,
-                            (LPBYTE)&Value,
-                            &ValueLength);
-    if (Error != ERROR_SUCCESS) {
-        if (Error == ERROR_FILE_NOT_FOUND) {
-            Type = REG_DWORD;
-            Value = 1;
-        } else {
-            SetLastError(Error);
-            goto fail2;
-        }
-    }
-
-    if (Type != REG_DWORD) {
-        SetLastError(ERROR_BAD_FORMAT);
-        goto fail3;
-    }
-
-    RegCloseKey(ServiceKey);
-
-done:
-    if (Value == 0) {
-        Log("DISALLOWED");
-        *Allow = FALSE;
-    }
-
-    Log("<====");
-
-    return TRUE;
-
-fail3:
-    Log("fail3");
-
-fail2:
-    Log("fail2");
-
-    RegCloseKey(ServiceKey);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOLEAN
-AllowInstall(
-    OUT PBOOLEAN    Allow
-    )
-{
-    BOOLEAN         Success;
-    HRESULT         Error;
-
-    Log("====>");
-
-    *Allow = TRUE;
-
-    Success = AllowUpdate("XENIFACE", Allow);
-    if (!Success)
-        goto fail1;
-
-    Log("<====");
-
-    return TRUE;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static BOOL
-AgentDelete(
-    VOID
-    )
-{
-    SC_HANDLE           SCManager;
-    SC_HANDLE           Service;
-    BOOL                Success;
-    SERVICE_STATUS      Status;
-    HRESULT             Error;
-
-    Log("====>");
-
-    SCManager = OpenSCManager(NULL,
-                              NULL,
-                              SC_MANAGER_ALL_ACCESS);
-
-    if (SCManager == NULL)
-        goto fail1;
-
-    Service = OpenService(SCManager,
-                          AGENT_NAME,
-                          SERVICE_ALL_ACCESS);
-
-    if (Service == NULL)
-        goto fail2;
-
-    Success = ControlService(Service,
-                             SERVICE_CONTROL_STOP,
-                             &Status);
-
-    if (!Success)
-        goto fail3;
-
-    Success = DeleteService(Service);
-
-    if (!Success)
-        goto fail4;
-
-    CloseServiceHandle(Service);
-    CloseServiceHandle(SCManager);
-
-    Log("<====");
-
-    return TRUE;
-
-fail4:
-    Log("fail4");
-
-fail3:
-    Log("fail3");
-
-    CloseServiceHandle(Service);
-
-fail2:
-    Log("fail2");
-
-    CloseServiceHandle(SCManager);
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return FALSE;
-}
-
-static HRESULT
-DifInstallPreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-    BOOLEAN                         Success;
-    BOOLEAN                         Allow;
-
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("====>");
-
-    Success = AllowInstall(&Allow);
-    if (!Success)
-        goto fail1;
-
-    if (!Allow) {
-        SetLastError(ERROR_ACCESS_DENIED);
-        goto fail2;
-    }
-
-    Log("<====");
-
-    return NO_ERROR;
-
-fail2:
-    Log("fail2");
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static HRESULT
-DifInstallPostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static HRESULT
-DifInstall(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = DifInstallPreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED;
-    } else {
-        Error = Context->InstallResult;
-
-        if (Error == NO_ERROR) {
-            (VOID) DifInstallPostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = GetErrorMessage(Error);
-            Log("NOT RUNNING (DifInstallPreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR;
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-static HRESULT
-DifRemovePreProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("====>");
-
-    (VOID) AgentDelete();
-
-    Log("<====");
-
-    return NO_ERROR;
-}
-
-static HRESULT
-DifRemovePostProcess(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    UNREFERENCED_PARAMETER(DeviceInfoSet);
-    UNREFERENCED_PARAMETER(DeviceInfoData);
-    UNREFERENCED_PARAMETER(Context);
-
-    Log("<===>");
-
-    return NO_ERROR;
-}
-
-static HRESULT
-DifRemove(
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    SP_DEVINSTALL_PARAMS            DeviceInstallParams;
-    HRESULT                         Error;
-
-    DeviceInstallParams.cbSize = sizeof (DeviceInstallParams);
-
-    if (!SetupDiGetDeviceInstallParams(DeviceInfoSet,
-                                       DeviceInfoData,
-                                       &DeviceInstallParams))
-        goto fail1;
-
-    Log("Flags = %08x", DeviceInstallParams.Flags);
-
-    if (!Context->PostProcessing) {
-        Error = DifRemovePreProcess(DeviceInfoSet, DeviceInfoData, Context);
-
-        if (Error == NO_ERROR)
-            Error = ERROR_DI_POSTPROCESSING_REQUIRED;
-    } else {
-        Error = Context->InstallResult;
-
-        if (Error == NO_ERROR) {
-            (VOID) DifRemovePostProcess(DeviceInfoSet, DeviceInfoData, Context);
-        } else {
-            PTCHAR  Message;
-
-            Message = GetErrorMessage(Error);
-            Log("NOT RUNNING (DifRemovePreProcess Error: %s)", Message);
-            LocalFree(Message);
-        }
-
-        Error = NO_ERROR;
-    }
-
-    return Error;
-
-fail1:
-    Error = GetLastError();
-
-    {
-        PTCHAR  Message;
-
-        Message = GetErrorMessage(Error);
-        Log("fail1 (%s)", Message);
-        LocalFree(Message);
-    }
-
-    return Error;
-}
-
-DWORD CALLBACK
-Entry(
-    IN  DI_FUNCTION                 Function,
-    IN  HDEVINFO                    DeviceInfoSet,
-    IN  PSP_DEVINFO_DATA            DeviceInfoData,
-    IN  PCOINSTALLER_CONTEXT_DATA   Context
-    )
-{
-    HRESULT                         Error;
-
-    Log("%s (%s) ===>",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    if (!Context->PostProcessing) {
-        Log("%s PreProcessing",
-            FunctionName(Function));
-    } else {
-        Log("%s PostProcessing (%08x)",
-            FunctionName(Function),
-            Context->InstallResult);
-    }
-
-    switch (Function) {
-    case DIF_INSTALLDEVICE: {
-        SP_DRVINFO_DATA         DriverInfoData;
-        BOOLEAN                 DriverInfoAvailable;
-
-        DriverInfoData.cbSize = sizeof (DriverInfoData);
-        DriverInfoAvailable = SetupDiGetSelectedDriver(DeviceInfoSet,
-                                                       DeviceInfoData,
-                                                       &DriverInfoData) ?
-                              TRUE :
-                              FALSE;
-
-        // If there is no driver information then the NULL driver is being
-        // installed. Treat this as we would a DIF_REMOVE.
-        Error = (DriverInfoAvailable) ?
-                DifInstall(DeviceInfoSet, DeviceInfoData, Context) :
-                DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    }
-    case DIF_REMOVE:
-        Error = DifRemove(DeviceInfoSet, DeviceInfoData, Context);
-        break;
-    default:
-        if (!Context->PostProcessing) {
-            Error = NO_ERROR;
-        } else {
-            Error = Context->InstallResult;
-        }
-
-        break;
-    }
-
-    Log("%s (%s) <===",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return (DWORD)Error;
-}
-
-DWORD CALLBACK
-Version(
-    IN  HWND        Window,
-    IN  HINSTANCE   Module,
-    IN  PTCHAR      Buffer,
-    IN  INT         Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Window);
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Buffer);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s)",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR);
-
-    return NO_ERROR;
-}
-
-static const CHAR *
-ReasonName(
-    IN  DWORD       Reason
-    )
-{
-#define _NAME(_Reason)          \
-        case DLL_ ## _Reason:   \
-            return #_Reason;
-
-    switch (Reason) {
-    _NAME(PROCESS_ATTACH);
-    _NAME(PROCESS_DETACH);
-    _NAME(THREAD_ATTACH);
-    _NAME(THREAD_DETACH);
-    default:
-        break;
-    }
-
-    return "UNKNOWN";
-
-#undef  _NAME
-}
-
-BOOL WINAPI
-DllMain(
-    IN  HINSTANCE   Module,
-    IN  DWORD       Reason,
-    IN  PVOID       Reserved
-    )
-{
-    UNREFERENCED_PARAMETER(Module);
-    UNREFERENCED_PARAMETER(Reserved);
-
-    Log("%s (%s): %s",
-        MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR,
-        DAY_STR "/" MONTH_STR "/" YEAR_STR,
-        ReasonName(Reason));
-
-    return TRUE;
-}
diff --git a/src/coinst/xeniface_coinst.def b/src/coinst/xeniface_coinst.def
deleted file mode 100644
index aab18c5..0000000
--- a/src/coinst/xeniface_coinst.def
+++ /dev/null
@@ -1,38 +0,0 @@
-; Copyright (c) Xen Project.
-; Copyright (c) Cloud Software Group, Inc.
-; All rights reserved.
-;
-; Redistribution and use in source and binary forms,
-; with or without modification, are permitted provided
-; that the following conditions are met:
-;
-; *   Redistributions of source code must retain the above
-;     copyright notice, this list of conditions and the
-;     following disclaimer.
-; *   Redistributions in binary form must reproduce the above
-;     copyright notice, this list of conditions and the
-;     following disclaimer in the documentation and/or other
-;     materials provided with the distribution.
-;
-; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-; SUCH DAMAGE.
-
-LIBRARY  XENBUS_COINST
-
-EXPORTS
-   Entry
-   Version
-
-   DllMain PRIVATE
diff --git a/src/coinst/xeniface_coinst.rc b/src/coinst/xeniface_coinst.rc
deleted file mode 100644
index d43b5f7..0000000
--- a/src/coinst/xeniface_coinst.rc
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (c) Xen Project.
- * Copyright (c) Cloud Software Group, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * *   Redistributions of source code must retain the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer.
- * *   Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the
- *     following disclaimer in the documentation and/or other
- *     materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-
-#include <windows.h>
-#include <ntverp.h>
-
-#undef VER_COMPANYNAME_STR
-#undef VER_PRODUCTNAME_STR
-#undef VER_PRODUCTVERSION
-#undef VER_PRODUCTVERSION_STR
-
-#include <version.h>
-
-#define VER_COMPANYNAME_STR         VENDOR_NAME_STR
-#define VER_LEGALCOPYRIGHT_STR      COPYRIGHT_STR
-
-#define VER_PRODUCTNAME_STR         "XENIFACE_COINST"
-#define VER_PRODUCTVERSION          MAJOR_VERSION,MINOR_VERSION,MICRO_VERSION,BUILD_NUMBER
-#define VER_PRODUCTVERSION_STR      MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR
-
-#define VER_INTERNALNAME_STR 	    "XENIFACE_COINST.DLL"
-#define VER_FILEVERSION_STR 	    MAJOR_VERSION_STR "." MINOR_VERSION_STR "." MICRO_VERSION_STR "." BUILD_NUMBER_STR
-#define VER_FILEDESCRIPTION_STR     "XENIFACE_COINST"
-#define VER_ORIGINALFILENAME_STR    "XENIFACE_COINST.DLL"
-#define VER_FILETYPE VFT_APP
-#define VER_FILESUBTYPE 0
-
-#include "common.ver"
diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj
index e0d003d..d92e0d6 100644
--- a/vs2015/package/package.vcxproj
+++ b/vs2015/package/package.vcxproj
@@ -42,9 +42,6 @@
     <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>
diff --git a/vs2015/xeniface.sln b/vs2015/xeniface.sln
index d7fc6ad..8d3cfc6 100644
--- a/vs2015/xeniface.sln
+++ b/vs2015/xeniface.sln
@@ -4,11 +4,6 @@ VisualStudioVersion = 14.0.25420.1
 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}
@@ -23,7 +18,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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}
 	EndProjectSection
 EndProject
@@ -60,30 +54,6 @@ Global
 		{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
diff --git a/vs2015/xeniface_coinst/xeniface_coinst.vcxproj b/vs2015/xeniface_coinst/xeniface_coinst.vcxproj
deleted file mode 100644
index 2d7c6aa..0000000
--- a/vs2015/xeniface_coinst/xeniface_coinst.vcxproj
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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>{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>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <WarningLevel>EnableAllWarnings</WarningLevel>
-      <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;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>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xeniface_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2015/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2015/xeniface_coinst/xeniface_coinst.vcxproj.user
deleted file mode 100644
index ec2b080..0000000
--- a/vs2015/xeniface_coinst/xeniface_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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\xeniface.pfx</TestCertificate>
-    <TimeStampServer>http://timestamp.verisign.com/scripts/timstamp.dll</TimeStampServer>
-  </PropertyGroup>
-</Project>
diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj
index 31dacd3..349c7a8 100644
--- a/vs2017/package/package.vcxproj
+++ b/vs2017/package/package.vcxproj
@@ -42,9 +42,6 @@
     <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>
diff --git a/vs2017/xeniface.sln b/vs2017/xeniface.sln
index 1bdc66a..62b99a8 100644
--- a/vs2017/xeniface.sln
+++ b/vs2017/xeniface.sln
@@ -4,11 +4,6 @@ VisualStudioVersion = 14.0.25420.1
 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}
@@ -28,7 +23,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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
@@ -61,30 +55,6 @@ Global
 		{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
diff --git a/vs2017/xeniface_coinst/xeniface_coinst.vcxproj b/vs2017/xeniface_coinst/xeniface_coinst.vcxproj
deleted file mode 100644
index 69d7e11..0000000
--- a/vs2017/xeniface_coinst/xeniface_coinst.vcxproj
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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>
-      <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>
-    </Link>
-    <ResourceCompile>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
-  </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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xeniface_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
deleted file mode 100644
index 8fcc92e..0000000
--- a/vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index 357caaf..8212c4f 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -47,9 +47,6 @@
     <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>
diff --git a/vs2019/xeniface.sln b/vs2019/xeniface.sln
index f3aa879..ead3923 100644
--- a/vs2019/xeniface.sln
+++ b/vs2019/xeniface.sln
@@ -4,11 +4,6 @@ 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}
@@ -28,7 +23,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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
@@ -61,30 +55,6 @@ Global
 		{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
diff --git a/vs2019/xeniface_coinst/xeniface_coinst.vcxproj b/vs2019/xeniface_coinst/xeniface_coinst.vcxproj
deleted file mode 100644
index a5962f6..0000000
--- a/vs2019/xeniface_coinst/xeniface_coinst.vcxproj
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xeniface_coinst.rc" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project>
diff --git a/vs2019/xeniface_coinst/xeniface_coinst.vcxproj.user b/vs2019/xeniface_coinst/xeniface_coinst.vcxproj.user
deleted file mode 100644
index 8fcc92e..0000000
--- a/vs2019/xeniface_coinst/xeniface_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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/package/package.vcxproj b/vs2022/package/package.vcxproj
index 2b8fc26..eda07aa 100644
--- a/vs2022/package/package.vcxproj
+++ b/vs2022/package/package.vcxproj
@@ -47,9 +47,6 @@
     <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>
diff --git a/vs2022/xeniface.sln b/vs2022/xeniface.sln
index f3aa879..ead3923 100644
--- a/vs2022/xeniface.sln
+++ b/vs2022/xeniface.sln
@@ -4,11 +4,6 @@ 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}
@@ -28,7 +23,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.
 	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
@@ -61,30 +55,6 @@ Global
 		{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
diff --git a/vs2022/xeniface_coinst/xeniface_coinst.vcxproj b/vs2022/xeniface_coinst/xeniface_coinst.vcxproj
deleted file mode 100644
index a5962f6..0000000
--- a/vs2022/xeniface_coinst/xeniface_coinst.vcxproj
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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>
-  <ItemGroup>
-    <ResourceCompile Include="..\..\src\coinst\xeniface_coinst.rc" />
-  </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
deleted file mode 100644
index 8fcc92e..0000000
--- a/vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 14:39:27 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 14:39:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610555.950005 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qmEeI-0005uK-Uj; Fri, 29 Sep 2023 14:39:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610555.950005; Fri, 29 Sep 2023 14:39: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 1qmEeI-0005uD-Rz; Fri, 29 Sep 2023 14:39:22 +0000
Received: by outflank-mailman (input) for mailman id 610555;
 Fri, 29 Sep 2023 14:39:22 +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=3ulx=FN=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qmEeI-0005u7-96
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 14:39:22 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8ad588f-5ed5-11ee-878c-cb3800f73035;
 Fri, 29 Sep 2023 16:39:21 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-406609df1a6so4606425e9.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 07:39:19 -0700 (PDT)
Received: from ?IPV6:2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a?
 ([2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a])
 by smtp.gmail.com with ESMTPSA id
 m12-20020a056000174c00b003233b554e6esm7332766wrf.85.2023.09.29.07.39.17
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Sep 2023 07:39:17 -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: f8ad588f-5ed5-11ee-878c-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695998358; x=1696603158; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:reply-to:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oYUn3UeRoRtudItCihukcBTVM9eg3Dd1Q44LRpo4+tQ=;
        b=HxCC2Y/chCPINNqj65xjCEbwT9tBOKZ7s5Wq4RsqSRzluIH8TREsEVVfOk1UB9R1Fj
         aS+9k2Hxxdn1QHeGyLj6UWW1pbmNDWGIsje694fCl/yU/RZ1wonQm23Lt0SJ2I4kJKem
         dDQAuUz79SphEgc1mV+e5uLzcYCk5lqECiUcBNHKUyWppaYhnviBbYAi9BDzWVbY8rms
         hWAAxR8HhIbtAJSS7etkEJCO3cQDH7+mk6yF0gdg1z+jbkeK5lHgogJv93YMFOCpyTn4
         j5nfmUltgJMp2R+GYc/hLrFswqiOKrsVdHUPUIn4o1Ebmon0XOviHhTIyqzlJVWuUBr8
         h+DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695998358; x=1696603158;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:reply-to:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=oYUn3UeRoRtudItCihukcBTVM9eg3Dd1Q44LRpo4+tQ=;
        b=GCwKHFB5OgT1jeHzOGLKXYsmQj1bDdGKdII4WjqfhQJkkUd9ofOs2VbUPSYS7Iwx02
         y4vKQerSsWy3kVJg5BfGMmgbrroREHBDaoz3sDugS+d1JQ4AkYHjweatmlIVZnfKOsk+
         DxqFjO0N0lx7Fwxo1J23JNYtpNI82nATA4huYb7jnK/iIc+2rXO/A8w5wigRIXIvWMT+
         LdiTIMRTXpCueiBDHBJ7L/okcOsy8MyUCqG9jHSdghJYeMjltYLiN5YyEImNP6XxoQGO
         Hyh0fze3WylxypQUf/9VdLhdkDbQv0/HFh0JYPzRh4l2qtaVS+X3IwxpXZhKU5wXIW/x
         sI7A==
X-Gm-Message-State: AOJu0YzqJ+dd460kW46BwvJfUQejSa9xtSl5FhXmaY7XjQkn/Xu/t+Rc
	s3nDfeN7iG4QL3UEZjMfJr4BwK9CtElT+g==
X-Google-Smtp-Source: AGHT+IHITHeLKtV3i+Nl+SICoCRoqvNmDUlqjocnzdnYrCBhx7uLXpy2ggC8RjoDRknd7dFmuFbSBA==
X-Received: by 2002:a05:600c:5007:b0:405:315f:e676 with SMTP id n7-20020a05600c500700b00405315fe676mr4226606wmr.3.1695998358187;
        Fri, 29 Sep 2023 07:39:18 -0700 (PDT)
Message-ID: <077fa9f2-01c6-4fe6-8451-d20415f0c314@gmail.com>
Date: Fri, 29 Sep 2023 15:39:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH 1/2] Remove CoInstaller from INF
To: win-pv-devel@lists.xenproject.org
References: <20230929083343.1564-1-owen.smith@cloud.com>
 <20230929083343.1564-2-owen.smith@cloud.com>
Content-Language: en-US
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20230929083343.1564-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/09/2023 09:33, Owen Smith wrote:
> Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
> several issues
> - PnpLockdown=1 needs to be specified
> - CoInstallers are no longer allowed
> 
> The CoInstaller has several functions that will need alternative solutions:
> - The AllowUpdate mechanism is no longer possible
> - The safety checks that ensure interface versionings remain compatible
> - The cleanup of xenagent on uninstall.
> 
> Also updates the INF binding to match the version of XenBus with CoInstaller removed
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

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



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 14:40:00 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 14:40:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610558.950010 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qmEeu-0005yj-1S; Fri, 29 Sep 2023 14:40:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610558.950010; Fri, 29 Sep 2023 14:40: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 1qmEet-0005yc-Uw; Fri, 29 Sep 2023 14:39:59 +0000
Received: by outflank-mailman (input) for mailman id 610558;
 Fri, 29 Sep 2023 14:39: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=3ulx=FN=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qmEes-0005yW-OR
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 14:39:58 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fd7c8d1-5ed6-11ee-878c-cb3800f73035;
 Fri, 29 Sep 2023 16:39:57 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4060b623e64so4949675e9.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 07:39:57 -0700 (PDT)
Received: from ?IPV6:2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a?
 ([2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a])
 by smtp.gmail.com with ESMTPSA id
 m12-20020a056000174c00b003233b554e6esm7332766wrf.85.2023.09.29.07.39.56
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Sep 2023 07:39: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: 0fd7c8d1-5ed6-11ee-878c-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695998397; x=1696603197; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VBahYBnf+qY/hTcXdPrrWjCb38LQfSYmk5M0cQLTgSo=;
        b=OJYcZ7e9QxE4PfzeU6nvFfkep5GeVFe2d/X/q/47uDQxJ8EI3HaVkDOPH0TxOdb87P
         Iiq4zbzN9FXZ6IWWXJiHsj4a+v4MaS2awGUIcwB7maQg92UcQumyeU8LJNmT7fP7T+lO
         IUckBSMT2eNuKT3JNbW/M3HjWWL+AKtUYOVADQJUVItdrDJMG9CegAOZErplYXHhhd5t
         uNpLoIR5eakQ1u/DfOn8Un6B6xMc6/XVicP6qF4i1ez286JIiYiJsfHSyaCKAZP1pe2G
         lgxXKgOZF/3mkNzZoGUZu2/t67jQo33p5NGnX4yQ1qP80ddlAB1kCrX1hGMEm+pxyRPa
         Jk2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695998397; x=1696603197;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=VBahYBnf+qY/hTcXdPrrWjCb38LQfSYmk5M0cQLTgSo=;
        b=gDbCg3j6PvmyuXMUfMYYntasrrRJooU1gH15OsDkVKNvzHjOSMv8ZoJrrtl9owk2mw
         ftRwRSByara52Hv2YMW4IVsXD5mYV1EXbGGMUvgCcuL8ro4nehqRY8+6F1WwVnYHFNFm
         7JaxwEVNr7vEgS9vVKAcuBkfMrEc3pC9T/KhdBsNNayfWD0IMWEMaRAVfAaX3iA6vZuU
         IBc3eLr6+3+LFJWxlggp6Jh0xYnywcyFOVV0f32Nz3xzA/C2hi4p8caXorYkMlA+Q0W2
         v+Tj2HrqxjQBgo5d2nJesxLGmG6T1zG5TDM3ri6pfTFfk9TY2FK1SWCc2sA4zIPYhqz/
         35Sw==
X-Gm-Message-State: AOJu0YyKYk15LnGHfzLIOn5CkucmWEs8LvkLpL1VzO90W3arXm7n+Y4O
	ENBhrSctvW+LGJd95XFk7TrO4Mq92CwCFA==
X-Google-Smtp-Source: AGHT+IFpyFqoLosJ9zWJ1UTFvcO9SIPzepH6xpDCQigcO6iISYefVQkj/ODc2JfTdT4Thyq21vdFdQ==
X-Received: by 2002:a05:600c:3b86:b0:405:3ab3:e640 with SMTP id n6-20020a05600c3b8600b004053ab3e640mr3592071wms.20.1695998397261;
        Fri, 29 Sep 2023 07:39:57 -0700 (PDT)
Message-ID: <bae9cfe2-f1fe-4155-aaf0-733d9f923c22@gmail.com>
Date: Fri, 29 Sep 2023 15:39:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH 2/2] Delete CoInstaller code
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230929083343.1564-1-owen.smith@cloud.com>
 <20230929083343.1564-3-owen.smith@cloud.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20230929083343.1564-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/09/2023 09:33, Owen Smith wrote:
> With the CoInstaller removed from the INF file, delete the CoInstaller
> source code and projects.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/coinst/coinst.c                           | 722 ------------------
>   src/coinst/xeniface_coinst.def                |  38 -
>   src/coinst/xeniface_coinst.rc                 |  58 --
>   vs2015/package/package.vcxproj                |   3 -
>   vs2015/xeniface.sln                           |  30 -
>   .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
>   .../xeniface_coinst.vcxproj.user              |   8 -
>   vs2017/package/package.vcxproj                |   3 -
>   vs2017/xeniface.sln                           |  30 -
>   .../xeniface_coinst/xeniface_coinst.vcxproj   |  62 --
>   .../xeniface_coinst.vcxproj.user              |   8 -
>   vs2019/package/package.vcxproj                |   3 -
>   vs2019/xeniface.sln                           |  30 -
>   .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
>   .../xeniface_coinst.vcxproj.user              |   8 -
>   vs2022/package/package.vcxproj                |   3 -
>   vs2022/xeniface.sln                           |  30 -
>   .../xeniface_coinst/xeniface_coinst.vcxproj   |  68 --
>   .../xeniface_coinst.vcxproj.user              |   8 -
>   19 files changed, 1242 deletions(-)
>   delete mode 100644 src/coinst/coinst.c
>   delete mode 100644 src/coinst/xeniface_coinst.def
>   delete mode 100644 src/coinst/xeniface_coinst.rc
>   delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj
>   delete mode 100644 vs2015/xeniface_coinst/xeniface_coinst.vcxproj.user
>   delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj
>   delete mode 100644 vs2017/xeniface_coinst/xeniface_coinst.vcxproj.user
>   delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj
>   delete mode 100644 vs2019/xeniface_coinst/xeniface_coinst.vcxproj.user
>   delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj
>   delete mode 100644 vs2022/xeniface_coinst/xeniface_coinst.vcxproj.user
> 

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



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 14:49:44 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 14:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610572.950024 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qmEoI-0000RQ-Vi; Fri, 29 Sep 2023 14:49:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610572.950024; Fri, 29 Sep 2023 14:49:42 +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 1qmEoI-0000RJ-Su; Fri, 29 Sep 2023 14:49:42 +0000
Received: by outflank-mailman (input) for mailman id 610572;
 Fri, 29 Sep 2023 14:49:41 +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=3ulx=FN=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qmEoH-0000R8-Gn
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 14:49:41 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b0888aa-5ed7-11ee-878c-cb3800f73035;
 Fri, 29 Sep 2023 16:49:40 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-406618d0992so3493545e9.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 07:49:40 -0700 (PDT)
Received: from ?IPV6:2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a?
 ([2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a])
 by smtp.gmail.com with ESMTPSA id
 j17-20020a05600c489100b003fc16ee2864sm1567916wmp.48.2023.09.29.07.49.38
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Sep 2023 07:49:38 -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: 6b0888aa-5ed7-11ee-878c-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695998980; x=1696603780; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ySDsv4ECuc/t0rOw33HMVJeD0lRcuCDAf0mHZbTyVcQ=;
        b=QsLZLpxHVh9ZmZvLip4rXZtKW26UvbFS8AocBwK6sd1bx/wdy+JzGrhEs6WSpcRiN4
         aTjWzVbfbOC7mDgaoGK0jFk6olHkXZCfVjz4zIUVhmpU8wPvJlELPjM1bwphsiBkRDDD
         sSXmi6O5xry3wAWEkhWa8dsOLqguxl06iY+wJ/o1ADz3NnniS58Gft7/DVnaCuKGkK/N
         VogndJE8pXIThqPhFpwup4kGtqifu2EEXYuqBX7mZvi5bPpfmaUXU8sx7mxY0DlUI7xo
         CYY5emHm5SwxElI5eO9fMtpQpoK1dldduxLmZtLYJtpSN3rkpdqfS5Yqf7rIRjympRFp
         JX9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695998980; x=1696603780;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ySDsv4ECuc/t0rOw33HMVJeD0lRcuCDAf0mHZbTyVcQ=;
        b=pNrGwArP1V/ji6qpw0ez2h+Vco5uGpmOLuh+cUSPEqdAP97qF1m2cDKE1vmX1XQNPl
         xvLUtyh8M4jU6BasHn0Ff4smM7WOyTaLB8Dnu59jiP8R+ekAggyQgQNduji/VyzGkN01
         DOcsk/ZgPDgtWp9l0qiUFuz3plNL//YqJhTTRO6OrOn/+cVbf8lZjZTlAoffm5dhC0ie
         ZDU+tfRVBP0fzXkb31YhdkYZe4zSVEPivvq+g3PgXL+wxpyiQfpl9o+QUoEfgmpiBYMy
         jtf4StUlOBXa+RlMWo6+QOGiOu1VNbW2+iKtQU5ccxsxSDYdxU6hdkuCkwo8Z4lZnLUL
         FHYw==
X-Gm-Message-State: AOJu0YxdCXgzRetJOHvGFDJdnl3F+D57+YgefMlq2N1eEMBf44jPZ42x
	aFOuRmeaLXsZjOlMl//LtxZCm570MwKM8Q==
X-Google-Smtp-Source: AGHT+IGCM2AngIkHw19OWzjKotNvNwunXhaWocP2ngED3qqw0joxDYPNtCr4nqHCnPODtXUfVbqsbA==
X-Received: by 2002:a05:600c:c9:b0:401:d947:c8a9 with SMTP id u9-20020a05600c00c900b00401d947c8a9mr4850140wmm.19.1695998979560;
        Fri, 29 Sep 2023 07:49:39 -0700 (PDT)
Message-ID: <bc56e43f-8bb6-42af-9da9-954e0e1fe4e3@gmail.com>
Date: Fri, 29 Sep 2023 15:49:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH 1/2] Remove CoInstaller from INF
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230929080315.422-1-owen.smith@cloud.com>
 <20230929080315.422-2-owen.smith@cloud.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20230929080315.422-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/09/2023 09:03, Owen Smith wrote:
> Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
> several issues
> - PnpLockdown=1 needs to be specified
> - CoInstallers are no longer allowed
> 
> The CoInstaller has several functions that will need alternative solutions:
> - The AllowUpdate mechanism is no longer possible
> - The safety checks that ensure interface versionings remain compatible
> - The updating of various system config registry values
> 
> Interface safety checks need to be handled by changes to child device bindings,
> and assuming upgrade via emulated devices is safe. The unplug keys are cleared
> in the INF to revert to emulated on the next boot, incase the current child
> drivers rely on an interface that is no longer present (note: in this case,
> child drivers will need updating).
> 
> Also updates unplug_interface.h and device bindings so that this driver is only
> loaded on a later XenBus that has removed the XenBus CoInstaller.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   include/unplug_interface.h | 30 ++++++++++++++++++++++++++++--
>   src/xenvbd.inf             | 32 +++++++++++++++++---------------
>   2 files changed, 45 insertions(+), 17 deletions(-)
> 
> diff --git a/include/unplug_interface.h b/include/unplug_interface.h
> index 46c5dd4..9bad290 100644
> --- a/include/unplug_interface.h
> +++ b/include/unplug_interface.h
> @@ -85,6 +85,20 @@ typedef VOID
>       IN  BOOLEAN                     Make
>       );
>   
> +/*! \typedef XENBUS_UNPLUG_GETSTATE
> +    \brief Has a type of emulated device been unplugged
> +
> +    \param Interface The interface header
> +    \param Type The type of device
> +
> +    \return TRUE The type of device has been unplugged this boot
> +*/
> +typedef BOOLEAN
> +(*XENBUS_UNPLUG_GETSTATE)(
> +    IN  PINTERFACE                  Interface,
> +    IN  XENBUS_UNPLUG_DEVICE_TYPE   Type
> +    );
> +
>   // {73db6517-3d06-4937-989f-199b7501e229}
>   DEFINE_GUID(GUID_XENBUS_UNPLUG_INTERFACE,
>   0x73db6517, 0x3d06, 0x4937, 0x98, 0x9f, 0x19, 0x9b, 0x75, 0x01, 0xe2, 0x29);
> @@ -100,7 +114,19 @@ struct _XENBUS_UNPLUG_INTERFACE_V1 {
>       XENBUS_UNPLUG_REQUEST   UnplugRequest;
>   };
>   
> -typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
> +/*! \struct _XENBUS_UNPLUG_INTERFACE_V2
> +    \brief UNPLUG interface version 2
> +    \ingroup interfaces
> +*/
> +struct _XENBUS_UNPLUG_INTERFACE_V2 {
> +    INTERFACE               Interface;
> +    XENBUS_UNPLUG_ACQUIRE   UnplugAcquire;
> +    XENBUS_UNPLUG_RELEASE   UnplugRelease;
> +    XENBUS_UNPLUG_REQUEST   UnplugRequest;
> +    XENBUS_UNPLUG_GETSTATE  UnplugGetState;

This is obviously out of date. I'll fix this up.

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

> +};
> +
> +typedef struct _XENBUS_UNPLUG_INTERFACE_V2 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNPLUG_INTERFACE;
>   
>   /*! \def XENBUS_UNPLUG
>       \brief Macro at assist in method invocation
> @@ -111,6 +137,6 @@ typedef struct _XENBUS_UNPLUG_INTERFACE_V1 XENBUS_UNPLUG_INTERFACE, *PXENBUS_UNP
>   #endif  // _WINDLL
>   
>   #define XENBUS_UNPLUG_INTERFACE_VERSION_MIN  1
> -#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  1
> +#define XENBUS_UNPLUG_INTERFACE_VERSION_MAX  2
>   
>   #endif  // _XENBUS_UNPLUG_INTERFACE_H
> diff --git a/src/xenvbd.inf b/src/xenvbd.inf
> index 94553d7..8bb7998 100644
> --- a/src/xenvbd.inf
> +++ b/src/xenvbd.inf
> @@ -37,10 +37,10 @@ Provider=%Vendor%
>   CatalogFile=xenvbd.cat
>   DriverVer=@INF_DATE@,@MAJOR_VERSION@.@MINOR_VERSION@.@MICRO_VERSION@.@BUILD_NUMBER@
>   DriverPackageDisplayName=%DiskDesc%
> +PnpLockdown=1
>   
>   [DestinationDirs]
>   DefaultDestDir=12
> -CoInst_CopyFiles=11
>   
>   [SourceDisksNames]
>   0=%DiskDesc%
> @@ -49,15 +49,14 @@ CoInst_CopyFiles=11
>   xenvbd.sys=0,,
>   xencrsh.sys=0,,
>   xendisk.sys=0,,
> -xenvbd_coinst.dll=0,,
>   
>   [Manufacturer]
>   %Vendor%=Inst,NT@INF_ARCH@
>   
>   [Inst.NT@INF_ARCH@]
> -%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VBD&REV_09000009
> -%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VBD&REV_09000009
> -%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VBD&REV_09000009
> +%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_VBD&REV_0900000A
> +%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_VBD&REV_0900000A
> +%XenVbdName%=XenVbd_Inst,XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_VBD&REV_0900000A
>   
>   [XenVbd_Inst]
>   CopyFiles=XenVbd_Copyfiles
> @@ -96,7 +95,7 @@ StartType=%SERVICE_BOOT_START%
>   ErrorControl=%SERVICE_ERROR_NORMAL%
>   ServiceBinary=%12%\xenvbd.sys
>   LoadOrderGroup="Scsi Miniport"
> -AddReg=XenVbd_Parameters
> +AddReg=XenVbd_Parameters, XenVbd_Unplug, XenVbd_Extras
>   
>   [XenVbd_Parameters]
>   HKR,"Parameters",,0x00000010
> @@ -106,23 +105,26 @@ HKR,"Parameters","RequestKey",0x00000000,%RequestKey%
>   HKR,"Parameters","max-ring-page-order",0x00010001,0x00000001
>   HKR,"Parameters","multi-queue-max-queues",0x00010001,0x00000002
>   
> -[XenVbd_Inst.CoInstallers]
> -CopyFiles=CoInst_CopyFiles
> -AddReg=CoInst_AddReg
> +[XenVbd_Unplug]
> +HKLM,%UnplugKey%,"DISKS",0x00010001,0
>   
> -[CoInst_CopyFiles]
> -xenvbd_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenvbd_coinst.dll
> +[XenVbd_Extras]
> +HKLM,%PnpKey%,"DisableCDDB",0x00010001,0
> +HKLM,%PnpKey%,"DontStartRawDevices",0x00010001,0
> +HKLM,%PartMgrKey%,"SanPolicy",0x00010001,1
> +HKLM,%DiskKey%,"TimeOutValue",0x00010001,120
>   
> -[CoInst_AddReg]
> -HKR,,CoInstallers32,0x00010000,"xenvbd_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,Entry"
> -
> -[Strings]
> +[Strings]
>   
>   Vendor = "@VENDOR_NAME@"
>   DiskDesc = "@PRODUCT_NAME@ PV Storage Host Adapter Package"
>   XenVbdName= "@PRODUCT_NAME@ PV Storage Host Adapter"
>   XenDiskName= "@PRODUCT_NAME@ PV Storage Filter"
>   RequestKey="SYSTEM\CurrentControlSet\Services\xenbus_monitor\Request"
> +UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
> +PnpKey="SYSTEM\CurrentControlSet\Control\Pnp"
> +PartMgrKey="SYSTEM\CurrentControlSet\Services\PartMgr\Parameters"
> +DiskKey="SYSTEM\CurrentControlSet\Services\Disk"
>   
>   SERVICE_BOOT_START = 0x0
>   SERVICE_SYSTEM_START = 0x1



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 14:50:21 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 14:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610576.950028 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qmEov-0001Ls-2h; Fri, 29 Sep 2023 14:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610576.950028; Fri, 29 Sep 2023 14:50:21 +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 1qmEou-0001Ll-Vx; Fri, 29 Sep 2023 14:50:20 +0000
Received: by outflank-mailman (input) for mailman id 610576;
 Fri, 29 Sep 2023 14:50:19 +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=3ulx=FN=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qmEot-0001La-OR
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 14:50:19 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80d0829c-5ed7-11ee-9b0d-b553b5be7939;
 Fri, 29 Sep 2023 16:50:17 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40652e5718cso18324535e9.3
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 07:50:16 -0700 (PDT)
Received: from ?IPV6:2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a?
 ([2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a])
 by smtp.gmail.com with ESMTPSA id
 j17-20020a05600c489100b003fc16ee2864sm1567916wmp.48.2023.09.29.07.50.15
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Sep 2023 07:50:15 -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: 80d0829c-5ed7-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695999016; x=1696603816; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PaRBc+GkTzcNbUxwcaFoXo5346Q9WSett0Ys/DKv6SQ=;
        b=GOKsSBOEgvXWnbR3PffCG3U2bGMFHmJoNKFYaonT82Cb483VqQ2FdZSVx0TJFupqh4
         5Xtp1m6fQsETeKK1RpkoSb8gm0HXjznCZn26YriV8xDkrmF9FvWM2mj/OKW6tsfUHAoL
         SDkMDlC7AS1f2lKWLqXanCJF5ytSCeDAObUIFOnj0i7xQ8VWhxnzuOQ4y+5xGbcPcMN4
         R8aJMECXYbijAPio0Xo4MyodIGgTNUD65MqXZN9AnbaxtJ5eFvkXCD+BLrzsbx5K2UQg
         hGeONOKm1CRlId6ynGPogXR8HxvCIBFkKi7LdsYurggONhQatcfkwd4mKm0o85ZkCz58
         gT2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695999016; x=1696603816;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PaRBc+GkTzcNbUxwcaFoXo5346Q9WSett0Ys/DKv6SQ=;
        b=xGAEHumh7E7/EzMw2fSRGLFW85/xKy2awWR8JbfZ/uMN8UUngTWkLHe0WnZfu+3dvi
         PTTclyxS9BvQrkZCMJiuNcFJ+oP0h63kQwqGT7Aoo1Zuz30QifpMCHDyuGmpPTDSUlIr
         WHeTI9xVyE2Yp0lzExoJvYo9OjtRo+BWXrMrHQRMz45Ct4D25AtPnwV0uFrvzumamyGm
         GOl5+TziMcP6qqJsVwWw62BnXnESS8Dlz3kkonKFCKG/bqMXWoa8CitU7zNaf/KLUaWa
         iHphTF/7es0goiIefbGfheV9GV+FjCUnDKBBPMR1N/S17qEdKZqvn81C+1kcpE6gFFCe
         gzQg==
X-Gm-Message-State: AOJu0YwW/BAWRhBCHdeu0ShyPJqYpMTrxf/wVm0waQks2DRLsQCJjuL8
	vaFkAFBZcIwOlvJqGugGiyXLD28sE1+yUg==
X-Google-Smtp-Source: AGHT+IEBWmYXcI0Eo2VVacWdqLMRmLUE1o06UJsJ1+bQRnPFyN2SPMqCi2MDOlQjww5jgldeOJuw4g==
X-Received: by 2002:a05:600c:3b22:b0:406:5301:4320 with SMTP id m34-20020a05600c3b2200b0040653014320mr4065897wms.16.1695999016367;
        Fri, 29 Sep 2023 07:50:16 -0700 (PDT)
Message-ID: <3b4cc31c-289d-4ac4-b4fb-e96b3a7cdc6b@gmail.com>
Date: Fri, 29 Sep 2023 15:50:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH 2/2] Delete CoInstaller code
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230929080315.422-1-owen.smith@cloud.com>
 <20230929080315.422-3-owen.smith@cloud.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20230929080315.422-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/09/2023 09:03, Owen Smith wrote:
> With the CoInstaller removed from the INF file, delete the CoInstaller
> source code and projects.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/coinst/coinst.c                           | 917 ------------------
>   src/coinst/xenvbd_coinst.def                  |  38 -
>   src/coinst/xenvbd_coinst.rc                   |  57 --
>   vs2015/package/package.vcxproj                |   3 -
>   vs2015/xenvbd.sln                             |  21 +-
>   vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj    |  62 --
>   .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
>   vs2017/package/package.vcxproj                |   3 -
>   vs2017/xenvbd.sln                             |  24 +-
>   vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj    |  62 --
>   .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
>   vs2019/package/package.vcxproj                |   3 -
>   vs2019/xenvbd.sln                             |  24 +-
>   vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj    |  68 --
>   .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
>   vs2022/package/package.vcxproj                |   3 -
>   vs2022/xenvbd.sln                             |  24 +-
>   vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj    |  68 --
>   .../xenvbd_coinst/xenvbd_coinst.vcxproj.user  |   8 -
>   19 files changed, 4 insertions(+), 1405 deletions(-)
>   delete mode 100644 src/coinst/coinst.c
>   delete mode 100644 src/coinst/xenvbd_coinst.def
>   delete mode 100644 src/coinst/xenvbd_coinst.rc
>   delete mode 100644 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj
>   delete mode 100644 vs2015/xenvbd_coinst/xenvbd_coinst.vcxproj.user
>   delete mode 100644 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj
>   delete mode 100644 vs2017/xenvbd_coinst/xenvbd_coinst.vcxproj.user
>   delete mode 100644 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj
>   delete mode 100644 vs2019/xenvbd_coinst/xenvbd_coinst.vcxproj.user
>   delete mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj
>   delete mode 100644 vs2022/xenvbd_coinst/xenvbd_coinst.vcxproj.user
> 

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



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 14:51:30 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 14:51:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610585.950031 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qmEq2-0001mr-6M; Fri, 29 Sep 2023 14:51:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610585.950031; Fri, 29 Sep 2023 14:51:30 +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 1qmEq2-0001mk-3j; Fri, 29 Sep 2023 14:51:30 +0000
Received: by outflank-mailman (input) for mailman id 610585;
 Fri, 29 Sep 2023 14:51:28 +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=3ulx=FN=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qmEq0-0001kA-Pd
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 14:51:28 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab2fb6af-5ed7-11ee-878c-cb3800f73035;
 Fri, 29 Sep 2023 16:51:27 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2bff776fe0bso229317031fa.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 07:51:27 -0700 (PDT)
Received: from ?IPV6:2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a?
 ([2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a])
 by smtp.gmail.com with ESMTPSA id
 j17-20020a05600c489100b003fc16ee2864sm1567916wmp.48.2023.09.29.07.51.26
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Sep 2023 07:51:26 -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: ab2fb6af-5ed7-11ee-878c-cb3800f73035
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695999087; x=1696603887; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LSZyBNIMunMAx/N5C4q1YU1c+NNAdumvRsXIEAyRNb0=;
        b=j1jaqTj6s2zd8s2nlBMkeDLHuNwx1xOl6pMUqepDEujpsd06qji1jfcWdajrODGrgO
         PgqHUHaD3DF86xt9yW+b053+zm160HhMeJ55jkR6q0E/dIwQ8Hr5tZBm6FkRxyr93wUP
         XkBD+UVXQlZuiGXYMU74OhSTwr0chkGNguv+LAMvPRwsojL4Fiq5attXsq6KKGbxw0eX
         rlzU8zGX0NPc4VB/KWfX1Xtwhyx31+yGyddP9wHvi0sHy4WXOG5OdeX2UNGvfzUqMUtq
         J9eLTFxANumOTwp1WsAUPKrVTDpRyFVwlZH6OFs4RnC7y1LC2UeuUxBnc3Otjmh5ubSa
         OsuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695999087; x=1696603887;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=LSZyBNIMunMAx/N5C4q1YU1c+NNAdumvRsXIEAyRNb0=;
        b=ezguIdQtJO9FeZlDuYkcspxzgQIck3XnS1jOd0Rx8RNt4hDsZskxMpRCnPRv/73Niw
         4xD78a+wdylHVIeRw0Xy+2BR5eU5mVdF04dsrSAWQ2ocIrY7J1/U9YDd9wq/C3RJtcGs
         w7aT6wlwDj0wz1MPGS8cN4cofgk8SodxghZAy5VL4cKDslnVaPFk039hYcMokQ63kx7Z
         DRlXrfmRu8cbL5IZeFM32TB3IhN/LM/S1kdaXKi+DqDHJXC/UEGNlcjAceoRrYhWOJo7
         tgGA7rFlsuRT9jGanGY5hOJdqvoMfEbvYBMl3RQ7q+/4nEvBhsrIQnNkWsGTbpajQlId
         KFcQ==
X-Gm-Message-State: AOJu0YzP3S7ytmPdgtlrxI3FIPj/HI5gKsbLaqCsnfnvO/So83ZgItSt
	P6831VBc99HUfB6wWRgSg7lrZSDcWkinNg==
X-Google-Smtp-Source: AGHT+IEDxhh5kyhi+vDMUAcTjS/z1IZWqoi2OkZxe32kVx4tb4ZmdzwF2OAbjYz8yIkLTqgvSItz4A==
X-Received: by 2002:a05:6512:691:b0:504:7ff8:3430 with SMTP id t17-20020a056512069100b005047ff83430mr4149348lfe.10.1695999087187;
        Fri, 29 Sep 2023 07:51:27 -0700 (PDT)
Message-ID: <746657f1-0110-4b74-ad6c-5fa84fb8517a@gmail.com>
Date: Fri, 29 Sep 2023 15:51:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH 1/2] Remove CoInstaller from INF
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230929073958.840-1-owen.smith@cloud.com>
 <20230929073958.840-2-owen.smith@cloud.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20230929073958.840-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/09/2023 08:39, Owen Smith wrote:
> Windows 11 22H2 WHQL requires INF files pass "InfVerif /k", which highlights
> several issues
> - PnpLockdown=1 needs to be specified
> - CoInstallers are no longer allowed
> 
> The CoInstaller has several functions that will need alternative solutions:
> - The AllowUpdate mechanism is no longer possible
> - The safety checks that ensure interface versionings remain compatible
> 
> Interface safety checks need to be handled by changes to child device bindings,
> and assuming upgrade via emulated devices is safe. The unplug key is cleared
> in the INF to revert to emulated NICs on the next boot, incase the current child
> drivers rely on an interface that is no longer present (note: in this case,
> child drivers will need updating).
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xennet.inf | 13 +------------
>   1 file changed, 1 insertion(+), 12 deletions(-)
> 

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



From win-pv-devel-bounces@lists.xenproject.org Fri Sep 29 14:52:12 2023
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Sep 2023 14:52:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.610593.950036 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1qmEqi-000268-AI; Fri, 29 Sep 2023 14:52:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 610593.950036; Fri, 29 Sep 2023 14:52: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 1qmEqi-000261-7N; Fri, 29 Sep 2023 14:52:12 +0000
Received: by outflank-mailman (input) for mailman id 610593;
 Fri, 29 Sep 2023 14:52:11 +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=3ulx=FN=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1qmEqh-00023L-8t
 for win-pv-devel@lists.xenproject.org; Fri, 29 Sep 2023 14:52:11 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c409473d-5ed7-11ee-9b0d-b553b5be7939;
 Fri, 29 Sep 2023 16:52:09 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-406618d0992so3519415e9.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Sep 2023 07:52:09 -0700 (PDT)
Received: from ?IPV6:2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a?
 ([2a00:23c7:dfa2:4f01:75fc:8a8:bb6c:ef5a])
 by smtp.gmail.com with ESMTPSA id
 j17-20020a05600c489100b003fc16ee2864sm1567916wmp.48.2023.09.29.07.52.08
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Sep 2023 07:52:08 -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: c409473d-5ed7-11ee-9b0d-b553b5be7939
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1695999129; x=1696603929; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7kwqZpkl/iQ6l1ZmwVkddslnma+h9P2MA8TB9p8Aay8=;
        b=EeM1yg7/bei4LdkSuKuMmqod5S7Gk64aNCKlGDmKbK+VcmchyYgC8cbSqUf0ge/OvA
         H+uEeuVE6jZMAnErMFbbwHrs6DgeWFvWXgzF266dWONPDbb1E+f2KSOC/FIIQlb9MuHq
         2TBmBd0HG0W8FdTlqjo1xu8d6Kw2QqtXb/Vm6/sSs0LJOo32y94kg6Qv9uyGcMP0WMNE
         Iqzhc6h5G+yhAH62Au1Zyu3en2LThng1VZJ2j8jabWkAd3zCQxw4zIjvZuuIt7dtrTr2
         o4G0jwgSCOX1FZGLS4uTFQxMH4xFs58rBi60NKsyjSFkv5WhoH6vhsdwkMujPeJ+yMqp
         o/Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1695999129; x=1696603929;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=7kwqZpkl/iQ6l1ZmwVkddslnma+h9P2MA8TB9p8Aay8=;
        b=bImD3oPz/249lW7AHXJVa/EECRddIiLefJz7zeJHGs5kkCBh9JsswSzcFlErFrFwqP
         Rxu6qyqok/F/8uRdizHB8SOeBEcBcP+jNMipVgkFgZk5ziPEn19c1BIDbNq0VSmPUgeY
         BsITFJaslfrVYYZD0xe8U4Z0MSBbHbHFwIoY0aZ940Q9bMLJ13cXT31k9+v8Q2ygA5KX
         4RC64W2wlpw7Hj++5OnZlX+girwvFx+Jh/JD+SWr8ETC8zOowTJ2QHvdPpMFsE8I8rpj
         o8SH8WAp0fzSRRmLDHfK9JSSnTNQSO9+KledMgGmu0Op5HbpXkmvO0qo2nKRNT41MJs5
         K7FQ==
X-Gm-Message-State: AOJu0YxR1PKxjR2zGNkRXVqNtwoMHi5qiV1Nlb6lKqojrQvOqtWTuBVZ
	Eydq5oY1dNR8eeOCnjko64zId/vOhFilhQ==
X-Google-Smtp-Source: AGHT+IGES3DlasBjJEOeDzjuJ8c8cI6wvZ3nGS+/KlNrKTKzYZo47KQGkkj4b32ZiEwWpnu0oAHJzg==
X-Received: by 2002:a05:600c:b59:b0:3ff:233f:2cfb with SMTP id k25-20020a05600c0b5900b003ff233f2cfbmr3892710wmr.23.1695999129021;
        Fri, 29 Sep 2023 07:52:09 -0700 (PDT)
Message-ID: <6bd21bd2-9d69-4951-ad7c-300952767e60@gmail.com>
Date: Fri, 29 Sep 2023 15:52:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [PATCH 2/2] Delete CoInstaller code
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20230929073958.840-1-owen.smith@cloud.com>
 <20230929073958.840-3-owen.smith@cloud.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20230929073958.840-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/09/2023 08:39, Owen Smith wrote:
> With the CoInstaller removed from the INF file, delete the CoInstaller
> source code and projects.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/coinst/coinst.c                           | 603 ------------------
>   src/coinst/xennet_coinst.def                  |  38 --
>   src/coinst/xennet_coinst.rc                   |  57 --
>   vs2015/package/package.vcxproj                |   3 -
>   vs2015/xennet.sln                             |  31 -
>   vs2015/xennet_coinst/xennet_coinst.vcxproj    |  63 --
>   .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
>   vs2017/package/package.vcxproj                |   3 -
>   vs2017/xennet.sln                             |  31 -
>   vs2017/xennet_coinst/xennet_coinst.vcxproj    |  63 --
>   .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
>   vs2019/package/package.vcxproj                |   3 -
>   vs2019/xennet.sln                             |  31 -
>   vs2019/xennet_coinst/xennet_coinst.vcxproj    |  69 --
>   .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
>   vs2022/package/package.vcxproj                |   3 -
>   vs2022/xennet.sln                             |  31 -
>   vs2022/xennet_coinst/xennet_coinst.vcxproj    |  69 --
>   .../xennet_coinst/xennet_coinst.vcxproj.user  |   8 -
>   19 files changed, 1130 deletions(-)
>   delete mode 100644 src/coinst/coinst.c
>   delete mode 100644 src/coinst/xennet_coinst.def
>   delete mode 100644 src/coinst/xennet_coinst.rc
>   delete mode 100644 vs2015/xennet_coinst/xennet_coinst.vcxproj
>   delete mode 100644 vs2015/xennet_coinst/xennet_coinst.vcxproj.user
>   delete mode 100644 vs2017/xennet_coinst/xennet_coinst.vcxproj
>   delete mode 100644 vs2017/xennet_coinst/xennet_coinst.vcxproj.user
>   delete mode 100644 vs2019/xennet_coinst/xennet_coinst.vcxproj
>   delete mode 100644 vs2019/xennet_coinst/xennet_coinst.vcxproj.user
>   delete mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj
>   delete mode 100644 vs2022/xennet_coinst/xennet_coinst.vcxproj.user
> 

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



