[VFATLIB]

- Don't overwrite format status with lock status

svn path=/trunk/; revision=52436
This commit is contained in:
Cameron Gutman 2011-06-24 01:36:32 +00:00
parent a3b61053bc
commit f16fa41fb2

View file

@ -32,7 +32,7 @@ VfatFormat(IN PUNICODE_STRING DriveRoot,
HANDLE FileHandle; HANDLE FileHandle;
PARTITION_INFORMATION PartitionInfo; PARTITION_INFORMATION PartitionInfo;
FORMAT_CONTEXT Context; FORMAT_CONTEXT Context;
NTSTATUS Status; NTSTATUS Status, LockStatus;
DPRINT("VfatFormat(DriveRoot '%wZ')\n", DriveRoot); DPRINT("VfatFormat(DriveRoot '%wZ')\n", DriveRoot);
@ -194,20 +194,20 @@ VfatFormat(IN PUNICODE_STRING DriveRoot,
Context.Percent = 0; Context.Percent = 0;
Callback (PROGRESS, 0, (PVOID)&Context.Percent); Callback (PROGRESS, 0, (PVOID)&Context.Percent);
} }
Status = NtFsControlFile(FileHandle, LockStatus = NtFsControlFile(FileHandle,
NULL, NULL,
NULL, NULL,
NULL, NULL,
&Iosb, &Iosb,
FSCTL_LOCK_VOLUME, FSCTL_LOCK_VOLUME,
NULL, NULL,
0, 0,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(LockStatus))
{ {
DPRINT1("WARNING: Failed to lock volume for formatting! Format may fail! (Status: 0x%x)\n", Status); DPRINT1("WARNING: Failed to lock volume for formatting! Format may fail! (Status: 0x%x)\n", LockStatus);
} }
if (PartitionInfo.PartitionType == PARTITION_FAT_12) if (PartitionInfo.PartitionType == PARTITION_FAT_12)
@ -250,20 +250,20 @@ VfatFormat(IN PUNICODE_STRING DriveRoot,
{ {
Status = STATUS_INVALID_PARAMETER; Status = STATUS_INVALID_PARAMETER;
} }
Status = NtFsControlFile(FileHandle, LockStatus = NtFsControlFile(FileHandle,
NULL, NULL,
NULL, NULL,
NULL, NULL,
&Iosb, &Iosb,
FSCTL_UNLOCK_VOLUME, FSCTL_UNLOCK_VOLUME,
NULL, NULL,
0, 0,
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(LockStatus))
{ {
DPRINT1("Failed to unlock volume (Status: 0x%x)\n", Status); DPRINT1("Failed to unlock volume (Status: 0x%x)\n", LockStatus);
} }
NtClose(FileHandle); NtClose(FileHandle);