[PATCH 0/1] MR10633: kernelbase: Ignore GENERIC_WRITE in CreateFile on CDs on Windows 9x.
From: Alex Henrie <alexhenrie24@gmail.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=59636 --- dlls/kernelbase/file.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c index 83977a2c40b..b0ca270b469 100644 --- a/dlls/kernelbase/file.c +++ b/dlls/kernelbase/file.c @@ -853,6 +853,17 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateFileW( LPCWSTR filename, DWORD access, DWO return INVALID_HANDLE_VALUE; } + /* Windows 9x ignores the GENERIC_WRITE flag on CD drives */ + if (access & GENERIC_WRITE && GetVersion() & 0x80000000) + { + WCHAR volume[MAX_PATH]; + if (GetVolumePathNameW(filename, volume, ARRAY_SIZE(volume)) && + GetDriveTypeW(volume) == DRIVE_CDROM) + { + access &= ~GENERIC_WRITE; + } + } + /* now call NtCreateFile */ if (attributes & FILE_FLAG_DELETE_ON_CLOSE) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10633
participants (2)
-
Alex Henrie -
Alex Henrie (@alexhenrie)