[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 2/5] Remove REV from DeviceID


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Paul Durrant <xadimgnik@xxxxxxxxx>
  • Date: Thu, 28 Sep 2023 13:04:19 +0100
  • Delivery-date: Thu, 28 Sep 2023 12:04:24 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

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@xxxxxxxxx>
---
  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);




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.