From 8b734af147bd631eb246c6e92aefb7b17d888f27 Mon Sep 17 00:00:00 2001 From: Owen Smith Date: Mon, 2 Oct 2023 13:52:04 +0100 Subject: [PATCH] Remove REV from DeviceID 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 --- src/xenvkbd/pdo.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/xenvkbd/pdo.c b/src/xenvkbd/pdo.c index 256859f..5b52aad 100644 --- a/src/xenvkbd/pdo.c +++ b/src/xenvkbd/pdo.c @@ -1318,18 +1318,12 @@ PdoQueryId( break; case BusQueryDeviceID: { - ULONG Index; - PXENVKBD_PDO_REVISION Revision; - Type = REG_SZ; - Index = ARRAYSIZE(PdoRevision) - 1; - Revision = &PdoRevision[Index]; status = RtlStringCbPrintfW(Buffer, Id.MaximumLength, - L"XENVKBD\\VEN_%hs&DEV_HID&REV_%08X", - __PdoGetVendorName(Pdo), - Revision->Number); + L"XENVKBD\\VEN_%hs&DEV_HID", + __PdoGetVendorName(Pdo)); ASSERT(NT_SUCCESS(status)); Buffer += wcslen(Buffer); -- 2.39.5