Rebase against 0cc6233e2077c1ef679ecb8bd815d31484868294

This commit is contained in:
Alistair Leslie-Hughes 2018-12-04 09:08:05 +11:00
parent 178c0f6d74
commit 6fb7d85916
9 changed files with 67 additions and 423 deletions

View File

@ -1,107 +0,0 @@
From 8a9a381c788c317f95e7e95c347459f0bc720829 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Wed, 24 Jan 2018 22:27:51 -0700
Subject: [PATCH 1/2] ntdll: Add RtlAddGrowableFunctionTable stub
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
---
dlls/ntdll/ntdll.spec | 1 +
dlls/ntdll/signal_arm.c | 10 ++++++++++
dlls/ntdll/signal_arm64.c | 10 ++++++++++
dlls/ntdll/signal_x86_64.c | 12 ++++++++++++
include/winnt.h | 2 ++
5 files changed, 35 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 446f2a5..c488fe2 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -434,6 +434,7 @@
@ stdcall RtlAddMandatoryAce(ptr long long long long ptr)
# @ stub RtlAddRange
@ cdecl -arch=arm,arm64,x86_64 RtlAddFunctionTable(ptr long long)
+@ cdecl -arch=arm,arm64,x86_64 RtlAddGrowableFunctionTable(ptr ptr long long long long)
@ stdcall RtlAddRefActivationContext(ptr)
# @ stub RtlAddRefMemoryStream
@ stdcall RtlAddVectoredContinueHandler(long ptr)
diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
index da0c8fb..72087a2 100644
--- a/dlls/ntdll/signal_arm.c
+++ b/dlls/ntdll/signal_arm.c
@@ -1058,6 +1058,16 @@ BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, DWORD a
return TRUE;
}
+/*************************************************************************
+ * RtlAddGrowableFunctionTable (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+ ULONG_PTR base, ULONG_PTR end )
+{
+ FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+ if (table) *table = NULL;
+ return S_OK;
+}
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
index 4d2d127..e072ee0 100644
--- a/dlls/ntdll/signal_arm64.c
+++ b/dlls/ntdll/signal_arm64.c
@@ -976,6 +976,16 @@ BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, ULONG_P
return TRUE;
}
+/*************************************************************************
+ * RtlAddGrowableFunctionTable (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+ ULONG_PTR base, ULONG_PTR end )
+{
+ FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+ if (table) *table = NULL;
+ return S_OK;
+}
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index 7228adb..b8cb0a9 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -3506,6 +3506,18 @@ BOOLEAN CDECL RtlInstallFunctionTableCallback( DWORD64 table, DWORD64 base, DWOR
}
+/*************************************************************************
+ * RtlAddGrowableFunctionTable (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+ ULONG_PTR base, ULONG_PTR end )
+{
+ FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+ if (table) *table = NULL;
+ return S_OK;
+}
+
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
diff --git a/include/winnt.h b/include/winnt.h
index 742b47b..47763dd 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -1146,6 +1146,8 @@ typedef struct _UNWIND_HISTORY_TABLE_ENTRY
PRUNTIME_FUNCTION FunctionEntry;
} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
+NTSYSAPI DWORD NTAPI RtlAddGrowableFunctionTable(void**,RUNTIME_FUNCTION*,DWORD,DWORD,ULONG_PTR,ULONG_PTR);
+
#define UNWIND_HISTORY_TABLE_NONE 0
#define UNWIND_HISTORY_TABLE_GLOBAL 1
#define UNWIND_HISTORY_TABLE_LOCAL 2
--
1.9.1

View File

@ -1,99 +0,0 @@
From f8619a7dc2d8a0a80d1b7f3e2bbf52be5b201dd1 Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Wed, 24 Jan 2018 22:27:52 -0700
Subject: [PATCH 2/2] ntdll: Add RtlGrowFunctionTable stub
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
---
dlls/ntdll/ntdll.spec | 1 +
dlls/ntdll/signal_arm.c | 8 ++++++++
dlls/ntdll/signal_arm64.c | 8 ++++++++
dlls/ntdll/signal_x86_64.c | 9 +++++++++
include/winnt.h | 1 +
5 files changed, 27 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index c488fe2..c2e2fb1 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -684,6 +684,7 @@
@ stdcall RtlGetUnloadEventTraceEx(ptr ptr ptr)
@ stub RtlGetUserInfoHeap
@ stdcall RtlGetVersion(ptr)
+@ stdcall -arch=arm,arm64,x86_64 RtlGrowFunctionTable(ptr long)
@ stub RtlGuidToPropertySetName
@ stdcall RtlHashUnicodeString(ptr long long ptr)
@ stdcall RtlIdentifierAuthoritySid(ptr)
diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
index 72087a2..88914cd 100644
--- a/dlls/ntdll/signal_arm.c
+++ b/dlls/ntdll/signal_arm.c
@@ -1069,6 +1069,14 @@ DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functi
return S_OK;
}
+/*************************************************************************
+ * RtlGrowFunctionTable (NTDLL.@)
+ */
+void WINAPI RtlGrowFunctionTable( void *table, DWORD count )
+{
+ FIXME( "(%p, %d) stub!\n", table, count );
+}
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
index e072ee0..3aa9539 100644
--- a/dlls/ntdll/signal_arm64.c
+++ b/dlls/ntdll/signal_arm64.c
@@ -987,6 +987,14 @@ DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functi
return S_OK;
}
+/*************************************************************************
+ * RtlGrowFunctionTable (NTDLL.@)
+ */
+void WINAPI RtlGrowFunctionTable( void *table, DWORD count )
+{
+ FIXME( "(%p, %d) stub!\n", table, count );
+}
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index b8cb0a9..cb9925b 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -3518,6 +3518,15 @@ DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functi
}
+/*************************************************************************
+ * RtlGrowFunctionTable (NTDLL.@)
+ */
+void WINAPI RtlGrowFunctionTable( void *table, DWORD count )
+{
+ FIXME( "(%p, %d) stub!\n", table, count );
+}
+
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
diff --git a/include/winnt.h b/include/winnt.h
index 47763dd..cc5cc94 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -1147,6 +1147,7 @@ typedef struct _UNWIND_HISTORY_TABLE_ENTRY
} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
NTSYSAPI DWORD NTAPI RtlAddGrowableFunctionTable(void**,RUNTIME_FUNCTION*,DWORD,DWORD,ULONG_PTR,ULONG_PTR);
+NTSYSAPI void NTAPI RtlGrowFunctionTable(void*,DWORD);
#define UNWIND_HISTORY_TABLE_NONE 0
#define UNWIND_HISTORY_TABLE_GLOBAL 1
--
1.9.1

