Compare commits

...

16 Commits
v3.6 ... v3.7

Author SHA1 Message Date
Alistair Leslie-Hughes
4af8ffc7f2 Release v3.7 2018-04-29 08:16:14 +10:00
Zebediah Figura
4801f89bba Rebase against 9fecb7499531ddbcde7970b4d98df92dbc1bc010 2018-04-27 16:30:13 -05:00
Alistair Leslie-Hughes
9e260976b4 Rebase against d6654dbf2b38d02f3c6e0ede706a0388cd7cd4a6 2018-04-27 09:26:33 +10:00
Alistair Leslie-Hughes
48e37a9f7c Updated xaudio2 CommitChanges patchset
Renamed patch to reflect actual change.
2018-04-27 09:26:22 +10:00
Alistair Leslie-Hughes
c9330ebfa3 Updated ntdll-RtlQueryPackageIdentity-update patchset 2018-04-27 09:26:22 +10:00
Alistair Leslie-Hughes
9832547e5c Added wintrust-WTHelperGetProvCertFromChain patchset 2018-04-27 09:26:22 +10:00
Alistair Leslie-Hughes
792181ca4e Added dxgi-SetMaximumFrameLatency patchset 2018-04-27 09:26:21 +10:00
Alistair Leslie-Hughes
409261dc56 Rebase against 5e74b9ea945db50bd31cef3254865f6cd9544eb2 2018-04-26 08:48:52 +10:00
Zebediah Figura
bd3bf6c3b0 Rebase against e13f59085f8a3787abd4e3f3eabae1a7e607a3c0 2018-04-24 18:57:07 -05:00
Alistair Leslie-Hughes
6eb6431a82 Rebase against ee7756fdfd46cd64a09089def3c330a3b262cdd5 2018-04-24 09:07:00 +10:00
Alistair Leslie-Hughes
eb4096dc62 Rebase against a373054b72f396a04ab4f191e1f6c2c9e0476aa0 2018-04-21 11:59:41 +10:00
Alistair Leslie-Hughes
bff60a3afb Added winemapi - Use xdg-email if it is available 2018-04-20 08:48:13 +10:00
Alistair Leslie-Hughes
d61501a68f Rebase against 448344c5e443b35c06bc0cc4f2e8ee9b7968008f 2018-04-20 08:37:39 +10:00
Alistair Leslie-Hughes
5b388bb912 Rebase against c5023aea7e97213159b754a168b7abddc89664bb 2018-04-19 10:08:22 +10:00
Zebediah Figura
3e2b8a53bb Use WINAPIV for variadic functions.
Should fix https://bugs.winehq.org/show_bug.cgi?id=44099
2018-04-16 18:27:39 -05:00
Zebediah Figura
de87a73aac Rebase against 70c5dc64fc02408c6f7233c996e0ffdc5dc4a5a0 2018-04-16 18:15:29 -05:00
41 changed files with 706 additions and 1380 deletions

View File

