Updated virtdisk-GetStorageDependencyInformation patchset

This commit is contained in:
Alistair Leslie-Hughes 2018-06-05 09:46:50 +10:00
parent cf3c3e93e5
commit 5ffb34bc71
4 changed files with 142 additions and 21 deletions

View File

@ -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

View File

@ -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 <xerox.xerox2000x@gmail.com>
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 <xerox.xerox2000x@gmail.com>
---
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 <windows.h>
+
+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;
+

View File

@ -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?= <michael@fds-team.de>
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

View File

@ -0,0 +1,121 @@
From 6c514957d141fe9761d6281cdddbeaabf5234fe7 Mon Sep 17 00:00:00 2001
From: Gijs Vermeulen <gijsvrm@gmail.com>
Date: Mon, 28 May 2018 21:55:22 +0200
Subject: [PATCH 3/3] virtdisk/tests: Add GetStorageDependencyInformation
tests.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
---
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