View File

@ -1,4 +0,0 @@
Fixes: [42255] ntdll: Add RtlAddGrowableFunctionTable stub
Fixes: ntdll: Add RtlGrowFunctionTable stub
Depends: ntdll-RtlGetUnloadEventTraceEx

View File

@ -1,7 +1,7 @@
From de5759f4160f1cb0d163d629ba55dc7b516dbcee Mon Sep 17 00:00:00 2001
From d6b343754071dbf45bfaba2895d9a3e332d99390 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 21 Mar 2017 23:27:06 +0100
Subject: ntdll: Add stub for RtlGetUnloadEventTraceEx.
Subject: [PATCH] ntdll: Add stub for RtlGetUnloadEventTraceEx.
---
dlls/ntdll/ntdll.spec | 1 +
@ -9,22 +9,22 @@ Subject: ntdll: Add stub for RtlGetUnloadEventTraceEx.
2 files changed, 15 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index c6f15c53ded..243ecb67ae4 100644
index 28ad231..85897b1 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -670,6 +670,7 @@
@@ -681,6 +681,7 @@
# @ stub RtlGetSetBootStatusData
@ stdcall RtlGetThreadErrorMode()
@ stdcall RtlGetUnloadEventTrace()
+@ stdcall RtlGetUnloadEventTraceEx(ptr ptr ptr)
@ stub RtlGetUserInfoHeap
@ stdcall RtlGetVersion(ptr)
@ stub RtlGuidToPropertySetName
@ stdcall -arch=arm,arm64,x86_64 RtlGrowFunctionTable(ptr long)
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 8ade7525f0e..315dac2c1ea 100644
index e80aa5e..16d2950 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -1682,3 +1682,17 @@ NTSTATUS WINAPI RtlQueryPackageIdentity(HANDLE token, WCHAR *fullname, SIZE_T *f
@@ -1688,3 +1688,17 @@ NTSTATUS WINAPI RtlQueryPackageIdentity(HANDLE token, WCHAR *fullname, SIZE_T *f
FIXME("(%p, %p, %p, %p, %p, %p): stub\n", token, fullname, fullname_size, appid, appid_size, packaged);
return STATUS_NOT_FOUND;
}
@ -43,5 +43,5 @@ index 8ade7525f0e..315dac2c1ea 100644
+ if (trace) *trace = NULL;
+}
--
2.14.1
1.9.1

