[Libguestfs] [PATCH] v2v: virtio-win: include *.dll too

Yan Vugenfirer yvugenfi at redhat.com
Thu Oct 29 10:15:05 UTC 2015


> On 29 Oct 2015, at 11:53, Roman Kagan <rkagan at virtuozzo.com> wrote:
> 
> On Thu, Oct 29, 2015 at 10:33:57AM +0200, Yan Vugenfirer wrote:
>>> On 29 Oct 2015, at 10:28, Richard W.M. Jones <rjones at redhat.com> wrote:
>>> On Thu, Oct 29, 2015 at 11:05:42AM +1100, Vadim Rozenfeld wrote:
>>> 
>>> Seems like looking at this field in the .inf file is better than our
>>> current approach of matching path names.
>> 
>> You just need to remember that we have binary compatible versions of
>> drivers. For example virtio-net driver for Windows 2012 (Windows 8)
>> (6.2) will be used for Windows 2012R2 (Windows 8.1) and Windows Server
>> 2016 (Windows 10). So you are getting the lowest compatible version of
>> the OS from INF file. 
> 
> That seems to match Vadim's description:
> 
>>>> If you found an inf file with the matching minor OS (6 in our case)
>>>> version and matching or less but close minor version number (2 vs 3)
>>>> then you are in the right directory.
> 
> and it's OK as it's an algorithm that can be coded and made to work
> reliably.
> 
> However, do I get it right that this is just a convention currently
> followed in virtio-win drivers?  I.e. there's nothing in the Windows
> driver specifications mandating this versioning scheme?  I'm trying to
> figure out how dependable it is.

This scheme of driver versioning is not mandated by MS specification. It was an internal decision made several years ago and we intend to continue following it.

> 
> Besides, ATM there's at least one driver -- qemupciserial -- which
> doesn't fit in this scheme (or any scheme at all :).

It is single INF for all OSes. And we can change the versioning to comply to virtio-win convention.

Also qxl (Spice driver) has similar versioning scheme. In qxl INF the version will be 5.1.0.10018 for XP and 6.1.0.10018 for Windows 7 for example.

> 
> There are other peculiarities which we don't know what to do:
> 
> - the netkvm driver directory on virtio-win.iso contains netkvmco.dll
>  (I'm assuming it's coinstaller dll).  However, netkvm.inf doesn't
>  mention it, and the driver installs just fine without it.

It can be used as co-installer, but eventually it was decided not to use it in this way and allow the user manual activation of the functionality in netkvmco.dll. MS required that command line tools should be provided by the NDIS miniport drivers that have GUI configuration (advanced tab in device manager). The netkvmco is essentially netsh plugin that can be used to change NetKVM parameters (or actually parameters of any network driver in the system as the parameters are saved in MS mandated format). The documentation for the netkvmco.dll is found in readyme.doc file (once again this is MS requirement).

> 
> - the balloon driver directory on virtio-win.iso contains blnsvr.exe
>  (and .pdb) which is apparently a usermode service to report memory
>  stats to host via balloon virtio queue.  However nothing seems to
>  automatically trigger installation of that service.
> 
> Thanks,
> Roman.





More information about the Libguestfs mailing list