Rebase against 1316520a8029c0a99b358d1cd754294634d1855a.

[ntoskrnl-METHOD_OUT_DIRECT]
Removed patch to implement support for METHOD_OUT_DIRECT ioctls (accepted
upstream).

[wined3d-CSMT_Main]
Temporarily disable patchset.
This commit is contained in:
Sebastian Lackner
2016-10-30 23:03:30 +01:00
parent 6997fa0121
commit 5c0d70c70e
18 changed files with 118 additions and 407 deletions

View File

@@ -1,4 +1,4 @@
From d23845620d8b2a4d9b4a8683d764b03ee2683068 Mon Sep 17 00:00:00 2001
From b91e77db01f842164dd0ec593ad6bf433ad46c5e Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Mon, 17 Feb 2014 11:52:46 +0900
Subject: shell32: Implement SHCreateSessionKey.
@@ -6,32 +6,18 @@ Subject: shell32: Implement SHCreateSessionKey.
This implementation is based on the Geoff Chappell description,
and it seems to be enough for the application I have here.
---
dlls/shell32/shell32.spec | 1 +
dlls/shell32/shellreg.c | 41 +++++++++++++++++++++++++++++++++++++++++
dlls/shell32/tests/shellole.c | 4 ++--
3 files changed, 44 insertions(+), 2 deletions(-)
dlls/shell32/shellreg.c | 36 +++++++++++++++++++++++++++++++++---
dlls/shell32/tests/shellole.c | 8 ++++----
2 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec
index 93fd449..abbe6d2 100644
--- a/dlls/shell32/shell32.spec
+++ b/dlls/shell32/shell32.spec
@@ -261,6 +261,7 @@
704 stdcall -noname GUIDFromStringW(wstr ptr)
709 stdcall SHGetSetFolderCustomSettings(ptr str long)
714 stdcall @(ptr) SHELL32_714 # PathIsTemporaryW
+ 723 stdcall SHCreateSessionKey(long ptr)
727 stdcall SHGetImageList(long ptr ptr)
730 stdcall -noname RestartDialogEx(long wstr long long)
743 stdcall SHCreateFileExtractIconW(wstr long ptr ptr)
diff --git a/dlls/shell32/shellreg.c b/dlls/shell32/shellreg.c
index 37f3d9e..96a450e 100644
index 356ec4e..fff1b91 100644
--- a/dlls/shell32/shellreg.c
+++ b/dlls/shell32/shellreg.c
@@ -147,3 +147,44 @@ HRESULT WINAPI SHRegCloseKey (HKEY hkey)
TRACE("%p\n",hkey);
@@ -148,13 +148,43 @@ HRESULT WINAPI SHRegCloseKey (HKEY hkey)
return RegCloseKey( hkey );
}
+
+static const char session_reg_key[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\SessionInfo\\";
+
+static BOOL WINAPI create_session_key(INIT_ONCE *once, void *param, void **context)
@@ -58,12 +44,15 @@ index 37f3d9e..96a450e 100644
+ return TRUE;
+}
+
+/*************************************************************************
+ * SHCreateSessionKey [SHELL32.723]
+ *
+ */
+HRESULT WINAPI SHCreateSessionKey(REGSAM access, HKEY *hkey)
+{
/*************************************************************************
* SHCreateSessionKey [SHELL32.723]
*
*/
HRESULT WINAPI SHCreateSessionKey(REGSAM access, HKEY *hkey)
{
- FIXME("stub: %d %p\n", access, hkey);
- *hkey = NULL;
- return E_NOTIMPL;
+ static INIT_ONCE init_once = INIT_ONCE_STATIC_INIT;
+ static WCHAR session_reg_str[sizeof(session_reg_key) + 39];
+
@@ -71,22 +60,30 @@ index 37f3d9e..96a450e 100644
+
+ TRACE("using session key %s\n", debugstr_w(session_reg_str));
+ return RegOpenKeyExW(HKEY_CURRENT_USER, session_reg_str, 0, access, hkey);
+}
}
diff --git a/dlls/shell32/tests/shellole.c b/dlls/shell32/tests/shellole.c
index e8cf744..91125c0 100644
index be10733..72e0f31 100644
--- a/dlls/shell32/tests/shellole.c
+++ b/dlls/shell32/tests/shellole.c
@@ -876,8 +876,8 @@ if (0) /* crashes on native */
@@ -877,14 +877,14 @@ static void test_SHCreateSessionKey(void)
hkey = (HKEY)0xdeadbeef;
hr = pSHCreateSessionKey(0, &hkey);
- ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr);
todo_wine ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr);
- ok(hkey == NULL, "got %p\n", hkey);
+ todo_wine ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr);
+ todo_wine ok(hkey == NULL, "got %p\n", hkey);
hr = pSHCreateSessionKey(KEY_READ, &hkey);
ok(hr == S_OK, "got 0x%08x\n", hr);
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
hr = pSHCreateSessionKey(KEY_READ, &hkey2);
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
- todo_wine ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2);
+ ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2);
RegCloseKey(hkey);
RegCloseKey(hkey2);
--
2.6.4
2.9.0