a hotfix for the recent release of Persona 5 Royal.
-- v16: kernel32: Add semi-stub for RemoveDirectoryTransactedA/W(). kernel32: Add semi-stub for GetFileAttributesTransactedA/W(). kernel32: Add semi-stub for FindFirstFileTransactedA/W(). kernel32: Add semi-stub for DeleteFileTransactedA/W(). kernel32: Add semi-stub for CreateDirectoryTransactedA/W(). kernel32: Add semi-stub for CreateFileTransactedA/W().
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/kernel32/kernel32.spec | 2 ++ dlls/kernel32/path.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 8da6321e8d0..a11870bd09f 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -283,12 +283,14 @@ @ stdcall -import CreateFiberEx(long long long ptr ptr) @ stdcall -import CreateFile2(wstr long long long ptr) @ stdcall -import CreateFileA(str long long ptr long long long) +@ stdcall CreateFileTransactedA(str long long ptr long long long ptr ptr ptr) @ stdcall CreateFileMappingA(long ptr long long long str) # @ stub CreateFileMappingNumaA @ stdcall CreateFileMappingFromApp(long ptr long int64 wstr) kernelbase.CreateFileMappingFromApp @ stdcall -import CreateFileMappingNumaW(long ptr long long long wstr long) @ stdcall -import CreateFileMappingW(long ptr long long long wstr) @ stdcall -import CreateFileW(wstr long long ptr long long long) +@ stdcall CreateFileTransactedW(wstr long long ptr long long long ptr ptr ptr) @ stdcall -import CreateHardLinkA(str str ptr) @ stdcall CreateHardLinkTransactedA(str str ptr ptr) @ stdcall CreateHardLinkTransactedW(wstr wstr ptr ptr) diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index 028cf96d8cc..1c85e4b26d9 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -158,6 +158,33 @@ BOOL WINAPI MoveFileTransactedW(const WCHAR *source, const WCHAR *dest, LPPROGRE return MoveFileWithProgressW(source, dest, progress, data, flags); }
+/************************************************************************* + * CreateFileTransactedA (KERNEL32.@) + */ +HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileTransactedA( LPCSTR name, DWORD access, DWORD sharing, + LPSECURITY_ATTRIBUTES sa, DWORD creation, + DWORD attributes, HANDLE template, + HANDLE transaction, PUSHORT version, + PVOID param ) +{ + FIXME("(%s %lx %lx %p %lx %lx %p %p %p %p): semi-stub\n", debugstr_a(name), access, sharing, sa, + creation, attributes, template, transaction, version, param); + return CreateFileA(name, access, sharing, sa, creation, attributes, template); +} + +/************************************************************************* + * CreateFileTransactedW (KERNEL32.@) + */ +HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileTransactedW( LPCWSTR name, DWORD access, DWORD sharing, + LPSECURITY_ATTRIBUTES sa, DWORD creation, + DWORD attributes, HANDLE template, HANDLE transaction, + PUSHORT version, PVOID param ) +{ + FIXME("(%s %lx %lx %p %lx %lx %p %p %p %p): semi-stub\n", debugstr_w(name), access, sharing, sa, + creation, attributes, template, transaction, version, param); + return CreateFileW(name, access, sharing, sa, creation, attributes, template); +} + /************************************************************************** * MoveFileWithProgressA (KERNEL32.@) */
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernel32/path.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index a11870bd09f..e2fe57b5224 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -272,8 +272,8 @@ @ stdcall -import CreateDirectoryA(str ptr) @ stdcall CreateDirectoryExA(str str ptr) @ stdcall -import CreateDirectoryExW(wstr wstr ptr) -# @ stub CreateDirectoryTransactedA -# @ stub CreateDirectoryTransactedW +@ stdcall CreateDirectoryTransactedA(str str ptr ptr) +@ stdcall CreateDirectoryTransactedW(wstr wstr ptr ptr) @ stdcall -import CreateDirectoryW(wstr ptr) @ stdcall -import CreateEventA(ptr long long str) @ stdcall -import CreateEventExA(ptr str long long) diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index 1c85e4b26d9..cdb46cc2e99 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -185,6 +185,24 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileTransactedW( LPCWSTR name, DWORD acces return CreateFileW(name, access, sharing, sa, creation, attributes, template); }
+/*********************************************************************** + * CreateDirectoryTransactedA (KERNEL32.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryTransactedA(LPCSTR template, LPCSTR path, LPSECURITY_ATTRIBUTES sa, HANDLE transaction) +{ + FIXME("(%s %s %p %p): semi-stub\n", debugstr_a(template), debugstr_a(path), sa, transaction); + return CreateDirectoryExA(template, path, sa); +} + +/*********************************************************************** + * CreateDirectoryTransactedW (KERNEL32.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryTransactedW(LPCWSTR template, LPCWSTR path, LPSECURITY_ATTRIBUTES sa, HANDLE transaction) +{ + FIXME("(%s %s %p %p): semi-stub\n", debugstr_w(template), debugstr_w(path), sa, transaction); + return CreateDirectoryExW(template, path, sa); +} + /************************************************************************** * MoveFileWithProgressA (KERNEL32.@) */
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernel32/path.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index e2fe57b5224..aed200a13c7 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -367,8 +367,8 @@ @ stdcall DeleteCriticalSection(ptr) NTDLL.RtlDeleteCriticalSection @ stdcall -import DeleteFiber(ptr) @ stdcall -import DeleteFileA(str) -# @ stub DeleteFileTransactedA -# @ stub DeleteFileTransactedW +@ stdcall DeleteFileTransactedA(str ptr) +@ stdcall DeleteFileTransactedW(wstr ptr) @ stdcall -import DeleteFileW(wstr) @ stdcall -import DeleteProcThreadAttributeList(ptr) # @ stub DisableThreadProfiling diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index cdb46cc2e99..e959882730f 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -203,6 +203,24 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryTransactedW(LPCWSTR template, LPCWS return CreateDirectoryExW(template, path, sa); }
+/*********************************************************************** + * DeleteFileTransactedA (KERNEL32.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH DeleteFileTransactedA(LPCSTR path, HANDLE transaction) +{ + FIXME("(%s %p): semi-stub\n", debugstr_a(path), transaction); + return DeleteFileA(path); +} + +/*********************************************************************** + * DeleteFileTransactedW (KERNEL32.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH DeleteFileTransactedW(LPCWSTR path, HANDLE transaction) +{ + FIXME("(%s %p): semi-stub\n", debugstr_w(path), transaction); + return DeleteFileW(path); +} + /************************************************************************** * MoveFileWithProgressA (KERNEL32.@) */
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernel32/path.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index aed200a13c7..25a5a32561d 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -490,8 +490,8 @@ @ stdcall -import FindFirstFileExW(wstr long ptr long ptr long) # @ stub FindFirstFileNameTransactedW # @ stub FindFirstFileNameW -# @ stub FindFirstFileTransactedA -# @ stub FindFirstFileTransactedW +@ stdcall FindFirstFileTransactedA(str long ptr long ptr long ptr) +@ stdcall FindFirstFileTransactedW(wstr long ptr long ptr long ptr) @ stdcall -import FindFirstFileW(wstr ptr) # @ stub FindFirstStreamTransactedW @ stdcall -import FindFirstStreamW(wstr long ptr long) diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index e959882730f..4f0fe865a6b 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -221,6 +221,28 @@ BOOL WINAPI DECLSPEC_HOTPATCH DeleteFileTransactedW(LPCWSTR path, HANDLE transac return DeleteFileW(path); }
+/****************************************************************************** + * FindFirstFileTransactedA (KERNEL32.@) + */ +HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileTransactedA(LPCSTR filename, FINDEX_INFO_LEVELS level, + LPVOID data, FINDEX_SEARCH_OPS search_op, + LPVOID filter, DWORD flags, HANDLE transaction) +{ + FIXME( "(%s %d %p %d %p %lx %p): semi-stub\n", debugstr_a(filename), level, data, search_op, filter, flags, transaction ); + return FindFirstFileExA(filename, level, data, search_op, filter, flags); +} + +/****************************************************************************** + * FindFirstFileTransactedW (KERNEL32.@) + */ +HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileTransactedW(LPCWSTR filename, FINDEX_INFO_LEVELS level, + LPVOID data, FINDEX_SEARCH_OPS search_op, + LPVOID filter, DWORD flags, HANDLE transaction) +{ + FIXME( "(%s %d %p %d %p %lx %p): semi-stub\n", debugstr_w(filename), level, data, search_op, filter, flags, transaction ); + return FindFirstFileExW(filename, level, data, search_op, filter, flags); +} + /************************************************************************** * MoveFileWithProgressA (KERNEL32.@) */
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernel32/path.c | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 25a5a32561d..3958294c48a 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -679,8 +679,8 @@ @ stdcall -import GetFileAttributesA(str) @ stdcall -import GetFileAttributesExA(str long ptr) @ stdcall -import GetFileAttributesExW(wstr long ptr) -# @ stub GetFileAttributesTransactedA -# @ stub GetFileAttributesTransactedW +@ stdcall GetFileAttributesTransactedA(str long ptr ptr) +@ stdcall GetFileAttributesTransactedW(wstr long ptr ptr) @ stdcall -import GetFileAttributesW(wstr) # @ stub GetFileBandwidthReservation @ stdcall -import GetFileInformationByHandle(long ptr) diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index 4f0fe865a6b..54ee6d96ede 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -243,6 +243,25 @@ HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileTransactedW(LPCWSTR filename, FINDE return FindFirstFileExW(filename, level, data, search_op, filter, flags); }
+ +/************************************************************************** + * GetFileAttributesTransactedA (KERNEL32.@) + */ +DWORD WINAPI DECLSPEC_HOTPATCH GetFileAttributesTransactedA(LPCSTR name, GET_FILEEX_INFO_LEVELS level, void *ptr, HANDLE transaction) +{ + FIXME("(%s %p): semi-stub\n", debugstr_a(name), transaction); + return GetFileAttributesExA(name, level, ptr); +} + +/************************************************************************** + * GetFileAttributesTransactedW (KERNEL32.@) + */ +DWORD WINAPI DECLSPEC_HOTPATCH GetFileAttributesTransactedW(LPCWSTR name, GET_FILEEX_INFO_LEVELS level, void *ptr, HANDLE transaction) +{ + FIXME("(%s %p): semi-stub\n", debugstr_w(name), transaction); + return GetFileAttributesExW(name, level, ptr); +} + /************************************************************************** * MoveFileWithProgressA (KERNEL32.@) */
From: Etaash Mathamsetty etaash.mathamsetty@gmail.com
--- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernel32/path.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 3958294c48a..16ce6ffa41e 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -1294,8 +1294,8 @@ @ stdcall -import ReplaceFile(wstr wstr wstr long ptr ptr) ReplaceFileW @ stdcall ReplaceFileA(str str str long ptr ptr) @ stdcall -import ReplaceFileW(wstr wstr wstr long ptr ptr) -# @ stub RemoveDirectoryTransactedA -# @ stub RemoveDirectoryTransactedW +@ stdcall RemoveDirectoryTransactedA(str ptr) +@ stdcall RemoveDirectoryTransactedW(wstr ptr) @ stdcall -import RemoveDllDirectory(ptr) # @ stub RemoveSecureMemoryCacheCallback # @ stub ReplacePartitionUnit diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index 54ee6d96ede..1c2adf54390 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -262,6 +262,24 @@ DWORD WINAPI DECLSPEC_HOTPATCH GetFileAttributesTransactedW(LPCWSTR name, GET_FI return GetFileAttributesExW(name, level, ptr); }
+/*********************************************************************** + * RemoveDirectoryTransactedA (KERNEL32.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH RemoveDirectoryTransactedA(LPCSTR path, HANDLE transaction) +{ + FIXME("(%s %p): semi-stub\n", debugstr_a(path), transaction); + return RemoveDirectoryA(path); +} + +/*********************************************************************** + * RemoveDirectoryTransactedW (KERNEL32.@) + */ +BOOL WINAPI DECLSPEC_HOTPATCH RemoveDirectoryTransactedW(LPCWSTR path, HANDLE transaction) +{ + FIXME("(%s %p): semi-stub\n", debugstr_w(path), transaction); + return RemoveDirectoryW(path); +} + /************************************************************************** * MoveFileWithProgressA (KERNEL32.@) */
On Thu Mar 30 22:06:43 2023 +0000, Etaash Mathamsetty wrote:
hungarian notation is the pus in front of MiniVersion if I am reading correctly?
I got rid of the pus anyway, since it seems inconsistent