@@ -1,268 +0,0 @@
From 95fd708dbdd9f8d61fdd8f1571c44e98c54b8988 Mon Sep 17 00:00:00 2001
From: Andrew Wesie <awesie@gmail.com>
Date: Tue, 2 May 2017 00:59:49 -0500
Subject: [PATCH] advapi32: Implement BuildSecurityDescriptorW.
---
dlls/advapi32/security.c | 218 +++++++++++++++++++++++++++++++++++------------
1 file changed, 164 insertions(+), 54 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 6f4fb44..3737827 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -48,6 +48,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(advapi);
static BOOL ParseStringSidToSid(LPCWSTR StringSid, PSID pSid, LPDWORD cBytes);
+static DWORD trustee_to_sid(DWORD nDestinationSidLength, PSID pDestinationSid, PTRUSTEEW pTrustee);
typedef struct _ACEFLAG
{
@@ -1255,16 +1256,122 @@ DWORD WINAPI BuildSecurityDescriptorW(
IN ULONG cCountOfAccessEntries,
IN PEXPLICIT_ACCESSW pListOfAccessEntries,
IN ULONG cCountOfAuditEntries,
- IN PEXPLICIT_ACCESSW pListofAuditEntries,
+ IN PEXPLICIT_ACCESSW pListOfAuditEntries,
IN PSECURITY_DESCRIPTOR pOldSD,
IN OUT PULONG lpdwBufferLength,
OUT PSECURITY_DESCRIPTOR* pNewSD)
{
- FIXME("(%p,%p,%d,%p,%d,%p,%p,%p,%p) stub!\n",pOwner,pGroup,
- cCountOfAccessEntries,pListOfAccessEntries,cCountOfAuditEntries,
- pListofAuditEntries,pOldSD,lpdwBufferLength,pNewSD);
+ SECURITY_DESCRIPTOR desc;
+ NTSTATUS status;
+ DWORD ret = ERROR_SUCCESS;
+
+ TRACE("(%p,%p,%d,%p,%d,%p,%p,%p,%p)\n", pOwner, pGroup,
+ cCountOfAccessEntries, pListOfAccessEntries, cCountOfAuditEntries,
+ pListOfAuditEntries, pOldSD, lpdwBufferLength, pNewSD);
- return ERROR_CALL_NOT_IMPLEMENTED;
+ if (pOldSD)
+ {
+ SECURITY_DESCRIPTOR_CONTROL control;
+ DWORD desc_size, dacl_size = 0, sacl_size = 0, owner_size = 0, group_size = 0;
+ PACL dacl = NULL, sacl = NULL;
+ PSID owner = NULL, group = NULL;
+ DWORD revision;
+
+ if ((status = RtlGetControlSecurityDescriptor( pOldSD, &control, &revision )) != STATUS_SUCCESS)
+ return RtlNtStatusToDosError( status );
+ if (!(control & SE_SELF_RELATIVE))
+ return ERROR_INVALID_SECURITY_DESCR;
+
+ desc_size = sizeof(desc);
+ status = RtlSelfRelativeToAbsoluteSD( pOldSD, &desc, &desc_size, dacl, &dacl_size, sacl, &sacl_size,
+ owner, &owner_size, group, &group_size );
+ if (status == STATUS_BUFFER_TOO_SMALL)
+ {
+ if (dacl_size)
+ dacl = LocalAlloc( LMEM_FIXED, dacl_size );
+ if (sacl_size)
+ sacl = LocalAlloc( LMEM_FIXED, sacl_size );
+ if (owner_size)
+ owner = LocalAlloc( LMEM_FIXED, owner_size );
+ if (group_size)
+ group = LocalAlloc( LMEM_FIXED, group_size );
+
+ desc_size = sizeof(desc);
+ status = RtlSelfRelativeToAbsoluteSD( pOldSD, &desc, &desc_size, dacl, &dacl_size, sacl, &sacl_size,
+ owner, &owner_size, group, &group_size );
+ }
+ if (status != STATUS_SUCCESS)
+ {
+ LocalFree( dacl );
+ LocalFree( sacl );
+ LocalFree( owner );
+ LocalFree( group );
+ return RtlNtStatusToDosError( status );
+ }
+ }
+ else
+ {
+ if ((status = RtlCreateSecurityDescriptor( &desc, SECURITY_DESCRIPTOR_REVISION )) != STATUS_SUCCESS)
+ return RtlNtStatusToDosError( status );
+ }
+
+ if (pOwner)
+ {
+ LocalFree( desc.Owner );
+ desc.Owner = LocalAlloc( LMEM_FIXED, sizeof(MAX_SID) );
+ if ((ret = trustee_to_sid( sizeof(MAX_SID), desc.Owner, pOwner )))
+ goto done;
+ }
+
+ if (pGroup)
+ {
+ LocalFree( desc.Group );
+ desc.Group = LocalAlloc( LMEM_FIXED, sizeof(MAX_SID) );
+ if ((ret = trustee_to_sid( sizeof(MAX_SID), desc.Group, pGroup )))
+ goto done;
+ }
+
+ if (pListOfAccessEntries)
+ {
+ PACL new_dacl;
+
+ if ((ret = SetEntriesInAclW( cCountOfAccessEntries, pListOfAccessEntries, desc.Dacl, &new_dacl )))
+ goto done;
+
+ LocalFree( desc.Dacl );
+ desc.Dacl = new_dacl;
+ desc.Control |= SE_DACL_PRESENT;
+ }
+
+ if (pListOfAuditEntries)
+ {
+ PACL new_sacl;
+
+ if ((ret = SetEntriesInAclW( cCountOfAuditEntries, pListOfAuditEntries, desc.Sacl, &new_sacl )))
+ goto done;
+
+ LocalFree( desc.Sacl );
+ desc.Sacl = new_sacl;
+ desc.Control |= SE_SACL_PRESENT;
+ }
+
+ *lpdwBufferLength = RtlLengthSecurityDescriptor( &desc );
+ *pNewSD = LocalAlloc( LMEM_FIXED, *lpdwBufferLength );
+
+ if ((status = RtlMakeSelfRelativeSD( &desc, *pNewSD, lpdwBufferLength )) != STATUS_SUCCESS)
+ {
+ ret = RtlNtStatusToDosError( status );
+ LocalFree( *pNewSD );
+ *pNewSD = NULL;
+ }
+
+done:
+ /* free absolute descriptor */
+ LocalFree( desc.Owner );
+ LocalFree( desc.Group );
+ LocalFree( desc.Sacl );
+ LocalFree( desc.Dacl );
+ return ret;
}
/******************************************************************************
@@ -3754,6 +3861,56 @@ static void free_trustee_name(TRUSTEE_FORM form, WCHAR *trustee_nameW)
}
}
+static DWORD trustee_to_sid( DWORD nDestinationSidLength, PSID pDestinationSid, PTRUSTEEW pTrustee )
+{
+ if (pTrustee->MultipleTrusteeOperation == TRUSTEE_IS_IMPERSONATE)
+ {
+ WARN("bad multiple trustee operation %d\n", pTrustee->MultipleTrusteeOperation);
+ return ERROR_INVALID_PARAMETER;
+ }
+
+ switch (pTrustee->TrusteeForm)
+ {
+ case TRUSTEE_IS_SID:
+ if (!CopySid(nDestinationSidLength, pDestinationSid, pTrustee->ptstrName))
+ {
+ WARN("bad sid %p\n", pTrustee->ptstrName);
+ return ERROR_INVALID_PARAMETER;
+ }
+ break;
+ case TRUSTEE_IS_NAME:
+ {
+ DWORD sid_size = nDestinationSidLength;
+ DWORD domain_size = MAX_COMPUTERNAME_LENGTH + 1;
+ SID_NAME_USE use;
+ if (!strcmpW( pTrustee->ptstrName, CURRENT_USER ))
+ {
+ if (!lookup_user_account_name( pDestinationSid, &sid_size, NULL, &domain_size, &use ))
+ {
+ return GetLastError();
+ }
+ }
+ else if (!LookupAccountNameW(NULL, pTrustee->ptstrName, pDestinationSid, &sid_size, NULL, &domain_size, &use))
+ {
+ WARN("bad user name %s\n", debugstr_w(pTrustee->ptstrName));
+ return ERROR_INVALID_PARAMETER;
+ }
+ break;
+ }
+ case TRUSTEE_IS_OBJECTS_AND_SID:
+ FIXME("TRUSTEE_IS_OBJECTS_AND_SID unimplemented\n");
+ break;
+ case TRUSTEE_IS_OBJECTS_AND_NAME:
+ FIXME("TRUSTEE_IS_OBJECTS_AND_NAME unimplemented\n");
+ break;
+ default:
+ WARN("bad trustee form %d\n", pTrustee->TrusteeForm);
+ return ERROR_INVALID_PARAMETER;
+ }
+
+ return ERROR_SUCCESS;
+}
+
/******************************************************************************
* SetEntriesInAclA [ADVAPI32.@]
*/
@@ -3849,56 +4006,9 @@ DWORD WINAPI SetEntriesInAclW( ULONG count, PEXPLICIT_ACCESSW pEntries,
pEntries[i].Trustee.TrusteeForm, pEntries[i].Trustee.TrusteeType,
pEntries[i].Trustee.ptstrName);
- if (pEntries[i].Trustee.MultipleTrusteeOperation == TRUSTEE_IS_IMPERSONATE)
- {
- WARN("bad multiple trustee operation %d for trustee %d\n", pEntries[i].Trustee.MultipleTrusteeOperation, i);
- ret = ERROR_INVALID_PARAMETER;
- goto exit;
- }
-
- switch (pEntries[i].Trustee.TrusteeForm)
- {
- case TRUSTEE_IS_SID:
- if (!CopySid(FIELD_OFFSET(SID, SubAuthority[SID_MAX_SUB_AUTHORITIES]),
- ppsid[i], pEntries[i].Trustee.ptstrName))
- {
- WARN("bad sid %p for trustee %d\n", pEntries[i].Trustee.ptstrName, i);
- ret = ERROR_INVALID_PARAMETER;
- goto exit;
- }
- break;
- case TRUSTEE_IS_NAME:
- {
- DWORD sid_size = FIELD_OFFSET(SID, SubAuthority[SID_MAX_SUB_AUTHORITIES]);
- DWORD domain_size = MAX_COMPUTERNAME_LENGTH + 1;
- SID_NAME_USE use;
- if (!strcmpW( pEntries[i].Trustee.ptstrName, CURRENT_USER ))
- {
- if (!lookup_user_account_name( ppsid[i], &sid_size, NULL, &domain_size, &use ))
- {
- ret = GetLastError();
- goto exit;
- }
- }
- else if (!LookupAccountNameW(NULL, pEntries[i].Trustee.ptstrName, ppsid[i], &sid_size, NULL, &domain_size, &use))
- {
- WARN("bad user name %s for trustee %d\n", debugstr_w(pEntries[i].Trustee.ptstrName), i);
- ret = ERROR_INVALID_PARAMETER;
- goto exit;
- }
- break;
- }
- case TRUSTEE_IS_OBJECTS_AND_SID:
- FIXME("TRUSTEE_IS_OBJECTS_AND_SID unimplemented\n");
- break;
- case TRUSTEE_IS_OBJECTS_AND_NAME:
- FIXME("TRUSTEE_IS_OBJECTS_AND_NAME unimplemented\n");
- break;
- default:
- WARN("bad trustee form %d for trustee %d\n", pEntries[i].Trustee.TrusteeForm, i);
- ret = ERROR_INVALID_PARAMETER;
+ ret = trustee_to_sid( FIELD_OFFSET(SID, SubAuthority[SID_MAX_SUB_AUTHORITIES]), ppsid[i], &pEntries[i].Trustee);
+ if (ret)
goto exit;
- }
/* Note: we overestimate the ACL size here as a tradeoff between
* instructions (simplicity) and memory */
--
1.9.1

View File

@@ -1,69 +0,0 @@
From 09d62cfc4fa999eacc89af2ad414810e22c910a9 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 5 May 2017 00:18:50 +0200
Subject: advapi32/tests: Add basic tests for BuildSecurityDescriptor.
---
dlls/advapi32/tests/security.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index ca5edffae5..db5a0f934c 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -7217,6 +7217,44 @@ static void test_GetExplicitEntriesFromAclW(void)
HeapFree(GetProcessHeap(), 0, old_acl);
}
+static void test_BuildSecurityDescriptorW(void)
+{
+ SECURITY_DESCRIPTOR old_sd, *new_sd, *rel_sd;
+ ULONG new_sd_size;
+ DWORD buf_size;
+ char buf[1024];
+ BOOL success;
+ DWORD ret;
+
+ InitializeSecurityDescriptor(&old_sd, SECURITY_DESCRIPTOR_REVISION);
+
+ buf_size = sizeof(buf);
+ rel_sd = (SECURITY_DESCRIPTOR *)buf;
+ success = MakeSelfRelativeSD(&old_sd, rel_sd, &buf_size);
+ ok(success, "MakeSelfRelativeSD failed with %u\n", GetLastError());
+
+ new_sd = NULL;
+ new_sd_size = 0;
+ ret = BuildSecurityDescriptorW(NULL, NULL, 0, NULL, 0, NULL, NULL, &new_sd_size, (void **)&new_sd);
+ ok(ret == ERROR_SUCCESS, "BuildSecurityDescriptor failed with %u\n", ret);
+ ok(new_sd != NULL, "expected new_sd != NULL\n");
+ ok(new_sd_size == sizeof(old_sd), "expected new_sd_size == sizeof(old_sd), got %u\n", new_sd_size);
+ LocalFree(new_sd);
+
+ new_sd = (void *)0xdeadbeef;
+ ret = BuildSecurityDescriptorW(NULL, NULL, 0, NULL, 0, NULL, &old_sd, &new_sd_size, (void **)&new_sd);
+ ok(ret == ERROR_INVALID_SECURITY_DESCR, "expected ERROR_INVALID_SECURITY_DESCR, got %u\n", ret);
+ ok(new_sd == (void *)0xdeadbeef, "expected new_sd == 0xdeadbeef, got %p\n", new_sd);
+
+ new_sd = NULL;
+ new_sd_size = 0;
+ ret = BuildSecurityDescriptorW(NULL, NULL, 0, NULL, 0, NULL, rel_sd, &new_sd_size, (void **)&new_sd);
+ ok(ret == ERROR_SUCCESS, "BuildSecurityDescriptor failed with %u\n", ret);
+ ok(new_sd != NULL, "expected new_sd != NULL\n");
+ ok(new_sd_size == sizeof(old_sd), "expected new_sd_size == sizeof(old_sd), got %u\n", new_sd_size);
+ LocalFree(new_sd);
+}
+
START_TEST(security)
{
init();
@@ -7271,6 +7309,7 @@ START_TEST(security)
test_maximum_allowed();
test_token_label();
test_GetExplicitEntriesFromAclW();
+ test_BuildSecurityDescriptorW();
/* Must be the last test, modifies process token */
test_token_security_descriptor();
--
2.13.1

View File

@@ -1 +0,0 @@
Fixes: [37594] Initial implementation of advapi32.BuildSecurityDescriptorW

View File

@@ -1,4 +1,4 @@
From 05b8bc95cff5742cf02b67afa3d6fc875d26e041 Mon Sep 17 00:00:00 2001
From 0616176a3276be4ae49dc86c7d96b11240afca78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 6 Aug 2017 03:15:34 +0200
Subject: [PATCH] programs/runas: Basic implementation for starting processes
@@ -17,10 +17,10 @@ Subject: [PATCH] programs/runas: Basic implementation for starting processes
create mode 100644 programs/runas/runas.rc
diff --git a/configure.ac b/configure.ac
index cfc2080..5c97c1c 100644
index b9ef668..404ab7a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3847,6 +3847,7 @@ WINE_CONFIG_MAKEFILE(programs/regedit/tests)
@@ -3879,6 +3879,7 @@ WINE_CONFIG_MAKEFILE(programs/regedit/tests)
WINE_CONFIG_MAKEFILE(programs/regsvcs)
WINE_CONFIG_MAKEFILE(programs/regsvr32)
WINE_CONFIG_MAKEFILE(programs/rpcss)
@@ -44,7 +44,7 @@ index 0000000..be9434b
+RC_SRCS = runas.rc
diff --git a/programs/runas/runas.c b/programs/runas/runas.c
new file mode 100644
index 0000000..cfd1c73
index 0000000..8e96aff
--- /dev/null
+++ b/programs/runas/runas.c
@@ -0,0 +1,214 @@
@@ -125,7 +125,7 @@ index 0000000..cfd1c73
+ LocalFree(str);
+}
+
+static void __cdecl output_message(unsigned int id, ...)
+static void WINAPIV output_message(unsigned int id, ...)
+{
+ WCHAR fmt[1024];
+ __ms_va_list va_args;
@@ -340,5 +340,5 @@ index 0000000..f9297a4
+ %2!u!: %3\n"
+}
--
1.9.1
2.7.4

