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

Re: [RFC: PATCH 4/5] Remove REV from DeviceID



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 AM Paul Durrant <xadimgnik@xxxxxxxxx> 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 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@xxxxxxxxx>

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



 


Rackspace

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