mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
[ntfs] add bootable NTFS support
* NTFS boot records in ms-sys * also added debug duplication to PrintMessage * also fixed controls staying enabled during formatting
This commit is contained in:
parent
bb0c0ecb1c
commit
d1e4ba278b
17 changed files with 534 additions and 47 deletions
|
@ -1,8 +1,12 @@
|
||||||
/* Option for Visual Studio and WDK compilation */
|
/* Option for Visual Studio and WDK compilation */
|
||||||
/* For MinGW, use "./configure <option>" instead */
|
/* For MinGW, use "./configure <option>" instead */
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
|
||||||
/* Embed FreeDOS files and allow FreeDOS support */
|
/* Embed FreeDOS files and allow FreeDOS support */
|
||||||
#define WITH_FREEDOS
|
#define WITH_FREEDOS
|
||||||
|
|
||||||
/* SysLinux support, for ISO -> bootable USB */
|
/* SysLinux support, for ISO -> bootable USB */
|
||||||
#define WITH_SYSLINUX
|
#define WITH_SYSLINUX
|
||||||
|
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
|
|
@ -324,7 +324,7 @@ static void print_status(void)
|
||||||
percent = calc_percent((unsigned long) currently_testing,
|
percent = calc_percent((unsigned long) currently_testing,
|
||||||
(unsigned long) num_blocks);
|
(unsigned long) num_blocks);
|
||||||
percent = (percent/2.0f) + ((cur_op==OP_READ)? 50.0f : 0.0f);
|
percent = (percent/2.0f) + ((cur_op==OP_READ)? 50.0f : 0.0f);
|
||||||
PrintStatus(0, "Bad Blocks: PASS %d/%d - %0.2f%% (%d/%d/%d errors)",
|
PrintStatus(0, FALSE, "Bad Blocks: PASS %d/%d - %0.2f%% (%d/%d/%d errors)",
|
||||||
cur_pattern, nr_pattern,
|
cur_pattern, nr_pattern,
|
||||||
percent,
|
percent,
|
||||||
num_read_errors,
|
num_read_errors,
|
||||||
|
@ -355,8 +355,7 @@ static void pattern_fill(unsigned char *buffer, unsigned int pattern,
|
||||||
for (ptr = buffer; ptr < buffer + n; ptr++) {
|
for (ptr = buffer; ptr < buffer + n; ptr++) {
|
||||||
(*ptr) = rand() % (1 << (8 * sizeof(char)));
|
(*ptr) = rand() % (1 << (8 * sizeof(char)));
|
||||||
}
|
}
|
||||||
PrintStatus(3500, "Bad Blocks: Testing with random pattern.");
|
PrintStatus(3500, TRUE, "Bad Blocks: Testing with random pattern.");
|
||||||
uprintf("Bad Blocks: Testing with random pattern.");
|
|
||||||
} else {
|
} else {
|
||||||
bpattern[0] = 0;
|
bpattern[0] = 0;
|
||||||
for (i = 0; i < sizeof(bpattern); i++) {
|
for (i = 0; i < sizeof(bpattern); i++) {
|
||||||
|
@ -373,8 +372,7 @@ static void pattern_fill(unsigned char *buffer, unsigned int pattern,
|
||||||
else
|
else
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
PrintStatus(3500, "Bad Blocks: Testing with pattern 0x%02X.", bpattern[i]);
|
PrintStatus(3500, TRUE, "Bad Blocks: Testing with pattern 0x%02X.", bpattern[i]);
|
||||||
uprintf("Bad Blocks: Testing with pattern 0x%02X.", bpattern[i]);
|
|
||||||
cur_pattern++;
|
cur_pattern++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
47
src/format.c
47
src/format.c
|
@ -35,6 +35,7 @@
|
||||||
#include "br.h"
|
#include "br.h"
|
||||||
#include "fat16.h"
|
#include "fat16.h"
|
||||||
#include "fat32.h"
|
#include "fat32.h"
|
||||||
|
#include "ntfs.h"
|
||||||
#include "partition_info.h"
|
#include "partition_info.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
|
@ -63,19 +64,17 @@ static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
switch(Command) {
|
switch(Command) {
|
||||||
case FCC_PROGRESS:
|
case FCC_PROGRESS:
|
||||||
percent = (DWORD*)pData;
|
percent = (DWORD*)pData;
|
||||||
PrintStatus(0, "Formatting: %d%% completed.\n", *percent);
|
PrintStatus(0, FALSE, "Formatting: %d%% completed.", *percent);
|
||||||
// uprintf("%d percent completed.\n", *percent);
|
// uprintf("%d percent completed.\n", *percent);
|
||||||
UpdateProgress(OP_FORMAT, 1.0f * (*percent));
|
UpdateProgress(OP_FORMAT, 1.0f * (*percent));
|
||||||
break;
|
break;
|
||||||
case FCC_STRUCTURE_PROGRESS: // No progress on quick format
|
case FCC_STRUCTURE_PROGRESS: // No progress on quick format
|
||||||
PrintStatus(0, "Creating file system: Task %d/%d completed.\n", ++task_number, nb_steps[fs_index]);
|
PrintStatus(0, TRUE, "Creating file system: Task %d/%d completed.", ++task_number, nb_steps[fs_index]);
|
||||||
uprintf("Create FS: Task %d/%d completed.\n", task_number, nb_steps[fs_index]);
|
|
||||||
format_percent += 100.0f / (1.0f * nb_steps[fs_index]);
|
format_percent += 100.0f / (1.0f * nb_steps[fs_index]);
|
||||||
UpdateProgress(OP_CREATE_FS, format_percent);
|
UpdateProgress(OP_CREATE_FS, format_percent);
|
||||||
break;
|
break;
|
||||||
case FCC_DONE:
|
case FCC_DONE:
|
||||||
PrintStatus(0, "Creating file system: Task %d/%d completed.\n", nb_steps[fs_index], nb_steps[fs_index]);
|
PrintStatus(0, TRUE, "Creating file system: Task %d/%d completed.", nb_steps[fs_index], nb_steps[fs_index]);
|
||||||
uprintf("Create FS: Task %d/%d completed.\n", nb_steps[fs_index], nb_steps[fs_index]);
|
|
||||||
UpdateProgress(OP_CREATE_FS, 100.0f);
|
UpdateProgress(OP_CREATE_FS, 100.0f);
|
||||||
if(*(BOOLEAN*)pData == FALSE) {
|
if(*(BOOLEAN*)pData == FALSE) {
|
||||||
uprintf("Error while formatting.\n");
|
uprintf("Error while formatting.\n");
|
||||||
|
@ -150,7 +149,7 @@ static BOOL FormatDrive(char DriveLetter)
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
wDriveRoot[0] = (WCHAR)DriveLetter;
|
wDriveRoot[0] = (WCHAR)DriveLetter;
|
||||||
PrintStatus(0, "Formatting...");
|
PrintStatus(0, TRUE, "Formatting...");
|
||||||
PF_INIT_OR_OUT(FormatEx, fmifs);
|
PF_INIT_OR_OUT(FormatEx, fmifs);
|
||||||
|
|
||||||
GetWindowTextW(hFileSystem, wFSType, ARRAYSIZE(wFSType));
|
GetWindowTextW(hFileSystem, wFSType, ARRAYSIZE(wFSType));
|
||||||
|
@ -340,7 +339,9 @@ static BOOL WritePBR(HANDLE hLogicalVolume, BOOL bFreeDOS)
|
||||||
uprintf("Confirmed new volume has a FAT16 boot sector\n");
|
uprintf("Confirmed new volume has a FAT16 boot sector\n");
|
||||||
if (bFreeDOS) {
|
if (bFreeDOS) {
|
||||||
if (!write_fat_16_fd_br(&fake_fd, 0)) break;
|
if (!write_fat_16_fd_br(&fake_fd, 0)) break;
|
||||||
} else if (!write_fat_16_br(&fake_fd, 0)) break;
|
} else {
|
||||||
|
if (!write_fat_16_br(&fake_fd, 0)) break;
|
||||||
|
}
|
||||||
// Disk Drive ID needs to be corrected on XP
|
// Disk Drive ID needs to be corrected on XP
|
||||||
if (!write_partition_physical_disk_drive_id_fat16(&fake_fd))
|
if (!write_partition_physical_disk_drive_id_fat16(&fake_fd))
|
||||||
break;
|
break;
|
||||||
|
@ -362,6 +363,16 @@ static BOOL WritePBR(HANDLE hLogicalVolume, BOOL bFreeDOS)
|
||||||
fake_fd._cnt += 6 * (int)SelectedDrive.Geometry.BytesPerSector;
|
fake_fd._cnt += 6 * (int)SelectedDrive.Geometry.BytesPerSector;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
case FS_NTFS:
|
||||||
|
if (!is_ntfs_fs(&fake_fd)) {
|
||||||
|
uprintf("New volume does not have an NTFS boot sector\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
uprintf("Confirmed new volume has an NTFS boot sector\n");
|
||||||
|
if (!write_ntfs_br(&fake_fd)) break;
|
||||||
|
// Note: NTFS requires a full remount after writing the PBR. We dismount when we lock
|
||||||
|
// so that's not an issue, but if you don't remount, you don't boot!
|
||||||
|
return TRUE;
|
||||||
default:
|
default:
|
||||||
uprintf("unsupported FS for FS BR processing\n");
|
uprintf("unsupported FS for FS BR processing\n");
|
||||||
break;
|
break;
|
||||||
|
@ -407,6 +418,7 @@ void __cdecl FormatThread(void* param)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
UnmountDrive(hLogicalVolume);
|
UnmountDrive(hLogicalVolume);
|
||||||
|
// TODO: DeleteVolumeMountPoint (and GetVolumeNameForVolumeMountPoint unless the GUID changes)
|
||||||
|
|
||||||
AnalyzeMBR(hPhysicalDrive);
|
AnalyzeMBR(hPhysicalDrive);
|
||||||
AnalyzePBR(hLogicalVolume);
|
AnalyzePBR(hLogicalVolume);
|
||||||
|
@ -495,7 +507,7 @@ void __cdecl FormatThread(void* param)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintStatus(0, "Writing master boot record...\n");
|
PrintStatus(0, TRUE, "Writing master boot record...");
|
||||||
if (!WriteMBR(hPhysicalDrive)) {
|
if (!WriteMBR(hPhysicalDrive)) {
|
||||||
// Errorcode has already been set
|
// Errorcode has already been set
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -506,6 +518,7 @@ void __cdecl FormatThread(void* param)
|
||||||
switch (ComboBox_GetItemData(hDOSType, ComboBox_GetCurSel(hDOSType))) {
|
switch (ComboBox_GetItemData(hDOSType, ComboBox_GetCurSel(hDOSType))) {
|
||||||
case DT_FREEDOS:
|
case DT_FREEDOS:
|
||||||
case DT_WINME:
|
case DT_WINME:
|
||||||
|
case DT_ISO:
|
||||||
// We still have a lock, which we need to modify the volume boot record
|
// We still have a lock, which we need to modify the volume boot record
|
||||||
// => no need to reacquire the lock...
|
// => no need to reacquire the lock...
|
||||||
hLogicalVolume = GetDriveHandle(num, drive_name, TRUE, FALSE);
|
hLogicalVolume = GetDriveHandle(num, drive_name, TRUE, FALSE);
|
||||||
|
@ -514,7 +527,11 @@ void __cdecl FormatThread(void* param)
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_OPEN_FAILED;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_OPEN_FAILED;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
PrintStatus(0, "Writing partition boot record...\n");
|
// Make sure the volume is dismounted before writing the PBR
|
||||||
|
// This is especially critical, as NTFS will only be made bootable
|
||||||
|
// after the FS is re-mounted by Windows
|
||||||
|
UnmountDrive(hLogicalVolume);
|
||||||
|
PrintStatus(0, TRUE, "Writing partition boot record...");
|
||||||
if (!WritePBR(hLogicalVolume, ComboBox_GetItemData(hDOSType, ComboBox_GetCurSel(hDOSType)) == DT_FREEDOS)) {
|
if (!WritePBR(hLogicalVolume, ComboBox_GetItemData(hDOSType, ComboBox_GetCurSel(hDOSType)) == DT_FREEDOS)) {
|
||||||
// Errorcode has already been set
|
// Errorcode has already been set
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -522,10 +539,12 @@ void __cdecl FormatThread(void* param)
|
||||||
// ...but we must have relinquished that lock to write the MS-DOS files
|
// ...but we must have relinquished that lock to write the MS-DOS files
|
||||||
safe_unlockclose(hLogicalVolume);
|
safe_unlockclose(hLogicalVolume);
|
||||||
UpdateProgress(OP_DOS, -1.0f);
|
UpdateProgress(OP_DOS, -1.0f);
|
||||||
PrintStatus(0, "Copying DOS files...\n");
|
if (ComboBox_GetItemData(hDOSType, ComboBox_GetCurSel(hDOSType)) != DT_ISO) {
|
||||||
if (!ExtractDOS(drive_name)) {
|
PrintStatus(0, TRUE, "Copying DOS files...");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANNOT_COPY;
|
if (!ExtractDOS(drive_name)) {
|
||||||
goto out;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANNOT_COPY;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// Syslinux requires patching of the PBR after the files have been extracted
|
// Syslinux requires patching of the PBR after the files have been extracted
|
||||||
|
@ -538,6 +557,8 @@ void __cdecl FormatThread(void* param)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: SetVolumeMountPoint
|
||||||
|
|
||||||
out:
|
out:
|
||||||
safe_unlockclose(hLogicalVolume);
|
safe_unlockclose(hLogicalVolume);
|
||||||
safe_unlockclose(hPhysicalDrive);
|
safe_unlockclose(hPhysicalDrive);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
@ -34,6 +34,8 @@
|
||||||
<ClInclude Include="..\inc\br_fat32_0x0.h" />
|
<ClInclude Include="..\inc\br_fat32_0x0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32_0x3f0.h" />
|
<ClInclude Include="..\inc\br_fat32_0x3f0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32_0x52.h" />
|
<ClInclude Include="..\inc\br_fat32_0x52.h" />
|
||||||
|
<ClInclude Include="..\inc\br_ntfs_0x0.h" />
|
||||||
|
<ClInclude Include="..\inc\br_ntfs_0x54.h" />
|
||||||
<ClInclude Include="..\inc\fat12.h" />
|
<ClInclude Include="..\inc\fat12.h" />
|
||||||
<ClInclude Include="..\inc\fat16.h" />
|
<ClInclude Include="..\inc\fat16.h" />
|
||||||
<ClInclude Include="..\inc\fat32.h" />
|
<ClInclude Include="..\inc\fat32.h" />
|
||||||
|
@ -47,6 +49,7 @@
|
||||||
<ClInclude Include="..\inc\mbr_vista.h" />
|
<ClInclude Include="..\inc\mbr_vista.h" />
|
||||||
<ClInclude Include="..\inc\mbr_win7.h" />
|
<ClInclude Include="..\inc\mbr_win7.h" />
|
||||||
<ClInclude Include="..\inc\mbr_zero.h" />
|
<ClInclude Include="..\inc\mbr_zero.h" />
|
||||||
|
<ClInclude Include="..\inc\ntfs.h" />
|
||||||
<ClInclude Include="..\inc\partition_info.h" />
|
<ClInclude Include="..\inc\partition_info.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -55,6 +58,7 @@
|
||||||
<ClCompile Include="..\fat16.c" />
|
<ClCompile Include="..\fat16.c" />
|
||||||
<ClCompile Include="..\fat32.c" />
|
<ClCompile Include="..\fat32.c" />
|
||||||
<ClCompile Include="..\file.c" />
|
<ClCompile Include="..\file.c" />
|
||||||
|
<ClCompile Include="..\ntfs.c" />
|
||||||
<ClCompile Include="..\partition_info.c" />
|
<ClCompile Include="..\partition_info.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
|
@ -98,6 +98,15 @@
|
||||||
<ClInclude Include="..\inc\mbr_zero.h">
|
<ClInclude Include="..\inc\mbr_zero.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\inc\ntfs.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\inc\br_ntfs_0x0.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\inc\br_ntfs_0x54.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\br.c">
|
<ClCompile Include="..\br.c">
|
||||||
|
@ -118,5 +127,8 @@
|
||||||
<ClCompile Include="..\partition_info.c">
|
<ClCompile Include="..\partition_info.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\ntfs.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -17,4 +17,5 @@ SOURCES=file.c \
|
||||||
fat12.c \
|
fat12.c \
|
||||||
fat16.c \
|
fat16.c \
|
||||||
fat32.c \
|
fat32.c \
|
||||||
|
ntfs.c \
|
||||||
partition_info.c
|
partition_info.c
|
|
@ -1,4 +1,4 @@
|
||||||
noinst_LIBRARIES = libmssys.a
|
noinst_LIBRARIES = libmssys.a
|
||||||
|
|
||||||
libmssys_a_SOURCES = fat12.c fat16.c fat32.c partition_info.c br.c file.c
|
libmssys_a_SOURCES = fat12.c fat16.c fat32.c ntfs.c partition_info.c br.c file.c
|
||||||
libmssys_a_CFLAGS = -I./inc $(AM_CFLAGS)
|
libmssys_a_CFLAGS = -I./inc $(AM_CFLAGS)
|
||||||
|
|
|
@ -54,8 +54,8 @@ libmssys_a_AR = $(AR) $(ARFLAGS)
|
||||||
libmssys_a_LIBADD =
|
libmssys_a_LIBADD =
|
||||||
am_libmssys_a_OBJECTS = libmssys_a-fat12.$(OBJEXT) \
|
am_libmssys_a_OBJECTS = libmssys_a-fat12.$(OBJEXT) \
|
||||||
libmssys_a-fat16.$(OBJEXT) libmssys_a-fat32.$(OBJEXT) \
|
libmssys_a-fat16.$(OBJEXT) libmssys_a-fat32.$(OBJEXT) \
|
||||||
libmssys_a-partition_info.$(OBJEXT) libmssys_a-br.$(OBJEXT) \
|
libmssys_a-ntfs.$(OBJEXT) libmssys_a-partition_info.$(OBJEXT) \
|
||||||
libmssys_a-file.$(OBJEXT)
|
libmssys_a-br.$(OBJEXT) libmssys_a-file.$(OBJEXT)
|
||||||
libmssys_a_OBJECTS = $(am_libmssys_a_OBJECTS)
|
libmssys_a_OBJECTS = $(am_libmssys_a_OBJECTS)
|
||||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||||
depcomp =
|
depcomp =
|
||||||
|
@ -168,7 +168,7 @@ top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
noinst_LIBRARIES = libmssys.a
|
noinst_LIBRARIES = libmssys.a
|
||||||
libmssys_a_SOURCES = fat12.c fat16.c fat32.c partition_info.c br.c file.c
|
libmssys_a_SOURCES = fat12.c fat16.c fat32.c ntfs.c partition_info.c br.c file.c
|
||||||
libmssys_a_CFLAGS = -I./inc $(AM_CFLAGS)
|
libmssys_a_CFLAGS = -I./inc $(AM_CFLAGS)
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
|
@ -250,6 +250,14 @@ libmssys_a-fat32.obj: fat32.c
|
||||||
$(AM_V_CC) @AM_BACKSLASH@
|
$(AM_V_CC) @AM_BACKSLASH@
|
||||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmssys_a_CFLAGS) $(CFLAGS) -c -o libmssys_a-fat32.obj `if test -f 'fat32.c'; then $(CYGPATH_W) 'fat32.c'; else $(CYGPATH_W) '$(srcdir)/fat32.c'; fi`
|
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmssys_a_CFLAGS) $(CFLAGS) -c -o libmssys_a-fat32.obj `if test -f 'fat32.c'; then $(CYGPATH_W) 'fat32.c'; else $(CYGPATH_W) '$(srcdir)/fat32.c'; fi`
|
||||||
|
|
||||||
|
libmssys_a-ntfs.o: ntfs.c
|
||||||
|
$(AM_V_CC) @AM_BACKSLASH@
|
||||||
|
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmssys_a_CFLAGS) $(CFLAGS) -c -o libmssys_a-ntfs.o `test -f 'ntfs.c' || echo '$(srcdir)/'`ntfs.c
|
||||||
|
|
||||||
|
libmssys_a-ntfs.obj: ntfs.c
|
||||||
|
$(AM_V_CC) @AM_BACKSLASH@
|
||||||
|
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmssys_a_CFLAGS) $(CFLAGS) -c -o libmssys_a-ntfs.obj `if test -f 'ntfs.c'; then $(CYGPATH_W) 'ntfs.c'; else $(CYGPATH_W) '$(srcdir)/ntfs.c'; fi`
|
||||||
|
|
||||||
libmssys_a-partition_info.o: partition_info.c
|
libmssys_a-partition_info.o: partition_info.c
|
||||||
$(AM_V_CC) @AM_BACKSLASH@
|
$(AM_V_CC) @AM_BACKSLASH@
|
||||||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmssys_a_CFLAGS) $(CFLAGS) -c -o libmssys_a-partition_info.o `test -f 'partition_info.c' || echo '$(srcdir)/'`partition_info.c
|
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmssys_a_CFLAGS) $(CFLAGS) -c -o libmssys_a-partition_info.o `test -f 'partition_info.c' || echo '$(srcdir)/'`partition_info.c
|
||||||
|
|
3
src/ms-sys/inc/br_ntfs_0x0.h
Normal file
3
src/ms-sys/inc/br_ntfs_0x0.h
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
unsigned char br_ntfs_0x0[] = {
|
||||||
|
0xEB, 0x52, 0x90, 0x4E, 0x54, 0x46, 0x53, 0x20, 0x20, 0x20, 0x20
|
||||||
|
};
|
340
src/ms-sys/inc/br_ntfs_0x54.h
Normal file
340
src/ms-sys/inc/br_ntfs_0x54.h
Normal file
|
@ -0,0 +1,340 @@
|
||||||
|
unsigned char br_ntfs_0x54[] = {
|
||||||
|
0xFA, 0x33, 0xC0, 0x8E, 0xD0, 0xBC, 0x00, 0x7C, 0xFB, 0x68, 0xC0, 0x07,
|
||||||
|
0x1F, 0x1E, 0x68, 0x66, 0x00, 0xCB, 0x88, 0x16, 0x0E, 0x00, 0x66, 0x81,
|
||||||
|
0x3E, 0x03, 0x00, 0x4E, 0x54, 0x46, 0x53, 0x75, 0x15, 0xB4, 0x41, 0xBB,
|
||||||
|
0xAA, 0x55, 0xCD, 0x13, 0x72, 0x0C, 0x81, 0xFB, 0x55, 0xAA, 0x75, 0x06,
|
||||||
|
0xF7, 0xC1, 0x01, 0x00, 0x75, 0x03, 0xE9, 0xDD, 0x00, 0x1E, 0x83, 0xEC,
|
||||||
|
0x18, 0x68, 0x1A, 0x00, 0xB4, 0x48, 0x8A, 0x16, 0x0E, 0x00, 0x8B, 0xF4,
|
||||||
|
0x16, 0x1F, 0xCD, 0x13, 0x9F, 0x83, 0xC4, 0x18, 0x9E, 0x58, 0x1F, 0x72,
|
||||||
|
0xE1, 0x3B, 0x06, 0x0B, 0x00, 0x75, 0xDB, 0xA3, 0x0F, 0x00, 0xC1, 0x2E,
|
||||||
|
0x0F, 0x00, 0x04, 0x1E, 0x5A, 0x33, 0xDB, 0xB9, 0x00, 0x20, 0x2B, 0xC8,
|
||||||
|
0x66, 0xFF, 0x06, 0x11, 0x00, 0x03, 0x16, 0x0F, 0x00, 0x8E, 0xC2, 0xFF,
|
||||||
|
0x06, 0x16, 0x00, 0xE8, 0x4B, 0x00, 0x2B, 0xC8, 0x77, 0xEF, 0xB8, 0x00,
|
||||||
|
0xBB, 0xCD, 0x1A, 0x66, 0x23, 0xC0, 0x75, 0x2D, 0x66, 0x81, 0xFB, 0x54,
|
||||||
|
0x43, 0x50, 0x41, 0x75, 0x24, 0x81, 0xF9, 0x02, 0x01, 0x72, 0x1E, 0x16,
|
||||||
|
0x68, 0x07, 0xBB, 0x16, 0x68, 0x70, 0x0E, 0x16, 0x68, 0x09, 0x00, 0x66,
|
||||||
|
0x53, 0x66, 0x53, 0x66, 0x55, 0x16, 0x16, 0x16, 0x68, 0xB8, 0x01, 0x66,
|
||||||
|
0x61, 0x0E, 0x07, 0xCD, 0x1A, 0x33, 0xC0, 0xBF, 0x28, 0x10, 0xB9, 0xD8,
|
||||||
|
0x0F, 0xFC, 0xF3, 0xAA, 0xE9, 0x5F, 0x01, 0x90, 0x90, 0x66, 0x60, 0x1E,
|
||||||
|
0x06, 0x66, 0xA1, 0x11, 0x00, 0x66, 0x03, 0x06, 0x1C, 0x00, 0x1E, 0x66,
|
||||||
|
0x68, 0x00, 0x00, 0x00, 0x00, 0x66, 0x50, 0x06, 0x53, 0x68, 0x01, 0x00,
|
||||||
|
0x68, 0x10, 0x00, 0xB4, 0x42, 0x8A, 0x16, 0x0E, 0x00, 0x16, 0x1F, 0x8B,
|
||||||
|
0xF4, 0xCD, 0x13, 0x66, 0x59, 0x5B, 0x5A, 0x66, 0x59, 0x66, 0x59, 0x1F,
|
||||||
|
0x0F, 0x82, 0x16, 0x00, 0x66, 0xFF, 0x06, 0x11, 0x00, 0x03, 0x16, 0x0F,
|
||||||
|
0x00, 0x8E, 0xC2, 0xFF, 0x0E, 0x16, 0x00, 0x75, 0xBC, 0x07, 0x1F, 0x66,
|
||||||
|
0x61, 0xC3, 0xA0, 0xF8, 0x01, 0xE8, 0x09, 0x00, 0xA0, 0xFB, 0x01, 0xE8,
|
||||||
|
0x03, 0x00, 0xF4, 0xEB, 0xFD, 0xB4, 0x01, 0x8B, 0xF0, 0xAC, 0x3C, 0x00,
|
||||||
|
0x74, 0x09, 0xB4, 0x0E, 0xBB, 0x07, 0x00, 0xCD, 0x10, 0xEB, 0xF2, 0xC3,
|
||||||
|
0x0D, 0x0A, 0x41, 0x20, 0x64, 0x69, 0x73, 0x6B, 0x20, 0x72, 0x65, 0x61,
|
||||||
|
0x64, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x6F, 0x63, 0x63, 0x75,
|
||||||
|
0x72, 0x72, 0x65, 0x64, 0x00, 0x0D, 0x0A, 0x42, 0x4F, 0x4F, 0x54, 0x4D,
|
||||||
|
0x47, 0x52, 0x20, 0x69, 0x73, 0x20, 0x6D, 0x69, 0x73, 0x73, 0x69, 0x6E,
|
||||||
|
0x67, 0x00, 0x0D, 0x0A, 0x42, 0x4F, 0x4F, 0x54, 0x4D, 0x47, 0x52, 0x20,
|
||||||
|
0x69, 0x73, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65,
|
||||||
|
0x64, 0x00, 0x0D, 0x0A, 0x50, 0x72, 0x65, 0x73, 0x73, 0x20, 0x43, 0x74,
|
||||||
|
0x72, 0x6C, 0x2B, 0x41, 0x6C, 0x74, 0x2B, 0x44, 0x65, 0x6C, 0x20, 0x74,
|
||||||
|
0x6F, 0x20, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0D, 0x0A, 0x00,
|
||||||
|
0x8C, 0xA9, 0xBE, 0xD6, 0x00, 0x00, 0x55, 0xAA, 0x07, 0x00, 0x42, 0x00,
|
||||||
|
0x4F, 0x00, 0x4F, 0x00, 0x54, 0x00, 0x4D, 0x00, 0x47, 0x00, 0x52, 0x00,
|
||||||
|
0x04, 0x00, 0x24, 0x00, 0x49, 0x00, 0x33, 0x00, 0x30, 0x00, 0x00, 0xD4,
|
||||||
|
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x22,
|
||||||
|
0x90, 0x90, 0x05, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x4C, 0x00, 0x44, 0x00,
|
||||||
|
0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0F,
|
||||||
|
0xB7, 0x06, 0x0B, 0x00, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7,
|
||||||
|
0xE3, 0x66, 0xA3, 0x52, 0x02, 0x66, 0x8B, 0x0E, 0x40, 0x00, 0x80, 0xF9,
|
||||||
|
0x00, 0x0F, 0x8F, 0x0E, 0x00, 0xF6, 0xD9, 0x66, 0xB8, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x66, 0xD3, 0xE0, 0xEB, 0x08, 0x90, 0x66, 0xA1, 0x52, 0x02, 0x66,
|
||||||
|
0xF7, 0xE1, 0x66, 0xA3, 0x66, 0x02, 0x66, 0x0F, 0xB7, 0x1E, 0x0B, 0x00,
|
||||||
|
0x66, 0x33, 0xD2, 0x66, 0xF7, 0xF3, 0x66, 0xA3, 0x56, 0x02, 0xE8, 0x95,
|
||||||
|
0x04, 0x66, 0x8B, 0x0E, 0x4E, 0x02, 0x66, 0x89, 0x0E, 0x26, 0x02, 0x66,
|
||||||
|
0x03, 0x0E, 0x66, 0x02, 0x66, 0x89, 0x0E, 0x2A, 0x02, 0x66, 0x03, 0x0E,
|
||||||
|
0x66, 0x02, 0x66, 0x89, 0x0E, 0x2E, 0x02, 0x66, 0x03, 0x0E, 0x66, 0x02,
|
||||||
|
0x66, 0x89, 0x0E, 0x3E, 0x02, 0x66, 0x03, 0x0E, 0x66, 0x02, 0x66, 0x89,
|
||||||
|
0x0E, 0x46, 0x02, 0x66, 0xB8, 0x90, 0x00, 0x00, 0x00, 0x66, 0x8B, 0x0E,
|
||||||
|
0x26, 0x02, 0xE8, 0x83, 0x09, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x5E, 0xFE,
|
||||||
|
0x66, 0xA3, 0x32, 0x02, 0x66, 0xB8, 0xA0, 0x00, 0x00, 0x00, 0x66, 0x8B,
|
||||||
|
0x0E, 0x2A, 0x02, 0xE8, 0x6A, 0x09, 0x66, 0xA3, 0x36, 0x02, 0x66, 0xB8,
|
||||||
|
0xB0, 0x00, 0x00, 0x00, 0x66, 0x8B, 0x0E, 0x2E, 0x02, 0xE8, 0x58, 0x09,
|
||||||
|
0x66, 0xA3, 0x3A, 0x02, 0x66, 0xA1, 0x32, 0x02, 0x66, 0x0B, 0xC0, 0x0F,
|
||||||
|
0x84, 0x2B, 0xFE, 0x67, 0x80, 0x78, 0x08, 0x00, 0x0F, 0x85, 0x22, 0xFE,
|
||||||
|
0x67, 0x66, 0x8D, 0x50, 0x10, 0x67, 0x03, 0x42, 0x04, 0x67, 0x66, 0x0F,
|
||||||
|
0xB6, 0x48, 0x0C, 0x66, 0x89, 0x0E, 0x72, 0x02, 0x67, 0x66, 0x8B, 0x48,
|
||||||
|
0x08, 0x66, 0x89, 0x0E, 0x6E, 0x02, 0x66, 0xA1, 0x6E, 0x02, 0x66, 0x0F,
|
||||||
|
0xB7, 0x0E, 0x0B, 0x00, 0x66, 0x33, 0xD2, 0x66, 0xF7, 0xF1, 0x66, 0xA3,
|
||||||
|
0x76, 0x02, 0x66, 0xA1, 0x46, 0x02, 0x66, 0x03, 0x06, 0x6E, 0x02, 0x66,
|
||||||
|
0xA3, 0x4A, 0x02, 0x66, 0x83, 0x3E, 0x36, 0x02, 0x00, 0x0F, 0x84, 0x1D,
|
||||||
|
0x00, 0x66, 0x83, 0x3E, 0x3A, 0x02, 0x00, 0x0F, 0x84, 0xCF, 0xFD, 0x66,
|
||||||
|
0x8B, 0x1E, 0x3A, 0x02, 0x1E, 0x07, 0x66, 0x8B, 0x3E, 0x4A, 0x02, 0x66,
|
||||||
|
0xA1, 0x2E, 0x02, 0xE8, 0xE0, 0x01, 0x66, 0x0F, 0xB7, 0x0E, 0x00, 0x02,
|
||||||
|
0x66, 0xB8, 0x02, 0x02, 0x00, 0x00, 0xE8, 0x22, 0x08, 0x66, 0x0B, 0xC0,
|
||||||
|
0x0F, 0x85, 0x16, 0x00, 0x66, 0x0F, 0xB7, 0x0E, 0x5A, 0x02, 0x66, 0xB8,
|
||||||
|
0x5C, 0x02, 0x00, 0x00, 0xE8, 0x0C, 0x08, 0x66, 0x0B, 0xC0, 0x0F, 0x84,
|
||||||
|
0x42, 0x0C, 0x67, 0x66, 0x8B, 0x00, 0x1E, 0x07, 0x66, 0x8B, 0x3E, 0x3E,
|
||||||
|
0x02, 0xE8, 0x3F, 0x06, 0x66, 0xA1, 0x3E, 0x02, 0x66, 0xBB, 0x20, 0x00,
|
||||||
|
0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x66, 0xBA, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xE8, 0xE4, 0x00, 0x66, 0x85, 0xC0, 0x0F, 0x85, 0x23, 0x00,
|
||||||
|
0x66, 0xA1, 0x3E, 0x02, 0x66, 0xBB, 0x80, 0x00, 0x00, 0x00, 0x66, 0xB9,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xC4,
|
||||||
|
0x00, 0x66, 0x0B, 0xC0, 0x0F, 0x85, 0x44, 0x00, 0xE9, 0xF1, 0x0B, 0x66,
|
||||||
|
0x33, 0xD2, 0x66, 0xB9, 0x80, 0x00, 0x00, 0x00, 0x66, 0xA1, 0x3E, 0x02,
|
||||||
|
0xE8, 0xCA, 0x08, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0xDA, 0x0B, 0x1E, 0x07,
|
||||||
|
0x66, 0x8B, 0x3E, 0x3E, 0x02, 0xE8, 0xDB, 0x05, 0x66, 0xA1, 0x3E, 0x02,
|
||||||
|
0x66, 0xBB, 0x80, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x80, 0x00, 0x66, 0x0B, 0xC0,
|
||||||
|
0x0F, 0x84, 0xB0, 0x0B, 0x67, 0x66, 0x0F, 0xB7, 0x58, 0x0C, 0x66, 0x81,
|
||||||
|
0xE3, 0xFF, 0x00, 0x00, 0x00, 0x0F, 0x85, 0xA5, 0x0B, 0x66, 0x8B, 0xD8,
|
||||||
|
0x68, 0x00, 0x20, 0x07, 0x66, 0x2B, 0xFF, 0x66, 0xA1, 0x3E, 0x02, 0xE8,
|
||||||
|
0x00, 0x01, 0x68, 0x00, 0x20, 0x07, 0x66, 0x2B, 0xFF, 0x66, 0xA1, 0x3E,
|
||||||
|
0x02, 0xE8, 0xAC, 0x0A, 0x8A, 0x16, 0x0E, 0x00, 0xB8, 0xE8, 0x03, 0x8E,
|
||||||
|
0xC0, 0x8D, 0x36, 0x0B, 0x00, 0x2B, 0xC0, 0x68, 0x00, 0x20, 0x50, 0xCB,
|
||||||
|
0x06, 0x1E, 0x66, 0x60, 0x66, 0x8B, 0xDA, 0x66, 0x0F, 0xB6, 0x0E, 0x0D,
|
||||||
|
0x00, 0x66, 0xF7, 0xE1, 0x66, 0xA3, 0x11, 0x00, 0x66, 0x8B, 0xC3, 0x66,
|
||||||
|
0xF7, 0xE1, 0xA3, 0x16, 0x00, 0x8B, 0xDF, 0x83, 0xE3, 0x0F, 0x8C, 0xC0,
|
||||||
|
0x66, 0xC1, 0xEF, 0x04, 0x03, 0xC7, 0x50, 0x07, 0xE8, 0x3E, 0xFC, 0x66,
|
||||||
|
0x61, 0x90, 0x1F, 0x07, 0xC3, 0x67, 0x03, 0x40, 0x14, 0x67, 0x66, 0x83,
|
||||||
|
0x38, 0xFF, 0x0F, 0x84, 0x4C, 0x00, 0x67, 0x66, 0x39, 0x18, 0x0F, 0x85,
|
||||||
|
0x33, 0x00, 0x66, 0x0B, 0xC9, 0x0F, 0x85, 0x0A, 0x00, 0x67, 0x80, 0x78,
|
||||||
|
0x09, 0x00, 0x0F, 0x85, 0x23, 0x00, 0xC3, 0x67, 0x3A, 0x48, 0x09, 0x0F,
|
||||||
|
0x85, 0x1A, 0x00, 0x66, 0x8B, 0xF0, 0x67, 0x03, 0x70, 0x0A, 0xE8, 0x97,
|
||||||
|
0x06, 0x66, 0x51, 0x1E, 0x07, 0x66, 0x8B, 0xFA, 0xF3, 0xA7, 0x66, 0x59,
|
||||||
|
0x0F, 0x85, 0x01, 0x00, 0xC3, 0x67, 0x66, 0x83, 0x78, 0x04, 0x00, 0x0F,
|
||||||
|
0x84, 0x07, 0x00, 0x67, 0x66, 0x03, 0x40, 0x04, 0xEB, 0xAB, 0x66, 0x2B,
|
||||||
|
0xC0, 0xC3, 0x66, 0x8B, 0xF3, 0xE8, 0x6C, 0x06, 0x67, 0x66, 0x03, 0x00,
|
||||||
|
0x67, 0xF7, 0x40, 0x0C, 0x02, 0x00, 0x0F, 0x85, 0x34, 0x00, 0x67, 0x66,
|
||||||
|
0x8D, 0x50, 0x10, 0x67, 0x3A, 0x4A, 0x40, 0x0F, 0x85, 0x18, 0x00, 0x67,
|
||||||
|
0x66, 0x8D, 0x72, 0x42, 0xE8, 0x49, 0x06, 0x66, 0x51, 0x1E, 0x07, 0x66,
|
||||||
|
0x8B, 0xFB, 0xF3, 0xA7, 0x66, 0x59, 0x0F, 0x85, 0x01, 0x00, 0xC3, 0x67,
|
||||||
|
0x83, 0x78, 0x08, 0x00, 0x0F, 0x84, 0x06, 0x00, 0x67, 0x03, 0x40, 0x08,
|
||||||
|
0xEB, 0xC2, 0x66, 0x33, 0xC0, 0xC3, 0x67, 0x80, 0x7B, 0x08, 0x00, 0x0F,
|
||||||
|
0x85, 0x1C, 0x00, 0x06, 0x1E, 0x66, 0x60, 0x67, 0x66, 0x8D, 0x53, 0x10,
|
||||||
|
0x67, 0x66, 0x8B, 0x0A, 0x66, 0x8B, 0xF3, 0x67, 0x03, 0x72, 0x04, 0xF3,
|
||||||
|
0xA4, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x66, 0x50, 0x67, 0x66, 0x8D,
|
||||||
|
0x53, 0x10, 0x66, 0x85, 0xC0, 0x0F, 0x85, 0x0A, 0x00, 0x67, 0x66, 0x8B,
|
||||||
|
0x4A, 0x08, 0x66, 0x41, 0xEB, 0x11, 0x90, 0x67, 0x66, 0x8B, 0x42, 0x18,
|
||||||
|
0x66, 0x33, 0xD2, 0x66, 0xF7, 0x36, 0x52, 0x02, 0x66, 0x8B, 0xC8, 0x66,
|
||||||
|
0x2B, 0xC0, 0x66, 0x5E, 0xE8, 0x01, 0x00, 0xC3, 0x06, 0x1E, 0x66, 0x60,
|
||||||
|
0x67, 0x80, 0x7B, 0x08, 0x01, 0x0F, 0x84, 0x03, 0x00, 0xE9, 0x76, 0xFB,
|
||||||
|
0x66, 0x83, 0xF9, 0x00, 0x0F, 0x85, 0x06, 0x00, 0x66, 0x61, 0x90, 0x1F,
|
||||||
|
0x07, 0xC3, 0x66, 0x53, 0x66, 0x50, 0x66, 0x51, 0x66, 0x56, 0x66, 0x57,
|
||||||
|
0x06, 0xE8, 0x91, 0x04, 0x66, 0x8B, 0xD1, 0x07, 0x66, 0x5F, 0x66, 0x5E,
|
||||||
|
0x66, 0x59, 0x66, 0x85, 0xC0, 0x0F, 0x84, 0x34, 0x00, 0x66, 0x3B, 0xCA,
|
||||||
|
0x0F, 0x8D, 0x03, 0x00, 0x66, 0x8B, 0xD1, 0xE8, 0x82, 0xFE, 0x66, 0x2B,
|
||||||
|
0xCA, 0x66, 0x8B, 0xDA, 0x66, 0x8B, 0xC2, 0x66, 0x0F, 0xB6, 0x16, 0x0D,
|
||||||
|
0x00, 0x66, 0xF7, 0xE2, 0x66, 0x0F, 0xB7, 0x16, 0x0B, 0x00, 0x66, 0xF7,
|
||||||
|
0xE2, 0x66, 0x03, 0xF8, 0x66, 0x58, 0x66, 0x03, 0xC3, 0x66, 0x5B, 0xEB,
|
||||||
|
0x9F, 0x66, 0x85, 0xF6, 0x0F, 0x84, 0x0E, 0xFB, 0x66, 0x51, 0x66, 0x57,
|
||||||
|
0x06, 0x67, 0x66, 0x0F, 0xB6, 0x43, 0x09, 0x66, 0x85, 0xC0, 0x0F, 0x84,
|
||||||
|
0x20, 0x00, 0x66, 0xD1, 0xE0, 0x66, 0x2B, 0xE0, 0x66, 0x8B, 0xFC, 0x66,
|
||||||
|
0x54, 0x66, 0x56, 0x67, 0x66, 0x0F, 0xB7, 0x73, 0x0A, 0x66, 0x03, 0xF3,
|
||||||
|
0x66, 0x8B, 0xC8, 0xF3, 0xA4, 0x66, 0x5E, 0xEB, 0x03, 0x90, 0x66, 0x50,
|
||||||
|
0x66, 0x50, 0x67, 0x66, 0x8B, 0x03, 0x66, 0x50, 0x67, 0x66, 0x8B, 0x43,
|
||||||
|
0x18, 0x66, 0x50, 0x67, 0x66, 0x8B, 0x56, 0x20, 0x66, 0x85, 0xD2, 0x0F,
|
||||||
|
0x84, 0x0B, 0x00, 0x66, 0x8B, 0xFE, 0x1E, 0x07, 0x66, 0x8B, 0xC2, 0xE8,
|
||||||
|
0x71, 0x03, 0x66, 0x8B, 0xC6, 0x66, 0x5A, 0x66, 0x59, 0x66, 0x42, 0x66,
|
||||||
|
0x51, 0x66, 0x56, 0xE8, 0x3F, 0x06, 0x66, 0x85, 0xC0, 0x0F, 0x84, 0x9D,
|
||||||
|
0xFA, 0x66, 0x5E, 0x66, 0x59, 0x66, 0x8B, 0xFE, 0x1E, 0x07, 0xE8, 0x4E,
|
||||||
|
0x03, 0x66, 0x8B, 0xC6, 0x66, 0x8B, 0xD9, 0x66, 0x59, 0x66, 0x5A, 0x66,
|
||||||
|
0x51, 0x66, 0x56, 0x66, 0xD1, 0xE9, 0xE8, 0xF8, 0xFD, 0x66, 0x85, 0xC0,
|
||||||
|
0x0F, 0x84, 0x76, 0xFA, 0x66, 0x5E, 0x66, 0x59, 0x66, 0x03, 0xE1, 0x07,
|
||||||
|
0x66, 0x5F, 0x66, 0x59, 0x66, 0x8B, 0xD0, 0x66, 0x58, 0x66, 0x5B, 0x66,
|
||||||
|
0x8B, 0xDA, 0xE9, 0xF5, 0xFE, 0x06, 0x1E, 0x66, 0x60, 0x26, 0x67, 0x66,
|
||||||
|
0x0F, 0xB7, 0x5F, 0x04, 0x26, 0x67, 0x66, 0x0F, 0xB7, 0x4F, 0x06, 0x66,
|
||||||
|
0x0B, 0xC9, 0x0F, 0x84, 0x44, 0xFA, 0x66, 0x03, 0xDF, 0x66, 0x83, 0xC3,
|
||||||
|
0x02, 0x66, 0x81, 0xC7, 0xFE, 0x01, 0x00, 0x00, 0x66, 0x49, 0x66, 0x0B,
|
||||||
|
0xC9, 0x0F, 0x84, 0x17, 0x00, 0x26, 0x67, 0x8B, 0x03, 0x26, 0x67, 0x89,
|
||||||
|
0x07, 0x66, 0x83, 0xC3, 0x02, 0x66, 0x81, 0xC7, 0x00, 0x02, 0x00, 0x00,
|
||||||
|
0x66, 0x49, 0xEB, 0xE2, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x06, 0x1E,
|
||||||
|
0x66, 0x60, 0x66, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x66, 0xA3, 0x22, 0x02,
|
||||||
|
0x66, 0xA1, 0x1E, 0x02, 0x66, 0x03, 0x06, 0x66, 0x02, 0x66, 0xA3, 0x6A,
|
||||||
|
0x02, 0x66, 0x03, 0x06, 0x66, 0x02, 0x66, 0xA3, 0x4E, 0x02, 0x66, 0xA1,
|
||||||
|
0x30, 0x00, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xE3, 0x66,
|
||||||
|
0x8B, 0x1E, 0x4E, 0x02, 0x66, 0x89, 0x07, 0x66, 0xA3, 0x11, 0x00, 0x83,
|
||||||
|
0xC3, 0x04, 0x66, 0xA1, 0x56, 0x02, 0x66, 0x89, 0x07, 0xA3, 0x16, 0x00,
|
||||||
|
0x83, 0xC3, 0x04, 0x66, 0x89, 0x1E, 0x4E, 0x02, 0x66, 0x8B, 0x1E, 0x1E,
|
||||||
|
0x02, 0x1E, 0x07, 0xE8, 0x67, 0xF9, 0x66, 0x8B, 0xFB, 0xE8, 0x51, 0xFF,
|
||||||
|
0x66, 0xA1, 0x1E, 0x02, 0x66, 0xBB, 0x20, 0x00, 0x00, 0x00, 0x66, 0xB9,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x10,
|
||||||
|
0xFD, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x19, 0x01, 0x66, 0x8B, 0xD8, 0x1E,
|
||||||
|
0x07, 0x66, 0x8B, 0x3E, 0x1A, 0x02, 0x66, 0x33, 0xC0, 0xE8, 0xA2, 0xFD,
|
||||||
|
0x66, 0x8B, 0x1E, 0x1A, 0x02, 0x66, 0x81, 0x3F, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x0F, 0x84, 0xEB, 0x00, 0x03, 0x5F, 0x04, 0xEB, 0xF0, 0x66, 0x53, 0x66,
|
||||||
|
0x8B, 0x47, 0x10, 0x66, 0xF7, 0x26, 0x56, 0x02, 0x66, 0x50, 0x66, 0x33,
|
||||||
|
0xD2, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xF3, 0x66, 0x52,
|
||||||
|
0xE8, 0xDC, 0x00, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x44, 0xF9, 0x66, 0x8B,
|
||||||
|
0x0E, 0x56, 0x02, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xE3,
|
||||||
|
0x66, 0x5A, 0x66, 0x03, 0xC2, 0x66, 0x8B, 0x1E, 0x4E, 0x02, 0x66, 0x89,
|
||||||
|
0x07, 0x83, 0xC3, 0x04, 0x66, 0x0F, 0xB6, 0x06, 0x0D, 0x00, 0x66, 0x2B,
|
||||||
|
0xC2, 0x66, 0x3B, 0xC1, 0x0F, 0x86, 0x03, 0x00, 0x66, 0x8B, 0xC1, 0x66,
|
||||||
|
0x89, 0x07, 0x66, 0x2B, 0xC8, 0x66, 0x5A, 0x0F, 0x84, 0x75, 0x00, 0x66,
|
||||||
|
0x03, 0xC2, 0x66, 0x50, 0x66, 0x33, 0xD2, 0x66, 0x0F, 0xB6, 0x1E, 0x0D,
|
||||||
|
0x00, 0x66, 0xF7, 0xF3, 0x66, 0x51, 0xE8, 0x82, 0x00, 0x66, 0x59, 0x66,
|
||||||
|
0x0B, 0xC0, 0x0F, 0x84, 0xE8, 0xF8, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00,
|
||||||
|
0x66, 0xF7, 0xE3, 0x66, 0x8B, 0x1E, 0x4E, 0x02, 0x66, 0x8B, 0x17, 0x83,
|
||||||
|
0xC3, 0x04, 0x66, 0x03, 0x17, 0x66, 0x3B, 0xD0, 0x0F, 0x85, 0x15, 0x00,
|
||||||
|
0x66, 0x0F, 0xB6, 0x06, 0x0D, 0x00, 0x66, 0x3B, 0xC1, 0x0F, 0x86, 0x03,
|
||||||
|
0x00, 0x66, 0x8B, 0xC1, 0x66, 0x01, 0x07, 0xEB, 0xA5, 0x83, 0xC3, 0x04,
|
||||||
|
0x66, 0x89, 0x1E, 0x4E, 0x02, 0x66, 0x89, 0x07, 0x83, 0xC3, 0x04, 0x66,
|
||||||
|
0x0F, 0xB6, 0x06, 0x0D, 0x00, 0x66, 0x3B, 0xC1, 0x0F, 0x86, 0x03, 0x00,
|
||||||
|
0x66, 0x8B, 0xC1, 0x66, 0x89, 0x07, 0xEB, 0x82, 0x83, 0xC3, 0x04, 0x66,
|
||||||
|
0xFF, 0x06, 0x22, 0x02, 0x66, 0x89, 0x1E, 0x4E, 0x02, 0x66, 0x5B, 0x03,
|
||||||
|
0x5F, 0x04, 0x66, 0x81, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x84, 0x0C,
|
||||||
|
0xFF, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x66, 0x8B, 0xD0, 0x66, 0x8B,
|
||||||
|
0x0E, 0x22, 0x02, 0x66, 0x8B, 0x36, 0x6A, 0x02, 0x66, 0x03, 0x36, 0x66,
|
||||||
|
0x02, 0x66, 0x52, 0x66, 0x51, 0x66, 0x52, 0x66, 0x8B, 0x1E, 0x6A, 0x02,
|
||||||
|
0x66, 0x8B, 0x3E, 0x56, 0x02, 0x66, 0x8B, 0x04, 0x66, 0xA3, 0x11, 0x00,
|
||||||
|
0x83, 0xC6, 0x04, 0x66, 0x8B, 0x04, 0xA3, 0x16, 0x00, 0x83, 0xC6, 0x04,
|
||||||
|
0x1E, 0x07, 0xE8, 0xE8, 0xF7, 0x66, 0x2B, 0xF8, 0x0F, 0x84, 0x08, 0x00,
|
||||||
|
0xF7, 0x26, 0x0B, 0x00, 0x03, 0xD8, 0xEB, 0xD9, 0x66, 0x8B, 0x3E, 0x6A,
|
||||||
|
0x02, 0x1E, 0x07, 0xE8, 0xBF, 0xFD, 0x66, 0xA1, 0x6A, 0x02, 0x66, 0xBB,
|
||||||
|
0x80, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x66, 0x8B,
|
||||||
|
0xD1, 0xE8, 0x81, 0xFB, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0xFF, 0xF7, 0x66,
|
||||||
|
0x8B, 0xD8, 0x66, 0x58, 0x66, 0x56, 0xE8, 0x2C, 0x01, 0x66, 0x5E, 0x66,
|
||||||
|
0x0B, 0xC0, 0x0F, 0x84, 0x05, 0x00, 0x66, 0x5B, 0x66, 0x5B, 0xC3, 0x66,
|
||||||
|
0x59, 0x66, 0x5A, 0xE2, 0x84, 0x66, 0x33, 0xC0, 0xC3, 0x06, 0x1E, 0x66,
|
||||||
|
0x60, 0x66, 0x50, 0x66, 0x51, 0x66, 0x33, 0xD2, 0x66, 0x0F, 0xB6, 0x1E,
|
||||||
|
0x0D, 0x00, 0x66, 0xF7, 0xF3, 0x66, 0x52, 0x66, 0x57, 0xE8, 0x53, 0xFF,
|
||||||
|
0x66, 0x5F, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0xB9, 0xF7, 0x66, 0x0F, 0xB6,
|
||||||
|
0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xE3, 0x66, 0x5A, 0x66, 0x03, 0xC2, 0x66,
|
||||||
|
0xA3, 0x11, 0x00, 0x66, 0x59, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66,
|
||||||
|
0x3B, 0xCB, 0x0F, 0x8E, 0x13, 0x00, 0x89, 0x1E, 0x16, 0x00, 0x66, 0x2B,
|
||||||
|
0xCB, 0x66, 0x58, 0x66, 0x03, 0xC3, 0x66, 0x50, 0x66, 0x51, 0xEB, 0x14,
|
||||||
|
0x90, 0x66, 0x58, 0x66, 0x03, 0xC1, 0x66, 0x50, 0x89, 0x0E, 0x16, 0x00,
|
||||||
|
0x66, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x66, 0x51, 0x06, 0x66, 0x57, 0x8B,
|
||||||
|
0xDF, 0x83, 0xE3, 0x0F, 0x8C, 0xC0, 0x66, 0xC1, 0xEF, 0x04, 0x03, 0xC7,
|
||||||
|
0x50, 0x07, 0xE8, 0x10, 0xF7, 0x66, 0x5F, 0x07, 0x66, 0x03, 0x3E, 0x52,
|
||||||
|
0x02, 0x66, 0x59, 0x66, 0x58, 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x8F, 0x70,
|
||||||
|
0xFF, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x06, 0x1E, 0x66, 0x60, 0x66,
|
||||||
|
0xF7, 0x26, 0x56, 0x02, 0x66, 0x8B, 0x0E, 0x56, 0x02, 0xE8, 0x55, 0xFF,
|
||||||
|
0xE8, 0xD2, 0xFC, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x06, 0x1E, 0x66,
|
||||||
|
0x60, 0x66, 0xF7, 0x26, 0x72, 0x02, 0x66, 0x8B, 0x1E, 0x36, 0x02, 0x66,
|
||||||
|
0x8B, 0x0E, 0x72, 0x02, 0x66, 0x8B, 0x36, 0x2A, 0x02, 0x1E, 0x07, 0x66,
|
||||||
|
0x8B, 0x3E, 0x46, 0x02, 0xE8, 0x81, 0xFB, 0xE8, 0xA7, 0xFC, 0x66, 0x61,
|
||||||
|
0x90, 0x1F, 0x07, 0xC3, 0x66, 0x50, 0x66, 0x53, 0x66, 0x51, 0x66, 0x8B,
|
||||||
|
0x1E, 0x4A, 0x02, 0x66, 0x8B, 0xC8, 0x66, 0xC1, 0xE8, 0x03, 0x66, 0x83,
|
||||||
|
0xE1, 0x07, 0x66, 0x03, 0xD8, 0x66, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x66,
|
||||||
|
0xD3, 0xE0, 0x67, 0x84, 0x03, 0x0F, 0x84, 0x04, 0x00, 0xF8, 0xEB, 0x02,
|
||||||
|
0x90, 0xF9, 0x66, 0x59, 0x66, 0x5B, 0x66, 0x58, 0xC3, 0x67, 0x80, 0x7B,
|
||||||
|
0x08, 0x01, 0x0F, 0x84, 0x04, 0x00, 0x66, 0x2B, 0xC0, 0xC3, 0x67, 0x66,
|
||||||
|
0x8D, 0x73, 0x10, 0x67, 0x66, 0x8B, 0x56, 0x08, 0x66, 0x3B, 0xC2, 0x0F,
|
||||||
|
0x87, 0x0B, 0x00, 0x67, 0x66, 0x8B, 0x16, 0x66, 0x3B, 0xC2, 0x0F, 0x83,
|
||||||
|
0x04, 0x00, 0x66, 0x2B, 0xC0, 0xC3, 0x67, 0x03, 0x5E, 0x10, 0x66, 0x2B,
|
||||||
|
0xF6, 0x67, 0x80, 0x3B, 0x00, 0x0F, 0x84, 0x3E, 0x00, 0xE8, 0x81, 0x00,
|
||||||
|
0x66, 0x03, 0xF1, 0xE8, 0x39, 0x00, 0x66, 0x03, 0xCA, 0x66, 0x3B, 0xC1,
|
||||||
|
0x0F, 0x8C, 0x21, 0x00, 0x66, 0x8B, 0xD1, 0x66, 0x50, 0x67, 0x66, 0x0F,
|
||||||
|
0xB6, 0x0B, 0x66, 0x8B, 0xC1, 0x66, 0x83, 0xE0, 0x0F, 0x66, 0xC1, 0xE9,
|
||||||
|
0x04, 0x66, 0x03, 0xD9, 0x66, 0x03, 0xD8, 0x66, 0x43, 0x66, 0x58, 0xEB,
|
||||||
|
0xC4, 0x66, 0x2B, 0xC8, 0x66, 0x2B, 0xC2, 0x66, 0x03, 0xC6, 0xC3, 0x66,
|
||||||
|
0x2B, 0xC0, 0xC3, 0x66, 0x2B, 0xC9, 0x67, 0x8A, 0x0B, 0x80, 0xE1, 0x0F,
|
||||||
|
0x66, 0x83, 0xF9, 0x00, 0x0F, 0x85, 0x04, 0x00, 0x66, 0x2B, 0xC9, 0xC3,
|
||||||
|
0x66, 0x53, 0x66, 0x52, 0x66, 0x03, 0xD9, 0x67, 0x66, 0x0F, 0xBE, 0x13,
|
||||||
|
0x66, 0x49, 0x66, 0x4B, 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x84, 0x0D, 0x00,
|
||||||
|
0x66, 0xC1, 0xE2, 0x08, 0x67, 0x8A, 0x13, 0x66, 0x4B, 0x66, 0x49, 0xEB,
|
||||||
|
0xEB, 0x66, 0x8B, 0xCA, 0x66, 0x5A, 0x66, 0x5B, 0xC3, 0x66, 0x53, 0x66,
|
||||||
|
0x52, 0x66, 0x2B, 0xD2, 0x67, 0x8A, 0x13, 0x66, 0x83, 0xE2, 0x0F, 0x66,
|
||||||
|
0x2B, 0xC9, 0x67, 0x8A, 0x0B, 0xC0, 0xE9, 0x04, 0x66, 0x83, 0xF9, 0x00,
|
||||||
|
0x0F, 0x85, 0x08, 0x00, 0x66, 0x2B, 0xC9, 0x66, 0x5A, 0x66, 0x5B, 0xC3,
|
||||||
|
0x66, 0x03, 0xDA, 0x66, 0x03, 0xD9, 0x67, 0x66, 0x0F, 0xBE, 0x13, 0x66,
|
||||||
|
0x49, 0x66, 0x4B, 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x84, 0x0D, 0x00, 0x66,
|
||||||
|
0xC1, 0xE2, 0x08, 0x67, 0x8A, 0x13, 0x66, 0x4B, 0x66, 0x49, 0xEB, 0xEB,
|
||||||
|
0x66, 0x8B, 0xCA, 0x66, 0x5A, 0x66, 0x5B, 0xC3, 0x66, 0x0B, 0xC9, 0x0F,
|
||||||
|
0x85, 0x01, 0x00, 0xC3, 0x66, 0x51, 0x66, 0x56, 0x67, 0x83, 0x3E, 0x61,
|
||||||
|
0x0F, 0x8C, 0x0C, 0x00, 0x67, 0x83, 0x3E, 0x7A, 0x0F, 0x8F, 0x04, 0x00,
|
||||||
|
0x67, 0x83, 0x2E, 0x20, 0x66, 0x83, 0xC6, 0x02, 0xE2, 0xE6, 0x66, 0x5E,
|
||||||
|
0x66, 0x59, 0xC3, 0x66, 0x50, 0x66, 0x51, 0x66, 0x8B, 0xD0, 0x66, 0xA1,
|
||||||
|
0x32, 0x02, 0x67, 0x66, 0x8D, 0x58, 0x10, 0x67, 0x03, 0x43, 0x04, 0x67,
|
||||||
|
0x66, 0x8D, 0x40, 0x10, 0x66, 0x8B, 0xDA, 0xE8, 0x44, 0xF9, 0x66, 0x0B,
|
||||||
|
0xC0, 0x0F, 0x84, 0x05, 0x00, 0x66, 0x59, 0x66, 0x59, 0xC3, 0x66, 0xA1,
|
||||||
|
0x36, 0x02, 0x66, 0x0B, 0xC0, 0x0F, 0x85, 0x08, 0x00, 0x66, 0x59, 0x66,
|
||||||
|
0x59, 0x66, 0x33, 0xC0, 0xC3, 0x66, 0x8B, 0x16, 0x36, 0x02, 0x67, 0x66,
|
||||||
|
0x8D, 0x52, 0x10, 0x67, 0x66, 0x8B, 0x42, 0x18, 0x66, 0x33, 0xD2, 0x66,
|
||||||
|
0xF7, 0x36, 0x6E, 0x02, 0x66, 0x33, 0xF6, 0x66, 0x50, 0x66, 0x56, 0x66,
|
||||||
|
0x58, 0x66, 0x5E, 0x66, 0x3B, 0xC6, 0x0F, 0x84, 0x3A, 0x00, 0x66, 0x56,
|
||||||
|
0x66, 0x40, 0x66, 0x50, 0x66, 0x48, 0xE8, 0x1B, 0xFE, 0x72, 0xE8, 0xE8,
|
||||||
|
0xEB, 0xFD, 0x66, 0x5A, 0x66, 0x5E, 0x66, 0x59, 0x66, 0x5B, 0x66, 0x53,
|
||||||
|
0x66, 0x51, 0x66, 0x56, 0x66, 0x52, 0x66, 0xA1, 0x46, 0x02, 0x67, 0x66,
|
||||||
|
0x8D, 0x40, 0x18, 0xE8, 0xD0, 0xF8, 0x66, 0x0B, 0xC0, 0x74, 0xC4, 0x66,
|
||||||
|
0x59, 0x66, 0x59, 0x66, 0x59, 0x66, 0x59, 0xC3, 0x66, 0x59, 0x66, 0x59,
|
||||||
|
0x66, 0x33, 0xC0, 0xC3, 0x66, 0x51, 0x66, 0x50, 0x66, 0xB8, 0x05, 0x00,
|
||||||
|
0x00, 0x00, 0x1E, 0x07, 0x66, 0x8B, 0xF9, 0xE8, 0x8D, 0xFD, 0x66, 0x8B,
|
||||||
|
0xC1, 0x66, 0xBB, 0x20, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x33, 0xF8, 0x66, 0x5B,
|
||||||
|
0x66, 0x59, 0x66, 0x85, 0xC0, 0x0F, 0x85, 0x15, 0x00, 0x66, 0x8B, 0xC1,
|
||||||
|
0x66, 0x0F, 0xB7, 0x0E, 0x10, 0x02, 0x66, 0xBA, 0x12, 0x02, 0x00, 0x00,
|
||||||
|
0xE8, 0x16, 0xF8, 0xEB, 0x33, 0x90, 0x66, 0x33, 0xD2, 0x66, 0x8B, 0xC1,
|
||||||
|
0x66, 0x8B, 0xCB, 0x66, 0x50, 0x66, 0x53, 0xE8, 0x23, 0x00, 0x66, 0x5B,
|
||||||
|
0x66, 0x5F, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x17, 0x00, 0x1E, 0x07, 0xE8,
|
||||||
|
0x35, 0xFD, 0x66, 0x8B, 0xC7, 0x66, 0x0F, 0xB7, 0x0E, 0x10, 0x02, 0x66,
|
||||||
|
0xBA, 0x12, 0x02, 0x00, 0x00, 0xE8, 0xE1, 0xF7, 0xC3, 0x66, 0x52, 0x66,
|
||||||
|
0x51, 0x66, 0xBB, 0x20, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xC7, 0xF7, 0x66, 0x0B,
|
||||||
|
0xC0, 0x0F, 0x84, 0x63, 0x00, 0x66, 0x8B, 0xD8, 0x1E, 0x07, 0x66, 0x8B,
|
||||||
|
0x3E, 0x1A, 0x02, 0x66, 0x33, 0xC0, 0xE8, 0x59, 0xF8, 0x1E, 0x07, 0x66,
|
||||||
|
0x8B, 0x1E, 0x1A, 0x02, 0x66, 0x59, 0x66, 0x5A, 0x26, 0x66, 0x39, 0x0F,
|
||||||
|
0x0F, 0x85, 0x0C, 0x00, 0x26, 0x66, 0x39, 0x57, 0x08, 0x0F, 0x84, 0x31,
|
||||||
|
0x00, 0xEB, 0x13, 0x90, 0x26, 0x66, 0x83, 0x3F, 0xFF, 0x0F, 0x84, 0x2F,
|
||||||
|
0x00, 0x26, 0x83, 0x7F, 0x04, 0x00, 0x0F, 0x84, 0x26, 0x00, 0x26, 0x66,
|
||||||
|
0x0F, 0xB7, 0x47, 0x04, 0x03, 0xD8, 0x8B, 0xC3, 0x25, 0x00, 0x80, 0x74,
|
||||||
|
0xCB, 0x8C, 0xC0, 0x05, 0x00, 0x08, 0x8E, 0xC0, 0x81, 0xE3, 0xFF, 0x7F,
|
||||||
|
0xEB, 0xBE, 0x26, 0x66, 0x8B, 0x47, 0x10, 0xC3, 0x66, 0x59, 0x66, 0x5A,
|
||||||
|
0x66, 0x33, 0xC0, 0xC3, 0x66, 0x50, 0x66, 0x51, 0x66, 0x8B, 0xC7, 0x66,
|
||||||
|
0xC1, 0xE8, 0x04, 0x06, 0x59, 0x03, 0xC8, 0x51, 0x07, 0x66, 0x83, 0xE7,
|
||||||
|
0x0F, 0x66, 0x59, 0x66, 0x58, 0xC3, 0x60, 0x06, 0xBE, 0xBD, 0x0D, 0xBF,
|
||||||
|
0x00, 0x20, 0x1E, 0x07, 0xB9, 0x0D, 0x00, 0x90, 0xF3, 0xA5, 0x07, 0x61,
|
||||||
|
0xC3, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA,
|
||||||
|
0x98, 0x76, 0x54, 0x32, 0x10, 0xF0, 0xE1, 0xD2, 0xC3, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x20, 0x60, 0x8B, 0x36, 0x18, 0x20, 0x26, 0x8A, 0x05, 0x88,
|
||||||
|
0x04, 0x47, 0x46, 0x66, 0xFF, 0x06, 0x14, 0x20, 0x81, 0xFE, 0x60, 0x20,
|
||||||
|
0x75, 0x06, 0xE8, 0x5B, 0x00, 0xBE, 0x20, 0x20, 0xE2, 0xE6, 0x89, 0x36,
|
||||||
|
0x18, 0x20, 0x61, 0xC3, 0x66, 0x60, 0x8B, 0x36, 0x18, 0x20, 0xB0, 0x80,
|
||||||
|
0x88, 0x04, 0x46, 0x32, 0xC0, 0x81, 0xFE, 0x60, 0x20, 0x75, 0x06, 0xE8,
|
||||||
|
0x3A, 0x00, 0xBE, 0x20, 0x20, 0x81, 0xFE, 0x58, 0x20, 0x75, 0xE9, 0x66,
|
||||||
|
0x33, 0xC0, 0x66, 0xA3, 0x58, 0x20, 0x66, 0xA1, 0x14, 0x20, 0x66, 0xC1,
|
||||||
|
0xE0, 0x03, 0x66, 0x0F, 0xC8, 0x66, 0xA3, 0x5C, 0x20, 0xE8, 0x18, 0x00,
|
||||||
|
0xBB, 0x00, 0x20, 0x66, 0x8B, 0x07, 0x66, 0x0F, 0xC8, 0x66, 0x89, 0x07,
|
||||||
|
0x83, 0xC3, 0x04, 0x81, 0xFB, 0x34, 0x20, 0x75, 0xEE, 0x66, 0x61, 0xC3,
|
||||||
|
0x66, 0x60, 0xBB, 0x20, 0x20, 0x66, 0x8B, 0x07, 0x66, 0x0F, 0xC8, 0x66,
|
||||||
|
0x89, 0x07, 0x83, 0xC3, 0x04, 0x81, 0xFB, 0x60, 0x20, 0x75, 0xEE, 0xBB,
|
||||||
|
0x00, 0x20, 0x66, 0x8B, 0x0F, 0x66, 0x8B, 0x57, 0x04, 0x66, 0x8B, 0x77,
|
||||||
|
0x08, 0x66, 0x8B, 0x7F, 0x0C, 0x66, 0x8B, 0x6F, 0x10, 0xBB, 0x20, 0x20,
|
||||||
|
0xC7, 0x06, 0x1A, 0x20, 0x30, 0x0F, 0xC6, 0x06, 0x1C, 0x20, 0x14, 0x90,
|
||||||
|
0x53, 0x8B, 0x1E, 0x1A, 0x20, 0xFF, 0x17, 0x66, 0x03, 0x47, 0x02, 0x5B,
|
||||||
|
0x66, 0x03, 0xE8, 0x66, 0x03, 0x2F, 0x66, 0x8B, 0xC1, 0x66, 0xC1, 0xC0,
|
||||||
|
0x05, 0x66, 0x03, 0xC5, 0x66, 0x8B, 0xEF, 0x66, 0x8B, 0xFE, 0x66, 0x8B,
|
||||||
|
0xF2, 0x66, 0xC1, 0xC6, 0x1E, 0x66, 0x8B, 0xD1, 0x66, 0x8B, 0xC8, 0x66,
|
||||||
|
0x8B, 0x07, 0x66, 0x33, 0x47, 0x08, 0x66, 0x33, 0x47, 0x20, 0x66, 0x33,
|
||||||
|
0x47, 0x34, 0x66, 0xD1, 0xC0, 0x66, 0x89, 0x47, 0x40, 0x83, 0xC3, 0x04,
|
||||||
|
0xFE, 0x0E, 0x1C, 0x20, 0x75, 0xB2, 0x83, 0x06, 0x1A, 0x20, 0x06, 0x81,
|
||||||
|
0x3E, 0x1A, 0x20, 0x48, 0x0F, 0x75, 0x9F, 0xBB, 0x00, 0x20, 0x66, 0x01,
|
||||||
|
0x0F, 0x66, 0x01, 0x57, 0x04, 0x66, 0x01, 0x77, 0x08, 0x66, 0x01, 0x7F,
|
||||||
|
0x0C, 0x66, 0x01, 0x6F, 0x10, 0x66, 0x61, 0xC3, 0x66, 0x8B, 0xC6, 0x66,
|
||||||
|
0x33, 0xC7, 0x66, 0x23, 0xC2, 0x66, 0x33, 0xC7, 0xC3, 0x66, 0x8B, 0xC2,
|
||||||
|
0x66, 0x33, 0xC6, 0x66, 0x33, 0xC7, 0xC3, 0x66, 0x53, 0x66, 0x8B, 0xC2,
|
||||||
|
0x66, 0x23, 0xC6, 0x66, 0x8B, 0xDA, 0x66, 0x23, 0xDF, 0x66, 0x0B, 0xC3,
|
||||||
|
0x66, 0x8B, 0xDE, 0x66, 0x23, 0xDF, 0x66, 0x0B, 0xC3, 0x66, 0x5B, 0xC3,
|
||||||
|
0xFC, 0x0E, 0x99, 0x79, 0x82, 0x5A, 0x09, 0x0F, 0xA1, 0xEB, 0xD9, 0x6E,
|
||||||
|
0x13, 0x0F, 0xDC, 0xBC, 0x1B, 0x8F, 0x09, 0x0F, 0xD6, 0xC1, 0x62, 0xCA,
|
||||||
|
0x06, 0x1E, 0x66, 0x60, 0x66, 0x33, 0xDB, 0xB8, 0x00, 0xBB, 0xCD, 0x1A,
|
||||||
|
0x66, 0x23, 0xC0, 0x0F, 0x85, 0xBB, 0x00, 0x66, 0x81, 0xFB, 0x54, 0x43,
|
||||||
|
0x50, 0x41, 0x0F, 0x85, 0xB0, 0x00, 0x81, 0xF9, 0x02, 0x01, 0x0F, 0x82,
|
||||||
|
0xA8, 0x00, 0x66, 0x61, 0x90, 0x1F, 0x07, 0x06, 0x1E, 0x66, 0x60, 0x67,
|
||||||
|
0x80, 0x7B, 0x08, 0x00, 0x0F, 0x85, 0x0C, 0x00, 0x67, 0x66, 0x8D, 0x53,
|
||||||
|
0x10, 0x67, 0x66, 0x8B, 0x0A, 0xEB, 0x25, 0x90, 0x67, 0x66, 0x8D, 0x53,
|
||||||
|
0x10, 0x67, 0x66, 0x8B, 0x4A, 0x28, 0x66, 0x81, 0xF9, 0x00, 0x00, 0x08,
|
||||||
|
0x00, 0x0F, 0x83, 0x0C, 0x00, 0x67, 0x66, 0x8B, 0x42, 0x2C, 0x66, 0x23,
|
||||||
|
0xC0, 0x0F, 0x84, 0x03, 0x00, 0x66, 0x33, 0xC9, 0x0E, 0x1F, 0xE8, 0xF5,
|
||||||
|
0xFD, 0x66, 0x23, 0xC9, 0x0F, 0x84, 0x32, 0x00, 0x66, 0xBA, 0x00, 0x80,
|
||||||
|
0x00, 0x00, 0x66, 0x3B, 0xCA, 0x0F, 0x86, 0x1F, 0x00, 0x66, 0x2B, 0xCA,
|
||||||
|
0x06, 0x66, 0x51, 0x66, 0x57, 0x66, 0x52, 0x66, 0x8B, 0xCA, 0xE8, 0xB7,
|
||||||
|
0xFD, 0xE8, 0xFB, 0xFD, 0x66, 0x5A, 0x66, 0x5F, 0x66, 0x59, 0x07, 0x66,
|
||||||
|
0x03, 0xFA, 0xEB, 0xDA, 0xE8, 0xA5, 0xFD, 0xE8, 0xE9, 0xFD, 0xE8, 0x0B,
|
||||||
|
0xFE, 0x0E, 0x07, 0x66, 0xBB, 0x54, 0x43, 0x50, 0x41, 0x66, 0xBF, 0x00,
|
||||||
|
0x20, 0x00, 0x00, 0x66, 0xB9, 0x14, 0x00, 0x00, 0x00, 0x66, 0xB8, 0x07,
|
||||||
|
0xBB, 0x00, 0x00, 0x66, 0xBA, 0x0A, 0x00, 0x00, 0x00, 0x66, 0x33, 0xF6,
|
||||||
|
0xCD, 0x1A, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0xA0, 0xF9, 0x01, 0xE9,
|
||||||
|
0x4B, 0xF1, 0xA0, 0xFA, 0x01, 0xE9, 0x45, 0xF1
|
||||||
|
};
|
|
@ -2,7 +2,7 @@
|
||||||
#define FILE_H
|
#define FILE_H
|
||||||
|
|
||||||
/* Max valid value of uiLen for contains_data */
|
/* Max valid value of uiLen for contains_data */
|
||||||
#define MAX_DATA_LEN 4096
|
#define MAX_DATA_LEN 8192
|
||||||
|
|
||||||
/* Checks if a file contains a data pattern of length uiLen at position
|
/* Checks if a file contains a data pattern of length uiLen at position
|
||||||
ulPositoin. The file pointer will change when calling this function! */
|
ulPositoin. The file pointer will change when calling this function! */
|
||||||
|
|
23
src/ms-sys/inc/ntfs.h
Normal file
23
src/ms-sys/inc/ntfs.h
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef NTFS_H
|
||||||
|
#define NTFS_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* returns TRUE if the file has an NFTS file system, otherwise FALSE.
|
||||||
|
The file position will change when this function is called! */
|
||||||
|
int is_ntfs_fs(FILE *fp);
|
||||||
|
|
||||||
|
/* returns TRUE if the file has a NTFS boot record, otherwise FALSE.
|
||||||
|
The file position will change when this function is called! */
|
||||||
|
int is_ntfs_br(FILE *fp);
|
||||||
|
|
||||||
|
/* returns TRUE if the file has an exact match of the NTFS boot record
|
||||||
|
this program would create, otherwise FALSE.
|
||||||
|
The file position will change when this function is called! */
|
||||||
|
int entire_ntfs_br_matches(FILE *fp);
|
||||||
|
|
||||||
|
/* Writes a FAT32 DOS boot record to a file, returns TRUE on success, otherwise
|
||||||
|
FALSE */
|
||||||
|
int write_ntfs_br(FILE *fp);
|
||||||
|
|
||||||
|
#endif
|
67
src/ms-sys/ntfs.c
Normal file
67
src/ms-sys/ntfs.c
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/******************************************************************
|
||||||
|
Copyright (C) 2012 Pete Batard <pete@akeo.ie>
|
||||||
|
Based on fat16.c Copyright (C) 2009 Henrik Carlqvist
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "file.h"
|
||||||
|
#include "ntfs.h"
|
||||||
|
|
||||||
|
int is_ntfs_fs(FILE *fp)
|
||||||
|
{
|
||||||
|
char *szMagic = "NTFS";
|
||||||
|
|
||||||
|
return contains_data(fp, 0x6F, szMagic, strlen(szMagic));
|
||||||
|
} /* is_ntfs_fs */
|
||||||
|
|
||||||
|
int is_ntfs_br(FILE *fp)
|
||||||
|
{
|
||||||
|
/* A "file" is probably some kind of NTFS boot record if it contains the
|
||||||
|
magic chars 0x55, 0xAA at positions 0x1FE */
|
||||||
|
unsigned char aucRef[] = {0x55, 0xAA};
|
||||||
|
unsigned char aucMagic[] = {'N','T','F','S','0','0','0','0'};
|
||||||
|
|
||||||
|
if( ! contains_data(fp, 0x1FE, aucRef, sizeof(aucRef)))
|
||||||
|
return 0;
|
||||||
|
if( ! contains_data(fp, 0x03, aucMagic, sizeof(aucMagic)))
|
||||||
|
return 0;
|
||||||
|
return 1;
|
||||||
|
} /* is_ntfs_br */
|
||||||
|
|
||||||
|
int entire_ntfs_br_matches(FILE *fp)
|
||||||
|
{
|
||||||
|
#include "br_ntfs_0x0.h"
|
||||||
|
#include "br_ntfs_0x54.h"
|
||||||
|
|
||||||
|
return
|
||||||
|
( contains_data(fp, 0x0, br_ntfs_0x0, sizeof(br_ntfs_0x0)) &&
|
||||||
|
/* BIOS Parameter Block might differ between systems */
|
||||||
|
contains_data(fp, 0x54, br_ntfs_0x54, sizeof(br_ntfs_0x54)) );
|
||||||
|
} /* entire_ntfs_br_matches */
|
||||||
|
|
||||||
|
int write_ntfs_br(FILE *fp)
|
||||||
|
{
|
||||||
|
#include "br_ntfs_0x0.h"
|
||||||
|
#include "br_ntfs_0x54.h"
|
||||||
|
|
||||||
|
return
|
||||||
|
( write_data(fp, 0x0, br_ntfs_0x0, sizeof(br_ntfs_0x0)) &&
|
||||||
|
/* BIOS Parameter Block should not be overwritten */
|
||||||
|
write_data(fp, 0x54, br_ntfs_0x54, sizeof(br_ntfs_0x54)) );
|
||||||
|
} /* write_ntsf_br */
|
31
src/rufus.c
31
src/rufus.c
|
@ -453,7 +453,7 @@ BOOL CreatePartition(HANDLE hDrive)
|
||||||
BOOL r;
|
BOOL r;
|
||||||
DWORD size;
|
DWORD size;
|
||||||
|
|
||||||
PrintStatus(0, "Partitioning...");
|
PrintStatus(0, TRUE, "Partitioning...");
|
||||||
DriveLayoutEx->PartitionStyle = PARTITION_STYLE_MBR;
|
DriveLayoutEx->PartitionStyle = PARTITION_STYLE_MBR;
|
||||||
DriveLayoutEx->PartitionCount = 4; // Must be multiple of 4 for MBR
|
DriveLayoutEx->PartitionCount = 4; // Must be multiple of 4 for MBR
|
||||||
DriveLayoutEx->Mbr.Signature = GetTickCount();
|
DriveLayoutEx->Mbr.Signature = GetTickCount();
|
||||||
|
@ -625,7 +625,7 @@ static void InitProgress(void)
|
||||||
}
|
}
|
||||||
if (IsChecked(IDC_DOS)) {
|
if (IsChecked(IDC_DOS)) {
|
||||||
// 1 extra slot for PBR writing
|
// 1 extra slot for PBR writing
|
||||||
// TODO: switch
|
// TODO: ISO
|
||||||
switch (ComboBox_GetItemData(hDOSType, ComboBox_GetCurSel(hDOSType))) {
|
switch (ComboBox_GetItemData(hDOSType, ComboBox_GetCurSel(hDOSType))) {
|
||||||
case DT_WINME:
|
case DT_WINME:
|
||||||
nb_slots[OP_DOS] = 3+1;
|
nb_slots[OP_DOS] = 3+1;
|
||||||
|
@ -861,8 +861,8 @@ static void EnableControls(BOOL bEnable)
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_QUICKFORMAT), bEnable);
|
EnableWindow(GetDlgItem(hMainDialog, IDC_QUICKFORMAT), bEnable);
|
||||||
if (bEnable) {
|
if (bEnable) {
|
||||||
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_DOS), (fs == FS_FAT16) || (fs == FS_FAT32));
|
EnableWindow(GetDlgItem(hMainDialog, IDC_DOS), (fs == FS_FAT16) || (fs == FS_FAT32) || (fs == FS_NTFS));
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_DOSTYPE), (fs == FS_FAT16) || (fs == FS_FAT32));
|
EnableWindow(GetDlgItem(hMainDialog, IDC_DOSTYPE), (fs == FS_FAT16) || (fs == FS_FAT32) || (fs == FS_NTFS));
|
||||||
} else {
|
} else {
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_DOS), FALSE);
|
EnableWindow(GetDlgItem(hMainDialog, IDC_DOS), FALSE);
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_DOSTYPE), FALSE);
|
EnableWindow(GetDlgItem(hMainDialog, IDC_DOSTYPE), FALSE);
|
||||||
|
@ -870,6 +870,8 @@ static void EnableControls(BOOL bEnable)
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_BADBLOCKS), bEnable);
|
EnableWindow(GetDlgItem(hMainDialog, IDC_BADBLOCKS), bEnable);
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_ABOUT), bEnable);
|
EnableWindow(GetDlgItem(hMainDialog, IDC_ABOUT), bEnable);
|
||||||
EnableWindow(GetDlgItem(hMainDialog, IDC_START), bEnable);
|
EnableWindow(GetDlgItem(hMainDialog, IDC_START), bEnable);
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_SELECT_ISO), bEnable);
|
||||||
|
EnableWindow(GetDlgItem(hMainDialog, IDC_NBPASSES), bEnable);
|
||||||
SetDlgItemTextA(hMainDialog, IDCANCEL, bEnable?"Close":"Cancel");
|
SetDlgItemTextA(hMainDialog, IDCANCEL, bEnable?"Close":"Cancel");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -903,7 +905,8 @@ BOOL CALLBACK ISOProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
switch (LOWORD(wParam)) {
|
switch (LOWORD(wParam)) {
|
||||||
case IDC_ISO_ABORT:
|
case IDC_ISO_ABORT:
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANCELLED;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANCELLED;
|
||||||
PrintStatus(0, "Cancelling - please wait...");
|
PrintStatus(0, FALSE, "Cancelling - please wait...");
|
||||||
|
uprintf("ISO: USER CANCEL\n");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
case WM_CLOSE: // prevent closure using Alt-F4
|
case WM_CLOSE: // prevent closure using Alt-F4
|
||||||
|
@ -917,11 +920,11 @@ void __cdecl ISOScanThread(void* param)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
// ExtractISO(ISO_IMAGE, ISO_DEST, TRUE);
|
// ExtractISO(ISO_IMAGE, ISO_DEST, TRUE);
|
||||||
PrintStatus(0, "Scanning ISO image...");
|
PrintStatus(0, TRUE, "Scanning ISO image...\n");
|
||||||
ExtractISO(iso_path, "", TRUE);
|
ExtractISO(iso_path, "", TRUE);
|
||||||
uprintf("Projected size: %lld\nHas 4GB: %s\n", iso_report.projected_size, iso_report.has_4GB_file?"TRUE":"FALSE");
|
uprintf("Projected size: %lld\nHas 4GB: %s\n", iso_report.projected_size, iso_report.has_4GB_file?"TRUE":"FALSE");
|
||||||
for (i=safe_strlen(iso_path); (i>=0)&&(iso_path[i] != '\\'); i--);
|
for (i=safe_strlen(iso_path); (i>=0)&&(iso_path[i] != '\\'); i--);
|
||||||
PrintStatus(0, "Using ISO: '%s'", &iso_path[i+1]);
|
PrintStatus(0, TRUE, "Using ISO: '%s'\n", &iso_path[i+1]);
|
||||||
_endthread();
|
_endthread();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1083,7 +1086,8 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
// Operation may have completed in the meantime
|
// Operation may have completed in the meantime
|
||||||
if (format_thid != -1L) {
|
if (format_thid != -1L) {
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANCELLED;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_CANCELLED;
|
||||||
PrintStatus(0, "Cancelling - please wait...");
|
PrintStatus(0, FALSE, "Cancelling - please wait...");
|
||||||
|
uprintf("USER CANCEL\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
|
@ -1117,7 +1121,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
case IDC_DEVICE:
|
case IDC_DEVICE:
|
||||||
switch (HIWORD(wParam)) {
|
switch (HIWORD(wParam)) {
|
||||||
case CBN_SELCHANGE:
|
case CBN_SELCHANGE:
|
||||||
PrintStatus(0, "%d device%s found.", ComboBox_GetCount(hDeviceList),
|
PrintStatus(0, TRUE, "%d device%s found.", ComboBox_GetCount(hDeviceList),
|
||||||
(ComboBox_GetCount(hDeviceList)!=1)?"s":"");
|
(ComboBox_GetCount(hDeviceList)!=1)?"s":"");
|
||||||
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
PopulateProperties(ComboBox_GetCurSel(hDeviceList));
|
||||||
break;
|
break;
|
||||||
|
@ -1127,7 +1131,6 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
if (HIWORD(wParam) != CBN_SELCHANGE)
|
if (HIWORD(wParam) != CBN_SELCHANGE)
|
||||||
break;
|
break;
|
||||||
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
||||||
uprintf("fs = %d\n", fs);
|
|
||||||
SetClusterSizes(fs);
|
SetClusterSizes(fs);
|
||||||
if (((fs == FS_EXFAT) || (fs <0)) && IsWindowEnabled(hDOS)) {
|
if (((fs == FS_EXFAT) || (fs <0)) && IsWindowEnabled(hDOS)) {
|
||||||
// unlikely to be supported by BIOSes => don't bother
|
// unlikely to be supported by BIOSes => don't bother
|
||||||
|
@ -1250,12 +1253,12 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
EnableControls(TRUE);
|
EnableControls(TRUE);
|
||||||
GetUSBDevices();
|
GetUSBDevices();
|
||||||
if (!IS_ERROR(FormatStatus)) {
|
if (!IS_ERROR(FormatStatus)) {
|
||||||
PrintStatus(0, "DONE");
|
PrintStatus(0, FALSE, "DONE");
|
||||||
} else if (SCODE_CODE(FormatStatus) == ERROR_CANCELLED) {
|
} else if (SCODE_CODE(FormatStatus) == ERROR_CANCELLED) {
|
||||||
PrintStatus(0, "Cancelled");
|
PrintStatus(0, FALSE, "Cancelled");
|
||||||
Notification(MSG_INFO, "Cancelled", "Operation cancelled by the user.");
|
Notification(MSG_INFO, "Cancelled", "Operation cancelled by the user.");
|
||||||
} else {
|
} else {
|
||||||
PrintStatus(0, "FAILED");
|
PrintStatus(0, FALSE, "FAILED");
|
||||||
Notification(MSG_ERROR, "Error", "Error: %s", StrError(FormatStatus));
|
Notification(MSG_ERROR, "Error", "Error: %s", StrError(FormatStatus));
|
||||||
}
|
}
|
||||||
if (FormatStatus) {
|
if (FormatStatus) {
|
||||||
|
@ -1332,7 +1335,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||||
#ifdef DISABLE_AUTORUN
|
#ifdef DISABLE_AUTORUN
|
||||||
// Alt-D => Delete the NoDriveTypeAutorun key on exit (useful if the app crashed)
|
// Alt-D => Delete the NoDriveTypeAutorun key on exit (useful if the app crashed)
|
||||||
if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'D')) {
|
if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'D')) {
|
||||||
PrintStatus(0, "NoDriveTypeAutorun will be deleted on exit.");
|
PrintStatus(0, FALSE, "NoDriveTypeAutorun will be deleted on exit.");
|
||||||
existing_key = FALSE;
|
existing_key = FALSE;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,7 @@ extern RUFUS_ISO_REPORT iso_report;
|
||||||
*/
|
*/
|
||||||
extern const char *WindowsErrorString(void);
|
extern const char *WindowsErrorString(void);
|
||||||
extern void DumpBufferHex(void *buf, size_t size);
|
extern void DumpBufferHex(void *buf, size_t size);
|
||||||
extern void PrintStatus(unsigned int duration, const char *format, ...);
|
extern void PrintStatus(unsigned int duration, BOOL debug, const char *format, ...);
|
||||||
extern void UpdateProgress(int op, float percent);
|
extern void UpdateProgress(int op, float percent);
|
||||||
extern const char* StrError(DWORD error_code);
|
extern const char* StrError(DWORD error_code);
|
||||||
extern void CenterDialog(HWND hDlg);
|
extern void CenterDialog(HWND hDlg);
|
||||||
|
|
12
src/rufus.rc
12
src/rufus.rc
|
@ -33,7 +33,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 206, 278
|
IDD_DIALOG DIALOGEX 12, 12, 206, 278
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_APPWINDOW
|
EXSTYLE WS_EX_APPWINDOW
|
||||||
CAPTION "Rufus v1.0.7.124"
|
CAPTION "Rufus v1.0.7.125"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "Start",IDC_START,94,236,50,14
|
DEFPUSHBUTTON "Start",IDC_START,94,236,50,14
|
||||||
|
@ -71,7 +71,7 @@ BEGIN
|
||||||
DEFPUSHBUTTON "OK",IDOK,231,175,50,14,WS_GROUP
|
DEFPUSHBUTTON "OK",IDOK,231,175,50,14,WS_GROUP
|
||||||
CONTROL "<a href=""http://rufus.akeo.ie"">http://rufus.akeo.ie</a>",IDC_ABOUT_RUFUS_URL,
|
CONTROL "<a href=""http://rufus.akeo.ie"">http://rufus.akeo.ie</a>",IDC_ABOUT_RUFUS_URL,
|
||||||
"SysLink",WS_TABSTOP,46,47,114,9
|
"SysLink",WS_TABSTOP,46,47,114,9
|
||||||
LTEXT "Version 1.0.7 (Build 124)",IDC_STATIC,46,19,78,8
|
LTEXT "Version 1.0.7 (Build 125)",IDC_STATIC,46,19,78,8
|
||||||
PUSHBUTTON "License...",IDC_ABOUT_LICENSE,46,175,50,14,WS_GROUP
|
PUSHBUTTON "License...",IDC_ABOUT_LICENSE,46,175,50,14,WS_GROUP
|
||||||
EDITTEXT IDC_ABOUT_COPYRIGHTS,46,107,235,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
EDITTEXT IDC_ABOUT_COPYRIGHTS,46,107,235,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
|
||||||
LTEXT "Report bugs or request enhancements at:",IDC_STATIC,46,66,187,8
|
LTEXT "Report bugs or request enhancements at:",IDC_STATIC,46,66,187,8
|
||||||
|
@ -222,8 +222,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,7,124
|
FILEVERSION 1,0,7,125
|
||||||
PRODUCTVERSION 1,0,7,124
|
PRODUCTVERSION 1,0,7,125
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -240,13 +240,13 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "akeo.ie"
|
VALUE "CompanyName", "akeo.ie"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "1.0.7.124"
|
VALUE "FileVersion", "1.0.7.125"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
||||||
VALUE "OriginalFilename", "rufus.exe"
|
VALUE "OriginalFilename", "rufus.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "1.0.7.124"
|
VALUE "ProductVersion", "1.0.7.125"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -137,7 +137,7 @@ static void CALLBACK PrintStatusTimeout(HWND hwnd, UINT uMsg, UINT_PTR idEvent,
|
||||||
KillTimer(hMainDialog, TID_MESSAGE);
|
KillTimer(hMainDialog, TID_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintStatus(unsigned int duration, const char *format, ...)
|
void PrintStatus(unsigned int duration, BOOL debug, const char *format, ...)
|
||||||
{
|
{
|
||||||
char *p = szStatusMessage;
|
char *p = szStatusMessage;
|
||||||
va_list args;
|
va_list args;
|
||||||
|
@ -154,6 +154,9 @@ void PrintStatus(unsigned int duration, const char *format, ...)
|
||||||
|
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
|
if (debug)
|
||||||
|
uprintf("%s\n", szStatusMessage);
|
||||||
|
|
||||||
if ((duration) || (!bStatusTimerArmed)) {
|
if ((duration) || (!bStatusTimerArmed)) {
|
||||||
SetDlgItemTextU(hMainDialog, IDC_STATUS, szStatusMessage);
|
SetDlgItemTextU(hMainDialog, IDC_STATUS, szStatusMessage);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue