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,

Reply via email to