forked from GloriousEggroll/wine-ge-custom
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
215 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
Lutris Wine GE-Proton8-22 | ||
Lutris Wine GE-Proton8-24 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
From ed32c881e266b116e394f0343fc976ab0b6d2962 Mon Sep 17 00:00:00 2001 | ||
From: Etaash Mathamsetty <[email protected]> | ||
Date: Fri, 17 Nov 2023 17:48:10 -0500 | ||
Subject: [PATCH] cfgmgr32: Add CM_Register_Notification stub. | ||
|
||
--- | ||
dlls/cfgmgr32/cfgmgr32.spec | 1 + | ||
dlls/cfgmgr32/main.c | 8 +++++ | ||
include/cfgmgr32.h | 72 +++++++++++++++++++++++++++++++++++++ | ||
3 files changed, 81 insertions(+) | ||
|
||
diff --git a/dlls/cfgmgr32/cfgmgr32.spec b/dlls/cfgmgr32/cfgmgr32.spec | ||
index 5c9b8f613db..e4cd845e2a4 100644 | ||
--- a/dlls/cfgmgr32/cfgmgr32.spec | ||
+++ b/dlls/cfgmgr32/cfgmgr32.spec | ||
@@ -154,6 +154,7 @@ | ||
@ stub CM_Register_Device_InterfaceW | ||
@ stub CM_Register_Device_Interface_ExA | ||
@ stub CM_Register_Device_Interface_ExW | ||
+@ stdcall CM_Register_Notification(ptr ptr ptr ptr) | ||
@ stub CM_Remove_SubTree | ||
@ stub CM_Remove_SubTree_Ex | ||
@ stub CM_Remove_Unmarked_Children | ||
diff --git a/dlls/cfgmgr32/main.c b/dlls/cfgmgr32/main.c | ||
index fee3c42a5c4..d15354367f8 100644 | ||
--- a/dlls/cfgmgr32/main.c | ||
+++ b/dlls/cfgmgr32/main.c | ||
@@ -21,6 +21,14 @@ | ||
|
||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi); | ||
|
||
+CONFIGRET WINAPI CM_Register_Notification( CM_NOTIFY_FILTER *filter, void *context, | ||
+ PCM_NOTIFY_CALLBACK callback, HCMNOTIFICATION *notify_context ) | ||
+{ | ||
+ FIXME("%p %p %p %p stub!\n", filter, context, callback, notify_context); | ||
+ | ||
+ return CR_CALL_NOT_IMPLEMENTED; | ||
+} | ||
+ | ||
/*********************************************************************** | ||
* CM_MapCrToWin32Err (cfgmgr32.@) | ||
*/ | ||
diff --git a/include/cfgmgr32.h b/include/cfgmgr32.h | ||
index 04f1f80b174..e07ca4edd6f 100644 | ||
--- a/include/cfgmgr32.h | ||
+++ b/include/cfgmgr32.h | ||
@@ -187,6 +187,7 @@ typedef DWORD CONFIGRET; | ||
typedef DWORD DEVINST, *PDEVINST; | ||
typedef DWORD DEVNODE, *PDEVNODE; | ||
typedef HANDLE HMACHINE, *PHMACHINE; | ||
+typedef HANDLE HCMNOTIFICATION, *PHCMNOTIFICATION; | ||
typedef CHAR *DEVNODEID_A, *DEVINSTID_A; | ||
typedef WCHAR *DEVNODEID_W, *DEVINSTID_W; | ||
typedef ULONG REGDISPOSITION; | ||
@@ -208,6 +209,77 @@ typedef enum _PNP_VETO_TYPE | ||
PNP_VetoInsufficientRights | ||
} PNP_VETO_TYPE, *PPNP_VETO_TYPE; | ||
|
||
+typedef enum _CM_NOTIFY_FILTER_TYPE | ||
+{ | ||
+ CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE = 0, | ||
+ CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE, | ||
+ CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE, | ||
+ CM_NOTIFY_FILTER_TYPE_MAX | ||
+} CM_NOTIFY_FILTER_TYPE, *PCM_NOTIFY_FILTER_TYPE; | ||
+ | ||
+typedef enum _CM_NOTIFY_ACTION | ||
+{ | ||
+ CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0, | ||
+ CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL, | ||
+ CM_NOTIFY_ACTION_DEVICEQUERYREMOVE, | ||
+ CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED, | ||
+ CM_NOTIFY_ACTION_DEVICEREMOVEPENDING, | ||
+ CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE, | ||
+ CM_NOTIFY_ACTION_DEVICECUSTOMEVENT, | ||
+ CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED, | ||
+ CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED, | ||
+ CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED, | ||
+ CM_NOTIFY_ACTION_MAX | ||
+} CM_NOTIFY_ACTION, *PCM_NOTIFY_ACTION; | ||
+ | ||
+typedef struct _CM_NOTIFY_FILTER | ||
+{ | ||
+ DWORD cbSize; | ||
+ DWORD Flags; | ||
+ CM_NOTIFY_FILTER_TYPE FilterType; | ||
+ DWORD Reserved; | ||
+ union { | ||
+ struct { | ||
+ GUID ClassGuid; | ||
+ } DeviceInterface; | ||
+ struct { | ||
+ HANDLE hTarget; | ||
+ } DeviceHandle; | ||
+ struct { | ||
+ WCHAR InstanceId[MAX_DEVICE_ID_LEN]; | ||
+ } DeviceInstance; | ||
+ } u; | ||
+} CM_NOTIFY_FILTER, *PCM_NOTIFY_FILTER; | ||
+ | ||
+typedef struct _CM_NOTIFY_EVENT_DATA | ||
+{ | ||
+ CM_NOTIFY_FILTER_TYPE FilterType; | ||
+ DWORD Reserved; | ||
+ union { | ||
+ struct { | ||
+ GUID ClassGuid; | ||
+ WCHAR SymbolicLink[ANYSIZE_ARRAY]; | ||
+ } DeviceInterface; | ||
+ struct { | ||
+ GUID EventGuid; | ||
+ LONG NameOffset; | ||
+ DWORD DataSize; | ||
+ BYTE Data[ANYSIZE_ARRAY]; | ||
+ } DeviceHandle; | ||
+ struct { | ||
+ WCHAR InstanceId[ANYSIZE_ARRAY]; | ||
+ } DeviceInstance; | ||
+ } u; | ||
+} CM_NOTIFY_EVENT_DATA, *PCM_NOTIFY_EVENT_DATA; | ||
+ | ||
+typedef DWORD (WINAPI *PCM_NOTIFY_CALLBACK)( | ||
+ HCMNOTIFICATION Notify, | ||
+ void *Context, | ||
+ CM_NOTIFY_ACTION Action, | ||
+ CM_NOTIFY_EVENT_DATA *EventData, | ||
+ DWORD EventDataSize | ||
+); | ||
+ | ||
DECL_WINELIB_CFGMGR32_TYPE_AW(DEVNODEID) | ||
DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID) | ||
|
||
-- | ||
GitLab | ||
|
71 changes: 71 additions & 0 deletions
71
patches/wine-hotfixes/pending/ntdll_add_wine_disable_sfn.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c | ||
index 870c5e39271..3162d36a803 100644 | ||
--- a/dlls/ntdll/unix/file.c | ||
+++ b/dlls/ntdll/unix/file.c | ||
@@ -1511,16 +1511,20 @@ static BOOL append_entry( struct dir_data *data, const char *long_name, | ||
if (long_len == ARRAY_SIZE(long_nameW)) return TRUE; | ||
long_nameW[long_len] = 0; | ||
|
||
- if (short_name) | ||
- { | ||
- short_len = ntdll_umbstowcs( short_name, strlen(short_name), | ||
- short_nameW, ARRAY_SIZE( short_nameW ) - 1 ); | ||
- } | ||
- else /* generate a short name if necessary */ | ||
+ short_len = 0; | ||
+ | ||
+ if (!disable_sfn) | ||
{ | ||
- short_len = 0; | ||
- if (!is_legal_8dot3_name( long_nameW, long_len )) | ||
- short_len = hash_short_file_name( long_nameW, long_len, short_nameW ); | ||
+ if (short_name) | ||
+ { | ||
+ short_len = ntdll_umbstowcs( short_name, strlen(short_name), | ||
+ short_nameW, ARRAY_SIZE( short_nameW ) - 1 ); | ||
+ } | ||
+ else /* generate a short name if necessary */ | ||
+ { | ||
+ if (!is_legal_8dot3_name( long_nameW, long_len )) | ||
+ short_len = hash_short_file_name( long_nameW, long_len, short_nameW ); | ||
+ } | ||
} | ||
short_nameW[short_len] = 0; | ||
wcsupr( short_nameW ); | ||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c | ||
index 5f7f114b286..cbea0dc5d2d 100644 | ||
--- a/dlls/ntdll/unix/loader.c | ||
+++ b/dlls/ntdll/unix/loader.c | ||
@@ -2152,6 +2152,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = | ||
debugstr_pc, | ||
}; | ||
|
||
+BOOL disable_sfn; | ||
BOOL ac_odyssey; | ||
BOOL fsync_simulate_sched_quantum; | ||
BOOL alert_simulate_sched_quantum; | ||
@@ -2175,6 +2176,12 @@ static void hacks_init(void) | ||
ERR( "HACK: ram_reporting_bias %lldMB.\n", ram_reporting_bias / (1024 * 1024) ); | ||
} | ||
|
||
+ env_str = getenv("WINE_DISABLE_SFN"); | ||
+ if (env_str) | ||
+ disable_sfn = !!atoi(env_str); | ||
+ else if (main_argc > 1 && (strstr(main_argv[1], "Yakuza5.exe") )) | ||
+ disable_sfn = TRUE; | ||
+ | ||
env_str = getenv("WINE_SIMULATE_ASYNC_READ"); | ||
if (env_str) | ||
ac_odyssey = !!atoi(env_str); | ||
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h | ||
index cae15947bbd..6403dad858d 100644 | ||
--- a/dlls/ntdll/unix/unix_private.h | ||
+++ b/dlls/ntdll/unix/unix_private.h | ||
@@ -152,6 +152,7 @@ extern BOOL is_wow64 DECLSPEC_HIDDEN; | ||
extern struct ldt_copy __wine_ldt_copy DECLSPEC_HIDDEN; | ||
#endif | ||
|
||
+extern BOOL disable_sfn DECLSPEC_HIDDEN; | ||
extern BOOL ac_odyssey DECLSPEC_HIDDEN; | ||
extern BOOL fsync_simulate_sched_quantum DECLSPEC_HIDDEN; | ||
extern BOOL alert_simulate_sched_quantum DECLSPEC_HIDDEN; |
Submodule proton-wine
updated
from 5ee930 to b8d142