Added patch with stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode).

This commit is contained in:
Sebastian Lackner 2015-05-16 17:19:40 +02:00
parent 1bbf522c01
commit 7a5534ac75
7 changed files with 157 additions and 49 deletions

View File

@ -39,13 +39,14 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [16]:**
**Bug fixes and features included in the next upcoming release [17]:**
* Add HTTP Host header in HttpSendRequest instead of HttpOpenRequest ([Wine Bug #28911](https://bugs.winehq.org/show_bug.cgi?id=28911))
* Add IEnumString stub interface for ACLShellSource ([Wine Bug #18019](https://bugs.winehq.org/show_bug.cgi?id=18019))
* Add implementation for shlwapi.AssocGetPerceivedType
* Add stub for atl80.AtlIPersistPropertyBag_Save ([Wine Bug #33888](https://bugs.winehq.org/show_bug.cgi?id=33888))
* Add stub for fltlib.FilterLoad ([Wine Bug #38435](https://bugs.winehq.org/show_bug.cgi?id=38435))
* Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode) ([Wine Bug #38493](https://bugs.winehq.org/show_bug.cgi?id=38493))
* Add stub for winsta.WinStationEnumerateW ([Wine Bug #38102](https://bugs.winehq.org/show_bug.cgi?id=38102))
* Allocate fake hWnd for wineconsole curses backend ([Wine Bug #34930](https://bugs.winehq.org/show_bug.cgi?id=34930))
* Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} ([Wine Bug #12076](https://bugs.winehq.org/show_bug.cgi?id=12076))

2
debian/changelog vendored
View File

@ -43,6 +43,8 @@ wine-staging (1.7.43) UNRELEASED; urgency=low
* Added various additional fixes for wininet header handling.
* Added patch to free RPC parameters allocated by application before anything
else.
* Added patch with stub for kernel32.SetFileCompletionNotificationModes (for
Steam in Win7 mode).
* Removed patch to use lockfree implementation for FD cache (accepted
upstream).
* Removed patch to properly handle closing sockets during a select call

View File

@ -0,0 +1,76 @@
From a36a4386b6dc0356b0d5d0bf616068a282c66ac9 Mon Sep 17 00:00:00 2001
From: "Olivier F. R. Dierick" <o.dierick@piezo-forte.be>
Date: Thu, 30 Apr 2015 22:58:37 +0200
Subject: kernel32: Implement SetFileCompletionNotificationModes as a stub.
---
.../api-ms-win-core-kernel32-legacy-l1-1-0.spec | 2 +-
dlls/kernel32/file.c | 12 ++++++++++++
dlls/kernel32/kernel32.spec | 2 +-
include/winbase.h | 1 +
4 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
index f4b9050..7c196c9 100644
--- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec
@@ -45,7 +45,7 @@
@ stub RaiseFailFastException
@ stdcall RegisterWaitForSingleObject(ptr long ptr ptr long long) kernel32.RegisterWaitForSingleObject
@ stdcall SetConsoleTitleA(str) kernel32.SetConsoleTitleA
-@ stub SetFileCompletionNotificationModes
+@ stdcall SetFileCompletionNotificationModes(long long) kernel32.SetFileCompletionNotificationModes
@ stdcall SetHandleCount(long) kernel32.SetHandleCount
@ stdcall SetMailslotInfo(long long) kernel32.SetMailslotInfo
@ stdcall SetVolumeLabelW(wstr wstr) kernel32.SetVolumeLabelW
diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
index 006db1c..4695c9c 100644
--- a/dlls/kernel32/file.c
+++ b/dlls/kernel32/file.c
@@ -1037,6 +1037,18 @@ BOOL WINAPI SetEndOfFile( HANDLE hFile )
return FALSE;
}
+
+/**************************************************************************
+ * SetFileCompletionNotificationModes (KERNEL32.@)
+ */
+BOOL WINAPI SetFileCompletionNotificationModes( HANDLE file, UCHAR flags )
+{
+ FIXME("%p %x - stub\n", file, flags);
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+
BOOL WINAPI SetFileInformationByHandle( HANDLE file, FILE_INFO_BY_HANDLE_CLASS class, VOID *info, DWORD size )
{
FIXME("%p %u %p %u - stub\n", file, class, info, size);
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 1261738..cece08e 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -1392,7 +1392,7 @@
# @ stub SetFileAttributesTransactedW
@ stdcall SetFileAttributesW(wstr long)
# @ stub SetFileBandwidthReservation
-# @ stub SetFileCompletionNotificationModes
+@ stdcall SetFileCompletionNotificationModes(long long)
@ stdcall SetFileInformationByHandle(long long ptr long)
# @ stub SetFileIoOverlappedRange
@ stdcall SetFilePointer(long long ptr long)
diff --git a/include/winbase.h b/include/winbase.h
index a8f3fb6..6fba12d 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2377,6 +2377,7 @@ WINBASEAPI VOID WINAPI SetFileApisToOEM(void);
WINBASEAPI BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
WINBASEAPI BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
#define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
+WINBASEAPI BOOL WINAPI SetFileCompletionNotificationModes(HANDLE,UCHAR);
WINBASEAPI DWORD WINAPI SetFilePointer(HANDLE,LONG,LPLONG,DWORD);
WINBASEAPI BOOL WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,LARGE_INTEGER*,DWORD);
WINADVAPI BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
--
2.4.0

View File

@ -0,0 +1 @@
Fixes: [38493] Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode)

View File

@ -1,4 +1,4 @@
From f13e94038f8a3c59dd184013b747cc31ef4b6f9a Mon Sep 17 00:00:00 2001
From 10d1d2f0b8cdb956ef4d8df5386a446c97451b19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 26 Feb 2015 06:08:58 +0100
Subject: kernel32: Implement SetFileInformationByHandle.
@ -9,7 +9,7 @@ Subject: kernel32: Implement SetFileInformationByHandle.
2 files changed, 102 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
index 006db1c..ffecef3 100644
index 4695c9c..bfb2a81 100644
--- a/dlls/kernel32/file.c
+++ b/dlls/kernel32/file.c
@@ -48,6 +48,22 @@
@ -35,7 +35,7 @@ index 006db1c..ffecef3 100644
WINE_DEFAULT_DEBUG_CHANNEL(file);
/* info structure for FindFirstFile handle */
@@ -1039,7 +1055,91 @@ BOOL WINAPI SetEndOfFile( HANDLE hFile )
@@ -1051,7 +1067,91 @@ BOOL WINAPI SetFileCompletionNotificationModes( HANDLE file, UCHAR flags )
BOOL WINAPI SetFileInformationByHandle( HANDLE file, FILE_INFO_BY_HANDLE_CLASS class, VOID *info, DWORD size )
{
@ -129,17 +129,17 @@ index 006db1c..ffecef3 100644
}
diff --git a/include/winbase.h b/include/winbase.h
index 2b6df8d..a4c5408 100644
index 6e6da9b..0d20107 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2447,6 +2447,7 @@ WINBASEAPI VOID WINAPI SetFileApisToOEM(void);
WINBASEAPI BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
@@ -2466,6 +2466,7 @@ WINBASEAPI BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
WINBASEAPI BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
#define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
WINBASEAPI BOOL WINAPI SetFileCompletionNotificationModes(HANDLE,UCHAR);
+WINBASEAPI BOOL WINAPI SetFileInformationByHandle(HANDLE,FILE_INFO_BY_HANDLE_CLASS,LPVOID,DWORD);
WINBASEAPI DWORD WINAPI SetFilePointer(HANDLE,LONG,LPLONG,DWORD);
WINBASEAPI BOOL WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,LARGE_INTEGER*,DWORD);
WINADVAPI BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
--
2.3.0
2.4.0

View File

@ -1 +1,2 @@
Fixes: Implement SetFileInformationByHandle
Depends: kernel32-SetFileCompletionNotificationMode

View File

@ -143,6 +143,7 @@ patch_enable_all ()
enable_kernel32_Named_Pipe="$1"
enable_kernel32_NeedCurrentDirectoryForExePath="$1"
enable_kernel32_Profile="$1"
enable_kernel32_SetFileCompletionNotificationMode="$1"
enable_kernel32_SetFileInformationByHandle="$1"
enable_kernel32_VerifyVersionInfo="$1"
enable_libs_Debug_Channel="$1"
@ -497,6 +498,9 @@ patch_enable ()
kernel32-Profile)
enable_kernel32_Profile="$2"
;;
kernel32-SetFileCompletionNotificationMode)
enable_kernel32_SetFileCompletionNotificationMode="$2"
;;
kernel32-SetFileInformationByHandle)
enable_kernel32_SetFileInformationByHandle="$2"
;;
@ -1579,6 +1583,13 @@ if test "$enable_kernel32_CopyFileEx" -eq 1; then
enable_ntdll_FileDispositionInformation=1
fi
if test "$enable_kernel32_SetFileInformationByHandle" -eq 1; then
if test "$enable_kernel32_SetFileCompletionNotificationMode" -gt 1; then
abort "Patchset kernel32-SetFileCompletionNotificationMode disabled, but kernel32-SetFileInformationByHandle depends on that."
fi
enable_kernel32_SetFileCompletionNotificationMode=1
fi
if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
if test "$enable_server_File_Permissions" -gt 1; then
abort "Patchset server-File_Permissions disabled, but ntdll-FileDispositionInformation depends on that."
@ -1818,6 +1829,23 @@ if test "$enable_advapi32_ImpersonateAnonymousToken" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-Misc_ACL
# |
# | This patchset fixes the following Wine bugs:
# | * [#15980] GetSecurityInfo returns NULL DACL for process object
# |
# | Modified files:
# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c
# |
if test "$enable_server_Misc_ACL" -eq 1; then
patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch
patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch
(
echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },';
echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },';
) >> "$patchlist"
fi
# Patchset server-CreateProcess_ACLs
# |
# | This patchset fixes the following Wine bugs:
@ -1837,23 +1865,6 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-Misc_ACL
# |
# | This patchset fixes the following Wine bugs:
# | * [#15980] GetSecurityInfo returns NULL DACL for process object
# |
# | Modified files:
# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c
# |
if test "$enable_server_Misc_ACL" -eq 1; then
patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch
patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch
(
echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },';
echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },';
) >> "$patchlist"
fi
# Patchset advapi32-LsaLookupSids
# |
# | Modified files:
@ -2471,6 +2482,18 @@ if test "$enable_dxgi_GetDesc" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-DllRedirects
# |
# | Modified files:
@ -2491,18 +2514,6 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Helper
# |
# | Modified files:
@ -2519,6 +2530,18 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-resource_check_usage
# |
# | Modified files:
@ -2607,18 +2630,6 @@ if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Main
# |
# | This patchset fixes the following Wine bugs:
@ -3266,6 +3277,22 @@ if test "$enable_ntdll_FileDispositionInformation" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-SetFileCompletionNotificationMode
# |
# | This patchset fixes the following Wine bugs:
# | * [#38493] Add stub for kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode)
# |
# | Modified files:
# | * dlls/api-ms-win-core-kernel32-legacy-l1-1-0/api-ms-win-core-kernel32-legacy-l1-1-0.spec, dlls/kernel32/file.c,
# | dlls/kernel32/kernel32.spec, include/winbase.h
# |
if test "$enable_kernel32_SetFileCompletionNotificationMode" -eq 1; then
patch_apply kernel32-SetFileCompletionNotificationMode/0001-kernel32-Implement-SetFileCompletionNotificationMode.patch
(
echo '+ { "Olivier F. R. Dierick", "kernel32: Implement SetFileCompletionNotificationModes as a stub.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-SetFileInformationByHandle
# |
# | Modified files: