Commit 47b5f245bec908f803f0a89c3b1e3166cfe33aad originally introduced
the filtering of files by extension. For the QXL driver at least,
there is a qxldd.dll file which is part of the driver, so that must be
copied to the guest as well.
Do not copy 'WdfCoInstaller*.dll' files to the guest.
Thanks: Vadim Rozenfeld, Tingting Zheng.
---
v2v/v2v_unit_tests.ml | 74 +++++++++++++++++++++++++--------------------------
v2v/windows_virtio.ml | 6 ++++-
2 files changed, 42 insertions(+), 38 deletions(-)
diff --git a/v2v/v2v_unit_tests.ml b/v2v/v2v_unit_tests.ml
index 0b1b589..4da2f8a 100644
--- a/v2v/v2v_unit_tests.ml
+++ b/v2v/v2v_unit_tests.ml
@@ -266,13 +266,13 @@ let test_virtio_iso_path_matches_guest_os ctx =
"NetKVM/2k12/amd64/netkvm.inf", Some win2k12_64;
"NetKVM/2k12/amd64/netkvm.pdb", Some win2k12_64;
"NetKVM/2k12/amd64/netkvm.sys", Some win2k12_64;
- "NetKVM/2k12/amd64/netkvmco.dll", None;
+ "NetKVM/2k12/amd64/netkvmco.dll", Some win2k12_64;
"NetKVM/2k12/amd64/readme.doc", None;
"NetKVM/2k12R2/amd64/netkvm.cat", Some win2k12r2_64;
"NetKVM/2k12R2/amd64/netkvm.inf", Some win2k12r2_64;
"NetKVM/2k12R2/amd64/netkvm.pdb", Some win2k12r2_64;
"NetKVM/2k12R2/amd64/netkvm.sys", Some win2k12r2_64;
- "NetKVM/2k12R2/amd64/netkvmco.dll", None;
+ "NetKVM/2k12R2/amd64/netkvmco.dll", Some win2k12r2_64;
"NetKVM/2k12R2/amd64/readme.doc", None;
"NetKVM/2k3/amd64/netkvm.cat", Some win2k3_64;
"NetKVM/2k3/amd64/netkvm.inf", Some win2k3_64;
@@ -286,55 +286,55 @@ let test_virtio_iso_path_matches_guest_os ctx =
"NetKVM/2k8/amd64/netkvm.inf", Some win2k8_64;
"NetKVM/2k8/amd64/netkvm.pdb", Some win2k8_64;
"NetKVM/2k8/amd64/netkvm.sys", Some win2k8_64;
- "NetKVM/2k8/amd64/netkvmco.dll", None;
+ "NetKVM/2k8/amd64/netkvmco.dll", Some win2k8_64;
"NetKVM/2k8/amd64/readme.doc", None;
"NetKVM/2k8/x86/netkvm.cat", Some win2k8_32;
"NetKVM/2k8/x86/netkvm.inf", Some win2k8_32;
"NetKVM/2k8/x86/netkvm.pdb", Some win2k8_32;
"NetKVM/2k8/x86/netkvm.sys", Some win2k8_32;
- "NetKVM/2k8/x86/netkvmco.dll", None;
+ "NetKVM/2k8/x86/netkvmco.dll", Some win2k8_32;
"NetKVM/2k8/x86/readme.doc", None;
"NetKVM/2k8R2/amd64/netkvm.cat", Some win2k8r2_64;
"NetKVM/2k8R2/amd64/netkvm.inf", Some win2k8r2_64;
"NetKVM/2k8R2/amd64/netkvm.pdb", Some win2k8r2_64;
"NetKVM/2k8R2/amd64/netkvm.sys", Some win2k8r2_64;
- "NetKVM/2k8R2/amd64/netkvmco.dll", None;
+ "NetKVM/2k8R2/amd64/netkvmco.dll", Some win2k8r2_64;
"NetKVM/2k8R2/amd64/readme.doc", None;
"NetKVM/w7/amd64/netkvm.cat", Some win7_64;
"NetKVM/w7/amd64/netkvm.inf", Some win7_64;
"NetKVM/w7/amd64/netkvm.pdb", Some win7_64;
"NetKVM/w7/amd64/netkvm.sys", Some win7_64;
- "NetKVM/w7/amd64/netkvmco.dll", None;
+ "NetKVM/w7/amd64/netkvmco.dll", Some win7_64;
"NetKVM/w7/amd64/readme.doc", None;
"NetKVM/w7/x86/netkvm.cat", Some win7_32;
"NetKVM/w7/x86/netkvm.inf", Some win7_32;
"NetKVM/w7/x86/netkvm.pdb", Some win7_32;
"NetKVM/w7/x86/netkvm.sys", Some win7_32;
- "NetKVM/w7/x86/netkvmco.dll", None;
+ "NetKVM/w7/x86/netkvmco.dll", Some win7_32;
"NetKVM/w7/x86/readme.doc", None;
"NetKVM/w8.1/amd64/netkvm.cat", Some win8_1_64;
"NetKVM/w8.1/amd64/netkvm.inf", Some win8_1_64;
"NetKVM/w8.1/amd64/netkvm.pdb", Some win8_1_64;
"NetKVM/w8.1/amd64/netkvm.sys", Some win8_1_64;
- "NetKVM/w8.1/amd64/netkvmco.dll", None;
+ "NetKVM/w8.1/amd64/netkvmco.dll", Some win8_1_64;
"NetKVM/w8.1/amd64/readme.doc", None;
"NetKVM/w8.1/x86/netkvm.cat", Some win8_1_32;
"NetKVM/w8.1/x86/netkvm.inf", Some win8_1_32;
"NetKVM/w8.1/x86/netkvm.pdb", Some win8_1_32;
"NetKVM/w8.1/x86/netkvm.sys", Some win8_1_32;
- "NetKVM/w8.1/x86/netkvmco.dll", None;
+ "NetKVM/w8.1/x86/netkvmco.dll", Some win8_1_32;
"NetKVM/w8.1/x86/readme.doc", None;
"NetKVM/w8/amd64/netkvm.cat", Some win8_64;
"NetKVM/w8/amd64/netkvm.inf", Some win8_64;
"NetKVM/w8/amd64/netkvm.pdb", Some win8_64;
"NetKVM/w8/amd64/netkvm.sys", Some win8_64;
- "NetKVM/w8/amd64/netkvmco.dll", None;
+ "NetKVM/w8/amd64/netkvmco.dll", Some win8_64;
"NetKVM/w8/amd64/readme.doc", None;
"NetKVM/w8/x86/netkvm.cat", Some win8_32;
"NetKVM/w8/x86/netkvm.inf", Some win8_32;
"NetKVM/w8/x86/netkvm.pdb", Some win8_32;
"NetKVM/w8/x86/netkvm.sys", Some win8_32;
- "NetKVM/w8/x86/netkvmco.dll", None;
+ "NetKVM/w8/x86/netkvmco.dll", Some win8_32;
"NetKVM/w8/x86/readme.doc", None;
"NetKVM/xp/x86/netkvm.cat", Some winxp_32;
"NetKVM/xp/x86/netkvm.inf", Some winxp_32;
@@ -348,78 +348,78 @@ let test_virtio_iso_path_matches_guest_os ctx =
"viorng/2k12/amd64/viorng.inf", Some win2k12_64;
"viorng/2k12/amd64/viorng.pdb", Some win2k12_64;
"viorng/2k12/amd64/viorng.sys", Some win2k12_64;
- "viorng/2k12/amd64/viorngci.dll", None;
- "viorng/2k12/amd64/viorngum.dll", None;
+ "viorng/2k12/amd64/viorngci.dll", Some win2k12_64;
+ "viorng/2k12/amd64/viorngum.dll", Some win2k12_64;
"viorng/2k12R2/amd64/WdfCoInstaller01011.dll", None;
"viorng/2k12R2/amd64/viorng.cat", Some win2k12r2_64;
"viorng/2k12R2/amd64/viorng.inf", Some win2k12r2_64;
"viorng/2k12R2/amd64/viorng.pdb", Some win2k12r2_64;
"viorng/2k12R2/amd64/viorng.sys", Some win2k12r2_64;
- "viorng/2k12R2/amd64/viorngci.dll", None;
- "viorng/2k12R2/amd64/viorngum.dll", None;
+ "viorng/2k12R2/amd64/viorngci.dll", Some win2k12r2_64;
+ "viorng/2k12R2/amd64/viorngum.dll", Some win2k12r2_64;
"viorng/2k8/amd64/WdfCoInstaller01009.dll", None;
"viorng/2k8/amd64/viorng.cat", Some win2k8_64;
"viorng/2k8/amd64/viorng.inf", Some win2k8_64;
"viorng/2k8/amd64/viorng.pdb", Some win2k8_64;
"viorng/2k8/amd64/viorng.sys", Some win2k8_64;
- "viorng/2k8/amd64/viorngci.dll", None;
- "viorng/2k8/amd64/viorngum.dll", None;
+ "viorng/2k8/amd64/viorngci.dll", Some win2k8_64;
+ "viorng/2k8/amd64/viorngum.dll", Some win2k8_64;
"viorng/2k8/x86/WdfCoInstaller01009.dll", None;
"viorng/2k8/x86/viorng.cat", Some win2k8_32;
"viorng/2k8/x86/viorng.inf", Some win2k8_32;
"viorng/2k8/x86/viorng.pdb", Some win2k8_32;
"viorng/2k8/x86/viorng.sys", Some win2k8_32;
- "viorng/2k8/x86/viorngci.dll", None;
- "viorng/2k8/x86/viorngum.dll", None;
+ "viorng/2k8/x86/viorngci.dll", Some win2k8_32;
+ "viorng/2k8/x86/viorngum.dll", Some win2k8_32;
"viorng/2k8R2/amd64/WdfCoInstaller01009.dll", None;
"viorng/2k8R2/amd64/viorng.cat", Some win2k8r2_64;
"viorng/2k8R2/amd64/viorng.inf", Some win2k8r2_64;
"viorng/2k8R2/amd64/viorng.pdb", Some win2k8r2_64;
"viorng/2k8R2/amd64/viorng.sys", Some win2k8r2_64;
- "viorng/2k8R2/amd64/viorngci.dll", None;
- "viorng/2k8R2/amd64/viorngum.dll", None;
+ "viorng/2k8R2/amd64/viorngci.dll", Some win2k8r2_64;
+ "viorng/2k8R2/amd64/viorngum.dll", Some win2k8r2_64;
"viorng/w7/amd64/WdfCoInstaller01009.dll", None;
"viorng/w7/amd64/viorng.cat", Some win7_64;
"viorng/w7/amd64/viorng.inf", Some win7_64;
"viorng/w7/amd64/viorng.pdb", Some win7_64;
"viorng/w7/amd64/viorng.sys", Some win7_64;
- "viorng/w7/amd64/viorngci.dll", None;
- "viorng/w7/amd64/viorngum.dll", None;
+ "viorng/w7/amd64/viorngci.dll", Some win7_64;
+ "viorng/w7/amd64/viorngum.dll", Some win7_64;
"viorng/w7/x86/WdfCoInstaller01009.dll", None;
"viorng/w7/x86/viorng.cat", Some win7_32;
"viorng/w7/x86/viorng.inf", Some win7_32;
"viorng/w7/x86/viorng.pdb", Some win7_32;
"viorng/w7/x86/viorng.sys", Some win7_32;
- "viorng/w7/x86/viorngci.dll", None;
- "viorng/w7/x86/viorngum.dll", None;
+ "viorng/w7/x86/viorngci.dll", Some win7_32;
+ "viorng/w7/x86/viorngum.dll", Some win7_32;
"viorng/w8.1/amd64/WdfCoInstaller01011.dll", None;
"viorng/w8.1/amd64/viorng.cat", Some win8_1_64;
"viorng/w8.1/amd64/viorng.inf", Some win8_1_64;
"viorng/w8.1/amd64/viorng.pdb", Some win8_1_64;
"viorng/w8.1/amd64/viorng.sys", Some win8_1_64;
- "viorng/w8.1/amd64/viorngci.dll", None;
- "viorng/w8.1/amd64/viorngum.dll", None;
+ "viorng/w8.1/amd64/viorngci.dll", Some win8_1_64;
+ "viorng/w8.1/amd64/viorngum.dll", Some win8_1_64;
"viorng/w8.1/x86/WdfCoInstaller01011.dll", None;
"viorng/w8.1/x86/viorng.cat", Some win8_1_32;
"viorng/w8.1/x86/viorng.inf", Some win8_1_32;
"viorng/w8.1/x86/viorng.pdb", Some win8_1_32;
"viorng/w8.1/x86/viorng.sys", Some win8_1_32;
- "viorng/w8.1/x86/viorngci.dll", None;
- "viorng/w8.1/x86/viorngum.dll", None;
+ "viorng/w8.1/x86/viorngci.dll", Some win8_1_32;
+ "viorng/w8.1/x86/viorngum.dll", Some win8_1_32;
"viorng/w8/amd64/WdfCoInstaller01011.dll", None;
"viorng/w8/amd64/viorng.cat", Some win8_64;
"viorng/w8/amd64/viorng.inf", Some win8_64;
"viorng/w8/amd64/viorng.pdb", Some win8_64;
"viorng/w8/amd64/viorng.sys", Some win8_64;
- "viorng/w8/amd64/viorngci.dll", None;
- "viorng/w8/amd64/viorngum.dll", None;
+ "viorng/w8/amd64/viorngci.dll", Some win8_64;
+ "viorng/w8/amd64/viorngum.dll", Some win8_64;
"viorng/w8/x86/WdfCoInstaller01011.dll", None;
"viorng/w8/x86/viorng.cat", Some win8_32;
"viorng/w8/x86/viorng.inf", Some win8_32;
"viorng/w8/x86/viorng.pdb", Some win8_32;
"viorng/w8/x86/viorng.sys", Some win8_32;
- "viorng/w8/x86/viorngci.dll", None;
- "viorng/w8/x86/viorngum.dll", None;
+ "viorng/w8/x86/viorngci.dll", Some win8_32;
+ "viorng/w8/x86/viorngum.dll", Some win8_32;
"vioscsi/2k12/amd64/vioscsi.cat", Some win2k12_64;
"vioscsi/2k12/amd64/vioscsi.inf", Some win2k12_64;
"vioscsi/2k12/amd64/vioscsi.pdb", Some win2k12_64;
@@ -619,7 +619,7 @@ let test_virtio_iso_path_matches_guest_os ctx =
"drivers/i386/Win2008/vioscsi.inf", Some win2k8_32;
"drivers/i386/Win7/viostor.inf", Some win7_32;
"drivers/i386/Win7/viostor.sys", Some win7_32;
- "drivers/i386/Win7/qxldd.dll", None;
+ "drivers/i386/Win7/qxldd.dll", Some win7_32;
"drivers/i386/Win7/qxl.sys", Some win7_32;
"drivers/i386/Win7/vioscsi.cat", Some win7_32;
"drivers/i386/Win7/netkvm.inf", Some win7_32;
@@ -647,7 +647,7 @@ let test_virtio_iso_path_matches_guest_os ctx =
"drivers/i386/Win8/vioscsi.inf", Some win8_32;
"drivers/i386/WinXP/viostor.inf", Some winxp_32;
"drivers/i386/WinXP/viostor.sys", Some winxp_32;
- "drivers/i386/WinXP/qxldd.dll", None;
+ "drivers/i386/WinXP/qxldd.dll", Some winxp_32;
"drivers/i386/WinXP/qxl.sys", Some winxp_32;
"drivers/i386/WinXP/netkvm.inf", Some winxp_32;
"drivers/i386/WinXP/netkvm.sys", Some winxp_32;
@@ -675,7 +675,7 @@ let test_virtio_iso_path_matches_guest_os ctx =
"drivers/amd64/Win2008/vioscsi.inf", Some win2k8_64;
"drivers/amd64/Win7/viostor.inf", Some win7_64;
"drivers/amd64/Win7/viostor.sys", Some win7_64;
- "drivers/amd64/Win7/qxldd.dll", None;
+ "drivers/amd64/Win7/qxldd.dll", Some win7_64;
"drivers/amd64/Win7/qxl.sys", Some win7_64;
"drivers/amd64/Win7/vioscsi.cat", Some win7_64;
"drivers/amd64/Win7/netkvm.inf", Some win7_64;
@@ -712,7 +712,7 @@ let test_virtio_iso_path_matches_guest_os ctx =
"drivers/amd64/Win2012/vioscsi.inf", Some win2k12_64;
"drivers/amd64/Win2008R2/viostor.inf", Some win2k8r2_64;
"drivers/amd64/Win2008R2/viostor.sys", Some win2k8r2_64;
- "drivers/amd64/Win2008R2/qxldd.dll", None;
+ "drivers/amd64/Win2008R2/qxldd.dll", Some win2k8r2_64;
"drivers/amd64/Win2008R2/qxl.sys", Some win2k8r2_64;
"drivers/amd64/Win2008R2/vioscsi.cat", Some win2k8r2_64;
"drivers/amd64/Win2008R2/netkvm.inf", Some win2k8r2_64;
diff --git a/v2v/windows_virtio.ml b/v2v/windows_virtio.ml
index e63f39e..fd13578 100644
--- a/v2v/windows_virtio.ml
+++ b/v2v/windows_virtio.ml
@@ -426,9 +426,13 @@ and virtio_iso_path_matches_guest_os path inspect =
in
(* Skip files without specific extensions. *)
- let extensions = ["cat"; "inf"; "pdb"; "sys"]
in
+ let extensions = ["cat"; "dll"; "inf"; "pdb";
"sys"] in
if not (List.mem extension extensions) then raise Not_found;
+ (* Skip WdfCoInstaller*.dll files - these should not be copied. *)
+ if String.is_prefix lc_basename "wdfcoinstaller" && extension =
"dll" then
+ raise Not_found;
+
(* Using the full path, work out what version of Windows
* this driver is for. Paths can be things like:
* "NetKVM/2k12R2/amd64/netkvm.sys" or
--
2.5.0