Index: drivers/filesystems/fs_rec/fs_rec.h =================================================================== --- drivers/filesystems/fs_rec/fs_rec.h (revision 37312) +++ drivers/filesystems/fs_rec/fs_rec.h (working copy) @@ -23,7 +23,7 @@ // // UDFS Offsets // -#define UDFS_VRS_START_SECTOR 16 +#define UDFS_VRS_START_OFFSET 32768 #define UDFS_AVDP_SECTOR 256 // Index: drivers/filesystems/fs_rec/udfs.c =================================================================== --- drivers/filesystems/fs_rec/udfs.c (revision 37312) +++ drivers/filesystems/fs_rec/udfs.c (working copy) @@ -24,13 +24,13 @@ LARGE_INTEGER Offset; ULONG State = 0; - Offset.QuadPart = UDFS_VRS_START_SECTOR; + Offset.QuadPart = UDFS_VRS_START_OFFSET; while (TRUE) { if (!FsRecReadBlock(DeviceObject, &Offset, - 512, SectorSize, + SectorSize, (PVOID)&Buffer, NULL)) { @@ -41,8 +41,7 @@ { case 0: - if ((Offset.QuadPart == UDFS_VRS_START_SECTOR) && - (Buffer[1] == 'B') && + if ((Buffer[1] == 'B') && (Buffer[2] == 'E') && (Buffer[3] == 'A') && (Buffer[4] == '0') && @@ -83,7 +82,7 @@ break; } - Offset.QuadPart++; + Offset.QuadPart += SectorSize; if (Offset.QuadPart == UDFS_AVDP_SECTOR) { ExFreePool(Buffer);