mirror of https://github.com/acidanthera/audk.git
BaseTools: Remove tools only used by DuetPkg
Given that DuetPkg will be removed, tools only used by DuetPkg can also be removed after its removal operation. https://bugzilla.tianocore.org/show_bug.cgi?id=1322 v2:Remove these tools in Makefile and GNUmakefile. v4:Remove these tools in BinWrappers/PosixLike/ and UserManuals. Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Hao Wu <hao.a.wu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
9fb5c5c4a3
commit
7702ceb8af
|
@ -1,29 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
dir=$(dirname "$full_cmd")
|
||||
cmd=${full_cmd##*/}
|
||||
|
||||
if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ]
|
||||
then
|
||||
exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd"
|
||||
elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ]
|
||||
then
|
||||
if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ]
|
||||
then
|
||||
echo "BaseTools C Tool binary was not found ($cmd)"
|
||||
echo "You may need to run:"
|
||||
echo " make -C $EDK_TOOLS_PATH/Source/C"
|
||||
else
|
||||
exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@"
|
||||
fi
|
||||
elif [ -e "$dir/../../Source/C/bin/$cmd" ]
|
||||
then
|
||||
exec "$dir/../../Source/C/bin/$cmd" "$@"
|
||||
else
|
||||
echo "Unable to find the real '$cmd' to run"
|
||||
echo "This message was printed by"
|
||||
echo " $0"
|
||||
exit 127
|
||||
fi
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
dir=$(dirname "$full_cmd")
|
||||
cmd=${full_cmd##*/}
|
||||
|
||||
if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ]
|
||||
then
|
||||
exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd"
|
||||
elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ]
|
||||
then
|
||||
if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ]
|
||||
then
|
||||
echo "BaseTools C Tool binary was not found ($cmd)"
|
||||
echo "You may need to run:"
|
||||
echo " make -C $EDK_TOOLS_PATH/Source/C"
|
||||
else
|
||||
exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@"
|
||||
fi
|
||||
elif [ -e "$dir/../../Source/C/bin/$cmd" ]
|
||||
then
|
||||
exec "$dir/../../Source/C/bin/$cmd" "$@"
|
||||
else
|
||||
echo "Unable to find the real '$cmd' to run"
|
||||
echo "This message was printed by"
|
||||
echo " $0"
|
||||
exit 127
|
||||
fi
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
dir=$(dirname "$full_cmd")
|
||||
cmd=${full_cmd##*/}
|
||||
|
||||
if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ]
|
||||
then
|
||||
exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd"
|
||||
elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ]
|
||||
then
|
||||
if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ]
|
||||
then
|
||||
echo "BaseTools C Tool binary was not found ($cmd)"
|
||||
echo "You may need to run:"
|
||||
echo " make -C $EDK_TOOLS_PATH/Source/C"
|
||||
else
|
||||
exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@"
|
||||
fi
|
||||
elif [ -e "$dir/../../Source/C/bin/$cmd" ]
|
||||
then
|
||||
exec "$dir/../../Source/C/bin/$cmd" "$@"
|
||||
else
|
||||
echo "Unable to find the real '$cmd' to run"
|
||||
echo "This message was printed by"
|
||||
echo " $0"
|
||||
exit 127
|
||||
fi
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
dir=$(dirname "$full_cmd")
|
||||
cmd=${full_cmd##*/}
|
||||
|
||||
if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ]
|
||||
then
|
||||
exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd"
|
||||
elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ]
|
||||
then
|
||||
if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ]
|
||||
then
|
||||
echo "BaseTools C Tool binary was not found ($cmd)"
|
||||
echo "You may need to run:"
|
||||
echo " make -C $EDK_TOOLS_PATH/Source/C"
|
||||
else
|
||||
exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@"
|
||||
fi
|
||||
elif [ -e "$dir/../../Source/C/bin/$cmd" ]
|
||||
then
|
||||
exec "$dir/../../Source/C/bin/$cmd" "$@"
|
||||
else
|
||||
echo "Unable to find the real '$cmd' to run"
|
||||
echo "This message was printed by"
|
||||
echo " $0"
|
||||
exit 127
|
||||
fi
|
||||
|
|
@ -26,22 +26,18 @@
|
|||
[Bin.Win32]
|
||||
build.exe
|
||||
BPDG.exe
|
||||
BootSectImage.exe
|
||||
Common.PyUtility.pyd
|
||||
Ecc.exe
|
||||
EfiCompressor.pyd
|
||||
EfiLdrImage.exe
|
||||
EfiRom.exe
|
||||
Eot.EfiCompressor.pyd
|
||||
Eot.LzmaCompressor.pyd
|
||||
GenBootSector.exe
|
||||
GenCrc32.exe
|
||||
GenDepex.exe
|
||||
GenFds.exe
|
||||
GenFfs.exe
|
||||
GenFv.exe
|
||||
GenFw.exe
|
||||
GenPage.exe
|
||||
GenPatchPcdTable.exe
|
||||
GenSec.exe
|
||||
ImportTool.bat
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
## @file
|
||||
# GNU/Linux makefile for 'BootSectImage' module build.
|
||||
#
|
||||
# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
MAKEROOT ?= ..
|
||||
|
||||
APPNAME = BootSectImage
|
||||
|
||||
LIBS = -lCommon
|
||||
|
||||
OBJECTS = bootsectimage.o
|
||||
|
||||
include $(MAKEROOT)/Makefiles/app.makefile
|
|
@ -1,22 +0,0 @@
|
|||
## @file
|
||||
# Windows makefile for 'BootSectImage' module build.
|
||||
#
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
!INCLUDE ..\Makefiles\ms.common
|
||||
|
||||
APPNAME = BootSectImage
|
||||
|
||||
LIBS = $(LIB_PATH)\Common.lib
|
||||
|
||||
OBJECTS = BootSectImage.obj
|
||||
|
||||
!INCLUDE ..\Makefiles\ms.app
|
||||
|
|
@ -1,955 +0,0 @@
|
|||
/** @file
|
||||
|
||||
Abstract:
|
||||
Patch the BPB information in boot sector image file.
|
||||
Patch the MBR code in MBR image file.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "fat.h"
|
||||
#include "mbr.h"
|
||||
#include "EfiUtilityMsgs.h"
|
||||
#include "ParseInf.h"
|
||||
|
||||
#define DEBUG_WARN 0x1
|
||||
#define DEBUG_ERROR 0x2
|
||||
|
||||
//
|
||||
// Utility Name
|
||||
//
|
||||
#define UTILITY_NAME "BootSectImage"
|
||||
|
||||
//
|
||||
// Utility version information
|
||||
//
|
||||
#define UTILITY_MAJOR_VERSION 1
|
||||
#define UTILITY_MINOR_VERSION 0
|
||||
|
||||
void
|
||||
Version (
|
||||
void
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Displays the standard utility information to SDTOUT
|
||||
|
||||
Arguments:
|
||||
|
||||
None
|
||||
|
||||
Returns:
|
||||
|
||||
None
|
||||
|
||||
--*/
|
||||
{
|
||||
printf ("%s Version %d.%d Build %s\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
|
||||
}
|
||||
|
||||
void
|
||||
Usage (
|
||||
void
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
Returns:
|
||||
|
||||
GC_TODO: add return values
|
||||
|
||||
--*/
|
||||
{
|
||||
Version();
|
||||
printf ("Copyright (c) 1999-2016 Intel Corporation. All rights reserved.\n");
|
||||
printf ("\n The BootSectImage tool prints information or patch destination file by source\n");
|
||||
printf (" file for BIOS Parameter Block (BPB) or Master Boot Record (MBR).\n");
|
||||
printf ("\nUsage: \n\
|
||||
BootSectImage\n\
|
||||
[-f, --force force patch even if the FAT type of SrcImage and DstImage mismatch]\n\
|
||||
[-m, --mbr process MBR instead of boot sector]\n\
|
||||
[-p, --parse parse SrcImageFile]\n\
|
||||
[-o, --output DstImage]\n\
|
||||
[-g, --patch patch DstImage using data from SrcImageFile]\n\
|
||||
[-v, --verbose]\n\
|
||||
[--version]\n\
|
||||
[-q, --quiet disable all messages except fatal errors]\n\
|
||||
[-d, --debug[#]\n\
|
||||
[-h, --help]\n\
|
||||
[SrcImageFile]\n");
|
||||
}
|
||||
|
||||
int WriteToFile (
|
||||
void *BootSector,
|
||||
char *FileName
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Write 512 bytes boot sector to file.
|
||||
|
||||
Arguments:
|
||||
BootSector - point to a buffer containing 512 bytes boot sector to write
|
||||
FileName - file to write to
|
||||
|
||||
Return:
|
||||
int - number of bytes wrote,
|
||||
512 indicates write successful
|
||||
0 indicates write failure
|
||||
--*/
|
||||
{
|
||||
FILE *FileHandle;
|
||||
int result;
|
||||
|
||||
FileHandle = fopen (LongFilePath (FileName), "r+b");
|
||||
if (FileHandle == NULL) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "Open file: %s", FileName);
|
||||
return 0;
|
||||
}
|
||||
fseek (FileHandle, 0, SEEK_SET);
|
||||
|
||||
result = fwrite (BootSector, 1, 512, FileHandle);
|
||||
if (result != 512) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "Write file: %s", FileName);
|
||||
result = 0;
|
||||
}
|
||||
|
||||
fclose (FileHandle);
|
||||
return result;
|
||||
}
|
||||
|
||||
int ReadFromFile (
|
||||
void *BootSector,
|
||||
char *FileName
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Read first 512 bytes from file.
|
||||
|
||||
Arguments:
|
||||
BootSector - point to a buffer receiving the first 512 bytes data from file
|
||||
FileName - file to read from
|
||||
|
||||
Return:
|
||||
int - number of bytes read,
|
||||
512 indicates read successful
|
||||
0 indicates read failure
|
||||
--*/
|
||||
{
|
||||
FILE *FileHandle;
|
||||
int result;
|
||||
|
||||
FileHandle = fopen (LongFilePath (FileName), "rb");
|
||||
if (FileHandle == NULL) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E0001: Error opening file: %s", FileName);
|
||||
return 0;
|
||||
}
|
||||
|
||||
result = fread (BootSector, 1, 512, FileHandle);
|
||||
if (result != 512) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E0004: Error reading file: %s", FileName);
|
||||
result = 0;
|
||||
}
|
||||
|
||||
fclose (FileHandle);
|
||||
return result;
|
||||
}
|
||||
|
||||
char *
|
||||
FatTypeToString (
|
||||
IN FAT_TYPE FatType
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Convert enum type of FatType to string
|
||||
--*/
|
||||
{
|
||||
switch (FatType) {
|
||||
case FatTypeFat12:
|
||||
return "FAT12";
|
||||
case FatTypeFat16:
|
||||
return "FAT16";
|
||||
case FatTypeFat32:
|
||||
return "FAT32";
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return "FAT Unknown";
|
||||
}
|
||||
|
||||
FAT_TYPE
|
||||
GetFatType (
|
||||
IN FAT_BPB_STRUCT *FatBpb
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Determine the FAT type according to BIOS Paramater Block (BPB) data
|
||||
|
||||
Arguments:
|
||||
FatBpb - BIOS Parameter Block (BPB) data, 512 Bytes
|
||||
|
||||
Return:
|
||||
FatTypeUnknown - Cannot determine the FAT type
|
||||
FatTypeFat12 - FAT12
|
||||
FatTypeFat16 - FAT16
|
||||
FatTypeFat32 - FAT32
|
||||
--*/
|
||||
{
|
||||
FAT_TYPE FatType;
|
||||
UINTN RootDirSectors;
|
||||
UINTN FATSz;
|
||||
UINTN TotSec;
|
||||
UINTN DataSec;
|
||||
UINTN CountOfClusters;
|
||||
CHAR8 FilSysType[9];
|
||||
|
||||
FatType = FatTypeUnknown;
|
||||
|
||||
//
|
||||
// Simple check
|
||||
//
|
||||
if (FatBpb->Fat12_16.Signature != FAT_BS_SIGNATURE) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - Signature Invalid - %04x, expected: %04x",
|
||||
FatBpb->Fat12_16.Signature, FAT_BS_SIGNATURE);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
|
||||
//
|
||||
// Check according to FAT spec
|
||||
//
|
||||
if ((FatBpb->Fat12_16.BS_jmpBoot[0] != FAT_BS_JMP1) &&
|
||||
(FatBpb->Fat12_16.BS_jmpBoot[0] != FAT_BS_JMP2)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BS_jmpBoot - %02x, expected: %02x or %02x",
|
||||
FatBpb->Fat12_16.BS_jmpBoot[0], FAT_BS_JMP1, FAT_BS_JMP2);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
|
||||
if ((FatBpb->Fat12_16.BPB_BytsPerSec != 512) &&
|
||||
(FatBpb->Fat12_16.BPB_BytsPerSec != 1024) &&
|
||||
(FatBpb->Fat12_16.BPB_BytsPerSec != 2048) &&
|
||||
(FatBpb->Fat12_16.BPB_BytsPerSec != 4096)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BPB_BytsPerSec - %04x, expected: %04x, %04x, %04x, or %04x",
|
||||
FatBpb->Fat12_16.BPB_BytsPerSec, 512, 1024, 2048, 4096);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if (FatBpb->Fat12_16.BPB_BytsPerSec != 512) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT - BPB_BytsPerSec - %04x, expected: %04x",
|
||||
FatBpb->Fat12_16.BPB_BytsPerSec, 512);
|
||||
}
|
||||
if ((FatBpb->Fat12_16.BPB_SecPerClus != 1) &&
|
||||
(FatBpb->Fat12_16.BPB_SecPerClus != 2) &&
|
||||
(FatBpb->Fat12_16.BPB_SecPerClus != 4) &&
|
||||
(FatBpb->Fat12_16.BPB_SecPerClus != 8) &&
|
||||
(FatBpb->Fat12_16.BPB_SecPerClus != 16) &&
|
||||
(FatBpb->Fat12_16.BPB_SecPerClus != 32) &&
|
||||
(FatBpb->Fat12_16.BPB_SecPerClus != 64) &&
|
||||
(FatBpb->Fat12_16.BPB_SecPerClus != 128)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BPB_SecPerClus - %02x, expected: %02x, %02x, %02x, %02x, %02x, %02x, %02x, or %02x",
|
||||
FatBpb->Fat12_16.BPB_BytsPerSec, 1, 2, 4, 8, 16, 32, 64, 128);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if (FatBpb->Fat12_16.BPB_BytsPerSec * FatBpb->Fat12_16.BPB_SecPerClus > 32 * 1024) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BPB_BytsPerSec * BPB_SecPerClus - %08x, expected: <= %08x",
|
||||
FatBpb->Fat12_16.BPB_BytsPerSec * FatBpb->Fat12_16.BPB_SecPerClus, 32 * 1024);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if (FatBpb->Fat12_16.BPB_RsvdSecCnt == 0) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BPB_RsvdSecCnt - %04x, expected: Non-Zero Value",
|
||||
FatBpb->Fat12_16.BPB_RsvdSecCnt);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if (FatBpb->Fat12_16.BPB_NumFATs != 2) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT - BPB_NumFATs - %02x, expected: %02x",
|
||||
FatBpb->Fat12_16.BPB_NumFATs, 2);
|
||||
}
|
||||
if ((FatBpb->Fat12_16.BPB_Media != 0xF0) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xF8) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xF9) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xFA) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xFB) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xFC) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xFD) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xFE) &&
|
||||
(FatBpb->Fat12_16.BPB_Media != 0xFF)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BPB_Media - %02x, expected: %02x, %02x, %02x, %02x, %02x, %02x, %02x, %02x, or %02x",
|
||||
FatBpb->Fat12_16.BPB_Media, 0xF0, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
|
||||
//
|
||||
// Algo in FAT spec
|
||||
//
|
||||
RootDirSectors = ((FatBpb->Fat12_16.BPB_RootEntCnt * sizeof(FAT_DIRECTORY_ENTRY)) +
|
||||
(FatBpb->Fat12_16.BPB_BytsPerSec - 1)) /
|
||||
FatBpb->Fat12_16.BPB_BytsPerSec;
|
||||
|
||||
if (FatBpb->Fat12_16.BPB_FATSz16 != 0) {
|
||||
FATSz = FatBpb->Fat12_16.BPB_FATSz16;
|
||||
} else {
|
||||
FATSz = FatBpb->Fat32.BPB_FATSz32;
|
||||
}
|
||||
if (FATSz == 0) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BPB_FATSz16, BPB_FATSz32 - 0, expected: Non-Zero Value");
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
|
||||
if (FatBpb->Fat12_16.BPB_TotSec16 != 0) {
|
||||
TotSec = FatBpb->Fat12_16.BPB_TotSec16;
|
||||
} else {
|
||||
TotSec = FatBpb->Fat12_16.BPB_TotSec32;
|
||||
}
|
||||
if (TotSec == 0) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT - BPB_TotSec16, BPB_TotSec32 - 0, expected: Non-Zero Value");
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
|
||||
DataSec = TotSec - (
|
||||
FatBpb->Fat12_16.BPB_RsvdSecCnt +
|
||||
FatBpb->Fat12_16.BPB_NumFATs * FATSz +
|
||||
RootDirSectors
|
||||
);
|
||||
|
||||
CountOfClusters = DataSec / FatBpb->Fat12_16.BPB_SecPerClus;
|
||||
|
||||
if (CountOfClusters < FAT_MAX_FAT12_CLUSTER) {
|
||||
FatType = FatTypeFat12;
|
||||
} else if (CountOfClusters < FAT_MAX_FAT16_CLUSTER) {
|
||||
FatType = FatTypeFat16;
|
||||
} else {
|
||||
FatType = FatTypeFat32;
|
||||
}
|
||||
//
|
||||
// Check according to FAT spec
|
||||
//
|
||||
if (((FatType == FatTypeFat12) || (FatType == FatTypeFat16)) &&
|
||||
(FatBpb->Fat12_16.BPB_RsvdSecCnt != 1)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT12_16 - BPB_RsvdSecCnt - %04x, expected: %04x",
|
||||
FatBpb->Fat12_16.BPB_RsvdSecCnt, 1);
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat12_16.BPB_RsvdSecCnt != 32)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT32 - BPB_RsvdSecCnt - %04x, expected: %04x",
|
||||
FatBpb->Fat12_16.BPB_RsvdSecCnt, 32);
|
||||
}
|
||||
if ((FatType == FatTypeFat16) &&
|
||||
(FatBpb->Fat12_16.BPB_RootEntCnt != 512)) {
|
||||
printf ("WARNING: FAT16: BPB_RootEntCnt - %04x, expected - %04x\n",
|
||||
FatBpb->Fat12_16.BPB_RootEntCnt, 512);
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat12_16.BPB_RootEntCnt != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BPB_RootEntCnt - %04x, expected: %04x",
|
||||
FatBpb->Fat12_16.BPB_RootEntCnt, 0);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat12_16.BPB_TotSec16 != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BPB_TotSec16 - %04x, expected: %04x",
|
||||
FatBpb->Fat12_16.BPB_TotSec16, 0);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat12_16.BPB_FATSz16 != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BPB_FATSz16 - %04x, expected: %04x",
|
||||
FatBpb->Fat12_16.BPB_FATSz16, 0);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat12_16.BPB_TotSec32 == 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BPB_TotSec32 - %04x, expected: Non-Zero",
|
||||
(unsigned) FatBpb->Fat12_16.BPB_TotSec32);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat32.BPB_FATSz32 == 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BPB_FATSz32 - %08x, expected: Non-Zero",
|
||||
(unsigned) FatBpb->Fat32.BPB_FATSz32);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat32.BPB_FSVer != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT32 - BPB_FSVer - %08x, expected: %04x",
|
||||
FatBpb->Fat32.BPB_FSVer, 0);
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat32.BPB_RootClus != 2)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT32 - BPB_RootClus - %08x, expected: %04x",
|
||||
(unsigned) FatBpb->Fat32.BPB_RootClus, 2);
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat32.BPB_FSInfo != 1)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT32 - BPB_FSInfo - %08x, expected: %04x",
|
||||
FatBpb->Fat32.BPB_FSInfo, 1);
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat32.BPB_BkBootSec != 6)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT32 - BPB_BkBootSec - %08x, expected: %04x",
|
||||
FatBpb->Fat32.BPB_BkBootSec, 6);
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
((*(UINT32 *)FatBpb->Fat32.BPB_Reserved != 0) ||
|
||||
(*((UINT32 *)FatBpb->Fat32.BPB_Reserved + 1) != 0) ||
|
||||
(*((UINT32 *)FatBpb->Fat32.BPB_Reserved + 2) != 0))) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BPB_Reserved - %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x, expected: 0",
|
||||
FatBpb->Fat32.BPB_Reserved[0],
|
||||
FatBpb->Fat32.BPB_Reserved[1],
|
||||
FatBpb->Fat32.BPB_Reserved[2],
|
||||
FatBpb->Fat32.BPB_Reserved[3],
|
||||
FatBpb->Fat32.BPB_Reserved[4],
|
||||
FatBpb->Fat32.BPB_Reserved[5],
|
||||
FatBpb->Fat32.BPB_Reserved[6],
|
||||
FatBpb->Fat32.BPB_Reserved[7],
|
||||
FatBpb->Fat32.BPB_Reserved[8],
|
||||
FatBpb->Fat32.BPB_Reserved[9],
|
||||
FatBpb->Fat32.BPB_Reserved[10],
|
||||
FatBpb->Fat32.BPB_Reserved[11]);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if (((FatType == FatTypeFat12) || (FatType == FatTypeFat16)) &&
|
||||
(FatBpb->Fat12_16.BS_Reserved1 != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT12_16 - BS_Reserved1 - %02x, expected: 0\n",
|
||||
FatBpb->Fat12_16.BS_Reserved1);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat32.BS_Reserved1 != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BS_Reserved1 - %02x, expected: 0\n",
|
||||
FatBpb->Fat32.BS_Reserved1);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if (((FatType == FatTypeFat12) || (FatType == FatTypeFat16)) &&
|
||||
(FatBpb->Fat12_16.BS_BootSig != FAT_BS_BOOTSIG)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT12_16 - BS_BootSig - %02x, expected: %02x\n",
|
||||
FatBpb->Fat12_16.BS_BootSig, FAT_BS_BOOTSIG);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
if ((FatType == FatTypeFat32) &&
|
||||
(FatBpb->Fat32.BS_BootSig != FAT_BS_BOOTSIG)) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3003: FAT32 - BS_BootSig - %02x, expected: %02x\n",
|
||||
FatBpb->Fat32.BS_BootSig, FAT_BS_BOOTSIG);
|
||||
return FatTypeUnknown;
|
||||
}
|
||||
|
||||
if ((FatType == FatTypeFat12) || (FatType == FatTypeFat16)) {
|
||||
memcpy (FilSysType, FatBpb->Fat12_16.BS_FilSysType, 8);
|
||||
FilSysType[8] = 0;
|
||||
if ((FatType == FatTypeFat12) &&
|
||||
(strcmp (FilSysType, FAT12_FILSYSTYPE) != 0) &&
|
||||
(strcmp (FilSysType, FAT_FILSYSTYPE) != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT12 - BS_FilSysType - %s, expected: %s, or %s\n",
|
||||
FilSysType, FAT12_FILSYSTYPE, FAT_FILSYSTYPE);
|
||||
}
|
||||
if ((FatType == FatTypeFat16) &&
|
||||
(strcmp (FilSysType, FAT16_FILSYSTYPE) != 0) &&
|
||||
(strcmp (FilSysType, FAT_FILSYSTYPE) != 0)) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT16 - BS_FilSysType - %s, expected: %s, or %s\n",
|
||||
FilSysType, FAT16_FILSYSTYPE, FAT_FILSYSTYPE);
|
||||
}
|
||||
}
|
||||
if (FatType == FatTypeFat32) {
|
||||
memcpy (FilSysType, FatBpb->Fat32.BS_FilSysType, 8);
|
||||
FilSysType[8] = 0;
|
||||
if (strcmp (FilSysType, FAT32_FILSYSTYPE) != 0) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3003: FAT32 - BS_FilSysType - %s, expected: %s\n",
|
||||
FilSysType, FAT32_FILSYSTYPE);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// pass all check, get FAT type
|
||||
//
|
||||
return FatType;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ParseBootSector (
|
||||
char *FileName
|
||||
)
|
||||
{
|
||||
FAT_BPB_STRUCT FatBpb;
|
||||
FAT_TYPE FatType;
|
||||
|
||||
if (ReadFromFile ((void *)&FatBpb, FileName) == 0) {
|
||||
return ;
|
||||
}
|
||||
|
||||
FatType = GetFatType (&FatBpb);
|
||||
if (FatType <= FatTypeUnknown || FatType >= FatTypeMax) {
|
||||
printf ("ERROR: E3002: Unknown FAT Type!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
printf ("\nBoot Sector %s:\n", FatTypeToString (FatType));
|
||||
printf ("\n");
|
||||
printf (" Offset Title Data\n");
|
||||
printf ("==================================================================\n");
|
||||
printf (" 0 JMP instruction %02x %02x %02x\n",
|
||||
FatBpb.Fat12_16.BS_jmpBoot[0],
|
||||
FatBpb.Fat12_16.BS_jmpBoot[1],
|
||||
FatBpb.Fat12_16.BS_jmpBoot[2]);
|
||||
printf (" 3 OEM %c%c%c%c%c%c%c%c\n",
|
||||
FatBpb.Fat12_16.BS_OEMName[0],
|
||||
FatBpb.Fat12_16.BS_OEMName[1],
|
||||
FatBpb.Fat12_16.BS_OEMName[2],
|
||||
FatBpb.Fat12_16.BS_OEMName[3],
|
||||
FatBpb.Fat12_16.BS_OEMName[4],
|
||||
FatBpb.Fat12_16.BS_OEMName[5],
|
||||
FatBpb.Fat12_16.BS_OEMName[6],
|
||||
FatBpb.Fat12_16.BS_OEMName[7]);
|
||||
printf ("\n");
|
||||
printf ("BIOS Parameter Block\n");
|
||||
printf (" B Bytes per sector %04x\n", FatBpb.Fat12_16.BPB_BytsPerSec);
|
||||
printf (" D Sectors per cluster %02x\n", FatBpb.Fat12_16.BPB_SecPerClus);
|
||||
printf (" E Reserved sectors %04x\n", FatBpb.Fat12_16.BPB_RsvdSecCnt);
|
||||
printf (" 10 Number of FATs %02x\n", FatBpb.Fat12_16.BPB_NumFATs);
|
||||
printf (" 11 Root entries %04x\n", FatBpb.Fat12_16.BPB_RootEntCnt);
|
||||
printf (" 13 Sectors (under 32MB) %04x\n", FatBpb.Fat12_16.BPB_TotSec16);
|
||||
printf (" 15 Media descriptor %02x\n", FatBpb.Fat12_16.BPB_Media);
|
||||
printf (" 16 Sectors per FAT (small vol.) %04x\n", FatBpb.Fat12_16.BPB_FATSz16);
|
||||
printf (" 18 Sectors per track %04x\n", FatBpb.Fat12_16.BPB_SecPerTrk);
|
||||
printf (" 1A Heads %04x\n", FatBpb.Fat12_16.BPB_NumHeads);
|
||||
printf (" 1C Hidden sectors %08x\n", (unsigned) FatBpb.Fat12_16.BPB_HiddSec);
|
||||
printf (" 20 Sectors (over 32MB) %08x\n", (unsigned) FatBpb.Fat12_16.BPB_TotSec32);
|
||||
printf ("\n");
|
||||
if (FatType != FatTypeFat32) {
|
||||
printf (" 24 BIOS drive %02x\n", FatBpb.Fat12_16.BS_DrvNum);
|
||||
printf (" 25 (Unused) %02x\n", FatBpb.Fat12_16.BS_Reserved1);
|
||||
printf (" 26 Ext. boot signature %02x\n", FatBpb.Fat12_16.BS_BootSig);
|
||||
printf (" 27 Volume serial number %08x\n", (unsigned) FatBpb.Fat12_16.BS_VolID);
|
||||
printf (" 2B Volume lable %c%c%c%c%c%c%c%c%c%c%c\n",
|
||||
FatBpb.Fat12_16.BS_VolLab[0],
|
||||
FatBpb.Fat12_16.BS_VolLab[1],
|
||||
FatBpb.Fat12_16.BS_VolLab[2],
|
||||
FatBpb.Fat12_16.BS_VolLab[3],
|
||||
FatBpb.Fat12_16.BS_VolLab[4],
|
||||
FatBpb.Fat12_16.BS_VolLab[5],
|
||||
FatBpb.Fat12_16.BS_VolLab[6],
|
||||
FatBpb.Fat12_16.BS_VolLab[7],
|
||||
FatBpb.Fat12_16.BS_VolLab[8],
|
||||
FatBpb.Fat12_16.BS_VolLab[9],
|
||||
FatBpb.Fat12_16.BS_VolLab[10]);
|
||||
printf (" 36 File system %c%c%c%c%c%c%c%c\n",
|
||||
FatBpb.Fat12_16.BS_FilSysType[0],
|
||||
FatBpb.Fat12_16.BS_FilSysType[1],
|
||||
FatBpb.Fat12_16.BS_FilSysType[2],
|
||||
FatBpb.Fat12_16.BS_FilSysType[3],
|
||||
FatBpb.Fat12_16.BS_FilSysType[4],
|
||||
FatBpb.Fat12_16.BS_FilSysType[5],
|
||||
FatBpb.Fat12_16.BS_FilSysType[6],
|
||||
FatBpb.Fat12_16.BS_FilSysType[7]);
|
||||
printf ("\n");
|
||||
} else {
|
||||
printf ("FAT32 Section\n");
|
||||
printf (" 24 Sectors per FAT (large vol.) %08x\n", (unsigned) FatBpb.Fat32.BPB_FATSz32);
|
||||
printf (" 28 Flags %04x\n", FatBpb.Fat32.BPB_ExtFlags);
|
||||
printf (" 2A Version %04x\n", FatBpb.Fat32.BPB_FSVer);
|
||||
printf (" 2C Root dir 1st cluster %08x\n", (unsigned) FatBpb.Fat32.BPB_RootClus);
|
||||
printf (" 30 FSInfo sector %04x\n", FatBpb.Fat32.BPB_FSInfo);
|
||||
printf (" 32 Backup boot sector %04x\n", FatBpb.Fat32.BPB_BkBootSec);
|
||||
printf (" 34 (Reserved) %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
|
||||
FatBpb.Fat32.BPB_Reserved[0],
|
||||
FatBpb.Fat32.BPB_Reserved[1],
|
||||
FatBpb.Fat32.BPB_Reserved[2],
|
||||
FatBpb.Fat32.BPB_Reserved[3],
|
||||
FatBpb.Fat32.BPB_Reserved[4],
|
||||
FatBpb.Fat32.BPB_Reserved[5],
|
||||
FatBpb.Fat32.BPB_Reserved[6],
|
||||
FatBpb.Fat32.BPB_Reserved[7],
|
||||
FatBpb.Fat32.BPB_Reserved[8],
|
||||
FatBpb.Fat32.BPB_Reserved[9],
|
||||
FatBpb.Fat32.BPB_Reserved[10],
|
||||
FatBpb.Fat32.BPB_Reserved[11]);
|
||||
printf ("\n");
|
||||
printf (" 40 BIOS drive %02x\n", FatBpb.Fat32.BS_DrvNum);
|
||||
printf (" 41 (Unused) %02x\n", FatBpb.Fat32.BS_Reserved1);
|
||||
printf (" 42 Ext. boot signature %02x\n", FatBpb.Fat32.BS_BootSig);
|
||||
printf (" 43 Volume serial number %08x\n", (unsigned) FatBpb.Fat32.BS_VolID);
|
||||
printf (" 47 Volume lable %c%c%c%c%c%c%c%c%c%c%c\n",
|
||||
FatBpb.Fat32.BS_VolLab[0],
|
||||
FatBpb.Fat32.BS_VolLab[1],
|
||||
FatBpb.Fat32.BS_VolLab[2],
|
||||
FatBpb.Fat32.BS_VolLab[3],
|
||||
FatBpb.Fat32.BS_VolLab[4],
|
||||
FatBpb.Fat32.BS_VolLab[5],
|
||||
FatBpb.Fat32.BS_VolLab[6],
|
||||
FatBpb.Fat32.BS_VolLab[7],
|
||||
FatBpb.Fat32.BS_VolLab[8],
|
||||
FatBpb.Fat32.BS_VolLab[9],
|
||||
FatBpb.Fat32.BS_VolLab[10]);
|
||||
printf (" 52 File system %c%c%c%c%c%c%c%c\n",
|
||||
FatBpb.Fat32.BS_FilSysType[0],
|
||||
FatBpb.Fat32.BS_FilSysType[1],
|
||||
FatBpb.Fat32.BS_FilSysType[2],
|
||||
FatBpb.Fat32.BS_FilSysType[3],
|
||||
FatBpb.Fat32.BS_FilSysType[4],
|
||||
FatBpb.Fat32.BS_FilSysType[5],
|
||||
FatBpb.Fat32.BS_FilSysType[6],
|
||||
FatBpb.Fat32.BS_FilSysType[7]);
|
||||
printf ("\n");
|
||||
}
|
||||
printf (" 1FE Signature %04x\n", FatBpb.Fat12_16.Signature);
|
||||
printf ("\n");
|
||||
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
void
|
||||
PatchBootSector (
|
||||
char *DestFileName,
|
||||
char *SourceFileName,
|
||||
BOOLEAN ForcePatch
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Patch destination file according to the information from source file.
|
||||
Only patch BPB data but leave boot code un-touched.
|
||||
|
||||
Arguments:
|
||||
DestFileName - Destination file to patch
|
||||
SourceFileName - Source file where patch from
|
||||
--*/
|
||||
{
|
||||
FAT_BPB_STRUCT DestFatBpb;
|
||||
FAT_BPB_STRUCT SourceFatBpb;
|
||||
FAT_TYPE DestFatType;
|
||||
FAT_TYPE SourceFatType;
|
||||
CHAR8 VolLab[11];
|
||||
CHAR8 FilSysType[8];
|
||||
|
||||
if (ReadFromFile ((void *)&DestFatBpb, DestFileName) == 0) {
|
||||
return ;
|
||||
}
|
||||
if (ReadFromFile ((void *)&SourceFatBpb, SourceFileName) == 0) {
|
||||
return ;
|
||||
}
|
||||
|
||||
DestFatType = GetFatType (&DestFatBpb);
|
||||
SourceFatType = GetFatType (&SourceFatBpb);
|
||||
|
||||
if (DestFatType != SourceFatType) {
|
||||
//
|
||||
// FAT type mismatch
|
||||
//
|
||||
if (ForcePatch) {
|
||||
DebugMsg (NULL, 0, DEBUG_WARN, NULL, "ERROR: E3004: FAT type mismatch: Source - %s, Dest - %s",
|
||||
FatTypeToString(SourceFatType), FatTypeToString(DestFatType));
|
||||
} else {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3004: FAT type mismatch: Source - %s, Dest - %s",
|
||||
FatTypeToString(SourceFatType), FatTypeToString(DestFatType));
|
||||
return ;
|
||||
}
|
||||
}
|
||||
|
||||
if (SourceFatType <= FatTypeUnknown || SourceFatType >= FatTypeMax) {
|
||||
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E3002: Unknown FAT Type!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Copy BPB/boot data (excluding BS_jmpBoot, BS_OEMName, BootCode and Signature) from SourceFatBpb to DestFatBpb
|
||||
//
|
||||
printf ("Patching %s BPB: ", FatTypeToString (SourceFatType));
|
||||
if (SourceFatType != FatTypeFat32) {
|
||||
memcpy (
|
||||
&DestFatBpb.Fat12_16.BPB_BytsPerSec,
|
||||
&SourceFatBpb.Fat12_16.BPB_BytsPerSec,
|
||||
((UINTN)&DestFatBpb.Fat12_16.Reserved - (UINTN)&DestFatBpb.Fat12_16.BPB_BytsPerSec)
|
||||
);
|
||||
} else {
|
||||
memcpy (
|
||||
&DestFatBpb.Fat32.BPB_BytsPerSec,
|
||||
&SourceFatBpb.Fat32.BPB_BytsPerSec,
|
||||
((UINTN)&DestFatBpb.Fat32.Reserved - (UINTN)&DestFatBpb.Fat32.BPB_BytsPerSec)
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Set BS_VolLab and BS_FilSysType of DestFatBpb
|
||||
//
|
||||
// BS_VolLab BS_FilSysType
|
||||
// FAT12: EFI FAT12 FAT12
|
||||
// FAT16: EFI FAT16 FAT16
|
||||
// FAT32: EFI FAT32 FAT32
|
||||
//
|
||||
if (SourceFatType == FatTypeFat32) {
|
||||
memcpy (VolLab, "EFI FAT32 ", sizeof(VolLab));
|
||||
memcpy (FilSysType, FAT32_FILSYSTYPE, sizeof(FilSysType));
|
||||
} else if (SourceFatType == FatTypeFat16) {
|
||||
memcpy (VolLab, "EFI FAT16 ", sizeof(VolLab));
|
||||
memcpy (FilSysType, FAT16_FILSYSTYPE, sizeof(FilSysType));
|
||||
} else {
|
||||
memcpy (VolLab, "EFI FAT12 ", sizeof(VolLab));
|
||||
memcpy (FilSysType, FAT12_FILSYSTYPE, sizeof(FilSysType));
|
||||
}
|
||||
if (SourceFatType != FatTypeFat32) {
|
||||
memcpy (DestFatBpb.Fat12_16.BS_VolLab, VolLab, sizeof(VolLab));
|
||||
memcpy (DestFatBpb.Fat12_16.BS_FilSysType, FilSysType, sizeof(FilSysType));
|
||||
} else {
|
||||
memcpy (DestFatBpb.Fat32.BS_VolLab, VolLab, sizeof(VolLab));
|
||||
memcpy (DestFatBpb.Fat32.BS_FilSysType, FilSysType, sizeof(FilSysType));
|
||||
}
|
||||
|
||||
//
|
||||
// Set Signature of DestFatBpb to 55AA
|
||||
//
|
||||
DestFatBpb.Fat12_16.Signature = FAT_BS_SIGNATURE;
|
||||
|
||||
//
|
||||
// Write DestFatBpb
|
||||
//
|
||||
if (WriteToFile ((void *)&DestFatBpb, DestFileName)) {
|
||||
printf ("successful!\n");
|
||||
} else {
|
||||
printf ("failed!\n");
|
||||
}
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
void
|
||||
ParseMbr (
|
||||
char *FileName
|
||||
)
|
||||
{
|
||||
MASTER_BOOT_RECORD Mbr;
|
||||
|
||||
if (ReadFromFile ((void *)&Mbr, FileName) == 0) {
|
||||
return ;
|
||||
}
|
||||
|
||||
printf ("\nMaster Boot Record:\n");
|
||||
printf ("\n");
|
||||
printf (" Offset Title Value\n");
|
||||
printf ("==================================================================\n");
|
||||
printf (" 0 Master bootstrap loader code (not list)\n");
|
||||
printf (" 1B8 Windows disk signature %08x\n", (unsigned) Mbr.UniqueMbrSignature);
|
||||
printf ("\n");
|
||||
printf ("Partition Table Entry #1\n");
|
||||
printf (" 1BE 80 = active partition %02x\n", Mbr.PartitionRecord[0].BootIndicator);
|
||||
printf (" 1BF Start head %02x\n", Mbr.PartitionRecord[0].StartHead);
|
||||
printf (" 1C0 Start sector %02x\n", Mbr.PartitionRecord[0].StartSector);
|
||||
printf (" 1C1 Start cylinder %02x\n", Mbr.PartitionRecord[0].StartTrack);
|
||||
printf (" 1C2 Partition type indicator %02x\n", Mbr.PartitionRecord[0].OSType);
|
||||
printf (" 1C3 End head %02x\n", Mbr.PartitionRecord[0].EndHead);
|
||||
printf (" 1C4 End sector %02x\n", Mbr.PartitionRecord[0].EndSector);
|
||||
printf (" 1C5 End cylinder %02x\n", Mbr.PartitionRecord[0].EndTrack);
|
||||
printf (" 1C6 Sectors preceding partition %08x\n", (unsigned) Mbr.PartitionRecord[0].StartingLBA);
|
||||
printf (" 1CA Sectors in partition %08x\n", (unsigned) Mbr.PartitionRecord[0].SizeInLBA);
|
||||
printf ("\n");
|
||||
printf ("Partition Table Entry #2\n");
|
||||
printf (" 1CE 80 = active partition %02x\n", Mbr.PartitionRecord[1].BootIndicator);
|
||||
printf (" 1CF Start head %02x\n", Mbr.PartitionRecord[1].StartHead);
|
||||
printf (" 1D0 Start sector %02x\n", Mbr.PartitionRecord[1].StartSector);
|
||||
printf (" 1D1 Start cylinder %02x\n", Mbr.PartitionRecord[1].StartTrack);
|
||||
printf (" 1D2 Partition type indicator %02x\n", Mbr.PartitionRecord[1].OSType);
|
||||
printf (" 1D3 End head %02x\n", Mbr.PartitionRecord[1].EndHead);
|
||||
printf (" 1D4 End sector %02x\n", Mbr.PartitionRecord[1].EndSector);
|
||||
printf (" 1D5 End cylinder %02x\n", Mbr.PartitionRecord[1].EndTrack);
|
||||
printf (" 1D6 Sectors preceding partition %08x\n", (unsigned) Mbr.PartitionRecord[1].StartingLBA);
|
||||
printf (" 1DA Sectors in partition %08x\n", (unsigned) Mbr.PartitionRecord[1].SizeInLBA);
|
||||
printf ("\n");
|
||||
printf ("Partition Table Entry #3\n");
|
||||
printf (" 1DE 80 = active partition %02x\n", Mbr.PartitionRecord[2].BootIndicator);
|
||||
printf (" 1DF Start head %02x\n", Mbr.PartitionRecord[2].StartHead);
|
||||
printf (" 1E0 Start sector %02x\n", Mbr.PartitionRecord[2].StartSector);
|
||||
printf (" 1E1 Start cylinder %02x\n", Mbr.PartitionRecord[2].StartTrack);
|
||||
printf (" 1E2 Partition type indicator %02x\n", Mbr.PartitionRecord[2].OSType);
|
||||
printf (" 1E3 End head %02x\n", Mbr.PartitionRecord[2].EndHead);
|
||||
printf (" 1E4 End sector %02x\n", Mbr.PartitionRecord[2].EndSector);
|
||||
printf (" 1E5 End cylinder %02x\n", Mbr.PartitionRecord[2].EndTrack);
|
||||
printf (" 1E6 Sectors preceding partition %08x\n", (unsigned) Mbr.PartitionRecord[2].StartingLBA);
|
||||
printf (" 1EA Sectors in partition %08x\n", (unsigned) Mbr.PartitionRecord[2].SizeInLBA);
|
||||
printf ("\n");
|
||||
printf ("Partition Table Entry #4\n");
|
||||
printf (" 1EE 80 = active partition %02x\n", Mbr.PartitionRecord[3].BootIndicator);
|
||||
printf (" 1EF Start head %02x\n", Mbr.PartitionRecord[3].StartHead);
|
||||
printf (" 1F0 Start sector %02x\n", Mbr.PartitionRecord[3].StartSector);
|
||||
printf (" 1F1 Start cylinder %02x\n", Mbr.PartitionRecord[3].StartTrack);
|
||||
printf (" 1F2 Partition type indicator %02x\n", Mbr.PartitionRecord[3].OSType);
|
||||
printf (" 1F3 End head %02x\n", Mbr.PartitionRecord[3].EndHead);
|
||||
printf (" 1F4 End sector %02x\n", Mbr.PartitionRecord[3].EndSector);
|
||||
printf (" 1F5 End cylinder %02x\n", Mbr.PartitionRecord[3].EndTrack);
|
||||
printf (" 1F6 Sectors preceding partition %08x\n", (unsigned) Mbr.PartitionRecord[3].StartingLBA);
|
||||
printf (" 1FA Sectors in partition %08x\n", (unsigned) Mbr.PartitionRecord[3].SizeInLBA);
|
||||
printf ("\n");
|
||||
printf (" 1FE Signature %04x\n", Mbr.Signature);
|
||||
printf ("\n");
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
void
|
||||
PatchMbr (
|
||||
char *DestFileName,
|
||||
char *SourceFileName
|
||||
)
|
||||
{
|
||||
MASTER_BOOT_RECORD DestMbr;
|
||||
MASTER_BOOT_RECORD SourceMbr;
|
||||
|
||||
if (ReadFromFile ((void *)&DestMbr, DestFileName) == 0) {
|
||||
return ;
|
||||
}
|
||||
if (ReadFromFile ((void *)&SourceMbr, SourceFileName) == 0) {
|
||||
return ;
|
||||
}
|
||||
|
||||
if (SourceMbr.Signature != MBR_SIGNATURE) {
|
||||
printf ("ERROR: E3000: Invalid MBR!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
printf ("Patching MBR:\n");
|
||||
memcpy (
|
||||
&DestMbr.PartitionRecord[0],
|
||||
&SourceMbr.PartitionRecord[0],
|
||||
sizeof(DestMbr.PartitionRecord)
|
||||
);
|
||||
|
||||
DestMbr.Signature = MBR_SIGNATURE;
|
||||
|
||||
|
||||
if (WriteToFile ((void *)&DestMbr, DestFileName)) {
|
||||
printf ("\tsuccessful!\n");
|
||||
}
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main (
|
||||
int argc,
|
||||
char *argv[]
|
||||
)
|
||||
{
|
||||
char *SrcImage;
|
||||
char *DstImage;
|
||||
BOOLEAN ForcePatch; // -f
|
||||
BOOLEAN ProcessMbr; // -m
|
||||
BOOLEAN DoParse; // -p SrcImage or -g SrcImage DstImage
|
||||
BOOLEAN Verbose; // -v
|
||||
UINT64 LogLevel;
|
||||
EFI_STATUS EfiStatus;
|
||||
|
||||
SrcImage = DstImage = NULL;
|
||||
ForcePatch = FALSE;
|
||||
ProcessMbr = FALSE;
|
||||
DoParse = TRUE;
|
||||
Verbose = FALSE;
|
||||
|
||||
SetUtilityName ("bootsectimage");
|
||||
|
||||
argc--; argv++;
|
||||
|
||||
if (argc == 0) {
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
while (argc != 0) {
|
||||
if (strcmp (*argv, "-f") == 0 || strcmp (*argv, "--force") == 0) {
|
||||
ForcePatch = TRUE;
|
||||
} else if (strcmp (*argv, "-p") == 0 || strcmp (*argv, "--parse") == 0) {
|
||||
DoParse = TRUE;
|
||||
argc--; argv++;
|
||||
if (argc < 1) {
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
SrcImage = *argv;
|
||||
} else if (strcmp (*argv, "-g") == 0 || strcmp (*argv, "--patch") == 0) {
|
||||
DoParse = FALSE;
|
||||
argc--; argv++;
|
||||
if (argc < 2) {
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
SrcImage = *argv;
|
||||
argc--; argv++;
|
||||
DstImage = *argv;
|
||||
} else if (strcmp (*argv, "-m") == 0 || strcmp (*argv, "--mbr") == 0) {
|
||||
ProcessMbr = TRUE;
|
||||
} else if (strcmp (*argv, "-v") == 0 || strcmp (*argv, "--verbose") == 0) {
|
||||
Verbose = TRUE;
|
||||
} else if (strcmp (*argv, "--version") == 0) {
|
||||
Version();
|
||||
return 0;
|
||||
} else if ((stricmp (*argv, "-d") == 0) || (stricmp (*argv, "--debug") == 0)) {
|
||||
argc--; argv++;
|
||||
if (argc < 1) {
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
EfiStatus = AsciiStringToUint64 (*argv, FALSE, &LogLevel);
|
||||
if (EFI_ERROR (EfiStatus)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "%s = %s", "--debug", *argv);
|
||||
return 1;
|
||||
}
|
||||
if (LogLevel > 9) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", (int) LogLevel);
|
||||
return 1;
|
||||
}
|
||||
SetPrintLevel (LogLevel);
|
||||
DebugMsg (NULL, 0, 9, "Debug Mode Set", "Debug Output Mode Level %s is set!", *argv);
|
||||
} else {
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
argc--; argv++;
|
||||
}
|
||||
|
||||
if (ForcePatch && DoParse) {
|
||||
printf ("ERROR: E1002: Conflicting options: -f, -p. Cannot apply force(-f) to parse(-p)!\n");
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
if (ForcePatch && !DoParse && ProcessMbr) {
|
||||
printf ("ERROR: E1002: Conflicting options: -f, -g -m. Cannot apply force(-f) to processing MBR (-g -m)!\n");
|
||||
Usage ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (Verbose) {
|
||||
SetPrintLevel (VERBOSE_LOG_LEVEL);
|
||||
} else {
|
||||
SetPrintLevel (KEY_LOG_LEVEL);
|
||||
}
|
||||
|
||||
if (DoParse) {
|
||||
if (ProcessMbr) {
|
||||
ParseMbr (SrcImage);
|
||||
} else {
|
||||
ParseBootSector (SrcImage);
|
||||
}
|
||||
} else {
|
||||
if (ProcessMbr) {
|
||||
PatchMbr (DstImage, SrcImage);
|
||||
} else {
|
||||
PatchBootSector (DstImage, SrcImage, ForcePatch);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,152 +0,0 @@
|
|||
/** @file
|
||||
|
||||
Fat file system structure and definition.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _FAT_BPB_H_
|
||||
#define _FAT_BPB_H_
|
||||
|
||||
#include "CommonLib.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Fat common field
|
||||
//
|
||||
UINT8 BS_jmpBoot[3];
|
||||
CHAR8 BS_OEMName[8];
|
||||
UINT16 BPB_BytsPerSec;
|
||||
UINT8 BPB_SecPerClus;
|
||||
UINT16 BPB_RsvdSecCnt;
|
||||
UINT8 BPB_NumFATs;
|
||||
UINT16 BPB_RootEntCnt;
|
||||
UINT16 BPB_TotSec16;
|
||||
UINT8 BPB_Media;
|
||||
UINT16 BPB_FATSz16;
|
||||
UINT16 BPB_SecPerTrk;
|
||||
UINT16 BPB_NumHeads;
|
||||
UINT32 BPB_HiddSec;
|
||||
UINT32 BPB_TotSec32;
|
||||
|
||||
//
|
||||
// Fat12/16 specific field
|
||||
//
|
||||
UINT8 BS_DrvNum;
|
||||
UINT8 BS_Reserved1;
|
||||
UINT8 BS_BootSig;
|
||||
UINT32 BS_VolID;
|
||||
CHAR8 BS_VolLab[11];
|
||||
CHAR8 BS_FilSysType[8];
|
||||
|
||||
//
|
||||
// Boot Code and Data
|
||||
//
|
||||
UINT8 Reserved[448];
|
||||
|
||||
//
|
||||
// Fat common signature - 0xAA55
|
||||
//
|
||||
UINT16 Signature;
|
||||
} FAT12_16_BPB_STRUCT;
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Fat common field
|
||||
//
|
||||
UINT8 BS_jmpBoot[3];
|
||||
CHAR8 BS_OEMName[8];
|
||||
UINT16 BPB_BytsPerSec;
|
||||
UINT8 BPB_SecPerClus;
|
||||
UINT16 BPB_RsvdSecCnt;
|
||||
UINT8 BPB_NumFATs;
|
||||
UINT16 BPB_RootEntCnt;
|
||||
UINT16 BPB_TotSec16;
|
||||
UINT8 BPB_Media;
|
||||
UINT16 BPB_FATSz16;
|
||||
UINT16 BPB_SecPerTrk;
|
||||
UINT16 BPB_NumHeads;
|
||||
UINT32 BPB_HiddSec;
|
||||
UINT32 BPB_TotSec32;
|
||||
|
||||
//
|
||||
// Fat32 specific field
|
||||
//
|
||||
UINT32 BPB_FATSz32;
|
||||
UINT16 BPB_ExtFlags;
|
||||
UINT16 BPB_FSVer;
|
||||
UINT32 BPB_RootClus;
|
||||
UINT16 BPB_FSInfo;
|
||||
UINT16 BPB_BkBootSec;
|
||||
UINT8 BPB_Reserved[12];
|
||||
UINT8 BS_DrvNum;
|
||||
UINT8 BS_Reserved1;
|
||||
UINT8 BS_BootSig;
|
||||
UINT32 BS_VolID;
|
||||
CHAR8 BS_VolLab[11];
|
||||
CHAR8 BS_FilSysType[8];
|
||||
|
||||
//
|
||||
// Boot Code and Data
|
||||
//
|
||||
UINT8 Reserved[420];
|
||||
|
||||
//
|
||||
// Fat common signature - 0xAA55
|
||||
//
|
||||
UINT16 Signature;
|
||||
} FAT32_BPB_STRUCT;
|
||||
|
||||
typedef union {
|
||||
FAT12_16_BPB_STRUCT Fat12_16;
|
||||
FAT32_BPB_STRUCT Fat32;
|
||||
} FAT_BPB_STRUCT;
|
||||
|
||||
typedef enum {
|
||||
FatTypeUnknown,
|
||||
FatTypeFat12,
|
||||
FatTypeFat16,
|
||||
FatTypeFat32,
|
||||
FatTypeMax
|
||||
} FAT_TYPE;
|
||||
|
||||
typedef struct {
|
||||
CHAR8 DIR_Name[11];
|
||||
UINT8 DIR_Attr;
|
||||
UINT8 DIR_NTRes;
|
||||
UINT8 DIR_CrtTimeTenth;
|
||||
UINT16 DIR_CrtTime;
|
||||
UINT16 DIR_CrtDate;
|
||||
UINT16 DIR_LstAccDate;
|
||||
UINT16 DIR_FstClusHI;
|
||||
UINT16 DIR_WrtTime;
|
||||
UINT16 DIR_WrtDate;
|
||||
UINT16 DIR_FstClusLO;
|
||||
UINT32 DIR_FileSize;
|
||||
} FAT_DIRECTORY_ENTRY;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#define FAT_MAX_FAT12_CLUSTER 0xFF5
|
||||
#define FAT_MAX_FAT16_CLUSTER 0xFFF5
|
||||
|
||||
#define FAT_BS_SIGNATURE 0xAA55
|
||||
#define FAT_BS_BOOTSIG 0x29
|
||||
#define FAT_BS_JMP1 0xEB
|
||||
#define FAT_BS_JMP2 0xE9
|
||||
#define FAT_FILSYSTYPE "FAT "
|
||||
#define FAT12_FILSYSTYPE "FAT12 "
|
||||
#define FAT16_FILSYSTYPE "FAT16 "
|
||||
#define FAT32_FILSYSTYPE "FAT32 "
|
||||
|
||||
#endif
|
|
@ -1,58 +0,0 @@
|
|||
/** @file
|
||||
|
||||
MBR Partition Entry and Table structure defintions.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _MBR_H_
|
||||
#define _MBR_H_
|
||||
|
||||
#include "CommonLib.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
#define MAX_MBR_PARTITIONS 4
|
||||
|
||||
//
|
||||
// MBR Partition Entry
|
||||
//
|
||||
typedef struct {
|
||||
UINT8 BootIndicator;
|
||||
UINT8 StartHead;
|
||||
UINT8 StartSector;
|
||||
UINT8 StartTrack;
|
||||
UINT8 OSType;
|
||||
UINT8 EndHead;
|
||||
UINT8 EndSector;
|
||||
UINT8 EndTrack;
|
||||
UINT32 StartingLBA;
|
||||
UINT32 SizeInLBA;
|
||||
} MBR_PARTITION_RECORD;
|
||||
|
||||
//
|
||||
// MBR Partition table
|
||||
//
|
||||
typedef struct {
|
||||
UINT8 BootCode[440];
|
||||
UINT32 UniqueMbrSignature;
|
||||
UINT16 Unknown;
|
||||
MBR_PARTITION_RECORD PartitionRecord[MAX_MBR_PARTITIONS];
|
||||
UINT16 Signature;
|
||||
} MASTER_BOOT_RECORD;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#define MBR_SIGNATURE 0xAA55
|
||||
#define EXTENDED_DOS_PARTITION 0x05
|
||||
#define EXTENDED_WINDOWS_PARTITION 0x0F
|
||||
|
||||
#endif
|
|
@ -1,319 +0,0 @@
|
|||
/** @file
|
||||
Creates and EFILDR image.
|
||||
This tool combines several PE Image files together using following format denoted as EBNF:
|
||||
FILE := EFILDR_HEADER
|
||||
EFILDR_IMAGE +
|
||||
<PeImageFileContent> +
|
||||
The order of EFILDR_IMAGE is same as the order of placing PeImageFileContent.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "ParseInf.h"
|
||||
#include "CommonLib.h"
|
||||
#include "EfiUtilityMsgs.h"
|
||||
|
||||
#define MAX_PE_IMAGES 63
|
||||
#define FILE_TYPE_FIXED_LOADER 0
|
||||
#define FILE_TYPE_RELOCATABLE_PE_IMAGE 1
|
||||
|
||||
typedef struct {
|
||||
UINT32 CheckSum;
|
||||
UINT32 Offset;
|
||||
UINT32 Length;
|
||||
UINT8 FileName[52];
|
||||
} EFILDR_IMAGE;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINT32 HeaderCheckSum;
|
||||
UINT32 FileLength;
|
||||
UINT32 NumberOfImages;
|
||||
} EFILDR_HEADER;
|
||||
|
||||
//
|
||||
// Utility Name
|
||||
//
|
||||
#define UTILITY_NAME "EfiLdrImage"
|
||||
|
||||
//
|
||||
// Utility version information
|
||||
//
|
||||
#define UTILITY_MAJOR_VERSION 1
|
||||
#define UTILITY_MINOR_VERSION 0
|
||||
|
||||
void
|
||||
Version (
|
||||
void
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Displays the standard utility information to SDTOUT
|
||||
|
||||
Arguments:
|
||||
|
||||
None
|
||||
|
||||
Returns:
|
||||
|
||||
None
|
||||
|
||||
--*/
|
||||
{
|
||||
printf ("%s Version %d.%d Build %s\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
|
||||
}
|
||||
|
||||
VOID
|
||||
Usage (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
printf ("Usage: EfiLdrImage -o OutImage LoaderImage PeImage1 PeImage2 ... PeImageN\n");
|
||||
printf ("%s Version %d.%d Build %s\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
|
||||
printf ("Copyright (c) 1999-2017 Intel Corporation. All rights reserved.\n");
|
||||
printf ("\n The EfiLdrImage tool is used to combine PE files into EFILDR image with Efi loader header.\n");
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
CountVerboseLevel (
|
||||
IN CONST CHAR8* VerboseLevelString,
|
||||
IN CONST UINT64 Length,
|
||||
OUT UINT64 *ReturnValue
|
||||
)
|
||||
{
|
||||
UINT64 i = 0;
|
||||
for (;i < Length; ++i) {
|
||||
if (VerboseLevelString[i] != 'v' && VerboseLevelString[i] != 'V') {
|
||||
return EFI_ABORTED;
|
||||
}
|
||||
++(*ReturnValue);
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
UINT64
|
||||
FCopyFile (
|
||||
FILE *in,
|
||||
FILE *out
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Write all the content of input file to output file.
|
||||
|
||||
Arguments:
|
||||
in - input file pointer
|
||||
out - output file pointer
|
||||
|
||||
Return:
|
||||
UINT64 : file size of input file
|
||||
--*/
|
||||
{
|
||||
UINT32 filesize, offset, length;
|
||||
CHAR8 Buffer[8*1024];
|
||||
|
||||
fseek (in, 0, SEEK_END);
|
||||
filesize = ftell(in);
|
||||
|
||||
fseek (in, 0, SEEK_SET);
|
||||
|
||||
offset = 0;
|
||||
while (offset < filesize) {
|
||||
length = sizeof(Buffer);
|
||||
if (filesize-offset < length) {
|
||||
length = filesize-offset;
|
||||
}
|
||||
|
||||
fread (Buffer, length, 1, in);
|
||||
fwrite (Buffer, length, 1, out);
|
||||
offset += length;
|
||||
}
|
||||
|
||||
return filesize;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main (
|
||||
int argc,
|
||||
char *argv[]
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
Returns:
|
||||
|
||||
|
||||
--*/
|
||||
{
|
||||
UINT64 i;
|
||||
UINT64 filesize;
|
||||
FILE *fpIn, *fpOut;
|
||||
EFILDR_HEADER EfiLdrHeader;
|
||||
EFILDR_IMAGE EfiLdrImage[MAX_PE_IMAGES];
|
||||
CHAR8* OutputFileName = NULL;
|
||||
CHAR8* InputFileNames[MAX_PE_IMAGES + 1];
|
||||
UINT8 InputFileCount = 0;
|
||||
UINT64 DebugLevel = 0;
|
||||
UINT64 VerboseLevel = 0;
|
||||
EFI_STATUS Status = EFI_SUCCESS;
|
||||
|
||||
SetUtilityName (UTILITY_NAME);
|
||||
|
||||
if (argc == 1) {
|
||||
printf ("Usage: EfiLdrImage -o OutImage LoaderImage PeImage1 PeImage2 ... PeImageN\n");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
argc --;
|
||||
argv ++;
|
||||
|
||||
if ((stricmp (argv[0], "-h") == 0) || (stricmp (argv[0], "--help") == 0)) {
|
||||
Usage();
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (stricmp (argv[0], "--version") == 0) {
|
||||
Version();
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
while (argc > 0) {
|
||||
|
||||
if ((stricmp (argv[0], "-o") == 0) || (stricmp (argv[0], "--output") == 0)) {
|
||||
OutputFileName = argv[1];
|
||||
if (OutputFileName == NULL) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file can't be null");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[0], "-q") == 0) || (stricmp (argv[0], "--quiet") == 0)) {
|
||||
argc --;
|
||||
argv ++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((strlen(argv[0]) >= 2 && argv[0][0] == '-' && (argv[0][1] == 'v' || argv[0][1] == 'V')) || (stricmp (argv[0], "--verbose") == 0)) {
|
||||
VerboseLevel = 1;
|
||||
if (strlen(argv[0]) > 2) {
|
||||
Status = CountVerboseLevel (&argv[0][2], strlen(argv[0]) - 2, &VerboseLevel);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "%s", argv[0]);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
argc --;
|
||||
argv ++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[0], "-d") == 0) || (stricmp (argv[0], "--debug") == 0)) {
|
||||
Status = AsciiStringToUint64 (argv[1], FALSE, &DebugLevel);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "%s = %s", argv[0], argv[1]);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
}
|
||||
//
|
||||
// Don't recognize the parameter, should be regarded as the input file name.
|
||||
//
|
||||
InputFileNames[InputFileCount] = argv[0];
|
||||
InputFileCount++;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
|
||||
if (InputFileCount == 0) {
|
||||
Error (NULL, 0, 1001, "Missing option", "No input file");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
//
|
||||
// Open output file for write
|
||||
//
|
||||
if (OutputFileName == NULL) {
|
||||
Error (NULL, 0, 1001, "Missing option", "No output file");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
fpOut = fopen (LongFilePath (OutputFileName), "w+b");
|
||||
if (!fpOut) {
|
||||
Error (NULL, 0, 0001, "Could not open output file", OutputFileName);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
memset (&EfiLdrHeader, 0, sizeof (EfiLdrHeader));
|
||||
memset (&EfiLdrImage, 0, sizeof (EFILDR_IMAGE) * (InputFileCount));
|
||||
|
||||
memcpy (&EfiLdrHeader.Signature, "EFIL", 4);
|
||||
EfiLdrHeader.FileLength = sizeof(EFILDR_HEADER) + sizeof(EFILDR_IMAGE)*(InputFileCount);
|
||||
|
||||
//
|
||||
// Skip the file header first
|
||||
//
|
||||
fseek (fpOut, EfiLdrHeader.FileLength, SEEK_SET);
|
||||
|
||||
//
|
||||
// copy all the input files to the output file
|
||||
//
|
||||
for(i=0;i<InputFileCount;i++) {
|
||||
//
|
||||
// Copy the content of PeImage file to output file
|
||||
//
|
||||
fpIn = fopen (LongFilePath (InputFileNames[i]), "rb");
|
||||
if (!fpIn) {
|
||||
Error (NULL, 0, 0001, "Could not open input file", InputFileNames[i]);
|
||||
fclose (fpOut);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
filesize = FCopyFile (fpIn, fpOut);
|
||||
fclose(fpIn);
|
||||
|
||||
//
|
||||
// And in the same time update the EfiLdrHeader and EfiLdrImage array
|
||||
//
|
||||
EfiLdrImage[i].Offset = EfiLdrHeader.FileLength;
|
||||
EfiLdrImage[i].Length = (UINT32) filesize;
|
||||
strncpy ((CHAR8*) EfiLdrImage[i].FileName, InputFileNames[i], sizeof (EfiLdrImage[i].FileName) - 1);
|
||||
EfiLdrHeader.FileLength += (UINT32) filesize;
|
||||
EfiLdrHeader.NumberOfImages++;
|
||||
}
|
||||
|
||||
//
|
||||
// Write the image header to the output file finally
|
||||
//
|
||||
fseek (fpOut, 0, SEEK_SET);
|
||||
fwrite (&EfiLdrHeader, sizeof(EFILDR_HEADER) , 1, fpOut);
|
||||
fwrite (&EfiLdrImage , sizeof(EFILDR_IMAGE)*(InputFileCount), 1, fpOut);
|
||||
|
||||
fclose (fpOut);
|
||||
printf ("Created %s\n", OutputFileName);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
## @file
|
||||
# GNU/Linux makefile for 'EfiLdrImage' module build.
|
||||
#
|
||||
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
MAKEROOT ?= ..
|
||||
|
||||
APPNAME = EfiLdrImage
|
||||
|
||||
LIBS = -lCommon
|
||||
|
||||
OBJECTS = EfiLdrImage.o
|
||||
|
||||
include $(MAKEROOT)/Makefiles/app.makefile
|
|
@ -1,22 +0,0 @@
|
|||
## @file
|
||||
# Windows makefile for 'EfiLdrImage' module build.
|
||||
#
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
!INCLUDE ..\Makefiles\ms.common
|
||||
|
||||
APPNAME = EfiLdrImage
|
||||
|
||||
LIBS = $(LIB_PATH)\Common.lib
|
||||
|
||||
OBJECTS = EfiLdrImage.obj
|
||||
|
||||
!INCLUDE ..\Makefiles\ms.app
|
||||
|
|
@ -49,18 +49,13 @@ all: makerootdir subdirs
|
|||
|
||||
LIBRARIES = Common
|
||||
VFRAUTOGEN = VfrCompile/VfrLexer.h
|
||||
# NON_BUILDABLE_APPLICATIONS = GenBootSector BootSectImage
|
||||
APPLICATIONS = \
|
||||
BrotliCompress \
|
||||
VfrCompile \
|
||||
GnuGenBootSector \
|
||||
BootSectImage \
|
||||
EfiLdrImage \
|
||||
EfiRom \
|
||||
GenFfs \
|
||||
GenFv \
|
||||
GenFw \
|
||||
GenPage \
|
||||
GenSec \
|
||||
GenCrc32 \
|
||||
LzmaCompress \
|
||||
|
|
|
@ -1,152 +0,0 @@
|
|||
/** @file
|
||||
|
||||
Fat file system structure and definition.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _FAT_BPB_H_
|
||||
#define _FAT_BPB_H_
|
||||
|
||||
#include "CommonLib.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Fat common field
|
||||
//
|
||||
UINT8 BS_jmpBoot[3];
|
||||
CHAR8 BS_OEMName[8];
|
||||
UINT16 BPB_BytsPerSec;
|
||||
UINT8 BPB_SecPerClus;
|
||||
UINT16 BPB_RsvdSecCnt;
|
||||
UINT8 BPB_NumFATs;
|
||||
UINT16 BPB_RootEntCnt;
|
||||
UINT16 BPB_TotSec16;
|
||||
UINT8 BPB_Media;
|
||||
UINT16 BPB_FATSz16;
|
||||
UINT16 BPB_SecPerTrk;
|
||||
UINT16 BPB_NumHeads;
|
||||
UINT32 BPB_HiddSec;
|
||||
UINT32 BPB_TotSec32;
|
||||
|
||||
//
|
||||
// Fat12/16 specific field
|
||||
//
|
||||
UINT8 BS_DrvNum;
|
||||
UINT8 BS_Reserved1;
|
||||
UINT8 BS_BootSig;
|
||||
UINT32 BS_VolID;
|
||||
CHAR8 BS_VolLab[11];
|
||||
CHAR8 BS_FilSysType[8];
|
||||
|
||||
//
|
||||
// Boot Code and Data
|
||||
//
|
||||
UINT8 Reserved[448];
|
||||
|
||||
//
|
||||
// Fat common signature - 0xAA55
|
||||
//
|
||||
UINT16 Signature;
|
||||
} FAT12_16_BPB_STRUCT;
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Fat common field
|
||||
//
|
||||
UINT8 BS_jmpBoot[3];
|
||||
CHAR8 BS_OEMName[8];
|
||||
UINT16 BPB_BytsPerSec;
|
||||
UINT8 BPB_SecPerClus;
|
||||
UINT16 BPB_RsvdSecCnt;
|
||||
UINT8 BPB_NumFATs;
|
||||
UINT16 BPB_RootEntCnt;
|
||||
UINT16 BPB_TotSec16;
|
||||
UINT8 BPB_Media;
|
||||
UINT16 BPB_FATSz16;
|
||||
UINT16 BPB_SecPerTrk;
|
||||
UINT16 BPB_NumHeads;
|
||||
UINT32 BPB_HiddSec;
|
||||
UINT32 BPB_TotSec32;
|
||||
|
||||
//
|
||||
// Fat32 specific field
|
||||
//
|
||||
UINT32 BPB_FATSz32;
|
||||
UINT16 BPB_ExtFlags;
|
||||
UINT16 BPB_FSVer;
|
||||
UINT32 BPB_RootClus;
|
||||
UINT16 BPB_FSInfo;
|
||||
UINT16 BPB_BkBootSec;
|
||||
UINT8 BPB_Reserved[12];
|
||||
UINT8 BS_DrvNum;
|
||||
UINT8 BS_Reserved1;
|
||||
UINT8 BS_BootSig;
|
||||
UINT32 BS_VolID;
|
||||
CHAR8 BS_VolLab[11];
|
||||
CHAR8 BS_FilSysType[8];
|
||||
|
||||
//
|
||||
// Boot Code and Data
|
||||
//
|
||||
UINT8 Reserved[420];
|
||||
|
||||
//
|
||||
// Fat common signature - 0xAA55
|
||||
//
|
||||
UINT16 Signature;
|
||||
} FAT32_BPB_STRUCT;
|
||||
|
||||
typedef union {
|
||||
FAT12_16_BPB_STRUCT Fat12_16;
|
||||
FAT32_BPB_STRUCT Fat32;
|
||||
} FAT_BPB_STRUCT;
|
||||
|
||||
typedef enum {
|
||||
FatTypeUnknown,
|
||||
FatTypeFat12,
|
||||
FatTypeFat16,
|
||||
FatTypeFat32,
|
||||
FatTypeMax
|
||||
} FAT_TYPE;
|
||||
|
||||
typedef struct {
|
||||
CHAR8 DIR_Name[11];
|
||||
UINT8 DIR_Attr;
|
||||
UINT8 DIR_NTRes;
|
||||
UINT8 DIR_CrtTimeTenth;
|
||||
UINT16 DIR_CrtTime;
|
||||
UINT16 DIR_CrtDate;
|
||||
UINT16 DIR_LstAccDate;
|
||||
UINT16 DIR_FstClusHI;
|
||||
UINT16 DIR_WrtTime;
|
||||
UINT16 DIR_WrtDate;
|
||||
UINT16 DIR_FstClusLO;
|
||||
UINT32 DIR_FileSize;
|
||||
} FAT_DIRECTORY_ENTRY;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#define FAT_MAX_FAT12_CLUSTER 0xFF5
|
||||
#define FAT_MAX_FAT16_CLUSTER 0xFFF5
|
||||
|
||||
#define FAT_BS_SIGNATURE 0xAA55
|
||||
#define FAT_BS_BOOTSIG 0x29
|
||||
#define FAT_BS_JMP1 0xEB
|
||||
#define FAT_BS_JMP2 0xE9
|
||||
#define FAT_FILSYSTYPE "FAT "
|
||||
#define FAT12_FILSYSTYPE "FAT12 "
|
||||
#define FAT16_FILSYSTYPE "FAT16 "
|
||||
#define FAT32_FILSYSTYPE "FAT32 "
|
||||
|
||||
#endif
|
|
@ -1,823 +0,0 @@
|
|||
/** @file
|
||||
Reading/writing MBR/DBR.
|
||||
NOTE:
|
||||
If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written.
|
||||
If we process DBR, we will patch MBR to set first partition active if no active partition exists.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <Common/UefiBaseTypes.h>
|
||||
|
||||
#include "ParseInf.h"
|
||||
#include "EfiUtilityMsgs.h"
|
||||
#include "CommonLib.h"
|
||||
|
||||
//
|
||||
// Utility Name
|
||||
//
|
||||
#define UTILITY_NAME "GenBootSector"
|
||||
|
||||
//
|
||||
// Utility version information
|
||||
//
|
||||
#define UTILITY_MAJOR_VERSION 0
|
||||
#define UTILITY_MINOR_VERSION 2
|
||||
|
||||
#define MAX_DRIVE 26
|
||||
#define PARTITION_TABLE_OFFSET 0x1BE
|
||||
|
||||
#define SIZE_OF_PARTITION_ENTRY 0x10
|
||||
|
||||
#define PARTITION_ENTRY_STARTLBA_OFFSET 8
|
||||
|
||||
#define PARTITION_ENTRY_NUM 4
|
||||
|
||||
INT
|
||||
GetDrvNumOffset (
|
||||
IN VOID *BootSector
|
||||
);
|
||||
|
||||
typedef enum {
|
||||
PatchTypeUnknown,
|
||||
PatchTypeFloppy,
|
||||
PatchTypeIde,
|
||||
PatchTypeUsb,
|
||||
PatchTypeFileImage // input and output are all file image, patching action is same as PatchTypeFloppy
|
||||
} PATCH_TYPE;
|
||||
|
||||
typedef enum {
|
||||
PathUnknown,
|
||||
PathFile,
|
||||
PathFloppy,
|
||||
PathUsb,
|
||||
PathIde
|
||||
} PATH_TYPE;
|
||||
|
||||
typedef enum {
|
||||
ErrorSuccess,
|
||||
ErrorFileCreate,
|
||||
ErrorFileReadWrite,
|
||||
ErrorNoMbr,
|
||||
ErrorFatType,
|
||||
ErrorPath,
|
||||
} ERROR_STATUS;
|
||||
|
||||
CHAR *ErrorStatusDesc[] = {
|
||||
"Success",
|
||||
"Failed to create files",
|
||||
"Failed to read/write files",
|
||||
"No MBR exists",
|
||||
"Failed to detect Fat type",
|
||||
"Inavlid path"
|
||||
};
|
||||
|
||||
typedef struct _DRIVE_TYPE_DESC {
|
||||
UINT Type;
|
||||
CHAR *Description;
|
||||
} DRIVE_TYPE_DESC;
|
||||
|
||||
#define DRIVE_TYPE_ITEM(x) {x, #x}
|
||||
DRIVE_TYPE_DESC DriveTypeDesc[] = {
|
||||
DRIVE_TYPE_ITEM (DRIVE_UNKNOWN),
|
||||
DRIVE_TYPE_ITEM (DRIVE_NO_ROOT_DIR),
|
||||
DRIVE_TYPE_ITEM (DRIVE_REMOVABLE),
|
||||
DRIVE_TYPE_ITEM (DRIVE_FIXED),
|
||||
DRIVE_TYPE_ITEM (DRIVE_REMOTE),
|
||||
DRIVE_TYPE_ITEM (DRIVE_CDROM),
|
||||
DRIVE_TYPE_ITEM (DRIVE_RAMDISK),
|
||||
(UINT) -1, NULL
|
||||
};
|
||||
|
||||
typedef struct _DRIVE_INFO {
|
||||
CHAR VolumeLetter;
|
||||
DRIVE_TYPE_DESC *DriveType;
|
||||
UINT DiskNumber;
|
||||
} DRIVE_INFO;
|
||||
|
||||
typedef struct _PATH_INFO {
|
||||
CHAR *Path;
|
||||
CHAR PhysicalPath[260];
|
||||
PATH_TYPE Type;
|
||||
BOOL Input;
|
||||
} PATH_INFO;
|
||||
|
||||
#define BOOT_SECTOR_LBA_OFFSET 0x1FA
|
||||
|
||||
#define IsLetter(x) (((x) >= 'a' && (x) <= 'z') || ((x) >= 'A' && (x) <= 'Z'))
|
||||
|
||||
BOOL
|
||||
GetDriveInfo (
|
||||
CHAR VolumeLetter,
|
||||
DRIVE_INFO *DriveInfo
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
Get drive information including disk number and drive type,
|
||||
where disknumber is useful for reading/writing disk raw data.
|
||||
NOTE: Floppy disk doesn't have disk number but it doesn't matter because
|
||||
we can reading/writing floppy disk without disk number.
|
||||
|
||||
Arguments:
|
||||
VolumeLetter : volume letter, e.g.: C for C:, A for A:
|
||||
DriveInfo : pointer to DRIVE_INFO structure receiving drive information.
|
||||
|
||||
Return:
|
||||
TRUE : successful
|
||||
FALSE : failed
|
||||
--*/
|
||||
{
|
||||
HANDLE VolumeHandle;
|
||||
STORAGE_DEVICE_NUMBER StorageDeviceNumber;
|
||||
DWORD BytesReturned;
|
||||
BOOL Success;
|
||||
UINT DriveType;
|
||||
UINT Index;
|
||||
|
||||
CHAR RootPath[] = "X:\\"; // "X:\" -> for GetDriveType
|
||||
CHAR VolumeAccessPath[] = "\\\\.\\X:"; // "\\.\X:" -> to open the volume
|
||||
|
||||
RootPath[0] = VolumeAccessPath[4] = VolumeLetter;
|
||||
DriveType = GetDriveType(RootPath);
|
||||
if (DriveType != DRIVE_REMOVABLE && DriveType != DRIVE_FIXED) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
DriveInfo->VolumeLetter = VolumeLetter;
|
||||
VolumeHandle = CreateFile (
|
||||
VolumeAccessPath,
|
||||
0,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
0,
|
||||
NULL
|
||||
);
|
||||
if (VolumeHandle == INVALID_HANDLE_VALUE) {
|
||||
fprintf (
|
||||
stderr,
|
||||
"error E0005: CreateFile failed: Volume = %s, LastError = 0x%lx\n",
|
||||
VolumeAccessPath,
|
||||
GetLastError ()
|
||||
);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//
|
||||
// Get Disk Number. It should fail when operating on floppy. That's ok
|
||||
// because Disk Number is only needed when operating on Hard or USB disk.
|
||||
//
|
||||
// To direct write to disk:
|
||||
// for USB and HD: use path = \\.\PHYSICALDRIVEx, where x is Disk Number
|
||||
// for floppy: use path = \\.\X:, where X can be A or B
|
||||
//
|
||||
Success = DeviceIoControl(
|
||||
VolumeHandle,
|
||||
IOCTL_STORAGE_GET_DEVICE_NUMBER,
|
||||
NULL,
|
||||
0,
|
||||
&StorageDeviceNumber,
|
||||
sizeof(StorageDeviceNumber),
|
||||
&BytesReturned,
|
||||
NULL
|
||||
);
|
||||
//
|
||||
// DeviceIoControl should fail if Volume is floppy or network drive.
|
||||
//
|
||||
if (!Success) {
|
||||
DriveInfo->DiskNumber = (UINT) -1;
|
||||
} else if (StorageDeviceNumber.DeviceType != FILE_DEVICE_DISK) {
|
||||
//
|
||||
// Only care about the disk.
|
||||
//
|
||||
CloseHandle(VolumeHandle);
|
||||
return FALSE;
|
||||
} else{
|
||||
DriveInfo->DiskNumber = StorageDeviceNumber.DeviceNumber;
|
||||
}
|
||||
CloseHandle(VolumeHandle);
|
||||
|
||||
//
|
||||
// Fill in the type string
|
||||
//
|
||||
DriveInfo->DriveType = NULL;
|
||||
for (Index = 0; DriveTypeDesc[Index].Description != NULL; Index ++) {
|
||||
if (DriveType == DriveTypeDesc[Index].Type) {
|
||||
DriveInfo->DriveType = &DriveTypeDesc[Index];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (DriveInfo->DriveType == NULL) {
|
||||
//
|
||||
// Should have a type.
|
||||
//
|
||||
fprintf (stderr, "error E3005: Fatal Error!!!\n");
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
VOID
|
||||
ListDrive (
|
||||
VOID
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
List every drive in current system and their information.
|
||||
|
||||
--*/
|
||||
{
|
||||
UINT Index;
|
||||
DRIVE_INFO DriveInfo;
|
||||
|
||||
UINT Mask = GetLogicalDrives();
|
||||
|
||||
for (Index = 0; Index < MAX_DRIVE; Index++) {
|
||||
if (((Mask >> Index) & 0x1) == 1) {
|
||||
if (GetDriveInfo ('A' + (CHAR) Index, &DriveInfo)) {
|
||||
if (Index < 2) {
|
||||
// Floppy will occupy 'A' and 'B'
|
||||
fprintf (
|
||||
stdout,
|
||||
"%c: - Type: %s\n",
|
||||
DriveInfo.VolumeLetter,
|
||||
DriveInfo.DriveType->Description
|
||||
);
|
||||
} else {
|
||||
fprintf (
|
||||
stdout,
|
||||
"%c: - DiskNum: %u, Type: %s\n",
|
||||
DriveInfo.VolumeLetter,
|
||||
(unsigned) DriveInfo.DiskNumber,
|
||||
DriveInfo.DriveType->Description
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
INT
|
||||
GetBootSectorOffset (
|
||||
HANDLE DiskHandle,
|
||||
PATH_INFO *PathInfo
|
||||
)
|
||||
/*++
|
||||
Description:
|
||||
Get the offset of boot sector.
|
||||
For non-MBR disk, offset is just 0
|
||||
for disk with MBR, offset needs to be calculated by parsing MBR
|
||||
|
||||
NOTE: if no one is active, we will patch MBR to select first partition as active.
|
||||
|
||||
Arguments:
|
||||
DiskHandle : HANDLE of disk
|
||||
PathInfo : PATH_INFO structure.
|
||||
WriteToDisk : TRUE indicates writing
|
||||
|
||||
Return:
|
||||
-1 : failed
|
||||
o.w. : Offset to boot sector
|
||||
--*/
|
||||
{
|
||||
BYTE DiskPartition[0x200];
|
||||
DWORD BytesReturn;
|
||||
DWORD DbrOffset;
|
||||
DWORD Index;
|
||||
BOOL HasMbr;
|
||||
|
||||
DbrOffset = 0;
|
||||
HasMbr = FALSE;
|
||||
|
||||
SetFilePointer(DiskHandle, 0, NULL, FILE_BEGIN);
|
||||
if (!ReadFile (DiskHandle, DiskPartition, 0x200, &BytesReturn, NULL)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Signature, Jmp, and Boot Indicator.
|
||||
// if all pass, we assume MBR found.
|
||||
//
|
||||
|
||||
// Check Signature: 55AA
|
||||
if ((DiskPartition[0x1FE] == 0x55) && (DiskPartition[0x1FF] == 0xAA)) {
|
||||
// Check Jmp: (EB ?? 90) or (E9 ?? ??)
|
||||
if (((DiskPartition[0] != 0xEB) || (DiskPartition[2] != 0x90)) &&
|
||||
(DiskPartition[0] != 0xE9)) {
|
||||
// Check Boot Indicator: 0x00 or 0x80
|
||||
// Boot Indicator is the first byte of Partition Entry
|
||||
HasMbr = TRUE;
|
||||
for (Index = 0; Index < PARTITION_ENTRY_NUM; ++Index) {
|
||||
if ((DiskPartition[PARTITION_TABLE_OFFSET + Index * SIZE_OF_PARTITION_ENTRY] & 0x7F) != 0) {
|
||||
HasMbr = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (HasMbr) {
|
||||
//
|
||||
// Skip MBR
|
||||
//
|
||||
for (Index = 0; Index < PARTITION_ENTRY_NUM; Index++) {
|
||||
//
|
||||
// Found Boot Indicator.
|
||||
//
|
||||
if (DiskPartition[PARTITION_TABLE_OFFSET + (Index * SIZE_OF_PARTITION_ENTRY)] == 0x80) {
|
||||
DbrOffset = *(DWORD *)&DiskPartition[PARTITION_TABLE_OFFSET + (Index * SIZE_OF_PARTITION_ENTRY) + PARTITION_ENTRY_STARTLBA_OFFSET];
|
||||
break;
|
||||
}
|
||||
}
|
||||
//
|
||||
// If no boot indicator, we manually select 1st partition, and patch MBR.
|
||||
//
|
||||
if (Index == PARTITION_ENTRY_NUM) {
|
||||
DbrOffset = *(DWORD *)&DiskPartition[PARTITION_TABLE_OFFSET + PARTITION_ENTRY_STARTLBA_OFFSET];
|
||||
if (!PathInfo->Input && (PathInfo->Type == PathUsb)) {
|
||||
SetFilePointer(DiskHandle, 0, NULL, FILE_BEGIN);
|
||||
DiskPartition[PARTITION_TABLE_OFFSET] = 0x80;
|
||||
WriteFile (DiskHandle, DiskPartition, 0x200, &BytesReturn, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return DbrOffset;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get window file handle for input/ouput disk/file.
|
||||
*
|
||||
* @param PathInfo
|
||||
* @param ProcessMbr
|
||||
* @param FileHandle
|
||||
*
|
||||
* @return ERROR_STATUS
|
||||
*/
|
||||
ERROR_STATUS
|
||||
GetFileHandle (
|
||||
PATH_INFO *PathInfo,
|
||||
BOOL ProcessMbr,
|
||||
HANDLE *FileHandle,
|
||||
DWORD *DbrOffset
|
||||
)
|
||||
{
|
||||
DWORD OpenFlag;
|
||||
|
||||
OpenFlag = OPEN_ALWAYS;
|
||||
if (PathInfo->Input || PathInfo->Type != PathFile) {
|
||||
OpenFlag = OPEN_EXISTING;
|
||||
}
|
||||
|
||||
*FileHandle = CreateFile(
|
||||
PathInfo->PhysicalPath,
|
||||
GENERIC_READ | GENERIC_WRITE,
|
||||
FILE_SHARE_READ,
|
||||
NULL,
|
||||
OpenFlag,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL
|
||||
);
|
||||
if (*FileHandle == INVALID_HANDLE_VALUE) {
|
||||
return ErrorFileCreate;
|
||||
}
|
||||
|
||||
if ((PathInfo->Type == PathIde) || (PathInfo->Type == PathUsb)){
|
||||
*DbrOffset = GetBootSectorOffset (*FileHandle, PathInfo);
|
||||
if (!ProcessMbr) {
|
||||
//
|
||||
// 1. Process boot sector, set file pointer to the beginning of boot sector
|
||||
//
|
||||
SetFilePointer (*FileHandle, *DbrOffset * 0x200, NULL, FILE_BEGIN);
|
||||
} else if(*DbrOffset == 0) {
|
||||
//
|
||||
// If user want to process Mbr, but no Mbr exists, simply return FALSE
|
||||
//
|
||||
return ErrorNoMbr;
|
||||
} else {
|
||||
//
|
||||
// 2. Process MBR, set file pointer to 0
|
||||
//
|
||||
SetFilePointer (*FileHandle, 0, NULL, FILE_BEGIN);
|
||||
}
|
||||
}
|
||||
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
/**
|
||||
Writing or reading boot sector or MBR according to the argument.
|
||||
|
||||
@param InputInfo PATH_INFO instance for input path
|
||||
@param OutputInfo PATH_INFO instance for output path
|
||||
@param ProcessMbr TRUE is to process MBR, otherwise, processing boot sector
|
||||
|
||||
@return ERROR_STATUS
|
||||
**/
|
||||
ERROR_STATUS
|
||||
ProcessBsOrMbr (
|
||||
PATH_INFO *InputInfo,
|
||||
PATH_INFO *OutputInfo,
|
||||
BOOL ProcessMbr
|
||||
)
|
||||
{
|
||||
BYTE DiskPartition[0x200] = {0};
|
||||
BYTE DiskPartitionBackup[0x200] = {0};
|
||||
DWORD BytesReturn;
|
||||
INT DrvNumOffset;
|
||||
HANDLE InputHandle = INVALID_HANDLE_VALUE;
|
||||
HANDLE OutputHandle = INVALID_HANDLE_VALUE;
|
||||
ERROR_STATUS Status;
|
||||
DWORD InputDbrOffset;
|
||||
DWORD OutputDbrOffset;
|
||||
|
||||
//
|
||||
// Create file Handle and move file Pointer is pointed to beginning of Mbr or Dbr
|
||||
//
|
||||
Status = GetFileHandle(InputInfo, ProcessMbr, &InputHandle, &InputDbrOffset);
|
||||
if (Status != ErrorSuccess) {
|
||||
goto Done;
|
||||
}
|
||||
|
||||
//
|
||||
// Create file Handle and move file Pointer is pointed to beginning of Mbr or Dbr
|
||||
//
|
||||
Status = GetFileHandle(OutputInfo, ProcessMbr, &OutputHandle, &OutputDbrOffset);
|
||||
if (Status != ErrorSuccess) {
|
||||
goto Done;
|
||||
}
|
||||
|
||||
//
|
||||
// Read boot sector from source disk/file
|
||||
//
|
||||
if (!ReadFile (InputHandle, DiskPartition, 0x200, &BytesReturn, NULL)) {
|
||||
Status = ErrorFileReadWrite;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
if (InputInfo->Type == PathUsb) {
|
||||
// Manually set BS_DrvNum to 0x80 as window's format.exe has a bug which will clear this field discarding USB disk's MBR.
|
||||
// offset of BS_DrvNum is 0x24 for FAT12/16
|
||||
// 0x40 for FAT32
|
||||
//
|
||||
DrvNumOffset = GetDrvNumOffset (DiskPartition);
|
||||
if (DrvNumOffset == -1) {
|
||||
Status = ErrorFatType;
|
||||
goto Done;
|
||||
}
|
||||
//
|
||||
// Some legacy BIOS require 0x80 discarding MBR.
|
||||
// Question left here: is it needed to check Mbr before set 0x80?
|
||||
//
|
||||
DiskPartition[DrvNumOffset] = ((InputDbrOffset > 0) ? 0x80 : 0);
|
||||
}
|
||||
|
||||
if (InputInfo->Type == PathIde) {
|
||||
//
|
||||
// Patch LBAOffsetForBootSector
|
||||
//
|
||||
*(DWORD *)&DiskPartition [BOOT_SECTOR_LBA_OFFSET] = InputDbrOffset;
|
||||
}
|
||||
|
||||
if (OutputInfo->Type != PathFile) {
|
||||
if (ProcessMbr) {
|
||||
//
|
||||
// Use original partition table
|
||||
//
|
||||
if (!ReadFile (OutputHandle, DiskPartitionBackup, 0x200, &BytesReturn, NULL)) {
|
||||
Status = ErrorFileReadWrite;
|
||||
goto Done;
|
||||
}
|
||||
memcpy (DiskPartition + 0x1BE, DiskPartitionBackup + 0x1BE, 0x40);
|
||||
SetFilePointer (OutputHandle, 0, NULL, FILE_BEGIN);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Write boot sector to taget disk/file
|
||||
//
|
||||
if (!WriteFile (OutputHandle, DiskPartition, 0x200, &BytesReturn, NULL)) {
|
||||
Status = ErrorFileReadWrite;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Done:
|
||||
if (InputHandle != INVALID_HANDLE_VALUE) {
|
||||
CloseHandle (InputHandle);
|
||||
}
|
||||
if (OutputHandle != INVALID_HANDLE_VALUE) {
|
||||
CloseHandle (OutputHandle);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
void
|
||||
Version (
|
||||
void
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Displays the standard utility information to SDTOUT
|
||||
|
||||
Arguments:
|
||||
|
||||
None
|
||||
|
||||
Returns:
|
||||
|
||||
None
|
||||
|
||||
--*/
|
||||
{
|
||||
printf ("%s Version %d.%d %s\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
|
||||
}
|
||||
|
||||
VOID
|
||||
PrintUsage (
|
||||
void
|
||||
)
|
||||
{
|
||||
printf ("Usage: GenBootSector [options] --cfg-file CFG_FILE\n\n\
|
||||
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.\n\n\
|
||||
Utility to retrieve and update the boot sector or MBR.\n\n\
|
||||
optional arguments:\n\
|
||||
-h, --help Show this help message and exit\n\
|
||||
--version Show program's version number and exit\n\
|
||||
-d [DEBUG], --debug [DEBUG]\n\
|
||||
Output DEBUG statements, where DEBUG_LEVEL is 0 (min)\n\
|
||||
- 9 (max)\n\
|
||||
-v, --verbose Print informational statements\n\
|
||||
-q, --quiet Returns the exit code, error messages will be\n\
|
||||
displayed\n\
|
||||
-s, --silent Returns only the exit code; informational and error\n\
|
||||
messages are not displayed\n\
|
||||
-l, --list List disk drives\n\
|
||||
-i INPUT_FILENAME, --input INPUT_FILENAME\n\
|
||||
Input file name\n\
|
||||
-o OUTPUT_FILENAME, --output OUTPUT_FILENAME\n\
|
||||
Output file name\n\
|
||||
-m, --mbr Also process the MBR\n\
|
||||
--sfo Reserved for future use\n");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
Get path information, including physical path for windows platform.
|
||||
|
||||
@param PathInfo Point to PATH_INFO structure.
|
||||
|
||||
@return whether path is valid.
|
||||
**/
|
||||
ERROR_STATUS
|
||||
GetPathInfo (
|
||||
PATH_INFO *PathInfo
|
||||
)
|
||||
{
|
||||
DRIVE_INFO DriveInfo;
|
||||
CHAR VolumeLetter;
|
||||
CHAR DiskPathTemplate[] = "\\\\.\\PHYSICALDRIVE%u";
|
||||
CHAR FloppyPathTemplate[] = "\\\\.\\%c:";
|
||||
FILE *f;
|
||||
|
||||
//
|
||||
// If path is disk path
|
||||
//
|
||||
if (IsLetter(PathInfo->Path[0]) && (PathInfo->Path[1] == ':') && (PathInfo->Path[2] == '\0')) {
|
||||
VolumeLetter = PathInfo->Path[0];
|
||||
if ((VolumeLetter == 'A') || (VolumeLetter == 'a') ||
|
||||
(VolumeLetter == 'B') || (VolumeLetter == 'b')) {
|
||||
PathInfo->Type = PathFloppy;
|
||||
sprintf (PathInfo->PhysicalPath, FloppyPathTemplate, VolumeLetter);
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
if (!GetDriveInfo(VolumeLetter, &DriveInfo)) {
|
||||
fprintf (stderr, "ERROR: GetDriveInfo - 0x%lx\n", GetLastError ());
|
||||
return ErrorPath;
|
||||
}
|
||||
|
||||
if (!PathInfo->Input && (DriveInfo.DriveType->Type == DRIVE_FIXED)) {
|
||||
fprintf (stderr, "ERROR: Could patch own IDE disk!\n");
|
||||
return ErrorPath;
|
||||
}
|
||||
|
||||
sprintf(PathInfo->PhysicalPath, DiskPathTemplate, DriveInfo.DiskNumber);
|
||||
if (DriveInfo.DriveType->Type == DRIVE_REMOVABLE) {
|
||||
PathInfo->Type = PathUsb;
|
||||
} else if (DriveInfo.DriveType->Type == DRIVE_FIXED) {
|
||||
PathInfo->Type = PathIde;
|
||||
} else {
|
||||
fprintf (stderr, "ERROR, Invalid disk path - %s", PathInfo->Path);
|
||||
return ErrorPath;
|
||||
}
|
||||
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
//
|
||||
// Check the path length
|
||||
//
|
||||
if (strlen (PathInfo->Path) >= (sizeof (PathInfo->PhysicalPath) / sizeof (PathInfo->PhysicalPath[0]))) {
|
||||
fprintf (stderr, "ERROR, Path is too long for - %s", PathInfo->Path);
|
||||
return ErrorPath;
|
||||
}
|
||||
|
||||
PathInfo->Type = PathFile;
|
||||
if (PathInfo->Input) {
|
||||
//
|
||||
// If path is file path, check whether file is valid.
|
||||
//
|
||||
f = fopen (LongFilePath (PathInfo->Path), "r");
|
||||
if (f == NULL) {
|
||||
fprintf (stderr, "error E2003: File was not provided!\n");
|
||||
return ErrorPath;
|
||||
}
|
||||
fclose (f);
|
||||
}
|
||||
PathInfo->Type = PathFile;
|
||||
strncpy(
|
||||
PathInfo->PhysicalPath,
|
||||
PathInfo->Path,
|
||||
sizeof (PathInfo->PhysicalPath) / sizeof (PathInfo->PhysicalPath[0]) - 1
|
||||
);
|
||||
PathInfo->PhysicalPath[sizeof (PathInfo->PhysicalPath) / sizeof (PathInfo->PhysicalPath[0]) - 1] = 0;
|
||||
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
INT
|
||||
main (
|
||||
INT argc,
|
||||
CHAR *argv[]
|
||||
)
|
||||
{
|
||||
CHAR8 *AppName;
|
||||
INTN Index;
|
||||
BOOLEAN ProcessMbr;
|
||||
ERROR_STATUS Status;
|
||||
EFI_STATUS EfiStatus;
|
||||
PATH_INFO InputPathInfo = {0};
|
||||
PATH_INFO OutputPathInfo = {0};
|
||||
UINT64 LogLevel;
|
||||
|
||||
SetUtilityName (UTILITY_NAME);
|
||||
|
||||
AppName = *argv;
|
||||
argv ++;
|
||||
argc --;
|
||||
|
||||
ProcessMbr = FALSE;
|
||||
|
||||
if (argc == 0) {
|
||||
PrintUsage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// Parse command line
|
||||
//
|
||||
for (Index = 0; Index < argc; Index ++) {
|
||||
if ((stricmp (argv[Index], "-l") == 0) || (stricmp (argv[Index], "--list") == 0)) {
|
||||
ListDrive ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-m") == 0) || (stricmp (argv[Index], "--mbr") == 0)) {
|
||||
ProcessMbr = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-i") == 0) || (stricmp (argv[Index], "--input") == 0)) {
|
||||
InputPathInfo.Path = argv[Index + 1];
|
||||
InputPathInfo.Input = TRUE;
|
||||
if (InputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Input file name can't be NULL");
|
||||
return 1;
|
||||
}
|
||||
if (InputPathInfo.Path[0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Input file is missing");
|
||||
return 1;
|
||||
}
|
||||
++Index;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-o") == 0) || (stricmp (argv[Index], "--output") == 0)) {
|
||||
OutputPathInfo.Path = argv[Index + 1];
|
||||
OutputPathInfo.Input = FALSE;
|
||||
if (OutputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file name can't be NULL");
|
||||
return 1;
|
||||
}
|
||||
if (OutputPathInfo.Path[0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file is missing");
|
||||
return 1;
|
||||
}
|
||||
++Index;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-h") == 0) || (stricmp (argv[Index], "--help") == 0)) {
|
||||
PrintUsage ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (stricmp (argv[Index], "--version") == 0) {
|
||||
Version ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-v") == 0) || (stricmp (argv[Index], "--verbose") == 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-q") == 0) || (stricmp (argv[Index], "--quiet") == 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-d") == 0) || (stricmp (argv[Index], "--debug") == 0)) {
|
||||
EfiStatus = AsciiStringToUint64 (argv[Index + 1], FALSE, &LogLevel);
|
||||
if (EFI_ERROR (EfiStatus)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "%s = %s", argv[Index], argv[Index + 1]);
|
||||
return 1;
|
||||
}
|
||||
if (LogLevel > 9) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", (int) LogLevel);
|
||||
return 1;
|
||||
}
|
||||
SetPrintLevel (LogLevel);
|
||||
DebugMsg (NULL, 0, 9, "Debug Mode Set", "Debug Output Mode Level %s is set!", argv[Index + 1]);
|
||||
++Index;
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// Don't recognize the parameter.
|
||||
//
|
||||
Error (NULL, 0, 1000, "Unknown option", "%s", argv[Index]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (InputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1001, "Missing options", "Input file is missing");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (OutputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1001, "Missing options", "Output file is missing");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (GetPathInfo(&InputPathInfo) != ErrorSuccess) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Input file can't be found.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (GetPathInfo(&OutputPathInfo) != ErrorSuccess) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file can't be found.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//
|
||||
// Process DBR (Patch or Read)
|
||||
//
|
||||
Status = ProcessBsOrMbr (&InputPathInfo, &OutputPathInfo, ProcessMbr);
|
||||
|
||||
if (Status == ErrorSuccess) {
|
||||
fprintf (
|
||||
stdout,
|
||||
"%s %s: successful!\n",
|
||||
(OutputPathInfo.Type != PathFile) ? "Write" : "Read",
|
||||
ProcessMbr ? "MBR" : "DBR"
|
||||
);
|
||||
return 0;
|
||||
} else {
|
||||
fprintf (
|
||||
stderr,
|
||||
"%s: %s %s: failed - %s (LastError: 0x%lx)!\n",
|
||||
(Status == ErrorNoMbr) ? "WARNING" : "ERROR",
|
||||
(OutputPathInfo.Type != PathFile) ? "Write" : "Read",
|
||||
ProcessMbr ? "MBR" : "DBR",
|
||||
ErrorStatusDesc[Status],
|
||||
GetLastError ()
|
||||
);
|
||||
return 1;
|
||||
}
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
/** @file
|
||||
|
||||
Get Drv Num offset from Fat file system.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "FatFormat.h"
|
||||
|
||||
INTN
|
||||
GetDrvNumOffset (
|
||||
IN VOID *BootSector
|
||||
)
|
||||
{
|
||||
FAT_BPB_STRUCT *FatBpb;
|
||||
UINTN RootDirSectors;
|
||||
UINTN FATSz;
|
||||
UINTN TotSec;
|
||||
UINTN DataSec;
|
||||
UINTN CountOfClusters;
|
||||
|
||||
FatBpb = (FAT_BPB_STRUCT *) BootSector;
|
||||
|
||||
//
|
||||
// Check FAT type algorithm from FAT spec
|
||||
//
|
||||
RootDirSectors = ((FatBpb->Fat12_16.BPB_RootEntCnt * sizeof(FAT_DIRECTORY_ENTRY)) +
|
||||
(FatBpb->Fat12_16.BPB_BytsPerSec - 1)) / FatBpb->Fat12_16.BPB_BytsPerSec;
|
||||
|
||||
if (FatBpb->Fat12_16.BPB_FATSz16 != 0) {
|
||||
FATSz = FatBpb->Fat12_16.BPB_FATSz16;
|
||||
} else {
|
||||
FATSz = FatBpb->Fat32.BPB_FATSz32;
|
||||
}
|
||||
if (FATSz == 0) {
|
||||
fprintf (stderr, "error E3003: FAT - BPB_FATSz16, BPB_FATSz32 - 0, expected: Non-Zero number\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (FatBpb->Fat12_16.BPB_TotSec16 != 0) {
|
||||
TotSec = FatBpb->Fat12_16.BPB_TotSec16;
|
||||
} else {
|
||||
TotSec = FatBpb->Fat12_16.BPB_TotSec32;
|
||||
}
|
||||
if (TotSec == 0) {
|
||||
fprintf (stderr, "error E3003: FAT - BPB_TotSec16, BPB_TotSec32 - 0, expected: Non-Zero number\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
DataSec = TotSec - (
|
||||
FatBpb->Fat12_16.BPB_RsvdSecCnt +
|
||||
FatBpb->Fat12_16.BPB_NumFATs * FATSz +
|
||||
RootDirSectors
|
||||
);
|
||||
|
||||
CountOfClusters = DataSec / FatBpb->Fat12_16.BPB_SecPerClus;
|
||||
|
||||
if (CountOfClusters < FAT_MAX_FAT16_CLUSTER) {
|
||||
return (INTN) ((UINTN) &FatBpb->Fat12_16.BS_DrvNum - (UINTN) FatBpb);
|
||||
} else {
|
||||
return (INTN) ((UINTN) &FatBpb->Fat32.BS_DrvNum - (UINTN) FatBpb);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
## @file
|
||||
# Windows makefile for 'GenBootSector' module build.
|
||||
#
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
!INCLUDE ..\Makefiles\ms.common
|
||||
|
||||
APPNAME = GenBootSector
|
||||
|
||||
LIBS = $(LIB_PATH)\Common.lib
|
||||
|
||||
OBJECTS = GenBootSector.obj GetDrvNumOffset.obj
|
||||
|
||||
!INCLUDE ..\Makefiles\ms.app
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
## @file
|
||||
# GNU/Linux makefile for 'GenPage' module build.
|
||||
#
|
||||
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
MAKEROOT ?= ..
|
||||
|
||||
APPNAME = GenPage
|
||||
|
||||
LIBS = -lCommon
|
||||
|
||||
OBJECTS = GenPage.o
|
||||
|
||||
include $(MAKEROOT)/Makefiles/app.makefile
|
|
@ -1,441 +0,0 @@
|
|||
/** @file
|
||||
Pre-Create a 4G page table (2M pages).
|
||||
It's used in DUET x64 build needed to enter LongMode.
|
||||
|
||||
Create 4G page table (2M pages)
|
||||
|
||||
Linear Address
|
||||
63 48 47 39 38 30 29 21 20 0
|
||||
+--------+-------+---------------+-----------+-----------------------------+
|
||||
PML4 Directory-Ptr Directory Offset
|
||||
|
||||
Paging-Structures :=
|
||||
PML4
|
||||
(
|
||||
Directory-Ptr Directory {512}
|
||||
) {4}
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "VirtualMemory.h"
|
||||
#include "EfiUtilityMsgs.h"
|
||||
#include "ParseInf.h"
|
||||
|
||||
#define EFI_PAGE_BASE_OFFSET_IN_LDR 0x70000
|
||||
#define EFI_PAGE_BASE_ADDRESS (EFI_PAGE_BASE_OFFSET_IN_LDR + 0x20000)
|
||||
|
||||
UINT32 gPageTableBaseAddress = EFI_PAGE_BASE_ADDRESS;
|
||||
UINT32 gPageTableOffsetInFile = EFI_PAGE_BASE_OFFSET_IN_LDR;
|
||||
|
||||
#define EFI_MAX_ENTRY_NUM 512
|
||||
|
||||
#define EFI_PML4_ENTRY_NUM 1
|
||||
#define EFI_PDPTE_ENTRY_NUM 4
|
||||
#define EFI_PDE_ENTRY_NUM EFI_MAX_ENTRY_NUM
|
||||
|
||||
#define EFI_PML4_PAGE_NUM 1
|
||||
#define EFI_PDPTE_PAGE_NUM EFI_PML4_ENTRY_NUM
|
||||
#define EFI_PDE_PAGE_NUM (EFI_PML4_ENTRY_NUM * EFI_PDPTE_ENTRY_NUM)
|
||||
|
||||
#define EFI_PAGE_NUMBER (EFI_PML4_PAGE_NUM + EFI_PDPTE_PAGE_NUM + EFI_PDE_PAGE_NUM)
|
||||
|
||||
#define EFI_SIZE_OF_PAGE 0x1000
|
||||
#define EFI_PAGE_SIZE_2M 0x200000
|
||||
|
||||
#define CONVERT_BIN_PAGE_ADDRESS(a) ((UINT8 *) a - PageTable + gPageTableBaseAddress)
|
||||
|
||||
//
|
||||
// Utility Name
|
||||
//
|
||||
#define UTILITY_NAME "GenPage"
|
||||
|
||||
//
|
||||
// Utility version information
|
||||
//
|
||||
#define UTILITY_MAJOR_VERSION 0
|
||||
#define UTILITY_MINOR_VERSION 2
|
||||
|
||||
void
|
||||
Version (
|
||||
void
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Displays the standard utility information to SDTOUT
|
||||
|
||||
Arguments:
|
||||
|
||||
None
|
||||
|
||||
Returns:
|
||||
|
||||
None
|
||||
|
||||
--*/
|
||||
{
|
||||
printf ("%s Version %d.%d %s\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
|
||||
}
|
||||
|
||||
VOID
|
||||
Usage (
|
||||
void
|
||||
)
|
||||
{
|
||||
printf ("Usage: GenPage.exe [options] EfiLoaderImageName \n\n\
|
||||
Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.\n\n\
|
||||
Utility to generate the EfiLoader image containing a page table.\n\n\
|
||||
optional arguments:\n\
|
||||
-h, --help Show this help message and exit\n\
|
||||
--version Show program's version number and exit\n\
|
||||
-d [DEBUG], --debug [DEBUG]\n\
|
||||
Output DEBUG statements, where DEBUG_LEVEL is 0 (min)\n\
|
||||
- 9 (max)\n\
|
||||
-v, --verbose Print informational statements\n\
|
||||
-q, --quiet Returns the exit code, error messages will be\n\
|
||||
displayed\n\
|
||||
-s, --silent Returns only the exit code; informational and error\n\
|
||||
messages are not displayed\n\
|
||||
-o OUTPUT_FILENAME, --output OUTPUT_FILENAME\n\
|
||||
Output file contain both the non-page table part and\n\
|
||||
the page table\n\
|
||||
-b BASE_ADDRESS, --baseaddr BASE_ADDRESS\n\
|
||||
The page table location\n\
|
||||
-f OFFSET, --offset OFFSET\n\
|
||||
The position that the page table will appear in the\n\
|
||||
output file\n\
|
||||
--sfo Reserved for future use\n");
|
||||
|
||||
}
|
||||
|
||||
void *
|
||||
CreateIdentityMappingPageTables (
|
||||
void
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
To create 4G PAE 2M pagetable
|
||||
|
||||
Return:
|
||||
void * - buffer containing created pagetable
|
||||
|
||||
--*/
|
||||
{
|
||||
UINT64 PageAddress;
|
||||
UINT8 *PageTable;
|
||||
UINT8 *PageTablePtr;
|
||||
int PML4Index;
|
||||
int PDPTEIndex;
|
||||
int PDEIndex;
|
||||
X64_PAGE_MAP_AND_DIRECTORY_POINTER_2MB_4K *PageMapLevel4Entry;
|
||||
X64_PAGE_MAP_AND_DIRECTORY_POINTER_2MB_4K *PageDirectoryPointerEntry;
|
||||
X64_PAGE_TABLE_ENTRY_2M *PageDirectoryEntry2MB;
|
||||
|
||||
PageTable = (void *)malloc (EFI_PAGE_NUMBER * EFI_SIZE_OF_PAGE);
|
||||
if (PageTable == NULL) {
|
||||
Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");
|
||||
return NULL;
|
||||
}
|
||||
memset (PageTable, 0, (EFI_PAGE_NUMBER * EFI_SIZE_OF_PAGE));
|
||||
PageTablePtr = PageTable;
|
||||
|
||||
PageAddress = 0;
|
||||
|
||||
//
|
||||
// Page Table structure 3 level 2MB.
|
||||
//
|
||||
// Page-Map-Level-4-Table : bits 47-39
|
||||
// Page-Directory-Pointer-Table : bits 38-30
|
||||
//
|
||||
// Page Table 2MB : Page-Directory(2M) : bits 29-21
|
||||
//
|
||||
//
|
||||
|
||||
PageMapLevel4Entry = (X64_PAGE_MAP_AND_DIRECTORY_POINTER_2MB_4K *)PageTablePtr;
|
||||
|
||||
for (PML4Index = 0; PML4Index < EFI_PML4_ENTRY_NUM; PML4Index++, PageMapLevel4Entry++) {
|
||||
//
|
||||
// Each Page-Map-Level-4-Table Entry points to the base address of a Page-Directory-Pointer-Table Entry
|
||||
//
|
||||
PageTablePtr += EFI_SIZE_OF_PAGE;
|
||||
PageDirectoryPointerEntry = (X64_PAGE_MAP_AND_DIRECTORY_POINTER_2MB_4K *)PageTablePtr;
|
||||
|
||||
//
|
||||
// Make a Page-Map-Level-4-Table Entry
|
||||
//
|
||||
PageMapLevel4Entry->Uint64 = (UINT64)(UINT32)(CONVERT_BIN_PAGE_ADDRESS (PageDirectoryPointerEntry));
|
||||
PageMapLevel4Entry->Bits.ReadWrite = 1;
|
||||
PageMapLevel4Entry->Bits.Present = 1;
|
||||
|
||||
for (PDPTEIndex = 0; PDPTEIndex < EFI_PDPTE_ENTRY_NUM; PDPTEIndex++, PageDirectoryPointerEntry++) {
|
||||
//
|
||||
// Each Page-Directory-Pointer-Table Entry points to the base address of a Page-Directory Entry
|
||||
//
|
||||
PageTablePtr += EFI_SIZE_OF_PAGE;
|
||||
PageDirectoryEntry2MB = (X64_PAGE_TABLE_ENTRY_2M *)PageTablePtr;
|
||||
|
||||
//
|
||||
// Make a Page-Directory-Pointer-Table Entry
|
||||
//
|
||||
PageDirectoryPointerEntry->Uint64 = (UINT64)(UINT32)(CONVERT_BIN_PAGE_ADDRESS (PageDirectoryEntry2MB));
|
||||
PageDirectoryPointerEntry->Bits.ReadWrite = 1;
|
||||
PageDirectoryPointerEntry->Bits.Present = 1;
|
||||
|
||||
for (PDEIndex = 0; PDEIndex < EFI_PDE_ENTRY_NUM; PDEIndex++, PageDirectoryEntry2MB++) {
|
||||
//
|
||||
// Make a Page-Directory Entry
|
||||
//
|
||||
PageDirectoryEntry2MB->Uint64 = (UINT64)PageAddress;
|
||||
PageDirectoryEntry2MB->Bits.ReadWrite = 1;
|
||||
PageDirectoryEntry2MB->Bits.Present = 1;
|
||||
PageDirectoryEntry2MB->Bits.MustBe1 = 1;
|
||||
|
||||
PageAddress += EFI_PAGE_SIZE_2M;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return PageTable;
|
||||
}
|
||||
|
||||
INT32
|
||||
GenBinPage (
|
||||
void *BaseMemory,
|
||||
char *NoPageFileName,
|
||||
char *PageFileName
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Write the buffer containing page table to file at a specified offset.
|
||||
Here the offset is defined as EFI_PAGE_BASE_OFFSET_IN_LDR.
|
||||
|
||||
Arguments:
|
||||
BaseMemory - buffer containing page table
|
||||
NoPageFileName - file to write page table
|
||||
PageFileName - file save to after writing
|
||||
|
||||
return:
|
||||
0 : successful
|
||||
-1 : failed
|
||||
|
||||
--*/
|
||||
{
|
||||
FILE *PageFile;
|
||||
FILE *NoPageFile;
|
||||
UINT8 Data;
|
||||
unsigned long FileSize;
|
||||
|
||||
//
|
||||
// Open files
|
||||
//
|
||||
PageFile = fopen (LongFilePath (PageFileName), "w+b");
|
||||
if (PageFile == NULL) {
|
||||
Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Output File %s open failure", PageFileName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
NoPageFile = fopen (LongFilePath (NoPageFileName), "r+b");
|
||||
if (NoPageFile == NULL) {
|
||||
Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Input File %s open failure", NoPageFileName);
|
||||
fclose (PageFile);
|
||||
return -1;
|
||||
}
|
||||
|
||||
//
|
||||
// Check size - should not be great than EFI_PAGE_BASE_OFFSET_IN_LDR
|
||||
//
|
||||
fseek (NoPageFile, 0, SEEK_END);
|
||||
FileSize = ftell (NoPageFile);
|
||||
fseek (NoPageFile, 0, SEEK_SET);
|
||||
if (FileSize > gPageTableOffsetInFile) {
|
||||
Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Input file size (0x%lx) exceeds the Page Table Offset (0x%x)", FileSize, (unsigned) gPageTableOffsetInFile);
|
||||
fclose (PageFile);
|
||||
fclose (NoPageFile);
|
||||
return -1;
|
||||
}
|
||||
|
||||
//
|
||||
// Write data
|
||||
//
|
||||
while (fread (&Data, sizeof(UINT8), 1, NoPageFile)) {
|
||||
fwrite (&Data, sizeof(UINT8), 1, PageFile);
|
||||
}
|
||||
|
||||
//
|
||||
// Write PageTable
|
||||
//
|
||||
fseek (PageFile, gPageTableOffsetInFile, SEEK_SET);
|
||||
fwrite (BaseMemory, (EFI_PAGE_NUMBER * EFI_SIZE_OF_PAGE), 1, PageFile);
|
||||
|
||||
//
|
||||
// Close files
|
||||
//
|
||||
fclose (PageFile);
|
||||
fclose (NoPageFile);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
main (
|
||||
int argc,
|
||||
char **argv
|
||||
)
|
||||
{
|
||||
VOID *BaseMemory;
|
||||
INTN result;
|
||||
CHAR8 *OutputFile = NULL;
|
||||
CHAR8 *InputFile = NULL;
|
||||
EFI_STATUS Status;
|
||||
UINT64 TempValue;
|
||||
|
||||
SetUtilityName("GenPage");
|
||||
|
||||
if (argc == 1) {
|
||||
Usage();
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
argc --;
|
||||
argv ++;
|
||||
|
||||
if ((stricmp (argv[0], "-h") == 0) || (stricmp (argv[0], "--help") == 0)) {
|
||||
Usage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (stricmp (argv[0], "--version") == 0) {
|
||||
Version();
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (argc > 0) {
|
||||
if ((stricmp (argv[0], "-o") == 0) || (stricmp (argv[0], "--output") == 0)) {
|
||||
if (argv[1] == NULL || argv[1][0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file is missing for -o option");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
OutputFile = argv[1];
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[0], "-b") == 0) || (stricmp (argv[0], "--baseaddr") == 0)) {
|
||||
if (argv[1] == NULL || argv[1][0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Base address is missing for -b option");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
Status = AsciiStringToUint64 (argv[1], FALSE, &TempValue);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Base address is not valid intergrator");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
gPageTableBaseAddress = (UINT32) TempValue;
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[0], "-f") == 0) || (stricmp (argv[0], "--offset") == 0)) {
|
||||
if (argv[1] == NULL || argv[1][0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Offset is missing for -f option");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
Status = AsciiStringToUint64 (argv[1], FALSE, &TempValue);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Offset is not valid intergrator");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
gPageTableOffsetInFile = (UINT32) TempValue;
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[0], "-q") == 0) || (stricmp (argv[0], "--quiet") == 0)) {
|
||||
argc --;
|
||||
argv ++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[0], "-v") ==0) || (stricmp (argv[0], "--verbose") == 0)) {
|
||||
argc --;
|
||||
argv ++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[0], "-d") == 0) || (stricmp (argv[0], "--debug") == 0)) {
|
||||
if (argv[1] == NULL || argv[1][0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Debug Level is not specified.");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
Status = AsciiStringToUint64 (argv[1], FALSE, &TempValue);
|
||||
if (EFI_ERROR (Status)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Debug Level is not valid intergrator.");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
if (TempValue > 9) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", (int) TempValue);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (argv[0][0] == '-') {
|
||||
Error (NULL, 0, 1000, "Unknown option", argv[0]);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
//
|
||||
// Don't recognize the parameter.
|
||||
//
|
||||
InputFile = argv[0];
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
|
||||
if (InputFile == NULL) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Input file is not specified");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
//
|
||||
// Create X64 page table
|
||||
//
|
||||
BaseMemory = CreateIdentityMappingPageTables ();
|
||||
if (BaseMemory == NULL) {
|
||||
Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
//
|
||||
// Add page table to binary file
|
||||
//
|
||||
result = GenBinPage (BaseMemory, InputFile, OutputFile);
|
||||
if (result < 0) {
|
||||
free (BaseMemory);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
free (BaseMemory);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
## @file
|
||||
# Windows makefile for 'GenPage' module build.
|
||||
#
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
!INCLUDE ..\Makefiles\ms.common
|
||||
|
||||
APPNAME = GenPage
|
||||
|
||||
LIBS = $(LIB_PATH)\Common.lib
|
||||
|
||||
OBJECTS = GenPage.obj
|
||||
|
||||
!INCLUDE ..\Makefiles\ms.app
|
||||
|
|
@ -1,122 +0,0 @@
|
|||
/** @file
|
||||
x64 Long Mode Virtual Memory Management Definitions
|
||||
|
||||
References:
|
||||
1) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 1:Basic Architecture, Intel
|
||||
2) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 2:Instruction Set Reference, Intel
|
||||
3) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 3:System Programmer's Guide, Intel
|
||||
4) AMD64 Architecture Programmer's Manual Volume 2: System Programming
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _VIRTUAL_MEMORY_H_
|
||||
#define _VIRTUAL_MEMORY_H_
|
||||
|
||||
#include "CommonLib.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
//
|
||||
// Page-Map Level-4 Offset (PML4) and
|
||||
// Page-Directory-Pointer Offset (PDPE) entries 4K & 2MB
|
||||
//
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
UINT64 Present:1; // 0 = Not present in memory, 1 = Present in memory
|
||||
UINT64 ReadWrite:1; // 0 = Read-Only, 1= Read/Write
|
||||
UINT64 UserSupervisor:1; // 0 = Supervisor, 1=User
|
||||
UINT64 WriteThrough:1; // 0 = Write-Back caching, 1=Write-Through caching
|
||||
UINT64 CacheDisabled:1; // 0 = Cached, 1=Non-Cached
|
||||
UINT64 Accessed:1; // 0 = Not accessed, 1 = Accessed (set by CPU)
|
||||
UINT64 Reserved:1; // Reserved
|
||||
UINT64 MustBeZero:2; // Must Be Zero
|
||||
UINT64 Available:3; // Available for use by system software
|
||||
UINT64 PageTableBaseAddress:40; // Page Table Base Address
|
||||
UINT64 AvabilableHigh:11; // Available for use by system software
|
||||
UINT64 Nx:1; // No Execute bit
|
||||
} Bits;
|
||||
UINT64 Uint64;
|
||||
} X64_PAGE_MAP_AND_DIRECTORY_POINTER_2MB_4K;
|
||||
|
||||
//
|
||||
// Page-Directory Offset 4K
|
||||
//
|
||||
typedef union {
|
||||
struct {
|
||||
UINT64 Present:1; // 0 = Not present in memory, 1 = Present in memory
|
||||
UINT64 ReadWrite:1; // 0 = Read-Only, 1= Read/Write
|
||||
UINT64 UserSupervisor:1; // 0 = Supervisor, 1=User
|
||||
UINT64 WriteThrough:1; // 0 = Write-Back caching, 1=Write-Through caching
|
||||
UINT64 CacheDisabled:1; // 0 = Cached, 1=Non-Cached
|
||||
UINT64 Accessed:1; // 0 = Not accessed, 1 = Accessed (set by CPU)
|
||||
UINT64 Reserved:1; // Reserved
|
||||
UINT64 MustBeZero:1; // Must Be Zero
|
||||
UINT64 Reserved2:1; // Reserved
|
||||
UINT64 Available:3; // Available for use by system software
|
||||
UINT64 PageTableBaseAddress:40; // Page Table Base Address
|
||||
UINT64 AvabilableHigh:11; // Available for use by system software
|
||||
UINT64 Nx:1; // No Execute bit
|
||||
} Bits;
|
||||
UINT64 Uint64;
|
||||
} X64_PAGE_DIRECTORY_ENTRY_4K;
|
||||
|
||||
//
|
||||
// Page Table Entry 4K
|
||||
//
|
||||
typedef union {
|
||||
struct {
|
||||
UINT64 Present:1; // 0 = Not present in memory, 1 = Present in memory
|
||||
UINT64 ReadWrite:1; // 0 = Read-Only, 1= Read/Write
|
||||
UINT64 UserSupervisor:1; // 0 = Supervisor, 1=User
|
||||
UINT64 WriteThrough:1; // 0 = Write-Back caching, 1=Write-Through caching
|
||||
UINT64 CacheDisabled:1; // 0 = Cached, 1=Non-Cached
|
||||
UINT64 Accessed:1; // 0 = Not accessed, 1 = Accessed (set by CPU)
|
||||
UINT64 Dirty:1; // 0 = Not Dirty, 1 = written by processor on access to page
|
||||
UINT64 PAT:1; // 0 = Ignore Page Attribute Table
|
||||
UINT64 Global:1; // 0 = Not global page, 1 = global page TLB not cleared on CR3 write
|
||||
UINT64 Available:3; // Available for use by system software
|
||||
UINT64 PageTableBaseAddress:40; // Page Table Base Address
|
||||
UINT64 AvabilableHigh:11; // Available for use by system software
|
||||
UINT64 Nx:1; // 0 = Execute Code, 1 = No Code Execution
|
||||
} Bits;
|
||||
UINT64 Uint64;
|
||||
} X64_PAGE_TABLE_ENTRY_4K;
|
||||
|
||||
|
||||
//
|
||||
// Page Table Entry 2MB
|
||||
//
|
||||
typedef union {
|
||||
struct {
|
||||
UINT64 Present:1; // 0 = Not present in memory, 1 = Present in memory
|
||||
UINT64 ReadWrite:1; // 0 = Read-Only, 1= Read/Write
|
||||
UINT64 UserSupervisor:1; // 0 = Supervisor, 1=User
|
||||
UINT64 WriteThrough:1; // 0 = Write-Back caching, 1=Write-Through caching
|
||||
UINT64 CacheDisabled:1; // 0 = Cached, 1=Non-Cached
|
||||
UINT64 Accessed:1; // 0 = Not accessed, 1 = Accessed (set by CPU)
|
||||
UINT64 Dirty:1; // 0 = Not Dirty, 1 = written by processor on access to page
|
||||
UINT64 MustBe1:1; // Must be 1
|
||||
UINT64 Global:1; // 0 = Not global page, 1 = global page TLB not cleared on CR3 write
|
||||
UINT64 Available:3; // Available for use by system software
|
||||
UINT64 PAT:1; //
|
||||
UINT64 MustBeZero:8; // Must be zero;
|
||||
UINT64 PageTableBaseAddress:31; // Page Table Base Address
|
||||
UINT64 AvabilableHigh:11; // Available for use by system software
|
||||
UINT64 Nx:1; // 0 = Execute Code, 1 = No Code Execution
|
||||
} Bits;
|
||||
UINT64 Uint64;
|
||||
} X64_PAGE_TABLE_ENTRY_2M;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
|
@ -1,152 +0,0 @@
|
|||
/** @file
|
||||
|
||||
Fat file system structure and definition.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _FAT_BPB_H_
|
||||
#define _FAT_BPB_H_
|
||||
|
||||
#include "CommonLib.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Fat common field
|
||||
//
|
||||
UINT8 BS_jmpBoot[3];
|
||||
CHAR8 BS_OEMName[8];
|
||||
UINT16 BPB_BytsPerSec;
|
||||
UINT8 BPB_SecPerClus;
|
||||
UINT16 BPB_RsvdSecCnt;
|
||||
UINT8 BPB_NumFATs;
|
||||
UINT16 BPB_RootEntCnt;
|
||||
UINT16 BPB_TotSec16;
|
||||
UINT8 BPB_Media;
|
||||
UINT16 BPB_FATSz16;
|
||||
UINT16 BPB_SecPerTrk;
|
||||
UINT16 BPB_NumHeads;
|
||||
UINT32 BPB_HiddSec;
|
||||
UINT32 BPB_TotSec32;
|
||||
|
||||
//
|
||||
// Fat12/16 specific field
|
||||
//
|
||||
UINT8 BS_DrvNum;
|
||||
UINT8 BS_Reserved1;
|
||||
UINT8 BS_BootSig;
|
||||
UINT32 BS_VolID;
|
||||
CHAR8 BS_VolLab[11];
|
||||
CHAR8 BS_FilSysType[8];
|
||||
|
||||
//
|
||||
// Boot Code and Data
|
||||
//
|
||||
UINT8 Reserved[448];
|
||||
|
||||
//
|
||||
// Fat common signature - 0xAA55
|
||||
//
|
||||
UINT16 Signature;
|
||||
} FAT12_16_BPB_STRUCT;
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// Fat common field
|
||||
//
|
||||
UINT8 BS_jmpBoot[3];
|
||||
CHAR8 BS_OEMName[8];
|
||||
UINT16 BPB_BytsPerSec;
|
||||
UINT8 BPB_SecPerClus;
|
||||
UINT16 BPB_RsvdSecCnt;
|
||||
UINT8 BPB_NumFATs;
|
||||
UINT16 BPB_RootEntCnt;
|
||||
UINT16 BPB_TotSec16;
|
||||
UINT8 BPB_Media;
|
||||
UINT16 BPB_FATSz16;
|
||||
UINT16 BPB_SecPerTrk;
|
||||
UINT16 BPB_NumHeads;
|
||||
UINT32 BPB_HiddSec;
|
||||
UINT32 BPB_TotSec32;
|
||||
|
||||
//
|
||||
// Fat32 specific field
|
||||
//
|
||||
UINT32 BPB_FATSz32;
|
||||
UINT16 BPB_ExtFlags;
|
||||
UINT16 BPB_FSVer;
|
||||
UINT32 BPB_RootClus;
|
||||
UINT16 BPB_FSInfo;
|
||||
UINT16 BPB_BkBootSec;
|
||||
UINT8 BPB_Reserved[12];
|
||||
UINT8 BS_DrvNum;
|
||||
UINT8 BS_Reserved1;
|
||||
UINT8 BS_BootSig;
|
||||
UINT32 BS_VolID;
|
||||
CHAR8 BS_VolLab[11];
|
||||
CHAR8 BS_FilSysType[8];
|
||||
|
||||
//
|
||||
// Boot Code and Data
|
||||
//
|
||||
UINT8 Reserved[420];
|
||||
|
||||
//
|
||||
// Fat common signature - 0xAA55
|
||||
//
|
||||
UINT16 Signature;
|
||||
} FAT32_BPB_STRUCT;
|
||||
|
||||
typedef union {
|
||||
FAT12_16_BPB_STRUCT Fat12_16;
|
||||
FAT32_BPB_STRUCT Fat32;
|
||||
} FAT_BPB_STRUCT;
|
||||
|
||||
typedef enum {
|
||||
FatTypeUnknown,
|
||||
FatTypeFat12,
|
||||
FatTypeFat16,
|
||||
FatTypeFat32,
|
||||
FatTypeMax
|
||||
} FAT_TYPE;
|
||||
|
||||
typedef struct {
|
||||
CHAR8 DIR_Name[11];
|
||||
UINT8 DIR_Attr;
|
||||
UINT8 DIR_NTRes;
|
||||
UINT8 DIR_CrtTimeTenth;
|
||||
UINT16 DIR_CrtTime;
|
||||
UINT16 DIR_CrtDate;
|
||||
UINT16 DIR_LstAccDate;
|
||||
UINT16 DIR_FstClusHI;
|
||||
UINT16 DIR_WrtTime;
|
||||
UINT16 DIR_WrtDate;
|
||||
UINT16 DIR_FstClusLO;
|
||||
UINT32 DIR_FileSize;
|
||||
} FAT_DIRECTORY_ENTRY;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#define FAT_MAX_FAT12_CLUSTER 0xFF5
|
||||
#define FAT_MAX_FAT16_CLUSTER 0xFFF5
|
||||
|
||||
#define FAT_BS_SIGNATURE 0xAA55
|
||||
#define FAT_BS_BOOTSIG 0x29
|
||||
#define FAT_BS_JMP1 0xEB
|
||||
#define FAT_BS_JMP2 0xE9
|
||||
#define FAT_FILSYSTYPE "FAT "
|
||||
#define FAT12_FILSYSTYPE "FAT12 "
|
||||
#define FAT16_FILSYSTYPE "FAT16 "
|
||||
#define FAT32_FILSYSTYPE "FAT32 "
|
||||
|
||||
#endif
|
|
@ -1,21 +0,0 @@
|
|||
## @file
|
||||
# GNU/Linux makefile for 'GnuGenBootSector' module build.
|
||||
#
|
||||
# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
MAKEROOT ?= ..
|
||||
|
||||
APPNAME = GnuGenBootSector
|
||||
|
||||
LIBS = -lCommon
|
||||
|
||||
OBJECTS = GnuGenBootSector.o
|
||||
|
||||
include $(MAKEROOT)/Makefiles/app.makefile
|
|
@ -1,455 +0,0 @@
|
|||
/** @file
|
||||
Reading/writing MBR/DBR.
|
||||
NOTE:
|
||||
If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written.
|
||||
If we process DBR, we will patch MBR to set first partition active if no active partition exists.
|
||||
|
||||
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#include "CommonLib.h"
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <Common/UefiBaseTypes.h>
|
||||
|
||||
#include "ParseInf.h"
|
||||
#include "EfiUtilityMsgs.h"
|
||||
|
||||
//
|
||||
// Utility Name
|
||||
//
|
||||
#define UTILITY_NAME "GnuGenBootSector"
|
||||
|
||||
//
|
||||
// Utility version information
|
||||
//
|
||||
#define UTILITY_MAJOR_VERSION 0
|
||||
#define UTILITY_MINOR_VERSION 1
|
||||
|
||||
#define MAX_DRIVE 26
|
||||
#define PARTITION_TABLE_OFFSET 0x1BE
|
||||
|
||||
#define SIZE_OF_PARTITION_ENTRY 0x10
|
||||
|
||||
#define PARTITION_ENTRY_STARTLBA_OFFSET 8
|
||||
|
||||
#define PARTITION_ENTRY_NUM 4
|
||||
|
||||
#define DRIVE_UNKNOWN 0
|
||||
#define DRIVE_NO_ROOT_DIR 1
|
||||
#define DRIVE_REMOVABLE 2
|
||||
#define DRIVE_FIXED 3
|
||||
#define DRIVE_REMOTE 4
|
||||
#define DRIVE_CDROM 5
|
||||
#define DRIVE_RAMDISK 6
|
||||
|
||||
typedef struct _DRIVE_TYPE_DESC {
|
||||
UINTN Type;
|
||||
CHAR8 *Description;
|
||||
} DRIVE_TYPE_DESC;
|
||||
|
||||
#define DRIVE_TYPE_ITEM(x) {x, #x}
|
||||
|
||||
DRIVE_TYPE_DESC DriveTypeDesc[] = {
|
||||
DRIVE_TYPE_ITEM (DRIVE_UNKNOWN),
|
||||
DRIVE_TYPE_ITEM (DRIVE_NO_ROOT_DIR),
|
||||
DRIVE_TYPE_ITEM (DRIVE_REMOVABLE),
|
||||
DRIVE_TYPE_ITEM (DRIVE_FIXED),
|
||||
DRIVE_TYPE_ITEM (DRIVE_REMOTE),
|
||||
DRIVE_TYPE_ITEM (DRIVE_CDROM),
|
||||
DRIVE_TYPE_ITEM (DRIVE_RAMDISK),
|
||||
{(UINTN) -1, NULL}
|
||||
};
|
||||
|
||||
typedef struct _DRIVE_INFO {
|
||||
CHAR8 VolumeLetter;
|
||||
DRIVE_TYPE_DESC *DriveType;
|
||||
UINTN DiskNumber;
|
||||
} DRIVE_INFO;
|
||||
|
||||
typedef enum {
|
||||
PathUnknown,
|
||||
PathFile,
|
||||
PathFloppy,
|
||||
PathUsb,
|
||||
PathIde
|
||||
} PATH_TYPE;
|
||||
|
||||
typedef struct _PATH_INFO {
|
||||
CHAR8 *Path;
|
||||
CHAR8 PhysicalPath[260];
|
||||
PATH_TYPE Type;
|
||||
BOOLEAN Input;
|
||||
} PATH_INFO;
|
||||
|
||||
typedef enum {
|
||||
ErrorSuccess,
|
||||
ErrorFileCreate,
|
||||
ErrorFileReadWrite,
|
||||
ErrorNoMbr,
|
||||
ErrorFatType,
|
||||
ErrorPath,
|
||||
} ERROR_STATUS;
|
||||
|
||||
CHAR8 *ErrorStatusDesc[] = {
|
||||
"Success",
|
||||
"Failed to create files",
|
||||
"Failed to read/write files",
|
||||
"No MBR exists",
|
||||
"Failed to detect Fat type",
|
||||
"Inavlid path"
|
||||
};
|
||||
|
||||
|
||||
//UnSupported Windows API functions.
|
||||
UINTN GetLogicalDrives(void) { return 1; }
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Get path information, including physical path for Linux platform.
|
||||
|
||||
@param PathInfo Point to PATH_INFO structure.
|
||||
|
||||
@return whether path is valid.
|
||||
**/
|
||||
ERROR_STATUS
|
||||
GetPathInfo (
|
||||
PATH_INFO *PathInfo
|
||||
)
|
||||
{
|
||||
FILE *f;
|
||||
|
||||
if (strncmp(PathInfo->Path, "/dev/", 5) == 0) {
|
||||
//
|
||||
// Process disk path here.
|
||||
//
|
||||
|
||||
// Process floppy disk
|
||||
if (PathInfo->Path[5] == 'f' && PathInfo->Path[6] == 'd' && PathInfo->Path[8] == '\0') {
|
||||
PathInfo->Type = PathFloppy;
|
||||
strcpy (PathInfo->PhysicalPath, PathInfo->Path);
|
||||
|
||||
return ErrorSuccess;
|
||||
} else {
|
||||
// Other disk types is not supported yet.
|
||||
fprintf (stderr, "ERROR: It's not a floppy disk!\n");
|
||||
return ErrorPath;
|
||||
}
|
||||
|
||||
// Try to open the device.
|
||||
f = fopen (LongFilePath (PathInfo->Path),"r");
|
||||
if (f == NULL) {
|
||||
printf ("error :open device failed!\n");
|
||||
return ErrorPath;
|
||||
}
|
||||
fclose (f);
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
// Process file path here.
|
||||
PathInfo->Type = PathFile;
|
||||
if (PathInfo->Input) {
|
||||
// If path is file path, check whether file is valid.
|
||||
printf("Path = %s\n",PathInfo->Path);
|
||||
f = fopen (LongFilePath (PathInfo->Path), "r");
|
||||
if (f == NULL) {
|
||||
fprintf (stderr, "Test error E2003: File was not provided!\n");
|
||||
return ErrorPath;
|
||||
}
|
||||
fclose (f);
|
||||
}
|
||||
|
||||
strcpy(PathInfo->PhysicalPath, PathInfo->Path);
|
||||
return ErrorSuccess;
|
||||
|
||||
}
|
||||
|
||||
VOID
|
||||
ListDrive (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
printf("-l or -list not supported!\n");
|
||||
}
|
||||
|
||||
/**
|
||||
Writing or reading boot sector or MBR according to the argument.
|
||||
|
||||
@param InputInfo PATH_INFO instance for input path
|
||||
@param OutputInfo PATH_INFO instance for output path
|
||||
@param ProcessMbr TRUE is to process MBR, otherwise, processing boot sector
|
||||
|
||||
@return ERROR_STATUS
|
||||
**/
|
||||
ERROR_STATUS
|
||||
ProcessBsOrMbr (
|
||||
PATH_INFO *InputInfo,
|
||||
PATH_INFO *OutputInfo,
|
||||
BOOLEAN ProcessMbr
|
||||
)
|
||||
{
|
||||
CHAR8 FirstSector[0x200] = {0};
|
||||
CHAR8 FirstSectorBackup[0x200] = {0};
|
||||
|
||||
FILE *InputFile;
|
||||
FILE *OutputFile;
|
||||
|
||||
|
||||
InputFile = fopen (LongFilePath (InputInfo->PhysicalPath), "r");
|
||||
if (InputFile == NULL) {
|
||||
return ErrorFileReadWrite;
|
||||
}
|
||||
|
||||
if (0x200 != fread(FirstSector, 1, 0x200, InputFile)) {
|
||||
fclose(InputFile);
|
||||
return ErrorFileReadWrite;
|
||||
}
|
||||
|
||||
fclose(InputFile);
|
||||
|
||||
//Not support USB and IDE.
|
||||
if (InputInfo->Type == PathUsb) {
|
||||
printf("USB has not been supported yet!");
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
if (InputInfo->Type == PathIde) {
|
||||
printf("IDE has not been supported yet!");
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
//Process Floppy Disk
|
||||
OutputFile = fopen (LongFilePath (OutputInfo->PhysicalPath), "r+");
|
||||
if (OutputFile == NULL) {
|
||||
OutputFile = fopen (LongFilePath (OutputInfo->PhysicalPath), "w");
|
||||
if (OutputFile == NULL) {
|
||||
return ErrorFileReadWrite;
|
||||
}
|
||||
}
|
||||
|
||||
if (OutputInfo->Type != PathFile) {
|
||||
if (ProcessMbr) {
|
||||
//
|
||||
// Use original partition table
|
||||
//
|
||||
if (0x200 != fread (FirstSectorBackup, 1, 0x200, OutputFile)) {
|
||||
fclose(OutputFile);
|
||||
return ErrorFileReadWrite;
|
||||
}
|
||||
memcpy (FirstSector + 0x1BE, FirstSectorBackup + 0x1BE, 0x40);
|
||||
}
|
||||
}
|
||||
if(0x200 != fwrite(FirstSector, 1, 0x200, OutputFile)) {
|
||||
fclose(OutputFile);
|
||||
return ErrorFileReadWrite;
|
||||
}
|
||||
|
||||
fclose(OutputFile);
|
||||
return ErrorSuccess;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Displays the standard utility information to SDTOUT
|
||||
|
||||
**/
|
||||
VOID
|
||||
Version (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
printf ("%s v%d.%d %s-Utility to retrieve and update the boot sector or MBR.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
|
||||
printf ("Copyright (c) 2007-2014 Intel Corporation. All rights reserved.\n");
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
PrintUsage (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
Version();
|
||||
printf ("\nUsage: \n\
|
||||
GenBootSector\n\
|
||||
[-l, --list list disks]\n\
|
||||
[-i, --input Filename]\n\
|
||||
[-o, --output Filename]\n\
|
||||
[-m, --mbr process the MBR also]\n\
|
||||
[-v, --verbose]\n\
|
||||
[--version]\n\
|
||||
[-q, --quiet disable all messages except fatal errors]\n\
|
||||
[-d, --debug[#]\n\
|
||||
[-h, --help]\n");
|
||||
}
|
||||
|
||||
int
|
||||
main (
|
||||
int argc,
|
||||
char *argv[]
|
||||
)
|
||||
{
|
||||
INTN Index;
|
||||
BOOLEAN ProcessMbr;
|
||||
ERROR_STATUS Status;
|
||||
EFI_STATUS EfiStatus;
|
||||
PATH_INFO InputPathInfo;
|
||||
PATH_INFO OutputPathInfo;
|
||||
UINT64 LogLevel;
|
||||
|
||||
SetUtilityName (UTILITY_NAME);
|
||||
|
||||
ZeroMem(&InputPathInfo, sizeof(PATH_INFO));
|
||||
ZeroMem(&OutputPathInfo, sizeof(PATH_INFO));
|
||||
|
||||
argv ++;
|
||||
argc --;
|
||||
|
||||
ProcessMbr = FALSE;
|
||||
|
||||
if (argc == 0) {
|
||||
PrintUsage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// Parse command line
|
||||
//
|
||||
for (Index = 0; Index < argc; Index ++) {
|
||||
if ((stricmp (argv[Index], "-l") == 0) || (stricmp (argv[Index], "--list") == 0)) {
|
||||
ListDrive ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-m") == 0) || (stricmp (argv[Index], "--mbr") == 0)) {
|
||||
ProcessMbr = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-i") == 0) || (stricmp (argv[Index], "--input") == 0)) {
|
||||
InputPathInfo.Path = argv[Index + 1];
|
||||
InputPathInfo.Input = TRUE;
|
||||
if (InputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Input file name can't be NULL");
|
||||
return 1;
|
||||
}
|
||||
if (InputPathInfo.Path[0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Input file is missing");
|
||||
return 1;
|
||||
}
|
||||
++Index;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-o") == 0) || (stricmp (argv[Index], "--output") == 0)) {
|
||||
OutputPathInfo.Path = argv[Index + 1];
|
||||
OutputPathInfo.Input = FALSE;
|
||||
if (OutputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file name can't be NULL");
|
||||
return 1;
|
||||
}
|
||||
if (OutputPathInfo.Path[0] == '-') {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file is missing");
|
||||
return 1;
|
||||
}
|
||||
++Index;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-h") == 0) || (stricmp (argv[Index], "--help") == 0)) {
|
||||
PrintUsage ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (stricmp (argv[Index], "--version") == 0) {
|
||||
Version ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-v") == 0) || (stricmp (argv[Index], "--verbose") == 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-q") == 0) || (stricmp (argv[Index], "--quiet") == 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((stricmp (argv[Index], "-d") == 0) || (stricmp (argv[Index], "--debug") == 0)) {
|
||||
EfiStatus = AsciiStringToUint64 (argv[Index + 1], FALSE, &LogLevel);
|
||||
if (EFI_ERROR (EfiStatus)) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "%s = %s", argv[Index], argv[Index + 1]);
|
||||
return 1;
|
||||
}
|
||||
if (LogLevel > 9) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", (int) LogLevel);
|
||||
return 1;
|
||||
}
|
||||
SetPrintLevel (LogLevel);
|
||||
DebugMsg (NULL, 0, 9, "Debug Mode Set", "Debug Output Mode Level %s is set!", argv[Index + 1]);
|
||||
++Index;
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// Don't recognize the parameter.
|
||||
//
|
||||
Error (NULL, 0, 1000, "Unknown option", "%s", argv[Index]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (InputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1001, "Missing options", "Input file is missing");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (OutputPathInfo.Path == NULL) {
|
||||
Error (NULL, 0, 1001, "Missing options", "Output file is missing");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (GetPathInfo(&InputPathInfo) != ErrorSuccess) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Input file can't be found.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (GetPathInfo(&OutputPathInfo) != ErrorSuccess) {
|
||||
Error (NULL, 0, 1003, "Invalid option value", "Output file can't be found.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//
|
||||
// Process DBR (Patch or Read)
|
||||
//
|
||||
Status = ProcessBsOrMbr (&InputPathInfo, &OutputPathInfo, ProcessMbr);
|
||||
|
||||
if (Status == ErrorSuccess) {
|
||||
fprintf (
|
||||
stdout,
|
||||
"%s %s: successful!\n",
|
||||
(OutputPathInfo.Type != PathFile) ? "Write" : "Read",
|
||||
ProcessMbr ? "MBR" : "DBR"
|
||||
);
|
||||
return 0;
|
||||
} else {
|
||||
fprintf (
|
||||
stderr,
|
||||
"%s: %s %s: failed - %s (LastError: 0x%x)!\n",
|
||||
(Status == ErrorNoMbr) ? "WARNING" : "ERROR",
|
||||
(OutputPathInfo.Type != PathFile) ? "Write" : "Read",
|
||||
ProcessMbr ? "MBR" : "DBR",
|
||||
ErrorStatusDesc[Status],
|
||||
errno
|
||||
);
|
||||
return 1;
|
||||
}
|
||||
}
|
|
@ -18,20 +18,16 @@ LIBRARIES = Common
|
|||
APPLICATIONS = \
|
||||
VfrCompile \
|
||||
BrotliCompress \
|
||||
EfiLdrImage \
|
||||
EfiRom \
|
||||
GenBootSector \
|
||||
GenCrc32 \
|
||||
GenFfs \
|
||||
GenFv \
|
||||
GenFw \
|
||||
GenPage \
|
||||
GenSec \
|
||||
LzmaCompress \
|
||||
Split \
|
||||
TianoCompress \
|
||||
VolInfo \
|
||||
BootSectImage \
|
||||
DevicePath
|
||||
|
||||
all: libs apps install
|
||||
|
|
|
@ -1,307 +0,0 @@
|
|||
{\rtf1\adeflang1025\ansi\ansicpg936\uc2\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe2052\themelang1033\themelangfe2052\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
|
||||
{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
|
||||
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Verdana};}
|
||||
{\f40\fbidi \fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@\'cb\'ce\'cc\'e5;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbmajor\f31501\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
|
||||
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbminor\f31505\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
|
||||
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f42\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f43\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\f45\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f46\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f47\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f48\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\f49\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f50\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f62\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f63\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
|
||||
{\f65\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f66\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f67\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f68\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
|
||||
{\f69\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f70\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f174\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f382\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
|
||||
{\f383\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f385\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f386\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f389\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
|
||||
{\f390\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f412\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f413\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f415\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}
|
||||
{\f416\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f419\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f420\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f422\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}
|
||||
{\f423\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f425\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f426\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f427\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}
|
||||
{\f428\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f429\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f430\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f431\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}
|
||||
{\f432\fbidi \fswiss\fcharset238\fprq2 Verdana CE{\*\falt Verdana};}{\f433\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Verdana};}{\f435\fbidi \fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Verdana};}
|
||||
{\f436\fbidi \fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Verdana};}{\f439\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Verdana};}{\f440\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Verdana};}
|
||||
{\f444\fbidi \fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fdbmajor\f31520\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}
|
||||
{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}
|
||||
{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31560\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}
|
||||
{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
|
||||
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
|
||||
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;\red255\green255\blue255;}
|
||||
{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{
|
||||
\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{
|
||||
\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat
|
||||
heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext11 \ssemihidden \sunhideused
|
||||
Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\fs32\kerning32\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\ai\af0\afs28 \ltrch\fcs0
|
||||
\b\i\fs28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 Heading 2 Char;}{\s17\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0
|
||||
\fs16\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext17 \slink18 \ssemihidden \sunhideused \styrsid5586544 Balloon Text;}{\*\cs18 \additive \rtlch\fcs1 \af38\afs16 \ltrch\fcs0 \f38\fs16
|
||||
\sbasedon10 \slink17 \slocked \ssemihidden \styrsid5586544 Balloon Text Char;}{\*\cs19 \additive \rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \fs16 \sbasedon10 \ssemihidden \sunhideused \styrsid8402467 annotation reference;}{
|
||||
\s20\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon0 \snext20 \slink21 \ssemihidden \sunhideused \styrsid8402467 annotation text;}{\*\cs21 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f39\fs20 \sbasedon10 \slink20 \slocked \ssemihidden \styrsid8402467 Comment Text Char;}{
|
||||
\s22\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon20 \snext20 \slink23 \ssemihidden \sunhideused \styrsid8402467 annotation subject;}{\*\cs23 \additive \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f39\fs20 \sbasedon21 \slink22 \slocked \ssemihidden \styrsid8402467 Comment Subject Char;}{
|
||||
\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\itap0 \rtlch\fcs1 \af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon0 \snext24 \spriority0 \styrsid11486534 CellBodyLeft;}{\*\cs25 \additive \b\f2\cf13 \spriority0 \styrsid11486534 CodeCharacter;}{\*\cs26 \additive \spriority0 \styrsid16394004 st;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}
|
||||
{\*\rsidtbl \rsid854321\rsid1728542\rsid3426029\rsid5328796\rsid5465433\rsid5509614\rsid5586544\rsid8089322\rsid8330179\rsid8402467\rsid8539130\rsid9394584\rsid10374593\rsid11100704\rsid11486534\rsid11605559\rsid11993802\rsid12198464\rsid15015589
|
||||
\rsid15298565\rsid15883390\rsid16394004\rsid16395198}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator ydliu}{\creatim\yr2010\mo10\dy6\hr16\min20}
|
||||
{\revtim\yr2011\mo8\dy10\hr9\min38}{\version16}{\edmins103}{\nofpages2}{\nofwords336}{\nofchars1918}{\nofcharsws2250}{\vern49255}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
||||
\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
|
||||
\deftab360\ftnbj\aenddoc\revisions\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
|
||||
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale135\rsidroot5586544 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang
|
||||
{\pntxta \dbch .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \dbch )}}{\*\pnseclvl5
|
||||
\pndec\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl8
|
||||
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar
|
||||
\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0
|
||||
\b\fs28\cf17\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Name
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid5586544 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1
|
||||
\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 BootSectImage.exe Options Filename}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544\charrsid5586544
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Synopsis}{\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0
|
||||
\b\fs28\cf17\lang1033\langfe2052\langfenp2052\insrsid5586544
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid8089322 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid11993802\charrsid8089322 {\*\bkmkstart OLE_LINK1}{\*\bkmkstart OLE_LINK2}{\*\bkmkstart OLE_LINK3}\hich\af39\dbch\af31505\loch\f39 BootSectImage.exe }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 [-m] [-d | -v] -p }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179 \hich\af39\dbch\af31505\loch\f39 <F}{
|
||||
\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 ile}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179
|
||||
\hich\af39\dbch\af31505\loch\f39 N}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 ame}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179 \hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8089322
|
||||
\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 BootSectImage.exe [-m}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid11486534 \hich\af39\dbch\af31505\loch\f39 | -f}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 ] [-d | -v]
|
||||
\hich\f39 \endash \loch\f39 g }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179 \hich\af39\dbch\af31505\loch\f39 <D}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 est}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179 \hich\af39\dbch\af31505\loch\f39 F}{\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 ile}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179
|
||||
\hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179 \hich\af39\dbch\af31505\loch\f39 <I}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390 \hich\af39\dbch\af31505\loch\f39 nput}{\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179 \hich\af39\dbch\af31505\loch\f39 F}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390
|
||||
\hich\af39\dbch\af31505\loch\f39 ile}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8330179 \hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15883390
|
||||
\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15298565 \hich\af39\dbch\af31505\loch\f39 BootSectImage.exe}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15298565
|
||||
\hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15298565 \loch\af39\dbch\af31505\hich\f39 \endash }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15298565 \hich\af39\dbch\af31505\loch\f39 h
|
||||
\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15298565 \hich\af39\dbch\af31505\loch\f39 BootSectImage.exe}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid15298565
|
||||
\hich\af39\dbch\af31505\loch\f39 --version}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe2052\langfenp2052\insrsid15298565\charrsid8089322
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5586544 {\*\bkmkend OLE_LINK1}{\*\bkmkend OLE_LINK2}{\*\bkmkend OLE_LINK3}
|
||||
\hich\af39\dbch\af31505\loch\f39 Description
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid11100704 \hich\af39\dbch\af31505\loch\f39 The BootSectImage tool}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid5465433 \hich\af39\dbch\af31505\loch\f39
|
||||
}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11993802\charrsid5509614 \hich\af39\dbch\af31505\loch\f39 print}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid5465433 \hich\af39\dbch\af31505\loch\f39 s}{
|
||||
\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11993802\charrsid5509614 \hich\af39\dbch\af31505\loch\f39 information or patch destination file by source file for }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid16394004\charrsid16394004
|
||||
\hich\af39\dbch\af31505\loch\f39 BIOS Parameter Block}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid16394004 \hich\af39\dbch\af31505\loch\f39 (}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid11993802\charrsid5509614 \hich\af39\dbch\af31505\loch\f39 BPB}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid16394004 \hich\af39\dbch\af31505\loch\f39 ) }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid11993802\charrsid5509614 \hich\af39\dbch\af31505\loch\f39 or M}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3426029 \hich\af39\dbch\af31505\loch\f39 aster }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid11993802\charrsid5509614 \hich\af39\dbch\af31505\loch\f39 B}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3426029 \hich\af39\dbch\af31505\loch\f39 oot }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid11993802\charrsid5509614 \hich\af39\dbch\af31505\loch\f39 R}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3426029 \hich\af39\dbch\af31505\loch\f39 ecord}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid16394004 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid3426029 \hich\af39\dbch\af31505\loch\f39 (MBR)}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid11993802\charrsid5509614 .}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid11100704 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544
|
||||
\hich\af39\dbch\af31505\loch\f39 If }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid8402467 \hich\af39\dbch\af31505\loch\f39 the }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 parser opt
|
||||
\hich\af39\dbch\af31505\loch\f39
|
||||
ion is specified, this tool will parse the content of input file with Filename and print BPB information to screen. If patch option specified, this tool will patch BPB information in dest file using data from input file, or MBR if \hich\f39 \endash
|
||||
\loch\f39 m option specified.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5586544 {\*\bkmkstart OLE_LINK4}{\*\bkmkstart OLE_LINK5}\hich\af39\dbch\af31505\loch\f39 Options}{
|
||||
\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\lang1033\langfe2052\langfenp2052\insrsid5586544
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid11605559 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1
|
||||
\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11605559\charrsid12198464 \hich\af39\dbch\af31505\loch\f39 If no options ar}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid11605559 \hich\af39\dbch\af31505\loch\f39 e specified, tool prints usage.}{
|
||||
\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid11605559\charrsid11605559
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 {\*\bkmkend OLE_LINK4}{\*\bkmkend OLE_LINK5}\hich\af39\dbch\af31505\loch\f39 -p, --parse
|
||||
\par }\pard \ltrpar\ql \fi426\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Tool will parse input file with Filename.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 -g, --patch destfile\tab \tab \tab \tab \tab
|
||||
\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Tool will patch destfile with data from input file.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 -f, --force
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 Force patch even if FAT type of SrcImage and DstImage mismatch.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -m, --mbr
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 MBR will be processed if specified.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 --version
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 Print version and copyright of this program and exit-v, --verbose
|
||||
\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Turn on verbose output with informational messages printed. This is
|
||||
\hich\af39\dbch\af31505\loch\f39 a count value, so specifying \hich\f39 \endash \loch\f39 vv can be used to increase the verbosity level.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 -q, --quiet
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 Disable all messages except FATAL ERRORS
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -d, --debug [#]
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 Enable debug messages, at level #
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -h, --help
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 Print copyright, version and usage of this program and exit
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0\pararsid11486534 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\lang1033\langfe2052\langfenp2052\insrsid8539130 \hich\af39\dbch\af31505\loch\f39 Status codes returned}{
|
||||
\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\lang1033\langfe2052\langfenp2052\insrsid11486534
|
||||
\par \ltrrow}\trowd \irow0\irowband0\ltrrow\ts11\trleft-115\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid11486534\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt
|
||||
\brdrs\brdrw20 \clbrdrl\brdrs\brdrw20 \clbrdrb\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth2970\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx2855\clvertalt\clbrdrt
|
||||
\brdrs\brdrw20 \clbrdrl\brdrnone \clbrdrb\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth5850\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx8705\pard\plain \ltrpar
|
||||
\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0 \rtlch\fcs1 \af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 {
|
||||
\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid11486534 {\*\bkmkstart OLE_LINK6}{\*\bkmkstart OLE_LINK7}\hich\af2\dbch\af13\loch\f2 -1}{\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0
|
||||
\cs25\b\f2\fs18\lang1033\langfe2052\kerning2\langfenp2052\insrsid11486534 \cell }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe2052\kerning2\langfenp2052\insrsid9394584 \hich\af39\dbch\af13\loch\f39 Options value invalid or}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe2052\kerning2\langfenp2052\insrsid1728542 \hich\af39\dbch\af13\loch\f39 options}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe2052\kerning2\langfenp2052\insrsid9394584 \hich\af39\dbch\af13\loch\f39 conflict.}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe2052\kerning2\langfenp2052\insrsid11486534 \cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af37\afs20 \ltrch\fcs0 \fs20\insrsid11486534 \trowd \irow0\irowband0\ltrrow
|
||||
\ts11\trleft-115\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid11486534\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw20 \clbrdrl\brdrs\brdrw20
|
||||
\clbrdrb\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth2970\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx2855\clvertalt\clbrdrt\brdrs\brdrw20 \clbrdrl\brdrnone \clbrdrb
|
||||
\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth5850\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx8705\row \ltrrow}\trowd \irow1\irowband1\ltrrow
|
||||
\ts11\trleft-115\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid11486534\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw20 \clbrdrb
|
||||
\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth2970\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx2855\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrs\brdrw20 \clbrdrr
|
||||
\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth5850\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx8705\pard\plain \ltrpar\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0
|
||||
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0 \rtlch\fcs1 \af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0
|
||||
\cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid11486534 {\*\bkmkend OLE_LINK6}{\*\bkmkend OLE_LINK7}0}{\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\lang1033\langfe2052\kerning2\langfenp2052\insrsid11486534 \cell }{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9394584 \hich\af39\dbch\af13\loch\f39 The action was completed as requested.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \kerning2\insrsid11486534 \cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1
|
||||
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af37\afs20 \ltrch\fcs0
|
||||
\fs20\insrsid11486534 \trowd \irow1\irowband1\ltrrow\ts11\trleft-115\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid11486534\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3
|
||||
\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw20 \clbrdrb\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth2970\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx2855\clvertalt\clbrdrt
|
||||
\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth5850\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx8705\row \ltrrow}\pard\plain \ltrpar
|
||||
\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\pararsid16395198 \rtlch\fcs1 \af0\afs16\alang1025 \ltrch\fcs0
|
||||
\fs16\cf1\lang1033\langfe1033\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid9394584 \hich\af2\dbch\af13\loch\f2 1}{\rtlch\fcs1
|
||||
\ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid9394584\charrsid9394584 \cell }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe2052\kerning2\langfenp2052\insrsid9394584 \hich\af39\dbch\af13\loch\f39
|
||||
Debug option value invalid.\cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af37\afs20 \ltrch\fcs0 \fs20\insrsid9394584 \trowd \irow2\irowband2\lastrow \ltrrow
|
||||
\ts11\trleft-115\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid9394584\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrs\brdrw20 \clbrdrb
|
||||
\brdrs\brdrw20 \clbrdrr\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth2970\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx2855\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrs\brdrw20 \clbrdrr
|
||||
\brdrs\brdrw20 \cltxlrtb\clftsWidth3\clwWidth5850\clpadl0\clpadt115\clpadb0\clpadr115\clpadfl3\clpadft3\clpadfb3\clpadfr3\clshdrawnil\clhidemark \cellx8705\row }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar
|
||||
\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0
|
||||
\b\fs28\cf17\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Example
|
||||
\par }\pard\plain \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 1. c:\\Tools\\BootSectImage.exe \hich\f39 \endash \loch\f39 p loader.data
|
||||
\par \hich\af39\dbch\af31505\loch\f39 BPB information from loader.data will be displayed on screen.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 2. c:\\Tools\\BootSectImage.exe \hich\f39 \endash \loch\f39 g Dest.data loader.data
|
||||
\par \hich\af39\dbch\af31505\loch\f39 BPB information in Dest.data will be patched by loader.data BPB.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Bugs
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 No known issues
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Files
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 See also
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 License
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 Copyright (c) 19\hich\af39\dbch\af31505\loch\f39 99 - }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid15015589 \hich\af39\dbch\af31505\loch\f39 20}{\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid11993802 \hich\af39\dbch\af31505\loch\f39 1}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid15015589 \hich\af39\dbch\af31505\loch\f39 1}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid5586544 \hich\af39\dbch\af31505\loch\f39 , Intel Corporation. All rights reserved.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 This program and the accompanying materials are licensed and made available
|
||||
\par \hich\af39\dbch\af31505\loch\f39 under the terms and conditions of the BSD License which accompanies this
|
||||
\par \hich\af39\dbch\af31505\loch\f39 distribution. The full text of the license may be fou\hich\af39\dbch\af31505\loch\f39 nd at
|
||||
\par \hich\af39\dbch\af31505\loch\f39 http://opensource.org/licenses/bsd-license.php
|
||||
\par
|
||||
\par \hich\af39\dbch\af31505\loch\f39 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
\par }\pard \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 {\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\cf1\insrsid5586544
|
||||
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
|
||||
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
|
||||
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
|
||||
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
|
||||
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
|
||||
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
|
||||
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
|
||||
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
|
||||
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
|
||||
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
|
||||
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
|
||||
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f
|
||||
7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87
|
||||
615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad
|
||||
79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b
|
||||
5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab
|
||||
999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9
|
||||
699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586
|
||||
8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6
|
||||
0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f
|
||||
9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be
|
||||
15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979
|
||||
3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d
|
||||
32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a
|
||||
f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86
|
||||
e877f0034e16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb
|
||||
44f95d843b5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a
|
||||
6409fb44d08741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c
|
||||
3d9058edf2c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db0256
|
||||
5e85f3b9660d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276
|
||||
b9f7dec44b7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8
|
||||
c33585b5fb9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e
|
||||
51440ca2e0088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95
|
||||
b21be5ceaf8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff
|
||||
6dce591a26ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec6
|
||||
9ffb9e65d028d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239
|
||||
b75a5bb1e6345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a449
|
||||
59d366ad93b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e8
|
||||
2db8df9f30254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468
|
||||
656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4
|
||||
350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d2624
|
||||
52282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe5141
|
||||
73d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000
|
||||
0000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000
|
||||
000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019
|
||||
0200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b00001600000000
|
||||
000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027
|
||||
00000000000000000000000000a00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d0100009b0a00000000}
|
||||
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 1;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
|
||||
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
|
||||
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
|
||||
4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000a075
|
||||
7d26fe56cc01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000105000000000000}}
|
|
@ -1,284 +0,0 @@
|
|||
{\rtf1\adeflang1025\ansi\ansicpg936\uc2\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe2052\themelang1033\themelangfe2052\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
|
||||
{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
|
||||
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Verdana{\*\falt Verdana};}
|
||||
{\f40\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@\'cb\'ce\'cc\'e5;}{\f42\fbidi \fmodern\fcharset0\fprq1{\*\panose 020b0609020204030204}Consolas;}
|
||||
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}
|
||||
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}
|
||||
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f65\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}
|
||||
{\f66\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f68\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f69\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f70\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}
|
||||
{\f71\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f72\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f73\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f177\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}
|
||||
{\f385\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f386\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f388\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f389\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}
|
||||
{\f392\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f393\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f415\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f416\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
|
||||
{\f418\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f419\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f422\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f423\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
|
||||
{\f425\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}{\f426\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f428\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f429\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}
|
||||
{\f430\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f431\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f432\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f433\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}
|
||||
{\f434\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}{\f435\fbidi \fswiss\fcharset238\fprq2 Verdana CE{\*\falt Verdana};}{\f436\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Verdana};}
|
||||
{\f438\fbidi \fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Verdana};}{\f439\fbidi \fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Verdana};}{\f442\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Verdana};}
|
||||
{\f443\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Verdana};}{\f447\fbidi \fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\f465\fbidi \fmodern\fcharset238\fprq1 Consolas CE;}{\f466\fbidi \fmodern\fcharset204\fprq1 Consolas Cyr;}
|
||||
{\f468\fbidi \fmodern\fcharset161\fprq1 Consolas Greek;}{\f469\fbidi \fmodern\fcharset162\fprq1 Consolas Tur;}{\f472\fbidi \fmodern\fcharset186\fprq1 Consolas Baltic;}{\f473\fbidi \fmodern\fcharset163\fprq1 Consolas (Vietnamese);}
|
||||
{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31520\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}
|
||||
{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
|
||||
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fdbminor\f31560\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
|
||||
{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
|
||||
{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
|
||||
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
|
||||
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025
|
||||
\ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext11 \ssemihidden \sunhideused
|
||||
Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\fs32\kerning32\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\ai\af0\afs28 \ltrch\fcs0
|
||||
\b\i\fs28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked Heading 2 Char;}{\s17\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0
|
||||
\fs16\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext17 \slink18 \ssemihidden \sunhideused \styrsid14227342 Balloon Text;}{\*\cs18 \additive \rtlch\fcs1 \af38\afs16 \ltrch\fcs0 \f38\fs16
|
||||
\sbasedon10 \slink17 \slocked \ssemihidden \styrsid14227342 Balloon Text Char;}{\*\cs19 \additive \rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \fs16 \sbasedon10 \ssemihidden \sunhideused \styrsid3615718 annotation reference;}{
|
||||
\s20\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon0 \snext20 \slink21 \ssemihidden \sunhideused \styrsid3615718 annotation text;}{\*\cs21 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f39\fs20 \sbasedon10 \slink20 \slocked \ssemihidden \styrsid3615718 Comment Text Char;}{
|
||||
\s22\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon20 \snext20 \slink23 \ssemihidden \sunhideused \styrsid3615718 annotation subject;}{\*\cs23 \additive \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f39\fs20 \sbasedon21 \slink22 \slocked \ssemihidden \styrsid3615718 Comment Subject Char;}{
|
||||
\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\itap0 \rtlch\fcs1 \af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon0 \snext24 \spriority0 \styrsid8600807 CellBodyLeft;}{\*\cs25 \additive \b\f2\cf13 \spriority0 \styrsid8600807 CodeCharacter;}{\*\ts26\tsrowd\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh
|
||||
\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
||||
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052
|
||||
\sbasedon11 \snext26 \spriority59 \styrsid4999604 Table Grid;}}{\*\rsidtbl \rsid1146210\rsid2496182\rsid3615718\rsid4999604\rsid5851758\rsid5911148\rsid5922889\rsid6122156\rsid6239696\rsid7634119\rsid7831486\rsid8089322\rsid8544345\rsid8600807\rsid9010605
|
||||
\rsid10178116\rsid11477561\rsid12198464\rsid12780272\rsid14227342\rsid14293206\rsid15732707}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator ydliu}
|
||||
{\creatim\yr2010\mo10\dy6\hr16\min22}{\revtim\yr2011\mo8\dy10\hr9\min46}{\version16}{\edmins175}{\nofpages2}{\nofwords243}{\nofchars1387}{\nofcharsws1627}{\vern49255}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
||||
\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
|
||||
\deftab360\ftnbj\aenddoc\revisions\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
|
||||
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale135\rsidroot14227342 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang
|
||||
{\pntxta \dbch .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \dbch )}}{\*\pnseclvl5
|
||||
\pndec\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl8
|
||||
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar
|
||||
\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0
|
||||
\b\fs28\cf17\lang1036\langfe1033\langnp1036\insrsid14227342\charrsid8544345 \hich\af39\dbch\af31505\loch\f39 Name
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\lang1036\langfe1033\langnp1036\insrsid14227342\charrsid8544345 \hich\af39\dbch\af31505\loch\f39 \hich\f39 EfiLdrImage.exe Options PE1 PE2 PE3 \'85
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\lang1036\langfe1033\langnp1036\insrsid14227342\charrsid8544345 \hich\af39\dbch\af31505\loch\f39 Synopsis}{
|
||||
\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\lang1036\langfe1033\langnp1036\insrsid14227342
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid11477561 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid11477561\charrsid8544345 \hich\af39\dbch\af31505\loch\f39 EfiLdrImage.exe}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid6122156 \hich\af39\dbch\af31505\loch\f39
|
||||
[-v | -q | -d]}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid11477561\charrsid8089322 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8600807
|
||||
\hich\af39\dbch\af31505\loch\f39 -o}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid2496182 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid12780272 \hich\af39\dbch\af31505\loch\f39 <}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid2496182 \hich\af39\dbch\af31505\loch\f39 File}{\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid12780272 \hich\af39\dbch\af31505\loch\f39 N}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid2496182
|
||||
\hich\af39\dbch\af31505\loch\f39 ame}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid12780272 \hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8600807 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid12780272 \hich\af39\dbch\af31505\loch\f39 <}{\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8600807 \hich\af39\dbch\af31505\loch\f39 Input}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid12780272
|
||||
\hich\af39\dbch\af31505\loch\f39 F}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8600807 \hich\af39\dbch\af31505\loch\f39 ile1}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid12780272 \hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8600807 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid4999604 \hich\af39\dbch\af31505\loch\f39 [}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid14293206
|
||||
\hich\af39\dbch\af31505\loch\f39 <}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8600807 \hich\af39\dbch\af31505\loch\f39 inputfile2}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid14293206 \hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid4999604 \hich\af39\dbch\af31505\loch\f39 ]}{\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid12780272 \loch\af39\dbch\af31505\hich\f39 \'85}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid11477561
|
||||
\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid8600807 \hich\af39\dbch\af31505\loch\f39 EfiLdrImage.exe \hich\f39 \endash \loch\f39 h
|
||||
\par \hich\af39\dbch\af31505\loch\f39 EfiLdrImage.exe --version}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe2052\langfenp2052\insrsid8600807\charrsid8089322
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 Description
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid5851758 \hich\af39\dbch\af31505\loch\f39 The EfiLdrImage tool is used to }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid7634119
|
||||
\hich\af39\dbch\af31505\loch\f39 combine}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 PE files into }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid7634119
|
||||
\hich\af39\dbch\af31505\loch\f39 EFILDR image}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid7634119 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39
|
||||
with Efi loader header.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0\pararsid8600807 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 Options}{\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0
|
||||
\b\fs28\cf17\lang1033\langfe2052\langfenp2052\insrsid3615718
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid6239696 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid6239696\charrsid12198464 \hich\af39\dbch\af31505\loch\f39 If no options ar}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid6239696 \hich\af39\dbch\af31505\loch\f39 e specified, tool prints usage.}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe2052\langfenp2052\insrsid6239696\charrsid6239696
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 -o, --output Filename
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 The file that contains the combined loader file.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 --version}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid14227342
|
||||
\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \tab \hich\af39\dbch\af31505\loch\f39 Print version and copyright of this program and exit
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -v, --verbose}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid14227342
|
||||
\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39
|
||||
Turn on verbose output with informational messages printed. This is a count value, so specifying \hich\f39 \endash \loch\f39 vv can be used to increase the verbosity level.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 -q, --quiet}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid14227342
|
||||
\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \tab \hich\af39\dbch\af31505\loch\f39 Disable all messages excep\hich\af39\dbch\af31505\loch\f39 t FATAL ERRORS
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -d, --debug [#]}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid14227342
|
||||
\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \tab \hich\af39\dbch\af31505\loch\f39 Enable debug messages, at level #
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -h, --help}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid14227342
|
||||
\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342 \tab \hich\af39\dbch\af31505\loch\f39 Print copyright, version and usage of this program and exit
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0\pararsid4999604 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\lang1033\langfe2052\langfenp2052\insrsid8600807 {\*\bkmkstart OLE_LINK1}{\*\bkmkstart OLE_LINK2}
|
||||
\hich\af39\dbch\af31505\loch\f39 Status codes returned}{\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\lang1033\langfe2052\langfenp2052\insrsid8600807\charrsid4999604
|
||||
\par \ltrrow}\trowd \irow0\irowband0\ltrrow\ts26\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
|
||||
\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid4999604\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
|
||||
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2970\clshdrawnil\clhidemark \cellx2862\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
|
||||
\cltxlrtb\clftsWidth3\clwWidth5850\clshdrawnil\clhidemark \cellx8712\pard\plain \ltrpar\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\pararsid5911148\yts26 \rtlch\fcs1
|
||||
\af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0
|
||||
\cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid8600807\charrsid8600807 \hich\af2\dbch\af13\loch\f2 STATUS_SUCCESS}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4999604 \hich\af39\dbch\af13\loch\f39 }{\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0
|
||||
\cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid4999604\charrsid4999604 \tab }{\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid4999604 0}{\rtlch\fcs1 \ab\af2\afs18
|
||||
\ltrch\fcs0 \cs25\b\f2\fs18\lang1033\langfe2052\kerning2\langfenp2052\insrsid8600807 \cell }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8600807 \hich\af39\dbch\af13\loch\f39 The action was completed as requested.}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\kerning2\insrsid8600807 \cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af37\afs20 \ltrch\fcs0 \fs20\insrsid8600807 \trowd \irow0\irowband0\ltrrow\ts26\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
|
||||
\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
|
||||
\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid4999604\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
|
||||
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2970\clshdrawnil\clhidemark \cellx2862\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
|
||||
\cltxlrtb\clftsWidth3\clwWidth5850\clshdrawnil\clhidemark \cellx8712\row \ltrrow}\pard\plain \ltrpar\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\pararsid8600807\yts26 \rtlch\fcs1
|
||||
\af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\kerning2\insrsid8600807\charrsid8600807 \hich\af2\dbch\af13\loch\f2
|
||||
STATUS_ERROR}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4999604 \hich\af39\dbch\af13\loch\f39 }{\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid4999604\charrsid4999604 \tab \tab }{\rtlch\fcs1
|
||||
\ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid4999604 \hich\af2\dbch\af13\loch\f2 2}{\rtlch\fcs1 \af42\afs19 \ltrch\fcs0 \cs25\f42\fs19\cf0\lang1033\langfe2052\langfenp2052\insrsid8600807\charrsid8600807
|
||||
\cell }\pard \ltrpar\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\pararsid9010605\yts26 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe2052\kerning2\langfenp2052\insrsid8600807
|
||||
\hich\af39\dbch\af13\loch\f39 The action \hich\af39\dbch\af13\loch\f39 failed.\cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af37\afs20 \ltrch\fcs0 \fs20\insrsid8600807 \trowd \irow1\irowband1\lastrow \ltrrow\ts26\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10
|
||||
\trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
|
||||
\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid4999604\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
|
||||
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2970\clshdrawnil\clhidemark \cellx2862\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
|
||||
\cltxlrtb\clftsWidth3\clwWidth5850\clshdrawnil\clhidemark \cellx8712\row }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid3615718
|
||||
{\*\bkmkend OLE_LINK1}{\*\bkmkend OLE_LINK2}
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 Example
|
||||
\par }\pard\plain \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 1. c:\\Tools\\EfiLdrImage.exe \hich\f39 \endash \loch\f39 o loader.img loader.data loader1.data
|
||||
\par \hich\af39\dbch\af31505\loch\f39 The loader.data and loader1.data will be put into loader.img file which contains a EFI loader header.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 Bugs
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 No known issues
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 Files
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 See also
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 License
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid14227342 \hich\af39\dbch\af31505\loch\f39 Copyright (c) 1999 - }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5922889 \hich\af39\dbch\af31505\loch\f39 20}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\lang1033\langfe2052\langfenp2052\insrsid11477561 \hich\af39\dbch\af31505\loch\f39 1}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid5922889 \hich\af39\dbch\af31505\loch\f39 1}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14227342
|
||||
\hich\af39\dbch\af31505\loch\f39 , Intel Corporation. All rights reserved.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 This program and the accompanying materials are licensed and made available
|
||||
\par \hich\af39\dbch\af31505\loch\f39 under the terms and conditions of the BSD License which accompanies this
|
||||
\par \hich\af39\dbch\af31505\loch\f39 distribution. \hich\af39\dbch\af31505\loch\f39 The full text of the license may be found at
|
||||
\par \hich\af39\dbch\af31505\loch\f39 http://opensource.org/licenses/bsd-license.php
|
||||
\par
|
||||
\par \hich\af39\dbch\af31505\loch\f39 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
\par }\pard \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 {\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\cf1\insrsid14227342
|
||||
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
|
||||
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
|
||||
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
|
||||
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
|
||||
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
|
||||
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
|
||||
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
|
||||
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
|
||||
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
|
||||
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
|
||||
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
|
||||
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f
|
||||
7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87
|
||||
615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad
|
||||
79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b
|
||||
5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab
|
||||
999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9
|
||||
699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586
|
||||
8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6
|
||||
0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f
|
||||
9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be
|
||||
15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979
|
||||
3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d
|
||||
32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a
|
||||
f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86
|
||||
e877f0034e16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb
|
||||
44f95d843b5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a
|
||||
6409fb44d08741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c
|
||||
3d9058edf2c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db0256
|
||||
5e85f3b9660d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276
|
||||
b9f7dec44b7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8
|
||||
c33585b5fb9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e
|
||||
51440ca2e0088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95
|
||||
b21be5ceaf8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff
|
||||
6dce591a26ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec6
|
||||
9ffb9e65d028d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239
|
||||
b75a5bb1e6345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a449
|
||||
59d366ad93b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e8
|
||||
2db8df9f30254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468
|
||||
656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4
|
||||
350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d2624
|
||||
52282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe5141
|
||||
73d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000
|
||||
0000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000
|
||||
000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019
|
||||
0200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b00001600000000
|
||||
000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027
|
||||
00000000000000000000000000a00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d0100009b0a00000000}
|
||||
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 1;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
|
||||
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
|
||||
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
|
||||
4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000e04d
|
||||
d663ff56cc01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000105000000000000}}
|
|
@ -1,281 +0,0 @@
|
|||
{\rtf1\adeflang1025\ansi\ansicpg936\uc2\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe2052\themelang1033\themelangfe2052\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
|
||||
{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
|
||||
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Verdana};}
|
||||
{\f40\fbidi \fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@\'cb\'ce\'cc\'e5;}{\f43\fbidi \fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Consolas;}
|
||||
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}
|
||||
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}
|
||||
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f65\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}
|
||||
{\f66\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f68\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f69\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f70\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}
|
||||
{\f71\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f72\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f73\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f177\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}
|
||||
{\f385\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f386\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f388\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f389\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}
|
||||
{\f392\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f393\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f415\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f416\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
|
||||
{\f418\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f419\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f422\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f423\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
|
||||
{\f425\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}{\f426\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f428\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f429\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}
|
||||
{\f430\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f431\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f432\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f433\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}
|
||||
{\f434\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}{\f435\fbidi \fswiss\fcharset238\fprq2 Verdana CE{\*\falt Verdana};}{\f436\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Verdana};}
|
||||
{\f438\fbidi \fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Verdana};}{\f439\fbidi \fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Verdana};}{\f442\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Verdana};}
|
||||
{\f443\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Verdana};}{\f447\fbidi \fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\f475\fbidi \fmodern\fcharset238\fprq1 Consolas CE;}{\f476\fbidi \fmodern\fcharset204\fprq1 Consolas Cyr;}
|
||||
{\f478\fbidi \fmodern\fcharset161\fprq1 Consolas Greek;}{\f479\fbidi \fmodern\fcharset162\fprq1 Consolas Tur;}{\f482\fbidi \fmodern\fcharset186\fprq1 Consolas Baltic;}{\f483\fbidi \fmodern\fcharset163\fprq1 Consolas (Vietnamese);}
|
||||
{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31520\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}
|
||||
{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
|
||||
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fdbminor\f31560\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
|
||||
{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
|
||||
{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
|
||||
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
|
||||
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;}{\*\defchp \fs21\kerning2\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap
|
||||
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 \slink15 \sqformat heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025
|
||||
\ltrch\fcs0 \fs24\lang1033\langfe2052\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
||||
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs21\alang1025 \ltrch\fcs0 \fs21\lang1033\langfe2052\kerning2\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052
|
||||
\snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs44 \ltrch\fcs0 \b\f39\fs44\kerning44 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0
|
||||
\b\fs32\kerning0\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \fs16 \sbasedon10 \ssemihidden \sunhideused \styrsid2845843 annotation reference;}{
|
||||
\s18\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2052\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052
|
||||
\sbasedon0 \snext18 \slink19 \ssemihidden \sunhideused \styrsid2845843 annotation text;}{\*\cs19 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f39\fs20\lang0\langfe2052\kerning0\langnp0\langfenp2052
|
||||
\sbasedon10 \slink18 \slocked \ssemihidden \styrsid2845843 Comment Text Char;}{\s20\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs20\alang1025 \ltrch\fcs0
|
||||
\b\fs20\lang1033\langfe2052\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon18 \snext18 \slink21 \ssemihidden \sunhideused \styrsid2845843 annotation subject;}{\*\cs21 \additive \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0
|
||||
\b\f39\fs20\lang0\langfe2052\kerning0\langnp0\langfenp2052 \sbasedon19 \slink20 \slocked \ssemihidden \styrsid2845843 Comment Subject Char;}{\s22\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0
|
||||
\fs16\lang1033\langfe2052\loch\f38\hich\af38\dbch\af31505\cgrid\langnp1033\langfenp2052 \sbasedon0 \snext22 \slink23 \ssemihidden \sunhideused \styrsid2845843 Balloon Text;}{\*\cs23 \additive \rtlch\fcs1 \af38\afs16 \ltrch\fcs0
|
||||
\f38\fs16\lang0\langfe2052\kerning0\langnp0\langfenp2052 \sbasedon10 \slink22 \slocked \ssemihidden \styrsid2845843 Balloon Text Char;}{\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\itap0
|
||||
\rtlch\fcs1 \af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\f39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext24 \spriority0 \styrsid3702744 CellBodyLeft;}{\*\cs25 \additive \b\f2\cf13 \spriority0 \styrsid3702744
|
||||
CodeCharacter;}{\*\ts26\tsrowd\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
|
||||
\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
||||
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052
|
||||
\sbasedon11 \snext26 \spriority59 \styrsid3702744 Table Grid;}}{\*\rsidtbl \rsid30831\rsid1997213\rsid2187891\rsid2845843\rsid3702744\rsid4349102\rsid4464881\rsid4673256\rsid4999604\rsid5911148\rsid6109204\rsid7668629\rsid8600807\rsid9578817\rsid10314143
|
||||
\rsid11670632\rsid12197322\rsid12198464\rsid12716080\rsid14887753\rsid14892679\rsid15406319}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator ydliu}
|
||||
{\creatim\yr2011\mo7\dy18\hr16\min5}{\revtim\yr2011\mo8\dy10\hr9\min43}{\version12}{\edmins1180}{\nofpages3}{\nofwords309}{\nofchars1764}{\nofcharsws2069}{\vern49255}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
||||
\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect
|
||||
\deftab360\ftnbj\aenddoc\revisions\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
|
||||
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale135\rsidroot30831 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang
|
||||
{\pntxta \dbch .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta \dbch .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \dbch )}}{\*\pnseclvl5
|
||||
\pndec\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl8
|
||||
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar
|
||||
\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0
|
||||
\b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 Name
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 GenBootSector.exe
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0\pararsid30831 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid30831 \hich\af39\dbch\af31505\loch\f39 Synopsis
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs18
|
||||
\ltrch\fcs0 \b\fs18\cf1\insrsid30831\charrsid30831 \hich\af39\dbch\af31505\loch\f39 GenBootSector}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid30831 \hich\af39\dbch\af31505\loch\f39 .exe }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\insrsid6109204 \hich\af39\dbch\af31505\loch\f39 [-v | -q | -d] [-m] -i }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14887753 \hich\af39\dbch\af31505\loch\f39 <}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204
|
||||
\hich\af39\dbch\af31505\loch\f39 Input}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14887753 \hich\af39\dbch\af31505\loch\f39 F}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204 \hich\af39\dbch\af31505\loch\f39 ile}{
|
||||
\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14887753 \hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204 \hich\af39\dbch\af31505\loch\f39 \hich\f39 \endash \loch\f39 o }{\rtlch\fcs1
|
||||
\ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14887753 \hich\af39\dbch\af31505\loch\f39 <}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204 \hich\af39\dbch\af31505\loch\f39 Output}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0
|
||||
\b\fs18\cf1\insrsid14887753 \hich\af39\dbch\af31505\loch\f39 F}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204 \hich\af39\dbch\af31505\loch\f39 ile}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid14887753
|
||||
\hich\af39\dbch\af31505\loch\f39 >}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204
|
||||
\par \hich\af39\dbch\af31505\loch\f39 GenBootSector.exe -l}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid30831
|
||||
\par }{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204 \hich\af39\dbch\af31505\loch\f39 GenBootSector.exe \hich\f39 \endash \loch\f39 h
|
||||
\par \hich\af39\dbch\af31505\loch\f39 GenBootSector.exe}{\rtlch\fcs1 \ab\af39\afs18 \ltrch\fcs0 \b\fs18\cf1\insrsid6109204\charrsid3702744 \hich\af39\dbch\af31505\loch\f39 --version
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 Description
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid30831 \hich\af39\dbch\af31505\loch\f39 GenBootSector reads boot sector data of }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2845843 \hich\af39\dbch\af31505\loch\f39 a }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid30831 \hich\af39\dbch\af31505\loch\f39 drive into }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2845843 \hich\af39\dbch\af31505\loch\f39 a }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid30831
|
||||
\hich\af39\dbch\af31505\loch\f39 file or write boot sector data to a drive from a file, depending on where the drive appear in the options. }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39
|
||||
A drive letter must be specified at \hich\f39 \endash \loch\f39 i or \hich\f39 \endash \loch\f39 o option because boot sector is related\hich\af39\dbch\af31505\loch\f39 with drives.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0\pararsid3702744 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 Options}{\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0
|
||||
\b\fs28\cf17\insrsid2845843
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14892679 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1
|
||||
\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14892679\charrsid12198464 \hich\af39\dbch\af31505\loch\f39 If no options ar}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14892679 \hich\af39\dbch\af31505\loch\f39 e specified, tool prints usage.}{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14892679\charrsid14892679
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 -l, --list
|
||||
\par }\pard \ltrpar\ql \fi426\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 List all drive information in current system.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 -i, --input Filename\tab \tab \tab \tab \tab
|
||||
\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 The file or disk boot sector data will be read from.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 -o, --output Filename
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 The file or disk boot sector data will be written to.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -m, --mbr\tab \hich\af39\dbch\af31505\loch\f39 MBR will be processed if specified.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 --version\tab \hich\af39\dbch\af31505\loch\f39 Print version and copyright of this program and exit
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -v, --verbose
|
||||
\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 Turn on verbose output with informational messages printed. This is a c
|
||||
\hich\af39\dbch\af31505\loch\f39 ount value, so specifying \hich\f39 \endash \loch\f39 vv can be used to increase the verbosity level.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 -q, --quiet
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 disable all messages except FATAL ERRORS
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -d, --debug [#]
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 Enable debug messages, at level #
|
||||
\par \hich\af39\dbch\af31505\loch\f39 -h, --help
|
||||
\par \tab \hich\af39\dbch\af31505\loch\f39 Print copyright, version and usage of this program and exit
|
||||
\par }{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2845843
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0\pararsid3702744 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3702744 {\*\bkmkstart OLE_LINK10}{\*\bkmkstart OLE_LINK11}{\*\bkmkstart OLE_LINK3}{\*\bkmkstart OLE_LINK4}
|
||||
{\*\bkmkstart OLE_LINK5}{\*\bkmkstart OLE_LINK6}{\*\bkmkstart OLE_LINK9}{\*\bkmkstart OLE_LINK14}\hich\af39\dbch\af31505\loch\f39 Status codes returned}{\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid3702744\charrsid4999604
|
||||
\par \ltrrow}\trowd \irow0\irowband0\ltrrow\ts26\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
|
||||
\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid5911148\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
|
||||
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2970\clshdrawnil\clhidemark \cellx2862\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
|
||||
\cltxlrtb\clftsWidth3\clwWidth5850\clshdrawnil\clhidemark \cellx8712\pard\plain \ltrpar\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\pararsid5911148\yts26 \rtlch\fcs1
|
||||
\af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid3702744
|
||||
{\*\bkmkend OLE_LINK10}{\*\bkmkend OLE_LINK11}0}{\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\lang1033\langfe2052\kerning2\langfenp2052\insrsid3702744 \cell }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3702744 \hich\af39\dbch\af13\loch\f39
|
||||
The action was completed as requested.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \kerning2\insrsid3702744 \cell }\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs20 \ltrch\fcs0 \fs20\insrsid3702744 \trowd \irow0\irowband0\ltrrow\ts26\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
|
||||
\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
|
||||
\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid5911148\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
|
||||
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2970\clshdrawnil\clhidemark \cellx2862\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
|
||||
\cltxlrtb\clftsWidth3\clwWidth5850\clshdrawnil\clhidemark \cellx8712\row \ltrrow}\pard\plain \ltrpar\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\pararsid5911148\yts26 \rtlch\fcs1
|
||||
\af0\afs16\alang1025 \ltrch\fcs0 \fs16\cf1\lang1033\langfe1033\loch\af39\hich\af39\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \cs25\b\f2\fs18\cf13\lang1033\langfe2052\kerning2\langfenp2052\insrsid3702744
|
||||
\hich\af2\dbch\af13\loch\f2 1}{\rtlch\fcs1 \af43\afs19 \ltrch\fcs0 \cs25\f43\fs19\cf0\lang1033\langfe2052\langfenp2052\insrsid3702744\charrsid8600807 \cell }\pard \ltrpar\s24\ql \li0\ri20\sb60\sa60\sl-200\slmult0
|
||||
\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin20\lin0\pararsid9578817\yts26 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe2052\kerning2\langfenp2052\insrsid3702744 \hich\af39\dbch\af13\loch\f39 The action
|
||||
\hich\af39\dbch\af13\loch\f39 failed.\cell }\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af37\afs20 \ltrch\fcs0 \fs20\insrsid3702744 \trowd \irow1\irowband1\lastrow \ltrrow\ts26\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10
|
||||
\trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10
|
||||
\trftsWidth3\trwWidth8820\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid5911148\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
|
||||
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2970\clshdrawnil\clhidemark \cellx2862\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10
|
||||
\cltxlrtb\clftsWidth3\clwWidth5850\clshdrawnil\clhidemark \cellx8712\row }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid2845843 {\*\bkmkend OLE_LINK3}
|
||||
{\*\bkmkend OLE_LINK4}{\*\bkmkend OLE_LINK5}{\*\bkmkend OLE_LINK6}{\*\bkmkend OLE_LINK9}{\*\bkmkend OLE_LINK14}
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 Example
|
||||
\par }\pard\plain \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 1. c:\\\hich\af39\dbch\af31505\loch\f39 Tools\\GenBootSector.exe -l
|
||||
\par \hich\af39\dbch\af31505\loch\f39 List information of all local drives.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 2. c:\\Tools\\GenBootSector.exe -i a: -o data.com
|
||||
\par \hich\af39\dbch\af31505\loch\f39 Get boot sector data of drive a: and write them to data.com.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 3. c:\\Tools\\GenBootSector.exe -i data.com -o a:
|
||||
\par \hich\af39\dbch\af31505\loch\f39 Update boot sector of drive a: w\hich\af39\dbch\af31505\loch\f39 ith data from data.com.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 Bugs
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid12716080 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1
|
||||
\af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid12716080 \hich\af39\dbch\af31505\loch\f39 No known issues.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 Files
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 See also
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af39\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 License
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2052\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af39\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid30831 \hich\af39\dbch\af31505\loch\f39 Copyright (c) 1999 - 2011}{\rtlch\fcs1 \af39\afs18 \ltrch\fcs0 \fs18\cf1\insrsid10314143 \hich\af39\dbch\af31505\loch\f39 , Intel Corporation. All rights reserved.
|
||||
\par \hich\af39\dbch\af31505\loch\f39 This program and the accompanying materials are licensed and made available
|
||||
\par \hich\af39\dbch\af31505\loch\f39 under the terms and condition\hich\af39\dbch\af31505\loch\f39 s of the BSD License which accompanies this
|
||||
\par \hich\af39\dbch\af31505\loch\f39 distribution. The full text of the license may be found at
|
||||
\par \hich\af39\dbch\af31505\loch\f39 http://opensource.org/licenses/bsd-license.php
|
||||
\par
|
||||
\par \hich\af39\dbch\af31505\loch\f39 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,WITHOUT WARRANTIES OR REPRESENTATI\hich\af39\dbch\af31505\loch\f39 ONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
\par }\pard \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 {\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\cf1\insrsid10314143
|
||||
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
|
||||
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
|
||||
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
|
||||
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
|
||||
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
|
||||
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
|
||||
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
|
||||
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
|
||||
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
|
||||
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
|
||||
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
|
||||
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210030dd4329a8060000a41b0000160000007468656d652f7468656d652f
|
||||
7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87
|
||||
615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad
|
||||
79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b
|
||||
5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab
|
||||
999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9
|
||||
699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586
|
||||
8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6
|
||||
0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f
|
||||
9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be
|
||||
15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979
|
||||
3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d
|
||||
32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a
|
||||
f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86
|
||||
e877f0034e16bafb0e258ebb4faf06b769e888340b103d331115bebc4eb813bf83291b63624a0d1475a756c734f9bbc2cd28546ecbe1e20a3794ca175f3fae90
|
||||
fb6d2dd99bb07b55e5ccf68942bd0877b23c77b908e8db5f9db7f024d9239010f35bd4bbe2fcae387bfff9e2bc289f2fbe24cfaa301468dd8bd846dbb4ddf1c2
|
||||
ae7b4c191ba8292337a469bc25ec3d411f06f53a73e224c5292c8de0516732307070a1c0660d125c7d44553488700a4d7bddd3444299910e254ab984c3a219ae
|
||||
a4adf1d0f82b7bd46cea4388ad1c12ab5d1ed8e1153d9c9f350a3246aad01c6873462b9ac05999ad5cc988826eafc3acae853a33b7ba11cd1445875ba1b236b1
|
||||
399483c90bd560b0b0263435085a21b0f22a9cf9356b38ec6046026d77eba3dc2dc60b17e92219e180643ed27acffba86e9c94c7ca9c225a0f1b0cfae0788ad5
|
||||
4adc5a9aec1b703b8b93caec1a0bd8e5de7b132fe5113cf312503b998e2c2927274bd051db6b35979b1ef271daf6c6704e86c73805af4bdd476216c26593af84
|
||||
0dfb5393d964f9cc9bad5c313709ea70f561ed3ea7b053075221d51696910d0d339585004b34272bff7213cc7a510a5454a3b349b1b206c1f0af490176745d4b
|
||||
c663e2abb2b34b23da76f6352ba57ca2881844c1111ab189d8c7e07e1daaa04f40255c77988aa05fe06e4e5bdb4cb9c5394bbaf28d98c1d971ccd20867e556a7
|
||||
689ec9166e0a522183792b8907ba55ca6e943bbf2a26e52f48957218ffcf54d1fb09dc3eac04da033e5c0d0b8c74a6b43d2e54c4a10aa511f5fb021a07533b20
|
||||
5ae07e17a621a8e082dafc17e450ffb739676998b48643a4daa7211214f623150942f6a02c99e83b85583ddbbb2c4996113211551257a656ec1139246ca86be0
|
||||
aadedb3d1441a89b6a929501833b197fee7b9641a3503739e57c732a59b1f7da1cf8a73b1f9bcca0945b874d4393dbbf10b1680f66bbaa5d6f96e77b6f59113d
|
||||
316bb31a795600b3d256d0cad2fe354538e7566b2bd69cc6cbcd5c38f0e2bcc63058344429dc2121fd07f63f2a7c66bf76e80d75c8f7a1b622f878a18941d840
|
||||
545fb28d07d205d20e8ea071b283369834296bdaac75d256cb37eb0bee740bbe278cad253b8bbfcf69eca23973d939b97891c6ce2cecd8da8e2d343578f6648a
|
||||
c2d0383fc818c798cf64e52f597c740f1cbd05df0c264c49134cf09d4a60e8a107260f20f92d47b374e32f000000ffff0300504b030414000600080000002100
|
||||
0dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f7
|
||||
8277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89
|
||||
d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd500
|
||||
1996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0f
|
||||
bfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6
|
||||
a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a
|
||||
0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021
|
||||
0030dd4329a8060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d001400060008
|
||||
00000021000dd1909fb60000001b0100002700000000000000000000000000b20900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ad0a00000000}
|
||||
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 1;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
|
||||
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
|
||||
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
|
||||
4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000007072
|
||||
fcdefe56cc01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000105000000000000}}
|
|
@ -1,107 +0,0 @@
|
|||
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch13\stshfloch39\stshfhich39\stshfbi0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times};}{\f13\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ??\'a1\'a7??};}
|
||||
{\f36\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma{\*\falt Times New Roman};}{\f38\froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\f39\fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri{\*\falt Century Gothic};}
|
||||
{\f41\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@SimSun;}{\f48\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Verdana};}{\f301\froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times};}
|
||||
{\f302\froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times};}{\f304\froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times};}{\f305\froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times};}
|
||||
{\f306\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times};}{\f307\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times};}{\f308\froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times};}
|
||||
{\f309\froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times};}{\f433\fnil\fcharset0\fprq2 SimSun Western{\*\falt ??\'a1\'a7??};}{\f661\fswiss\fcharset238\fprq2 Tahoma CE{\*\falt Times New Roman};}
|
||||
{\f662\fswiss\fcharset204\fprq2 Tahoma Cyr{\*\falt Times New Roman};}{\f664\fswiss\fcharset161\fprq2 Tahoma Greek{\*\falt Times New Roman};}{\f665\fswiss\fcharset162\fprq2 Tahoma Tur{\*\falt Times New Roman};}
|
||||
{\f666\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew){\*\falt Times New Roman};}{\f667\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic){\*\falt Times New Roman};}{\f668\fswiss\fcharset186\fprq2 Tahoma Baltic{\*\falt Times New Roman};}
|
||||
{\f669\fswiss\fcharset163\fprq2 Tahoma (Vietnamese){\*\falt Times New Roman};}{\f670\fswiss\fcharset222\fprq2 Tahoma (Thai){\*\falt Times New Roman};}{\f681\froman\fcharset238\fprq2 Cambria CE;}{\f682\froman\fcharset204\fprq2 Cambria Cyr;}
|
||||
{\f684\froman\fcharset161\fprq2 Cambria Greek;}{\f685\froman\fcharset162\fprq2 Cambria Tur;}{\f688\froman\fcharset186\fprq2 Cambria Baltic;}{\f689\froman\fcharset163\fprq2 Cambria (Vietnamese);}
|
||||
{\f691\fswiss\fcharset238\fprq2 Calibri CE{\*\falt Century Gothic};}{\f692\fswiss\fcharset204\fprq2 Calibri Cyr{\*\falt Century Gothic};}{\f694\fswiss\fcharset161\fprq2 Calibri Greek{\*\falt Century Gothic};}
|
||||
{\f695\fswiss\fcharset162\fprq2 Calibri Tur{\*\falt Century Gothic};}{\f698\fswiss\fcharset186\fprq2 Calibri Baltic{\*\falt Century Gothic};}{\f699\fswiss\fcharset163\fprq2 Calibri (Vietnamese){\*\falt Century Gothic};}
|
||||
{\f713\fnil\fcharset0\fprq2 @SimSun Western;}{\f781\fswiss\fcharset238\fprq2 Verdana CE{\*\falt Verdana};}{\f782\fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Verdana};}{\f784\fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Verdana};}
|
||||
{\f785\fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Verdana};}{\f788\fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Verdana};}{\f789\fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Verdana};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;
|
||||
\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;
|
||||
\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red8\green96\blue168;}{\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\f48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\f48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\f48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink16 heading 2;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
||||
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\loch\f39\hich\af39\dbch\af13\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\*\cs15
|
||||
\additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\fs32\kerning32\loch\f38\hich\af38\dbch\af0 \sbasedon10 \slink1 \slocked Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\ai\af0\afs28 \ltrch\fcs0 \b\i\fs28\loch\f38\hich\af38\dbch\af0
|
||||
\sbasedon10 \slink2 \slocked \ssemihidden Heading 2 Char;}{\s17\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af36\afs16\alang1025 \ltrch\fcs0 \fs16\lang1033\langfe1033\loch\f36\hich\af36\dbch\af13\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon0 \snext17 \slink18 \ssemihidden \styrsid9396350 Balloon Text;}{\*\cs18 \additive \rtlch\fcs1 \af36\afs16 \ltrch\fcs0 \f36\fs16 \sbasedon10 \slink17 \slocked \ssemihidden \styrsid9396350 Balloon Text Char;}{
|
||||
\s19\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat9 \rtlch\fcs1 \af36\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f36\hich\af36\dbch\af13\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext19 \ssemihidden \styrsid4851248
|
||||
Document Map;}}
|
||||
{\*\latentstyles\lsdstimax156\lsdlockeddef0{\lsdlockedexcept Normal;heading 1;heading 2;heading 3;heading 4;heading 5;heading 6;heading 7;heading 8;heading 9;toc 1;toc 2;toc 3;toc 4;toc 5;toc 6;toc 7;toc 8;toc 9;caption;Title;Default Paragraph Font;Subtitle;Strong;Emphasis;Table Grid;}}
|
||||
{\*\rsidtbl \rsid553632\rsid948930\rsid992837\rsid2773884\rsid4851248\rsid8142543\rsid8481152\rsid9255498\rsid9396350\rsid9966059\rsid13047213\rsid13901873\rsid14443160\rsid15433410}{\*\generator Microsoft Word 11.0.0000;}{\info{\operator jsu1}
|
||||
{\creatim\yr2010\mo10\dy6\hr17}{\revtim\yr2011\mo8\dy10\hr9\min28}{\version14}{\edmins4003}{\nofpages2}{\nofwords280}{\nofchars1599}{\nofcharsws1876}{\vern24615}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wor
|
||||
dml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
|
||||
\deftab360\widowctrl\ftnbj\aenddoc\donotembedsysfont0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
|
||||
\jcompress\viewkind1\viewscale120\rsidroot9396350 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
|
||||
\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
|
||||
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
|
||||
{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Name
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 GenPage.exe Options Filename
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0\pararsid9396350 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Synopsis
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid13047213 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af0
|
||||
\ltrch\fcs0 \b\insrsid13047213 \hich\af48\dbch\af13\loch\f48 GenPage}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid13047213\charrsid13047213 \hich\af48\dbch\af13\loch\f48 .exe }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid15433410\charrsid9255498
|
||||
\hich\af48\dbch\af13\loch\f48 -o \hich\af48\dbch\af13\loch\f48 <\hich\af48\dbch\af13\loch\f48 output_filename\hich\af48\dbch\af13\loch\f48 >\hich\af48\dbch\af13\loch\f48 \hich\af48\dbch\af13\loch\f48 [\hich\af48\dbch\af13\loch\f48 -f
|
||||
\hich\af48\dbch\af13\loch\f48 ]\hich\af48\dbch\af13\loch\f48 [\hich\af48\dbch\af13\loch\f48 -b\hich\af48\dbch\af13\loch\f48 ]\hich\af48\dbch\af13\loch\f48 [\hich\af48\dbch\af13\loch\f48 --version\hich\af48\dbch\af13\loch\f48 ]
|
||||
\hich\af48\dbch\af13\loch\f48 [\hich\af48\dbch\af13\loch\f48 -\hich\af48\dbch\af13\loch\f48 d\hich\af48\dbch\af13\loch\f48 ]\hich\af48\dbch\af13\loch\f48 [\hich\af48\dbch\af13\loch\f48 -q | -\hich\af48\dbch\af13\loch\f48 v\hich\af48\dbch\af13\loch\f48 ]
|
||||
\hich\af48\dbch\af13\loch\f48 [\hich\af48\dbch\af13\loch\f48 -h\hich\af48\dbch\af13\loch\f48 ]\hich\af48\dbch\af13\loch\f48 }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid8142543 \hich\af48\dbch\af13\loch\f48 <}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0
|
||||
\b\insrsid553632\charrsid553632 \hich\af48\dbch\af13\loch\f48 EfiLoaderImageName}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid8142543 \hich\af48\dbch\af13\loch\f48 >}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid13047213\charrsid8142543
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9396350 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9396350\charrsid9396350
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Description
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 The output of this tool is composed of two parts: the page table part and non-page table part. The }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid948930 \hich\af48\dbch\af13\loch\f48
|
||||
non-page table }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 is placed at the beginning of the output file}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid948930 \hich\af48\dbch\af13\loch\f48 . The}{
|
||||
\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid4851248 \hich\af48\dbch\af13\loch\f48 }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid948930 \hich\af48\dbch\af13\loch\f48 page table is}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 placed at the offset specified from option. }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid948930 \hich\af48\dbch\af13\loch\f48 The }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Page table base address can also be specified by command line option.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Options
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 [-f, --offset offset]
|
||||
\par }\pard \ltrpar\ql \fi426\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 The position that the page table will appear in the output file.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 [-b, --baseaddr address]\tab \tab \tab \tab \tab
|
||||
\par }\pard \ltrpar\ql \fi360\li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 The page tab\hich\af48\dbch\af13\loch\f48 le location.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 -o, --output Filename
|
||||
\par \tab \hich\af48\dbch\af13\loch\f48 The file that contains both non-page table part and page table.
|
||||
\par \hich\af48\dbch\af13\loch\f48 [--version]
|
||||
\par \tab \hich\af48\dbch\af13\loch\f48 Print version and copyright of this program and exit
|
||||
\par \hich\af48\dbch\af13\loch\f48 [-v, --verbose]
|
||||
\par }\pard \ltrpar\ql \li360\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Turn on verbose output with informational messages printed. This is a cou
|
||||
\hich\af48\dbch\af13\loch\f48 nt value, so specifying \hich\f48 \endash \loch\f48 vv can be used to increase the verbosity level.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 [-q, --quiet]
|
||||
\par \tab \hich\af48\dbch\af13\loch\f48 Disable all messages except FATAL ERRORS
|
||||
\par \hich\af48\dbch\af13\loch\f48 [-d, --debug [#]]
|
||||
\par \tab \hich\af48\dbch\af13\loch\f48 Enable debug messages, at level #
|
||||
\par \hich\af48\dbch\af13\loch\f48 [-h, --help]
|
||||
\par \tab \hich\af48\dbch\af13\loch\f48 Print copyright, version and usage of this program and exit
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Example
|
||||
\par }\pard\plain \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18
|
||||
\ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 1. c:\\Tools\\GenPage.exe \hich\f48 \endash \loch\f48 f 0x20000 \hich\f48 \endash \loch\f48 b 0x1000 \hich\f48 \endash \loch\f48 o loader.img loader.data
|
||||
\par \hich\af48\dbch\af13\loch\f48 The loader.data and a 4G range page table with base address 0x1000 will be put into loader.img file. The page table will be placed at offset 0x20000 of loader.img file.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Bugs
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 No \hich\af48\dbch\af13\loch\f48 know}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid8142543 \hich\af48\dbch\af13\loch\f48 n}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350
|
||||
\hich\af48\dbch\af13\loch\f48 issues
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Files
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 See also
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 None.
|
||||
\par }\pard\plain \ltrpar\s2\ql \li-1440\ri0\sb400\sa60\sl-340\slmult0\keep\keepn\nowidctlpar\tx1440\wrapdefault\faauto\outlinelevel1\rin0\lin-1440\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af48\afs28 \ltrch\fcs0 \b\fs28\cf17\insrsid9396350 \hich\af48\dbch\af13\loch\f48 License
|
||||
\par }\pard\plain \ltrpar\ql \li0\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af48\hich\af48\dbch\af13\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 Copyright (c) 1999 - }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid948930 \hich\af48\dbch\af13\loch\f48 201}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid13901873
|
||||
\hich\af48\dbch\af13\loch\f48 1}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 , Intel Corporation. All rights reserved.
|
||||
\par \hich\af48\dbch\af13\loch\f48 This program and the accompanying materials are licensed and made available}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14443160 \hich\af48\dbch\af13\loch\f48 }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 under the terms and conditions of the BSD License which accomp\hich\af48\dbch\af13\loch\f48 anies this distribution. The full text of the license may be found at
|
||||
\par \hich\af48\dbch\af13\loch\f48 http://opensource.org/licenses/bsd-license.php
|
||||
\par
|
||||
\par \hich\af48\dbch\af13\loch\f48 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,}{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0 \fs18\cf1\insrsid14443160 \hich\af48\dbch\af13\loch\f48 }{\rtlch\fcs1 \af48\afs18 \ltrch\fcs0
|
||||
\fs18\cf1\insrsid9396350 \hich\af48\dbch\af13\loch\f48 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRES\hich\af48\dbch\af13\loch\f48 S OR IMPLIED.
|
||||
\par }\pard \ltrpar\ql \li60\ri0\sb200\nowidctlpar\wrapdefault\faauto\rin0\lin60\itap0 {\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\cf1\insrsid9396350
|
||||
\par }}
|
|
@ -256,14 +256,10 @@ if defined REBUILD goto check_build_environment
|
|||
if not exist "%EDK_TOOLS_PATH%" goto check_build_environment
|
||||
if not exist "%EDK_TOOLS_BIN%" goto check_build_environment
|
||||
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\BootSectImage.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\EfiLdrImage.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\EfiRom.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenBootSector.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenFfs.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenFv.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenFw.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenPage.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenSec.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\Split.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\TianoCompress.exe" goto check_c_tools
|
||||
|
|
Loading…
Reference in New Issue