View File

@ -1,85 +0,0 @@
From e15e0e44bc4ca7ae8deb3b923d3566855a3acc19 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 6 Jan 2017 14:40:52 +0800
Subject: oleaut32: Accept DISP_E_PARAMNOTFOUND for missing optional parameters
in ITypeInfo::Invoke implementation. (v3)
---
dlls/oleaut32/tests/tmarshal.c | 39 ++++++++++++++++++++++++++++++++++++++-
dlls/oleaut32/typelib.c | 3 ++-
2 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/tests/tmarshal.c b/dlls/oleaut32/tests/tmarshal.c
index d2b8dc92d66..eb42d16e1c0 100644
--- a/dlls/oleaut32/tests/tmarshal.c
+++ b/dlls/oleaut32/tests/tmarshal.c
@@ -1363,7 +1363,7 @@ static void test_typelibmarshal(void)
ok(!lstrcmpW(bstr, szCat), "IWidget_get_Name should have returned string \"Cat\" instead of %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
- /* call DoSomething */
+ /* call DoSomething without optional arguments */
VariantInit(&vararg[0]);
VariantInit(&vararg[1]);
V_VT(&vararg[1]) = VT_R8;
@@ -1378,6 +1378,43 @@ static void test_typelibmarshal(void)
ok(V_VT(&varresult) == VT_EMPTY, "varresult should be VT_EMPTY\n");
VariantClear(&varresult);
+ /* call DoSomething with optional argument set to VT_EMPTY */
+ VariantInit(&vararg[0]);
+ VariantInit(&vararg[1]);
+ VariantInit(&vararg[2]);
+ V_VT(&vararg[2]) = VT_R8;
+ V_R8(&vararg[2]) = 3.141;
+ dispparams.cNamedArgs = 0;
+ dispparams.cArgs = 3;
+ dispparams.rgdispidNamedArgs = NULL;
+ dispparams.rgvarg = vararg;
+ VariantInit(&varresult);
+ hr = IDispatch_Invoke(pDispatch, DISPID_TM_DOSOMETHING, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_METHOD, &dispparams, &varresult, &excepinfo, NULL);
+ ok_ole_success(hr, IDispatch_Invoke);
+ ok(V_VT(&varresult) == VT_EMPTY, "varresult should be VT_EMPTY\n");
+ VariantClear(&varresult);
+
+ /* call DoSomething with optional arguments set to VT_ERROR/DISP_E_PARAMNOTFOUND */
+ VariantInit(&vararg[0]);
+ VariantInit(&vararg[1]);
+ VariantInit(&vararg[2]);
+ VariantInit(&vararg[3]);
+ V_VT(&vararg[3]) = VT_R8;
+ V_R8(&vararg[3]) = 3.141;
+ V_VT(&vararg[1]) = VT_ERROR;
+ V_ERROR(&vararg[1]) = DISP_E_PARAMNOTFOUND;
+ V_VT(&vararg[0]) = VT_ERROR;
+ V_ERROR(&vararg[0]) = DISP_E_PARAMNOTFOUND;
+ dispparams.cNamedArgs = 0;
+ dispparams.cArgs = 4;
+ dispparams.rgdispidNamedArgs = NULL;
+ dispparams.rgvarg = vararg;
+ VariantInit(&varresult);
+ hr = IDispatch_Invoke(pDispatch, DISPID_TM_DOSOMETHING, &IID_NULL, LOCALE_NEUTRAL, DISPATCH_METHOD, &dispparams, &varresult, &excepinfo, NULL);
+ ok_ole_success(hr, IDispatch_Invoke);
+ ok(V_VT(&varresult) == VT_EMPTY, "varresult should be VT_EMPTY\n");
+ VariantClear(&varresult);
+
/* call get_State */
dispparams.cNamedArgs = 0;
dispparams.cArgs = 0;
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 4fdfbeb5442..c0f9937d57b 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -7026,7 +7026,8 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
break;
}
}
- else if (src_arg)
+ else if (src_arg && !((wParamFlags & PARAMFLAG_FOPT) &&
+ V_VT(src_arg) == VT_ERROR && V_ERROR(src_arg) == DISP_E_PARAMNOTFOUND))
{
TRACE("%s\n", debugstr_variant(src_arg));
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: [41488] Accept DISP_E_PARAMNOTFOUND for missing optional param in typelib implementation

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "400dd1596ab7946e68278b3f8dc7c87b898c7e9f"
echo "0cc6233e2077c1ef679ecb8bd815d31484868294"
}
# Show version information
@ -218,7 +218,6 @@ patch_enable_all ()
enable_ntdll_Pipe_SpecialCharacters="$1"
enable_ntdll_ProcessQuotaLimits="$1"
enable_ntdll_Purist_Mode="$1"
enable_ntdll_RtlAddGrowableFunctionTable="$1"
enable_ntdll_RtlCaptureStackBackTrace="$1"
enable_ntdll_RtlCreateUserThread="$1"
enable_ntdll_RtlGetUnloadEventTraceEx="$1"
@ -248,7 +247,6 @@ patch_enable_all ()
enable_ole32_HGLOBALStream="$1"
enable_ole32_STGPROP="$1"
enable_oleaut32_CreateTypeLib="$1"
enable_oleaut32_ITypeInfo_fnInvoke="$1"
enable_oleaut32_Load_Save_EMF="$1"
enable_oleaut32_OLEPictureImpl_SaveAsFile="$1"
enable_oleaut32_OleLoadPicture="$1"
@ -812,9 +810,6 @@ patch_enable ()
ntdll-Purist_Mode)
enable_ntdll_Purist_Mode="$2"
;;
ntdll-RtlAddGrowableFunctionTable)
enable_ntdll_RtlAddGrowableFunctionTable="$2"
;;
ntdll-RtlCaptureStackBackTrace)
enable_ntdll_RtlCaptureStackBackTrace="$2"
;;
@ -902,9 +897,6 @@ patch_enable ()
oleaut32-CreateTypeLib)
enable_oleaut32_CreateTypeLib="$2"
;;
oleaut32-ITypeInfo_fnInvoke)
enable_oleaut32_ITypeInfo_fnInvoke="$2"
;;
oleaut32-Load_Save_EMF)
enable_oleaut32_Load_Save_EMF="$2"
;;
@ -1990,20 +1982,6 @@ if test "$enable_ntdll_WRITECOPY" -eq 1; then
enable_ntdll_User_Shared_Data=1
fi
if test "$enable_ntdll_RtlCreateUserThread" -eq 1; then
if test "$enable_ntdll_LdrInitializeThunk" -gt 1; then
abort "Patchset ntdll-LdrInitializeThunk disabled, but ntdll-RtlCreateUserThread depends on that."
fi
enable_ntdll_LdrInitializeThunk=1
fi
if test "$enable_ntdll_RtlAddGrowableFunctionTable" -eq 1; then
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -gt 1; then
abort "Patchset ntdll-RtlGetUnloadEventTraceEx disabled, but ntdll-RtlAddGrowableFunctionTable depends on that."
fi
enable_ntdll_RtlGetUnloadEventTraceEx=1
fi
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
if test "$enable_ntdll_RtlQueryPackageIdentity" -gt 1; then
abort "Patchset ntdll-RtlQueryPackageIdentity disabled, but ntdll-RtlGetUnloadEventTraceEx depends on that."
@ -2011,6 +1989,13 @@ if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
enable_ntdll_RtlQueryPackageIdentity=1
fi
if test "$enable_ntdll_RtlCreateUserThread" -eq 1; then
if test "$enable_ntdll_LdrInitializeThunk" -gt 1; then
abort "Patchset ntdll-LdrInitializeThunk disabled, but ntdll-RtlCreateUserThread depends on that."
fi
enable_ntdll_LdrInitializeThunk=1
fi
if test "$enable_ntdll_Purist_Mode" -eq 1; then
if test "$enable_ntdll_DllRedirects" -gt 1; then
abort "Patchset ntdll-DllRedirects disabled, but ntdll-Purist_Mode depends on that."
@ -4906,56 +4891,6 @@ if test "$enable_ntdll_Purist_Mode" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-RtlQueryPackageIdentity
# |
# | Modified files:
# | * dlls/ntdll/tests/Makefile.in, dlls/ntdll/tests/rtl.c
# |
if test "$enable_ntdll_RtlQueryPackageIdentity" -eq 1; then
patch_apply ntdll-RtlQueryPackageIdentity/0003-ntdll-tests-Add-basic-tests-for-RtlQueryPackageIdent.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll/tests: Add basic tests for RtlQueryPackageIdentity.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlGetUnloadEventTraceEx
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-RtlQueryPackageIdentity
# |
# | This patchset fixes the following Wine bugs:
# | * [#44897] Implement stub for ntdll.RtlGetUnloadEventTraceEx
# |
# | Modified files:
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/rtl.c
# |
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
patch_apply ntdll-RtlGetUnloadEventTraceEx/0001-ntdll-Add-stub-for-RtlGetUnloadEventTraceEx.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for RtlGetUnloadEventTraceEx.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlAddGrowableFunctionTable
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-RtlQueryPackageIdentity, ntdll-RtlGetUnloadEventTraceEx
# |
# | This patchset fixes the following Wine bugs:
# | * [#42255] ntdll: Add RtlAddGrowableFunctionTable stub
# |
# | Modified files:
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/signal_arm.c, dlls/ntdll/signal_arm64.c, dlls/ntdll/signal_x86_64.c, include/winnt.h
# |
if test "$enable_ntdll_RtlAddGrowableFunctionTable" -eq 1; then
patch_apply ntdll-RtlAddGrowableFunctionTable/0001-ntdll-Add-RtlAddGrowableFunctionTable-stub.patch
patch_apply ntdll-RtlAddGrowableFunctionTable/0002-ntdll-Add-RtlGrowFunctionTable-stub.patch
(
printf '%s\n' '+ { "Austin English", "ntdll: Add RtlAddGrowableFunctionTable stub.", 1 },';
printf '%s\n' '+ { "Alex Henrie", "ntdll: Add RtlGrowFunctionTable stub.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlCaptureStackBackTrace
# |
# | This patchset fixes the following Wine bugs:
@ -4989,6 +4924,36 @@ if test "$enable_ntdll_RtlCreateUserThread" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-RtlQueryPackageIdentity
# |
# | Modified files:
# | * dlls/ntdll/tests/Makefile.in, dlls/ntdll/tests/rtl.c
# |
if test "$enable_ntdll_RtlQueryPackageIdentity" -eq 1; then
patch_apply ntdll-RtlQueryPackageIdentity/0003-ntdll-tests-Add-basic-tests-for-RtlQueryPackageIdent.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll/tests: Add basic tests for RtlQueryPackageIdentity.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlGetUnloadEventTraceEx
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-RtlQueryPackageIdentity
# |
# | This patchset fixes the following Wine bugs:
# | * [#44897] Implement stub for ntdll.RtlGetUnloadEventTraceEx
# |
# | Modified files:
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/rtl.c
# |
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
patch_apply ntdll-RtlGetUnloadEventTraceEx/0001-ntdll-Add-stub-for-RtlGetUnloadEventTraceEx.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for RtlGetUnloadEventTraceEx.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-Serial_Port_Detection
# |
# | This patchset fixes the following Wine bugs:
@ -5326,21 +5291,6 @@ if test "$enable_oleaut32_CreateTypeLib" -eq 1; then
) >> "$patchlist"
fi
# Patchset oleaut32-ITypeInfo_fnInvoke
# |
# | This patchset fixes the following Wine bugs:
# | * [#41488] Accept DISP_E_PARAMNOTFOUND for missing optional param in typelib implementation
# |
# | Modified files:
# | * dlls/oleaut32/tests/tmarshal.c, dlls/oleaut32/typelib.c
# |
if test "$enable_oleaut32_ITypeInfo_fnInvoke" -eq 1; then
patch_apply oleaut32-ITypeInfo_fnInvoke/0001-oleaut32-Accept-DISP_E_PARAMNOTFOUND-for-missing-opt.patch
(
printf '%s\n' '+ { "Dmitry Timoshkov", "oleaut32: Accept DISP_E_PARAMNOTFOUND for missing optional parameters in ITypeInfo::Invoke implementation.", 3 },';
) >> "$patchlist"
fi
# Patchset oleaut32-Load_Save_EMF
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,16 +1,16 @@
From 3f91a3758547eec6afb1a7c064af3d3f05aa235d Mon Sep 17 00:00:00 2001
From 2ad71921a69eda4efea18ceca917c00cccf69abc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 11 Feb 2016 03:17:09 +0100
Subject: [PATCH] setupapi: Create registry keys for display devices and
display drivers.
---
dlls/setupapi/devinst.c | 111 +++++++++++++++++++++++++++++++++++-----
dlls/setupapi/devinst.c | 108 +++++++++++++++++++++++++++++++++++++++++++-----
loader/wine.inf.in | 2 +
2 files changed, 101 insertions(+), 12 deletions(-)
2 files changed, 100 insertions(+), 10 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 64c04131b01..b8d94fa4a99 100644
index 82a45b4..9baefd3 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -95,6 +95,15 @@ static const WCHAR Control[] = {'C','o','n','t','r','o','l',0};
@ -29,7 +29,7 @@ index 64c04131b01..b8d94fa4a99 100644
/* is used to identify if a DeviceInfoSet pointer is
valid or not */
#define SETUP_DEVICE_INFO_SET_MAGIC 0xd00ff056
@@ -184,6 +193,90 @@ static struct device_iface *get_device_iface(HDEVINFO devinfo, const SP_DEVICE_I
@@ -191,6 +200,90 @@ static struct device_iface *get_device_iface(HDEVINFO devinfo, const SP_DEVICE_I
return (struct device_iface *)data->Reserved;
}
@ -120,7 +120,7 @@ index 64c04131b01..b8d94fa4a99 100644
static inline void copy_device_data(SP_DEVINFO_DATA *data, const struct device *device)
{
data->ClassGuid = device->class;
@@ -475,8 +568,7 @@ static HKEY SETUPDI_CreateDevKey(struct device *device)
@@ -482,8 +575,7 @@ static HKEY SETUPDI_CreateDevKey(struct device *device)
HKEY enumKey, key = INVALID_HANDLE_VALUE;
LONG l;
@ -130,17 +130,7 @@ index 64c04131b01..b8d94fa4a99 100644
if (!l)
{
RegCreateKeyExW(enumKey, device->instanceId, 0, NULL, 0,
@@ -567,8 +659,7 @@ static void SETUPDI_RemoveDevice(struct device *device)
HKEY enumKey;
LONG l;
- l = RegCreateKeyExW(HKEY_LOCAL_MACHINE, Enum, 0, NULL, 0,
- KEY_ALL_ACCESS, NULL, &enumKey, NULL);
+ l = open_enum_key(&enumKey);
if (!l)
{
RegDeleteTreeW(enumKey, device->instanceId);
@@ -2007,8 +2098,7 @@ static void SETUPDI_EnumerateMatchingInterfaces(HDEVINFO DeviceInfoSet,
@@ -2012,8 +2104,7 @@ static void SETUPDI_EnumerateMatchingInterfaces(HDEVINFO DeviceInfoSet,
TRACE("%s\n", debugstr_w(enumstr));
@ -150,7 +140,7 @@ index 64c04131b01..b8d94fa4a99 100644
for (i = 0; !l; i++)
{
len = ARRAY_SIZE(subKeyName);
@@ -2234,8 +2324,7 @@ static void SETUPDI_EnumerateDevices(HDEVINFO DeviceInfoSet, const GUID *class,
@@ -2233,8 +2324,7 @@ static void SETUPDI_EnumerateDevices(HDEVINFO DeviceInfoSet, const GUID *class,
TRACE("%p, %s, %s, %08x\n", DeviceInfoSet, debugstr_guid(class),
debugstr_w(enumstr), flags);
@ -160,7 +150,7 @@ index 64c04131b01..b8d94fa4a99 100644
if (enumKey != INVALID_HANDLE_VALUE)
{
if (enumstr)
@@ -3346,8 +3435,7 @@ static HKEY SETUPDI_OpenDevKey(struct device *device, REGSAM samDesired)
@@ -3345,8 +3435,7 @@ static HKEY SETUPDI_OpenDevKey(struct device *device, REGSAM samDesired)
HKEY enumKey, key = INVALID_HANDLE_VALUE;
LONG l;
@ -170,7 +160,7 @@ index 64c04131b01..b8d94fa4a99 100644
if (!l)
{
RegOpenKeyExW(enumKey, device->instanceId, 0, samDesired, &key);
@@ -3439,8 +3527,7 @@ static BOOL SETUPDI_DeleteDevKey(struct device *device)
@@ -3438,8 +3527,7 @@ static BOOL SETUPDI_DeleteDevKey(struct device *device)
BOOL ret = FALSE;
LONG l;
@ -181,7 +171,7 @@ index 64c04131b01..b8d94fa4a99 100644
{
ret = RegDeleteTreeW(enumKey, device->instanceId);
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index 5a3f8c46969..51e17453f3f 100644
index 5a3f8c4..51e1745 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -465,6 +465,8 @@ HKLM,System\CurrentControlSet\Control\ContentIndex\Language\Neutral,"Locale",0x1
@ -194,5 +184,5 @@ index 5a3f8c46969..51e17453f3f 100644
HKLM,System\CurrentControlSet\Control\Class\{4d36e978-e325-11ce-bfc1-08002be10318},"Class",,"Ports"
HKLM,System\CurrentControlSet\Control\Class\{6bdd1fc6-810f-11d0-bec7-08002be2092f},,,"Imaging devices"
--
2.19.2
1.9.1

View File

@ -1,4 +1,4 @@
From 181e8775404470eef952667261555d960e636585 Mon Sep 17 00:00:00 2001
From b0160bd38c99d74d4f9edee766e1247856b443ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 19 Aug 2016 00:47:08 +0200
Subject: [PATCH] setupapi: SetupDiGetDeviceInterfaceDetail should fill out
@ -10,10 +10,10 @@ Subject: [PATCH] setupapi: SetupDiGetDeviceInterfaceDetail should fill out
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index 93c26ce..b2fc7f8 100644
index fa4036b..42cf5dd 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -2873,9 +2873,6 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(
@@ -2819,9 +2819,6 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(HDEVINFO devinfo, SP_DEVICE_INTERFA
else
DeviceInterfaceDetailData->DevicePath[0] = '\0';
@ -23,7 +23,7 @@ index 93c26ce..b2fc7f8 100644
ret = TRUE;
}
else
@@ -2884,6 +2881,10 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(
@@ -2830,6 +2827,10 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(HDEVINFO devinfo, SP_DEVICE_INTERFA
*RequiredSize = bytesNeeded;
SetLastError(ERROR_INSUFFICIENT_BUFFER);
}
@ -34,7 +34,7 @@ index 93c26ce..b2fc7f8 100644
return ret;
}
@@ -2943,9 +2944,6 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(
@@ -2874,9 +2875,6 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(HDEVINFO devinfo, SP_DEVICE_INTERFA
else
DeviceInterfaceDetailData->DevicePath[0] = '\0';
@ -44,7 +44,7 @@ index 93c26ce..b2fc7f8 100644
ret = TRUE;
}
else
@@ -2954,6 +2952,10 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(
@@ -2885,6 +2883,10 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(HDEVINFO devinfo, SP_DEVICE_INTERFA
*RequiredSize = bytesNeeded;
SetLastError(ERROR_INSUFFICIENT_BUFFER);
}
@ -56,10 +56,10 @@ index 93c26ce..b2fc7f8 100644
}
diff --git a/dlls/setupapi/tests/devinst.c b/dlls/setupapi/tests/devinst.c
index 7d485dd..ba4fe80 100644
index 38be0a7..f523ef4 100644
--- a/dlls/setupapi/tests/devinst.c
+++ b/dlls/setupapi/tests/devinst.c
@@ -815,6 +815,13 @@ static void test_device_iface_detail(void)
@@ -725,6 +725,13 @@ static void test_device_iface_detail(void)
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Got unexpected error %#x.\n", GetLastError());
ok(size == expectedsize, "Got unexpected size %d.\n", size);
@ -72,7 +72,7 @@ index 7d485dd..ba4fe80 100644
+
heap_free(detail);
SetupDiDestroyDeviceInfoList(set);
}
--
1.9.1