https://git.reactos.org/?p=reactos.git;a=commitdiff;h=32e65f2f8d0445fbb93893487fc6fc4fccc0f3ff
commit 32e65f2f8d0445fbb93893487fc6fc4fccc0f3ff Author: Adam Słaboń <asail...@protonmail.com> AuthorDate: Sun Mar 3 21:02:06 2024 +0100 Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-ma...@reactos.org> CommitDate: Mon Oct 7 11:16:03 2024 +0200 [KERNEL32] GetDriveTypeW: Fix the case with unformatted volumes and volume GUID names Fix the case when GetDriveTypeW would return DRIVE_NO_ROOT_DIR when it got a volume GUID name and had to access an unformatted volume. Fixes Rufus not being able to find an unformatted volume after writting new MBR. --- dll/win32/kernel32/client/file/disk.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dll/win32/kernel32/client/file/disk.c b/dll/win32/kernel32/client/file/disk.c index 12751c6b1ad..07d0c15b85e 100644 --- a/dll/win32/kernel32/client/file/disk.c +++ b/dll/win32/kernel32/client/file/disk.c @@ -608,6 +608,9 @@ GetDriveTypeW(IN LPCWSTR lpRootPathName) return DRIVE_NO_ROOT_DIR; } + /* We will work with a device object, so trim the trailing backslash now */ + PathName.Length -= sizeof(WCHAR); + /* Let's probe for it, by forcing open failure! */ RetryOpen = TRUE; InitializeObjectAttributes(&ObjectAttributes, &PathName,