View File

@@ -1,43 +0,0 @@
From 4e75102aea7a341d58ca1326639b3d4b795e82d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 01:37:09 +0100
Subject: [PATCH 1/7] include/roapi.h: Add further typedefs.
---
include/roapi.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/roapi.h b/include/roapi.h
index 0421fe9..f4154f8 100644
--- a/include/roapi.h
+++ b/include/roapi.h
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2014 Martin Storsjo
+ * Copyright (C) 2016 Michael MĂĽller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,6 +21,7 @@
#define __WINE_ROAPI_H
#include <windef.h>
+#include <activation.h>
typedef enum
{
@@ -27,6 +29,11 @@ typedef enum
RO_INIT_MULTITHREADED = 1,
} RO_INIT_TYPE;
+DECLARE_HANDLE(APARTMENT_SHUTDOWN_REGISTRATION_COOKIE);
+
+typedef struct {} *RO_REGISTRATION_COOKIE;
+typedef HRESULT (WINAPI *PFNGETACTIVATIONFACTORY)(HSTRING, IActivationFactory **);
+
#ifdef __cplusplus
extern "C" {
#endif
--
1.9.1

View File

@@ -1,38 +1,40 @@
From 2c4ebd2e8f4cfdded1b93f26e74139e88ca94f78 Mon Sep 17 00:00:00 2001
From bdc2d668649d5810b88bcdd842228f7d44d7a012 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 7 Jul 2017 05:44:09 +0200
Subject: [PATCH 1/4] d3d11/tests: Add some basic depth tests.
Subject: [PATCH] d3d11/tests: Add some basic depth tests.
---
dlls/d3d11/tests/d3d11.c | 209 ++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 206 insertions(+), 3 deletions(-)
dlls/d3d11/tests/d3d11.c | 210 ++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 207 insertions(+), 3 deletions(-)
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index 5a36bc2..9d9d74b 100644
index 8279e7b..5831bbc 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -1458,8 +1458,9 @@ static void set_quad_color(struct d3d11_test_context *context, const struct vec4
@@ -1476,10 +1476,11 @@ static void set_quad_color(struct d3d11_test_context *context, const struct vec4
(ID3D11Resource *)context->ps_cb, 0, NULL, color, 0, 0);
}
-#define draw_color_quad(context, color) draw_color_quad_(__LINE__, context, color)
-static void draw_color_quad_(unsigned int line, struct d3d11_test_context *context, const struct vec4 *color)
+#define draw_color_quad(context, color) draw_color_quad_(__LINE__, context, color, 0.0)
+#define draw_color_quad_z(context, color, z) draw_color_quad_(__LINE__, context, color, z)
+static void draw_color_quad_(unsigned int line, struct d3d11_test_context *context, const struct vec4 *color, float z)
-#define draw_color_quad(a, b) draw_color_quad_(__LINE__, a, b, NULL, 0)
-#define draw_color_quad_vs(a, b, c, d) draw_color_quad_(__LINE__, a, b, c, d)
+#define draw_color_quad(a, b) draw_color_quad_(__LINE__, a, b, NULL, 0, 0.0)
+#define draw_color_quad_vs(a, b, c, d) draw_color_quad_(__LINE__, a, b, c, d, 0.0)
+#define draw_color_quad_z(context, color, z) draw_color_quad_(__LINE__, context, color, NULL, 0, z)
static void draw_color_quad_(unsigned int line, struct d3d11_test_context *context,
- const struct vec4 *color, const DWORD *vs_code, size_t vs_code_size)
+ const struct vec4 *color, const DWORD *vs_code, size_t vs_code_size, float z)
{
static const DWORD ps_color_code[] =
{
@@ -1501,7 +1502,7 @@ static void draw_color_quad_(unsigned int line, struct d3d11_test_context *conte
@@ -1522,6 +1523,7 @@ static void draw_color_quad_(unsigned int line, struct d3d11_test_context *conte
set_quad_color(context, color);
- draw_quad_(line, context);
draw_quad_vs_(line, context, vs_code, vs_code_size);
+ draw_quad_z_(line, context, z);
}
static void test_create_device(void)
@@ -16776,6 +16777,207 @@ static void test_stencil_separate(void)
@@ -17583,6 +17585,207 @@ static void test_stencil_separate(void)
release_test_context(&test_context);
}
@@ -240,7 +242,7 @@ index 5a36bc2..9d9d74b 100644
static void test_uav_load(void)
{
struct shader
@@ -25115,6 +25317,7 @@ START_TEST(d3d11)
@@ -26490,6 +26693,7 @@ START_TEST(d3d11)
test_shader_input_registers_limits();
test_unbind_shader_resource_view();
test_stencil_separate();
@@ -249,5 +251,5 @@ index 5a36bc2..9d9d74b 100644
test_cs_uav_store();
test_uav_store_immediate_constant();
--
2.7.4
1.9.1

View File

@@ -1,25 +0,0 @@
From d359c245dd87648c1f2002c2a865271c4c9aff8f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 28 May 2017 05:45:01 +0200
Subject: d3d11: Silence ID3D11Device_GetDeviceRemovedReason.
---
dlls/d3d11/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index bc28b4a5446..c78a4a755d8 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -5749,7 +5749,7 @@ static UINT STDMETHODCALLTYPE d3d11_device_GetCreationFlags(ID3D11Device *iface)
static HRESULT STDMETHODCALLTYPE d3d11_device_GetDeviceRemovedReason(ID3D11Device *iface)
{
- FIXME("iface %p stub!\n", iface);
+ TRACE("iface %p stub!\n", iface);
return S_OK;
}
--
2.12.2

View File

@@ -1,4 +1,4 @@
From 89e0f1fded64240d2f59fd800232e9e9f8dd90d2 Mon Sep 17 00:00:00 2001
From 5353d54df3ddf2f7bb62ea0214e040aa391b596f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 4 Mar 2016 22:22:42 +0100
Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
@@ -12,7 +12,7 @@ Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
5 files changed, 106 insertions(+)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 33e18b8..2628b76 100644
index 33e18b8d6ab..2628b7654f4 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1542,6 +1542,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD
@@ -25,10 +25,10 @@ index 33e18b8..2628b76 100644
if(DriverCaps)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index c63ddee..b9eec25 100644
index fb0858f253b..b7becc389cb 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -11373,6 +11373,31 @@ static void test_execute_data(void)
@@ -11415,6 +11415,31 @@ static void test_execute_data(void)
DestroyWindow(window);
}
@@ -57,20 +57,22 @@ index c63ddee..b9eec25 100644
+ IDirectDraw_Release(ddraw);
+}
+
START_TEST(ddraw1)
static void test_viewport(void)
{
DDDEVICEIDENTIFIER identifier;
@@ -11475,4 +11500,5 @@ START_TEST(ddraw1)
static struct
@@ -11690,6 +11715,7 @@ START_TEST(ddraw1)
test_depth_readback();
test_clear();
test_enum_surfaces();
test_execute_data();
+ test_caps();
test_execute_data();
test_viewport();
}
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 1ab1f9c..272f364 100644
index c2b438cf2ae..61857991f8f 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -12646,6 +12646,31 @@ static void test_enum_surfaces(void)
@@ -12677,6 +12677,31 @@ static void test_enum_surfaces(void)
IDirectDraw2_Release(ddraw);
}
@@ -99,21 +101,22 @@ index 1ab1f9c..272f364 100644
+ IDirectDraw2_Release(ddraw);
+}
+
START_TEST(ddraw2)
static void test_viewport(void)
{
DDDEVICEIDENTIFIER identifier;
@@ -12756,4 +12781,5 @@ START_TEST(ddraw2)
static struct
@@ -12981,5 +13006,6 @@ START_TEST(ddraw2)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
test_viewport();
}
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 550d73a..f3c020c 100644
index 9c4c5a3e5b2..6eebcb30311 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -14751,6 +14751,31 @@ static void test_enum_surfaces(void)
IDirectDraw4_Release(ddraw);
@@ -14957,6 +14957,31 @@ static void test_viewport(void)
DestroyWindow(window);
}
+static void test_caps(void)
@@ -144,14 +147,14 @@ index 550d73a..f3c020c 100644
START_TEST(ddraw4)
{
DDDEVICEIDENTIFIER identifier;
@@ -14875,4 +14900,5 @@ START_TEST(ddraw4)
test_depth_readback();
@@ -15082,4 +15107,5 @@ START_TEST(ddraw4)
test_clear();
test_enum_surfaces();
test_viewport();
+ test_caps();
}
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index b4910c1..bf1e1cf 100644
index b4910c196cd..bf1e1cf1207 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -14289,6 +14289,31 @@ static void test_viewport(void)
@@ -193,5 +196,5 @@ index b4910c1..bf1e1cf 100644
+ test_caps();
}
--
1.9.1
2.17.0

