mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
[VFATLIB]
- Lock the volume before formatting to prevent concurrent access during formatting - This should (in theory) fix our formatting issue on mounted devices but currently we don't support FSCTL_LOCK_VOLUME in our FS drivers svn path=/trunk/; revision=52435
This commit is contained in:
@@ -194,6 +194,21 @@ VfatFormat(IN PUNICODE_STRING DriveRoot,
|
||||
Context.Percent = 0;
|
||||
Callback (PROGRESS, 0, (PVOID)&Context.Percent);
|
||||
}
|
||||
|
||||
Status = NtFsControlFile(FileHandle,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&Iosb,
|
||||
FSCTL_LOCK_VOLUME,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
0);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("WARNING: Failed to lock volume for formatting! Format may fail! (Status: 0x%x)\n", Status);
|
||||
}
|
||||
|
||||
if (PartitionInfo.PartitionType == PARTITION_FAT_12)
|
||||
{
|
||||
@@ -235,6 +250,21 @@ VfatFormat(IN PUNICODE_STRING DriveRoot,
|
||||
{
|
||||
Status = STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Status = NtFsControlFile(FileHandle,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&Iosb,
|
||||
FSCTL_UNLOCK_VOLUME,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
0);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Failed to unlock volume (Status: 0x%x)\n", Status);
|
||||
}
|
||||
|
||||
NtClose(FileHandle);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user