From dc6be46b930aaf85ff8ba7ce316930d6b1cfb4f9 Mon Sep 17 00:00:00 2001 From: Doug Lyons Date: Mon, 7 Sep 2026 18:00:17 -0500 Subject: [PATCH] [CHKDSK][VFATLIB] Enable chkdsk /V to output filenames (#9501) * Add FSCHECK_LIST_FILES to FsCheckFlags in vfatlib.c * Remove some unneeded ifdef's for REACTOS * Use SAL2 annotations in main functions CORE-20771 Co-authored-by: Oleg Dubinskiy Co-authored-by: Serge Gautherie <32623169+SergeGautherie@users.noreply.github.com> --- sdk/lib/fslib/vfatlib/vfatlib.c | 44 +++++++++++++++------------------ 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/sdk/lib/fslib/vfatlib/vfatlib.c b/sdk/lib/fslib/vfatlib/vfatlib.c index 60e24e5379e..63c7635cac4 100644 --- a/sdk/lib/fslib/vfatlib/vfatlib.c +++ b/sdk/lib/fslib/vfatlib/vfatlib.c @@ -48,13 +48,13 @@ ULONG FsCheckTotalFiles; BOOLEAN NTAPI VfatFormat( - IN PUNICODE_STRING DriveRoot, - IN PFMIFSCALLBACK Callback, - IN BOOLEAN QuickFormat, - IN BOOLEAN BackwardCompatible, - IN MEDIA_TYPE MediaType, - IN PUNICODE_STRING Label, - IN ULONG ClusterSize) + _In_ PUNICODE_STRING DriveRoot, + _In_ PFMIFSCALLBACK Callback, + _In_ BOOLEAN QuickFormat, + _In_ BOOLEAN BackwardCompatible, + _In_ MEDIA_TYPE MediaType, + _In_ PUNICODE_STRING Label, + _In_ ULONG ClusterSize) { OBJECT_ATTRIBUTES ObjectAttributes; DISK_GEOMETRY DiskGeometry; @@ -415,17 +415,17 @@ VfatPrint(PCHAR Format, ...) BOOLEAN NTAPI VfatChkdsk( - IN PUNICODE_STRING DriveRoot, - IN PFMIFSCALLBACK Callback, - IN BOOLEAN FixErrors, - IN BOOLEAN Verbose, - IN BOOLEAN CheckOnlyIfDirty, - IN BOOLEAN ScanDrive, - IN PVOID pUnknown1, - IN PVOID pUnknown2, - IN PVOID pUnknown3, - IN PVOID pUnknown4, - IN PULONG ExitStatus) + _In_ PUNICODE_STRING DriveRoot, + _In_ PFMIFSCALLBACK Callback, + _In_ BOOLEAN FixErrors, + _In_ BOOLEAN Verbose, + _In_ BOOLEAN CheckOnlyIfDirty, + _In_ BOOLEAN ScanDrive, + _In_opt_ PVOID pUnknown1, + _In_opt_ PVOID pUnknown2, + _In_opt_ PVOID pUnknown3, + _In_opt_ PVOID pUnknown4, + _Out_ PULONG ExitStatus) { BOOLEAN verify; BOOLEAN salvage_files; @@ -448,7 +448,7 @@ VfatChkdsk( /* Set parameters */ FsCheckFlags = 0; if (Verbose) - FsCheckFlags |= FSCHECK_VERBOSE; + FsCheckFlags |= FSCHECK_VERBOSE | FSCHECK_LIST_FILES; if (FixErrors) FsCheckFlags |= FSCHECK_READ_WRITE; @@ -545,7 +545,6 @@ VfatChkdsk( } } -#ifdef __REACTOS__ if (DriveRoot->Buffer[0] == '\\' && DriveRoot->Buffer[1] == '?' && DriveRoot->Buffer[2] == '?' && DriveRoot->Buffer[3] == '\\') { @@ -559,10 +558,7 @@ VfatChkdsk( else VfatPrint("%wZ: %u files, %lu/%lu clusters\n", DriveRoot, FsCheckTotalFiles, fs.data_clusters - free_clusters, fs.data_clusters); -#else - VfatPrint("%wZ: %u files, %lu/%lu clusters\n", DriveRoot, - FsCheckTotalFiles, fs.data_clusters - free_clusters, fs.data_clusters); -#endif + if (FsCheckFlags & FSCHECK_READ_WRITE) { /* Dismount the volume */