View File

@@ -0,0 +1,26 @@
From 012441a764762063b3037d060769fea4356a295c Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 18 Apr 2018 03:55:14 +0000
Subject: [PATCH] dxgi: Return S_OK in SetMaximumFrameLatency
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/dxgi/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/dxgi/device.c b/dlls/dxgi/device.c
index c266cae..ee5f3e6 100644
--- a/dlls/dxgi/device.c
+++ b/dlls/dxgi/device.c
@@ -262,7 +262,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_device_SetMaximumFrameLatency(IWineDXGIDev
if (max_latency > DXGI_FRAME_LATENCY_MAX)
return DXGI_ERROR_INVALID_CALL;
- return E_NOTIMPL;
+ return S_OK;
}
static HRESULT STDMETHODCALLTYPE dxgi_device_GetMaximumFrameLatency(IWineDXGIDevice *iface, UINT *max_latency)
--
1.9.1

View File

@@ -0,0 +1 @@
Fixes: [44061] Return S_OK from GetMaximumFrameLatency

View File

@@ -1,4 +1,4 @@
From 1cb4681d22018a93485336d10b73b3a6a05a34a0 Mon Sep 17 00:00:00 2001
From e78ec7f2036c1bdf46d4ecc7db1574847ca7f54f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 1 Apr 2016 01:29:51 +0200
Subject: [PATCH] fsutil: Add fsutil program with support for creating hard
@@ -67,7 +67,7 @@ index 0000000..593f817
+ STRING_HARDLINK_CREATE_USAGE, "Syntax: fsutil hardlink create old new\n\n"
+}
diff --git a/programs/fsutil/main.c b/programs/fsutil/main.c
index 2bce87e..41370b5 100644
index 2bce87e..5084196 100644
--- a/programs/fsutil/main.c
+++ b/programs/fsutil/main.c
@@ -1,5 +1,6 @@
@@ -129,7 +129,7 @@ index 2bce87e..41370b5 100644
+ return 0;
+}
+
+static int __cdecl output_string(int msg, ...)
+static int WINAPIV output_string(int msg, ...)
+{
+ WCHAR fmt[8192];
+ __ms_va_list arguments;

View File

@@ -1,78 +0,0 @@
From 1b1bec9415d3ed3ada5ed6fbc5e4d9a30797cbc9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 31 Oct 2015 02:27:14 +0100
Subject: hnetcfg: Improve
INetFwAuthorizedApplication::get_ProcessImageFileName stub.
---
dlls/hnetcfg/apps.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/hnetcfg/apps.c b/dlls/hnetcfg/apps.c
index d21ed98..7a8d5e8 100644
--- a/dlls/hnetcfg/apps.c
+++ b/dlls/hnetcfg/apps.c
@@ -38,6 +38,7 @@ typedef struct fw_app
{
INetFwAuthorizedApplication INetFwAuthorizedApplication_iface;
LONG refs;
+ BSTR filename;
} fw_app;
static inline fw_app *impl_from_INetFwAuthorizedApplication( INetFwAuthorizedApplication *iface )
@@ -60,6 +61,7 @@ static ULONG WINAPI fw_app_Release(
if (!refs)
{
TRACE("destroying %p\n", fw_app);
+ if (fw_app->filename) SysFreeString( fw_app->filename );
HeapFree( GetProcessHeap(), 0, fw_app );
}
return refs;
@@ -250,7 +252,18 @@ static HRESULT WINAPI fw_app_get_ProcessImageFileName(
fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
FIXME("%p, %p\n", This, imageFileName);
- return E_NOTIMPL;
+
+ if (!imageFileName)
+ return E_INVALIDARG;
+
+ if (!This->filename)
+ {
+ *imageFileName = NULL;
+ return S_OK;
+ }
+
+ *imageFileName = SysAllocString( This->filename );
+ return *imageFileName ? S_OK : E_OUTOFMEMORY;
}
static HRESULT WINAPI fw_app_put_ProcessImageFileName(
@@ -260,7 +273,15 @@ static HRESULT WINAPI fw_app_put_ProcessImageFileName(
fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
FIXME("%p, %s\n", This, debugstr_w(imageFileName));
- return S_OK;
+
+ if (!imageFileName)
+ {
+ This->filename = NULL;
+ return S_OK;
+ }
+
+ This->filename = SysAllocString( imageFileName );
+ return This->filename ? S_OK : E_OUTOFMEMORY;
}
static HRESULT WINAPI fw_app_get_IpVersion(
@@ -383,6 +404,7 @@ HRESULT NetFwAuthorizedApplication_create( IUnknown *pUnkOuter, LPVOID *ppObj )
fa->INetFwAuthorizedApplication_iface.lpVtbl = &fw_app_vtbl;
fa->refs = 1;
+ fa->filename = NULL;
*ppObj = &fa->INetFwAuthorizedApplication_iface;
--
2.6.1

View File

@@ -1 +0,0 @@
Fixes: Improve INetFwAuthorizedApplication::get_ProcessImageFileName stub

View File

@@ -1,101 +0,0 @@
From accdfe8f540d28911a56df946bee00d589778b2a Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Sat, 6 Jun 2015 09:24:00 +0800
Subject: kernel32: Init TimezoneInformation registry.
---
dlls/kernel32/kernel_main.c | 3 +++
dlls/kernel32/kernel_private.h | 3 +++
dlls/kernel32/time.c | 48 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 54 insertions(+)
diff --git a/dlls/kernel32/kernel_main.c b/dlls/kernel32/kernel_main.c
index e24100b..d3420ec 100644
--- a/dlls/kernel32/kernel_main.c
+++ b/dlls/kernel32/kernel_main.c
@@ -88,6 +88,9 @@ static BOOL process_attach( HMODULE module )
/* Setup registry locale information */
LOCALE_InitRegistry();
+ /* Setup registry timezone information */
+ TIMEZONE_InitRegistry();
+
/* Setup computer name */
COMPUTERNAME_Init();
diff --git a/dlls/kernel32/kernel_private.h b/dlls/kernel32/kernel_private.h
index 76611d7..2d4ba02 100644
--- a/dlls/kernel32/kernel_private.h
+++ b/dlls/kernel32/kernel_private.h
@@ -104,6 +104,9 @@ extern void COMPUTERNAME_Init(void) DECLSPEC_HIDDEN;
extern void LOCALE_Init(void) DECLSPEC_HIDDEN;
extern void LOCALE_InitRegistry(void) DECLSPEC_HIDDEN;
+/* time.c */
+extern void TIMEZONE_InitRegistry(void) DECLSPEC_HIDDEN;
+
/* oldconfig.c */
extern void convert_old_config(void) DECLSPEC_HIDDEN;
diff --git a/dlls/kernel32/time.c b/dlls/kernel32/time.c
index daafc7f..43c2f80 100644
--- a/dlls/kernel32/time.c
+++ b/dlls/kernel32/time.c
@@ -581,6 +581,54 @@ static void TIME_ClockTimeToFileTime(clock_t unix_time, LPFILETIME filetime)
filetime->dwHighDateTime = (DWORD)(secs >> 32);
}
+/***********************************************************************
+ * TIMEZONE_InitRegistry
+ *
+ * Update registry contents on startup if the user timezone has changed.
+ * This simulates the action of the Windows control panel.
+ */
+void TIMEZONE_InitRegistry(void)
+{
+ static const WCHAR szTimezoneInformation[] = {
+ 'M','a','c','h','i','n','e','\\','S','y','s','t','e','m','\\',
+ 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
+ 'C','o','n','t','r','o','l','\\',
+ 'T','i','m','e','Z','o','n','e','I','n','f','o','r','m','a','t','i','o','n','\0'
+ };
+ WCHAR standardnameW[] = {'S','t','a','n','d','a','r','d','N','a','m','e','\0'};
+ WCHAR timezonekeynameW[] = {'T','i','m','e','Z','o','n','e','K','e','y','N','a','m','e','\0'};
+ DYNAMIC_TIME_ZONE_INFORMATION tzinfo;
+ UNICODE_STRING keyName;
+ OBJECT_ATTRIBUTES attr;
+ HANDLE hkey;
+ DWORD tzid;
+
+ tzid = GetDynamicTimeZoneInformation(&tzinfo);
+ if (tzid == TIME_ZONE_ID_INVALID)
+ {
+ ERR("fail to get timezone information.\n");
+ return;
+ }
+
+ RtlInitUnicodeString(&keyName, szTimezoneInformation);
+ InitializeObjectAttributes(&attr, &keyName, 0, 0, NULL);
+ if (NtCreateKey(&hkey, KEY_ALL_ACCESS, &attr, 0, NULL, 0, NULL) != STATUS_SUCCESS)
+ {
+ ERR("fail to create timezone information key.\n");
+ return;
+ }
+
+ RtlInitUnicodeString(&keyName, standardnameW);
+ NtSetValueKey(hkey, &keyName, 0, REG_SZ, tzinfo.StandardName,
+ (strlenW(tzinfo.StandardName) + 1) * sizeof(WCHAR));
+
+ RtlInitUnicodeString(&keyName, timezonekeynameW);
+ NtSetValueKey(hkey, &keyName, 0, REG_SZ, tzinfo.TimeZoneKeyName,
+ (strlenW(tzinfo.TimeZoneKeyName) + 1) * sizeof(WCHAR));
+
+ NtClose( hkey );
+}
+
/*********************************************************************
* GetProcessTimes (KERNEL32.@)
*
--
2.4.2

View File

@@ -1 +0,0 @@
Fixes: Initialize System\CurrentControlSet\Control\TimeZoneInformation registry keys

View File

@@ -1,99 +0,0 @@
From 314e990c95edd137695f81edb0ce138615cd11b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 26 Jun 2017 16:18:09 +0200
Subject: msi: Create dummy thread to initialize COM for custom actions.
---
dlls/msi/action.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 58a831e7e63..e440ee77fd9 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -160,6 +160,13 @@ static const WCHAR szWriteEnvironmentStrings[] =
static const WCHAR szINSTALL[] =
{'I','N','S','T','A','L','L',0};
+struct dummy_thread
+{
+ HANDLE started;
+ HANDLE stopped;
+ HANDLE thread;
+};
+
static INT ui_actionstart(MSIPACKAGE *package, LPCWSTR action, LPCWSTR description, LPCWSTR template)
{
WCHAR query[] = {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
@@ -7968,6 +7975,42 @@ static UINT ACTION_PerformActionSequence(MSIPACKAGE *package, UINT seq)
return rc;
}
+DWORD WINAPI dummy_thread_proc(void *arg)
+{
+ struct dummy_thread *info = arg;
+ HRESULT hr;
+
+ hr = CoInitializeEx(0, COINIT_MULTITHREADED);
+ if (FAILED(hr)) ERR("CoInitializeEx failed %08x\n", hr);
+
+ SetEvent(info->started);
+ WaitForSingleObject(info->stopped, INFINITE);
+
+ CoUninitialize();
+ return 0;
+}
+
+static void start_dummy_thread(struct dummy_thread *info)
+{
+ if (!(info->started = CreateEventA(NULL, TRUE, FALSE, NULL))) return;
+ if (!(info->stopped = CreateEventA(NULL, TRUE, FALSE, NULL))) return;
+ if (!(info->thread = CreateThread(NULL, 0, dummy_thread_proc, info, 0, NULL))) return;
+
+ WaitForSingleObject(info->started, INFINITE);
+}
+
+static void stop_dummy_thread(struct dummy_thread *info)
+{
+ if (info->thread)
+ {
+ SetEvent(info->stopped);
+ WaitForSingleObject(info->thread, INFINITE);
+ CloseHandle(info->thread);
+ }
+ if (info->started) CloseHandle(info->started);
+ if (info->stopped) CloseHandle(info->stopped);
+}
+
/****************************************************
* TOP level entry points
*****************************************************/
@@ -7978,6 +8021,7 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath,
static const WCHAR szDisableRollback[] = {'D','I','S','A','B','L','E','R','O','L','L','B','A','C','K',0};
static const WCHAR szAction[] = {'A','C','T','I','O','N',0};
WCHAR *reinstall = NULL, *productcode, *action;
+ struct dummy_thread thread_info = {NULL, NULL, NULL};
UINT rc;
DWORD len = 0;
@@ -8034,6 +8078,8 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath,
msi_adjust_privilege_properties( package );
msi_set_context( package );
+ start_dummy_thread(&thread_info);
+
productcode = msi_dup_property( package->db, szProductCode );
if (strcmpiW( productcode, package->ProductCode ))
{
@@ -8070,6 +8116,8 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath,
/* finish up running custom actions */
ACTION_FinishCustomActions(package);
+ stop_dummy_thread(&thread_info);
+
if (package->need_rollback && !(reinstall = msi_dup_property( package->db, szReinstall )))
{
WARN("installation failed, running rollback script\n");
--
2.14.2

View File

@@ -1 +0,0 @@
Fixes: [18070] Workaround COM/MTA issues due to lack of separate msi custom action process

View File

@@ -1,28 +1,25 @@
From abb41fbea240e18b6bec38f0c582b7445a60915f Mon Sep 17 00:00:00 2001
From 21028049055c1f65d72baf685ad9464187aada25 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 31 May 2017 03:53:05 +0200
Subject: msi: Always return MSIDBSTATE_ERROR when MsiGetDatabaseState is
called from a custom action.
---
dlls/msi/database.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
dlls/msi/database.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/dlls/msi/database.c b/dlls/msi/database.c
index d3104b0ff22..6a138d6b816 100644
index d3eb910..47a99fa 100644
--- a/dlls/msi/database.c
+++ b/dlls/msi/database.c
@@ -2005,16 +2005,8 @@ MSIDBSTATE WINAPI MsiGetDatabaseState( MSIHANDLE handle )
@@ -1890,13 +1890,8 @@ MSIDBSTATE WINAPI MsiGetDatabaseState( MSIHANDLE handle )
db = msihandle2msiinfo( handle, MSIHANDLETYPE_DATABASE );
if( !db )
{
- IWineMsiRemoteDatabase *remote_database;
-
- remote_database = (IWineMsiRemoteDatabase *)msi_get_remote( handle );
- MSIHANDLE remote_database = msi_get_remote(handle);
- if ( !remote_database )
- return MSIDBSTATE_ERROR;
-
- IWineMsiRemoteDatabase_Release( remote_database );
WARN("MsiGetDatabaseState not allowed during a custom action!\n");
-
- return MSIDBSTATE_READ;
@@ -31,5 +28,5 @@ index d3104b0ff22..6a138d6b816 100644
if (db->mode != MSIDBOPEN_READONLY )
--
2.13.1
2.7.4

View File

@@ -1,4 +1,4 @@
From 69a28da617c7d5c361eae5ed056cac7984b4177c Mon Sep 17 00:00:00 2001
From aa4d3f847be7541b846438956ca988d3456054b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 15 Jan 2016 13:17:31 +0100
Subject: ntdll: Add stub for ApiSetQueryApiSetPresence.
@@ -10,19 +10,19 @@ Subject: ntdll: Add stub for ApiSetQueryApiSetPresence.
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec b/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec
index 6d63b5bf43..1d99dd7132 100644
index 6d63b5b..1d99dd7 100644
--- a/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec
+++ b/dlls/api-ms-win-core-apiquery-l1-1-0/api-ms-win-core-apiquery-l1-1-0.spec
@@ -1 +1 @@
-@ stub ApiSetQueryApiSetPresence
+@ stdcall ApiSetQueryApiSetPresence(ptr ptr) ntdll.ApiSetQueryApiSetPresence
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
index 8f0c51cea9..1a0087ae14 100644
index 88e8b33..85b0e32 100644
--- a/dlls/ntdll/misc.c
+++ b/dlls/ntdll/misc.c
@@ -476,3 +476,14 @@ ULONG WINAPI EtwEventWrite( REGHANDLE handle, const EVENT_DESCRIPTOR *descriptor
FIXME("(%s, %p, %u, %p): stub\n", wine_dbgstr_longlong(handle), descriptor, count, data);
return ERROR_SUCCESS;
@@ -484,3 +484,14 @@ void WINAPI DbgUiRemoteBreakin( void *arg )
{
FIXME("stub\n");
}
+
+/*********************************************************************
@@ -36,7 +36,7 @@ index 8f0c51cea9..1a0087ae14 100644
+ return TRUE;
+}
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 9adf1edd4a..adfb2fc7ef 100644
index c260b0d..01836a3 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -3,6 +3,7 @@
@@ -48,5 +48,5 @@ index 9adf1edd4a..adfb2fc7ef 100644
@ stub CsrAllocateCapturePointer
@ stub CsrAllocateMessagePointer
--
2.12.2
2.7.4

View File

@@ -0,0 +1 @@
Fixes: [31910] Add stub for NtContinue

Some files were not shown because too many files have changed in this diff Show More