From 5ffb34bc71d81f370baa83c012e0724f3bc9fe2f Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 5 Jun 2018 09:46:50 +1000 Subject: [PATCH] Updated virtdisk-GetStorageDependencyInformation patchset --- patches/patchinstall.sh | 5 +- ...01-include-add-headerfile-virtdisk.h.patch | 25 ++-- ...GetStorageDependencyInformation-stub.patch | 12 +- ...dd-GetStorageDependencyInformation-t.patch | 121 ++++++++++++++++++ 4 files changed, 142 insertions(+), 21 deletions(-) create mode 100644 patches/virtdisk-GetStorageDependencyInformation/0003-virtdisk-tests-Add-GetStorageDependencyInformation-t.patch diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index e1f64cbd..fed2e884 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -7135,14 +7135,17 @@ fi # | * [#42577] Add stub for virtdisk.GetStorageDependencyInformation # | # | Modified files: -# | * dlls/virtdisk/virtdisk.spec, dlls/virtdisk/virtdisk_main.c, include/Makefile.in, include/virtdisk.h +# | * configure, configure.ac, dlls/virtdisk/tests/Makefile.in, dlls/virtdisk/tests/virtdisk.c, dlls/virtdisk/virtdisk.spec, +# | dlls/virtdisk/virtdisk_main.c, include/Makefile.in, include/virtdisk.h # | if test "$enable_virtdisk_GetStorageDependencyInformation" -eq 1; then patch_apply virtdisk-GetStorageDependencyInformation/0001-include-add-headerfile-virtdisk.h.patch patch_apply virtdisk-GetStorageDependencyInformation/0002-virtdisk-Add-GetStorageDependencyInformation-stub.patch + patch_apply virtdisk-GetStorageDependencyInformation/0003-virtdisk-tests-Add-GetStorageDependencyInformation-t.patch ( printf '%s\n' '+ { "Louis Lenders", "include: Add headerfile virtdisk.h.", 1 },'; printf '%s\n' '+ { "Michael Müller", "virtdisk: Add GetStorageDependencyInformation stub.", 1 },'; + printf '%s\n' '+ { "Gijs Vermeulen", "virtdisk/tests: Add GetStorageDependencyInformation tests.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/virtdisk-GetStorageDependencyInformation/0001-include-add-headerfile-virtdisk.h.patch b/patches/virtdisk-GetStorageDependencyInformation/0001-include-add-headerfile-virtdisk.h.patch index f44910a1..6f8bffc5 100644 --- a/patches/virtdisk-GetStorageDependencyInformation/0001-include-add-headerfile-virtdisk.h.patch +++ b/patches/virtdisk-GetStorageDependencyInformation/0001-include-add-headerfile-virtdisk.h.patch @@ -1,20 +1,20 @@ -From f3b400f8c005d94b220b1e5d9d9da165520cd97f Mon Sep 17 00:00:00 2001 +From c981822f9574d88b865917fe96fa46dd247a2b0b Mon Sep 17 00:00:00 2001 From: Louis Lenders Date: Fri, 3 Mar 2017 10:00:14 +0100 -Subject: [PATCH] include: add headerfile virtdisk.h +Subject: [PATCH 1/3] include: add headerfile virtdisk.h Signed-off-by: Louis Lenders --- include/Makefile.in | 1 + - include/virtdisk.h | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 96 insertions(+) + include/virtdisk.h | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 93 insertions(+) create mode 100644 include/virtdisk.h diff --git a/include/Makefile.in b/include/Makefile.in -index b2f30ad..ca3dd83 100644 +index 78ab095..900e326 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -639,6 +639,7 @@ SOURCES = \ +@@ -631,6 +631,7 @@ SOURCES = \ verrsrc.h \ vfw.h \ vfwmsgs.h \ @@ -24,10 +24,10 @@ index b2f30ad..ca3dd83 100644 vss.idl \ diff --git a/include/virtdisk.h b/include/virtdisk.h new file mode 100644 -index 0000000..3ed2c6f +index 0000000..7924689 --- /dev/null +++ b/include/virtdisk.h -@@ -0,0 +1,95 @@ +@@ -0,0 +1,92 @@ +/* + * Copyright 2017 Louis Lenders + * @@ -49,10 +49,7 @@ index 0000000..3ed2c6f +#ifndef __WINE_VIRTDISK_DLL_H +#define __WINE_VIRTDISK_DLL_H + -+#include "windef.h" -+#include "wine/debug.h" -+#include "winbase.h" -+#include "winnt.h" ++#include + +typedef enum _GET_STORAGE_DEPENDENCY_FLAG +{ @@ -115,8 +112,8 @@ index 0000000..3ed2c6f + ULONG NumberEntries; + __C89_NAMELESS union + { -+ STORAGE_DEPENDENCY_INFO_TYPE_1 Version1Entries[1]; -+ STORAGE_DEPENDENCY_INFO_TYPE_2 Version2Entries[1]; ++ STORAGE_DEPENDENCY_INFO_TYPE_1 *Version1Entries; ++ STORAGE_DEPENDENCY_INFO_TYPE_2 *Version2Entries; + } __C89_NAMELESSUNIONNAME; +} STORAGE_DEPENDENCY_INFO, *PSTORAGE_DEPENDENCY_INFO; + diff --git a/patches/virtdisk-GetStorageDependencyInformation/0002-virtdisk-Add-GetStorageDependencyInformation-stub.patch b/patches/virtdisk-GetStorageDependencyInformation/0002-virtdisk-Add-GetStorageDependencyInformation-stub.patch index efce6573..04e38d7b 100644 --- a/patches/virtdisk-GetStorageDependencyInformation/0002-virtdisk-Add-GetStorageDependencyInformation-stub.patch +++ b/patches/virtdisk-GetStorageDependencyInformation/0002-virtdisk-Add-GetStorageDependencyInformation-stub.patch @@ -1,7 +1,7 @@ -From 53c44bc9df1067be152aa39bf3824ae2f586d23b Mon Sep 17 00:00:00 2001 +From d2a6ef055db332efbb7ebb36bda65b2611eb861b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 3 Mar 2017 14:23:53 +0100 -Subject: virtdisk: Add GetStorageDependencyInformation stub. +Subject: [PATCH 2/3] virtdisk: Add GetStorageDependencyInformation stub. --- dlls/virtdisk/virtdisk.spec | 2 +- @@ -9,7 +9,7 @@ Subject: virtdisk: Add GetStorageDependencyInformation stub. 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/dlls/virtdisk/virtdisk.spec b/dlls/virtdisk/virtdisk.spec -index 2946b66d501..6bd5f146dbd 100644 +index 2946b66..6bd5f14 100644 --- a/dlls/virtdisk/virtdisk.spec +++ b/dlls/virtdisk/virtdisk.spec @@ -8,7 +8,7 @@ @@ -22,7 +22,7 @@ index 2946b66d501..6bd5f146dbd 100644 @ stub GetVirtualDiskMetadata @ stub GetVirtualDiskOperationProgress diff --git a/dlls/virtdisk/virtdisk_main.c b/dlls/virtdisk/virtdisk_main.c -index 0da0dca4611..aac356e7a4f 100644 +index 0da0dca..0f13404 100644 --- a/dlls/virtdisk/virtdisk_main.c +++ b/dlls/virtdisk/virtdisk_main.c @@ -22,6 +22,8 @@ @@ -46,7 +46,7 @@ index 0da0dca4611..aac356e7a4f 100644 + if (used) *used = sizeof(STORAGE_DEPENDENCY_INFO); + + if (!info || !size) -+ return ERROR_SUCCESS; ++ return ERROR_INVALID_PARAMETER; + + if (size < sizeof(STORAGE_DEPENDENCY_INFO)) + return ERROR_INSUFFICIENT_BUFFER; @@ -56,5 +56,5 @@ index 0da0dca4611..aac356e7a4f 100644 + return ERROR_SUCCESS; +} -- -2.11.0 +1.9.1 diff --git a/patches/virtdisk-GetStorageDependencyInformation/0003-virtdisk-tests-Add-GetStorageDependencyInformation-t.patch b/patches/virtdisk-GetStorageDependencyInformation/0003-virtdisk-tests-Add-GetStorageDependencyInformation-t.patch new file mode 100644 index 00000000..bb45283d --- /dev/null +++ b/patches/virtdisk-GetStorageDependencyInformation/0003-virtdisk-tests-Add-GetStorageDependencyInformation-t.patch @@ -0,0 +1,121 @@ +From 6c514957d141fe9761d6281cdddbeaabf5234fe7 Mon Sep 17 00:00:00 2001 +From: Gijs Vermeulen +Date: Mon, 28 May 2018 21:55:22 +0200 +Subject: [PATCH 3/3] virtdisk/tests: Add GetStorageDependencyInformation + tests. + +Signed-off-by: Gijs Vermeulen +--- + configure | 1 + + configure.ac | 1 + + dlls/virtdisk/tests/Makefile.in | 4 +++ + dlls/virtdisk/tests/virtdisk.c | 62 +++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 68 insertions(+) + create mode 100644 dlls/virtdisk/tests/Makefile.in + create mode 100644 dlls/virtdisk/tests/virtdisk.c + +diff --git a/configure b/configure +index 456304b..4fd19dd 100755 +--- a/configure ++++ b/configure +@@ -19215,6 +19215,7 @@ wine_fn_config_makefile dlls/ver.dll16 enable_win16 + wine_fn_config_makefile dlls/version enable_version + wine_fn_config_makefile dlls/version/tests enable_tests + wine_fn_config_makefile dlls/virtdisk enable_virtdisk ++wine_fn_config_makefile dlls/virtdisk/tests enable_tests + wine_fn_config_makefile dlls/vmm.vxd enable_win16 + wine_fn_config_makefile dlls/vnbt.vxd enable_win16 + wine_fn_config_makefile dlls/vnetbios.vxd enable_win16 +diff --git a/configure.ac b/configure.ac +index 600cb63..f61c3b2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3715,6 +3715,7 @@ WINE_CONFIG_MAKEFILE(dlls/ver.dll16,enable_win16) + WINE_CONFIG_MAKEFILE(dlls/version) + WINE_CONFIG_MAKEFILE(dlls/version/tests) + WINE_CONFIG_MAKEFILE(dlls/virtdisk) ++WINE_CONFIG_MAKEFILE(dlls/virtdisk/tests) + WINE_CONFIG_MAKEFILE(dlls/vmm.vxd,enable_win16) + WINE_CONFIG_MAKEFILE(dlls/vnbt.vxd,enable_win16) + WINE_CONFIG_MAKEFILE(dlls/vnetbios.vxd,enable_win16) +diff --git a/dlls/virtdisk/tests/Makefile.in b/dlls/virtdisk/tests/Makefile.in +new file mode 100644 +index 0000000..d0557cb +--- /dev/null ++++ b/dlls/virtdisk/tests/Makefile.in +@@ -0,0 +1,4 @@ ++TESTDLL = virtdisk.dll ++ ++C_SRCS = \ ++ virtdisk.c +diff --git a/dlls/virtdisk/tests/virtdisk.c b/dlls/virtdisk/tests/virtdisk.c +new file mode 100644 +index 0000000..2719d51 +--- /dev/null ++++ b/dlls/virtdisk/tests/virtdisk.c +@@ -0,0 +1,62 @@ ++/* ++ * Copyright 2018 Gijs Vermeulen ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "virtdisk.h" ++#include "wine/heap.h" ++#include "wine/test.h" ++ ++static DWORD (WINAPI *pGetStorageDependencyInformation)(HANDLE,GET_STORAGE_DEPENDENCY_FLAG,ULONG,STORAGE_DEPENDENCY_INFO*,ULONG*); ++ ++static void test_GetStorageDependencyInformation(void) ++{ ++ DWORD ret; ++ HANDLE handle; ++ STORAGE_DEPENDENCY_INFO *info; ++ ULONG size; ++ ++ handle = CreateFileA("C:", 0, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0); ++ ok(handle != INVALID_HANDLE_VALUE, "Expected a handle\n"); ++ ++ size = sizeof(STORAGE_DEPENDENCY_INFO); ++ info = heap_alloc(size); ++ ++ ret = pGetStorageDependencyInformation(handle, GET_STORAGE_DEPENDENCY_FLAG_DISK_HANDLE, 0, info, 0); ++ ok(ret == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", ret); ++ ++ ret = pGetStorageDependencyInformation(handle, GET_STORAGE_DEPENDENCY_FLAG_DISK_HANDLE, size, NULL, 0); ++ ok(ret == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %d\n", ret); ++ ++ heap_free(info); ++ CloseHandle(handle); ++} ++ ++START_TEST(virtdisk) ++{ ++ HMODULE module = LoadLibraryA("virtdisk.dll"); ++ if(!module) ++ { ++ win_skip("virtdisk.dll not installed\n"); ++ return; ++ } ++ ++ pGetStorageDependencyInformation = (void *)GetProcAddress( module, "GetStorageDependencyInformation" ); ++ if (pGetStorageDependencyInformation) ++ test_GetStorageDependencyInformation(); ++ else ++ win_skip("GetStorageDependencyInformation is not available\n"); ++} +-- +1.9.1 +