Author: cgutman
Date: Thu Jun 16 22:16:31 2011
New Revision: 52285
URL:
http://svn.reactos.org/svn/reactos?rev=52285&view=rev
Log:
[VFATLIB]
- Write the boot sector signature to the new boot sector after formatting
- Volumes formatted after setup are now mountable
Modified:
trunk/reactos/lib/fslib/vfatlib/fat12.c
trunk/reactos/lib/fslib/vfatlib/fat16.c
trunk/reactos/lib/fslib/vfatlib/fat32.c
Modified: trunk/reactos/lib/fslib/vfatlib/fat12.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatlib/fat12.c?…
==============================================================================
--- trunk/reactos/lib/fslib/vfatlib/fat12.c [iso-8859-1] (original)
+++ trunk/reactos/lib/fslib/vfatlib/fat12.c [iso-8859-1] Thu Jun 16 22:16:31 2011
@@ -56,11 +56,11 @@
{
IO_STATUS_BLOCK IoStatusBlock;
NTSTATUS Status;
- PUCHAR NewBootSector;
+ PFAT16_BOOT_SECTOR NewBootSector;
LARGE_INTEGER FileOffset;
/* Allocate buffer for new bootsector */
- NewBootSector = (PUCHAR)RtlAllocateHeap(RtlGetProcessHeap (),
+ NewBootSector = (PFAT16_BOOT_SECTOR)RtlAllocateHeap(RtlGetProcessHeap (),
0,
BootSector->BytesPerSector);
if (NewBootSector == NULL)
@@ -70,9 +70,12 @@
memset(NewBootSector, 0, BootSector->BytesPerSector);
/* Copy FAT16 BPB to new bootsector */
- memcpy((NewBootSector + 3),
+ memcpy(&NewBootSector->OEMName[0],
&BootSector->OEMName[0],
59); /* FAT16 BPB length (up to (not including) Res2) */
+
+ /* Write the boot sector signature */
+ NewBootSector->Signature1 = 0xAA550000;
/* Write sector 0 */
FileOffset.QuadPart = 0ULL;
Modified: trunk/reactos/lib/fslib/vfatlib/fat16.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatlib/fat16.c?…
==============================================================================
--- trunk/reactos/lib/fslib/vfatlib/fat16.c [iso-8859-1] (original)
+++ trunk/reactos/lib/fslib/vfatlib/fat16.c [iso-8859-1] Thu Jun 16 22:16:31 2011
@@ -56,11 +56,11 @@
{
IO_STATUS_BLOCK IoStatusBlock;
NTSTATUS Status;
- PUCHAR NewBootSector;
+ PFAT16_BOOT_SECTOR NewBootSector;
LARGE_INTEGER FileOffset;
/* Allocate buffer for new bootsector */
- NewBootSector = (PUCHAR)RtlAllocateHeap(RtlGetProcessHeap(),
+ NewBootSector = (PFAT16_BOOT_SECTOR)RtlAllocateHeap(RtlGetProcessHeap(),
0,
BootSector->BytesPerSector);
if (NewBootSector == NULL)
@@ -70,9 +70,12 @@
memset(NewBootSector, 0, BootSector->BytesPerSector);
/* Copy FAT16 BPB to new bootsector */
- memcpy((NewBootSector + 3),
+ memcpy(&NewBootSector->OEMName[0],
&BootSector->OEMName[0],
59); /* FAT16 BPB length (up to (not including) Res2) */
+
+ /* Write the boot sector signature */
+ NewBootSector->Signature1 = 0xAA550000;
/* Write sector 0 */
FileOffset.QuadPart = 0ULL;
Modified: trunk/reactos/lib/fslib/vfatlib/fat32.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fslib/vfatlib/fat32.c?…
==============================================================================
--- trunk/reactos/lib/fslib/vfatlib/fat32.c [iso-8859-1] (original)
+++ trunk/reactos/lib/fslib/vfatlib/fat32.c [iso-8859-1] Thu Jun 16 22:16:31 2011
@@ -56,11 +56,11 @@
{
IO_STATUS_BLOCK IoStatusBlock;
NTSTATUS Status;
- PUCHAR NewBootSector;
+ PFAT32_BOOT_SECTOR NewBootSector;
LARGE_INTEGER FileOffset;
/* Allocate buffer for new bootsector */
- NewBootSector = (PUCHAR)RtlAllocateHeap(RtlGetProcessHeap(),
+ NewBootSector = (PFAT32_BOOT_SECTOR)RtlAllocateHeap(RtlGetProcessHeap(),
0,
BootSector->BytesPerSector);
if (NewBootSector == NULL)
@@ -70,9 +70,12 @@
memset(NewBootSector, 0, BootSector->BytesPerSector);
/* Copy FAT32 BPB to new bootsector */
- memcpy((NewBootSector + 3),
+ memcpy(&NewBootSector->OEMName[0],
&BootSector->OEMName[0],
87); /* FAT32 BPB length (up to (not including) Res2) */
+
+ /* Write the boot sector signature */
+ NewBootSector->Signature1 = 0xAA550000;
/* Write sector 0 */
FileOffset.QuadPart = 0ULL;