In CopyFileEx, and DeleteFile functions, by default, the file name
and path are limited to MAX_PATH characters. To extend this limit
to 32,767 wide characters, need prepend "\\\\?\\" to the path.
--
v11: kernelbase: Limit the maximum path length for DeleteFile.
kernelbase: Fix DeleteFileA doesn't support long path.
kernelbase: Limit the maximum path length for filesystem.
ntdll: Check if long path aware is enabled.
kernel32/tests: Add tests for DeleteFile
kernel32/tests: Add tests for maximum path length limitation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540
On Wed Jun 18 08:29:18 2025 +0000, Nikolay Sivov wrote:
> This will change behavior for all the tests. We can create this file
> dynamically as an external manifest, then restart as a child process.
Right. That would be better. Let's do that.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106999
On Wed Jun 18 08:27:27 2025 +0000, Zhiyi Zhang wrote:
> I see. In that case, you can leave it and keep the longPathAware
> manifest in the kernel32 test resource.
This will change behavior for all the tests. We can create this file dynamically as an external manifest, then restart as a child process.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106998
On Wed Jun 18 08:25:18 2025 +0000, Yongjie Yao wrote:
> When testing on windows 11, handle=CreateActCtxW() ->
> ActivateActCtx(handle) -> QueryActCtxSettingsW(handle), the value of the
> longPathAware is true, but CopyFileExA still can't support long path.
> When I create a file with kernel32_test.exe.manifest as filename and
> test again, CopyFileExA can support long path. So I guess it is just
> checked at process startup.
I see. In that case, you can leave it and keep the longPathAware manifest in the kernel32 test resource.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106997
On Mon Jun 16 10:56:00 2025 +0000, Zhiyi Zhang wrote:
> Please test if activating the longPathAware manifest dynamically sets
> IsLongPathAwareProcess, or if it is just checked at process startup.
> MSDN says the LongPathsEnabled registry value is cached. However, it
> doesn't say if the manifest is cached. This could be a local test.
When testing on windows 11, handle=CreateActCtxW() -> ActivateActCtx(handle) -> QueryActCtxSettingsW(handle), the value of the longPathAware is true, but CopyFileExA still can't support long path. When I create a file with kernel32_test.exe.manifest and test again, CopyFileExA can support long path. So I guess it is just checked at process startup.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106996
For React Native.
--
v3: kernel32/tests: Add tests for RtlActivateActivationContextUnsafe() and RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlActivateActivationContextUnsafeFast().
ntdll: Set and check 0x8 flag for activation context stack frames.
kernel32/tests: Add tests for normal activation context stack frame flags.
ntdll: Use explicit ACTIVATION_CONTEXT type instead of HANDLE.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8326