mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
merge upstream/origin
This commit is contained in:
commit
d90491a32c
111 changed files with 4295 additions and 6267 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -34,6 +34,7 @@
|
||||||
.libs
|
.libs
|
||||||
Makefile
|
Makefile
|
||||||
arm
|
arm
|
||||||
|
arm64
|
||||||
x86_32
|
x86_32
|
||||||
x86_64
|
x86_64
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -17,6 +21,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,47 +35,48 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\bled.c" />
|
<ClCompile Include="..\src\bled\bled.c" />
|
||||||
<ClCompile Include="..\crc32.c" />
|
<ClCompile Include="..\src\bled\crc32.c" />
|
||||||
<ClCompile Include="..\data_align.c" />
|
<ClCompile Include="..\src\bled\data_align.c" />
|
||||||
<ClCompile Include="..\data_extract_all.c" />
|
<ClCompile Include="..\src\bled\data_extract_all.c" />
|
||||||
<ClCompile Include="..\data_skip.c" />
|
<ClCompile Include="..\src\bled\data_skip.c" />
|
||||||
<ClCompile Include="..\decompress_bunzip2.c" />
|
<ClCompile Include="..\src\bled\decompress_bunzip2.c" />
|
||||||
<ClCompile Include="..\decompress_gunzip.c" />
|
<ClCompile Include="..\src\bled\decompress_gunzip.c" />
|
||||||
<ClCompile Include="..\decompress_uncompress.c" />
|
<ClCompile Include="..\src\bled\decompress_uncompress.c" />
|
||||||
<ClCompile Include="..\decompress_unlzma.c" />
|
<ClCompile Include="..\src\bled\decompress_unlzma.c" />
|
||||||
<ClCompile Include="..\decompress_unxz.c" />
|
<ClCompile Include="..\src\bled\decompress_unxz.c" />
|
||||||
<ClCompile Include="..\decompress_unzip.c" />
|
<ClCompile Include="..\src\bled\decompress_unzip.c" />
|
||||||
<ClCompile Include="..\filter_accept_all.c" />
|
<ClCompile Include="..\src\bled\filter_accept_all.c" />
|
||||||
<ClCompile Include="..\filter_accept_list.c" />
|
<ClCompile Include="..\src\bled\filter_accept_list.c" />
|
||||||
<ClCompile Include="..\filter_accept_reject_list.c" />
|
<ClCompile Include="..\src\bled\filter_accept_reject_list.c" />
|
||||||
<ClCompile Include="..\find_list_entry.c" />
|
<ClCompile Include="..\src\bled\find_list_entry.c" />
|
||||||
<ClCompile Include="..\header_list.c" />
|
<ClCompile Include="..\src\bled\header_list.c" />
|
||||||
<ClCompile Include="..\header_skip.c" />
|
<ClCompile Include="..\src\bled\header_skip.c" />
|
||||||
<ClCompile Include="..\header_verbose_list.c" />
|
<ClCompile Include="..\src\bled\header_verbose_list.c" />
|
||||||
<ClCompile Include="..\init_handle.c" />
|
<ClCompile Include="..\src\bled\init_handle.c" />
|
||||||
<ClCompile Include="..\open_transformer.c" />
|
<ClCompile Include="..\src\bled\open_transformer.c" />
|
||||||
<ClCompile Include="..\seek_by_jump.c" />
|
<ClCompile Include="..\src\bled\seek_by_jump.c" />
|
||||||
<ClCompile Include="..\seek_by_read.c" />
|
<ClCompile Include="..\src\bled\seek_by_read.c" />
|
||||||
<ClCompile Include="..\xz_dec_bcj.c" />
|
<ClCompile Include="..\src\bled\xz_dec_bcj.c" />
|
||||||
<ClCompile Include="..\xz_dec_lzma2.c" />
|
<ClCompile Include="..\src\bled\xz_dec_lzma2.c" />
|
||||||
<ClCompile Include="..\xz_dec_stream.c" />
|
<ClCompile Include="..\src\bled\xz_dec_stream.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\bb_archive.h" />
|
<ClInclude Include="..\src\bled\bb_archive.h" />
|
||||||
<ClInclude Include="..\bled.h" />
|
<ClInclude Include="..\src\bled\bled.h" />
|
||||||
<ClInclude Include="..\libbb.h" />
|
<ClInclude Include="..\src\bled\libbb.h" />
|
||||||
<ClInclude Include="..\platform.h" />
|
<ClInclude Include="..\src\bled\platform.h" />
|
||||||
<ClInclude Include="..\xz.h" />
|
<ClInclude Include="..\src\bled\xz.h" />
|
||||||
<ClInclude Include="..\xz_config.h" />
|
<ClInclude Include="..\src\bled\xz_config.h" />
|
||||||
<ClInclude Include="..\xz_lzma2.h" />
|
<ClInclude Include="..\src\bled\xz_lzma2.h" />
|
||||||
<ClInclude Include="..\xz_private.h" />
|
<ClInclude Include="..\src\bled\xz_private.h" />
|
||||||
<ClInclude Include="..\xz_stream.h" />
|
<ClInclude Include="..\src\bled\xz_stream.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectName>bled</ProjectName>
|
<ProjectName>bled</ProjectName>
|
||||||
<ProjectGuid>{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}</ProjectGuid>
|
<ProjectGuid>{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}</ProjectGuid>
|
||||||
<RootNamespace>bled</RootNamespace>
|
<RootNamespace>bled</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
|
@ -81,6 +90,12 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
|
@ -97,16 +112,28 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -115,21 +142,15 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
|
@ -138,7 +159,7 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|
@ -157,7 +178,25 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<LinkDLL>true</LinkDLL>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
|
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
|
@ -175,7 +214,7 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|
@ -191,7 +230,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|
@ -210,7 +249,25 @@
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<LinkDLL>true</LinkDLL>
|
||||||
|
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||||
|
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
</Link>
|
||||||
|
<Lib>
|
||||||
|
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
|
@ -227,7 +284,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
|
|
@ -9,108 +9,108 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\bled.c">
|
<ClCompile Include="..\src\bled\bled.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\crc32.c">
|
<ClCompile Include="..\src\bled\crc32.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\data_extract_all.c">
|
<ClCompile Include="..\src\bled\data_extract_all.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\data_skip.c">
|
<ClCompile Include="..\src\bled\data_skip.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\data_align.c">
|
<ClCompile Include="..\src\bled\data_align.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\filter_accept_all.c">
|
<ClCompile Include="..\src\bled\filter_accept_all.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\filter_accept_list.c">
|
<ClCompile Include="..\src\bled\filter_accept_list.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\filter_accept_reject_list.c">
|
<ClCompile Include="..\src\bled\filter_accept_reject_list.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\find_list_entry.c">
|
<ClCompile Include="..\src\bled\find_list_entry.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\header_list.c">
|
<ClCompile Include="..\src\bled\header_list.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\header_skip.c">
|
<ClCompile Include="..\src\bled\header_skip.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\header_verbose_list.c">
|
<ClCompile Include="..\src\bled\header_verbose_list.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\init_handle.c">
|
<ClCompile Include="..\src\bled\init_handle.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\seek_by_jump.c">
|
<ClCompile Include="..\src\bled\seek_by_jump.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\seek_by_read.c">
|
<ClCompile Include="..\src\bled\seek_by_read.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\decompress_bunzip2.c">
|
<ClCompile Include="..\src\bled\decompress_bunzip2.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\decompress_gunzip.c">
|
<ClCompile Include="..\src\bled\decompress_gunzip.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\decompress_uncompress.c">
|
<ClCompile Include="..\src\bled\decompress_uncompress.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\decompress_unlzma.c">
|
<ClCompile Include="..\src\bled\decompress_unlzma.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\decompress_unxz.c">
|
<ClCompile Include="..\src\bled\decompress_unxz.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\open_transformer.c">
|
<ClCompile Include="..\src\bled\open_transformer.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\xz_dec_bcj.c">
|
<ClCompile Include="..\src\bled\xz_dec_bcj.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\xz_dec_lzma2.c">
|
<ClCompile Include="..\src\bled\xz_dec_lzma2.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\xz_dec_stream.c">
|
<ClCompile Include="..\src\bled\xz_dec_stream.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\decompress_unzip.c">
|
<ClCompile Include="..\src\bled\decompress_unzip.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\bb_archive.h">
|
<ClInclude Include="..\src\bled\bb_archive.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\bled.h">
|
<ClInclude Include="..\src\bled\bled.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\libbb.h">
|
<ClInclude Include="..\src\bled\libbb.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\platform.h">
|
<ClInclude Include="..\src\bled\platform.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\xz.h">
|
<ClInclude Include="..\src\bled\xz.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\xz_config.h">
|
<ClInclude Include="..\src\bled\xz_config.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\xz_lzma2.h">
|
<ClInclude Include="..\src\bled\xz_lzma2.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\xz_private.h">
|
<ClInclude Include="..\src\bled\xz_private.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\xz_stream.h">
|
<ClInclude Include="..\src\bled\xz_stream.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -17,6 +21,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -29,6 +37,7 @@
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}</ProjectGuid>
|
<ProjectGuid>{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}</ProjectGuid>
|
||||||
<RootNamespace>getopt</RootNamespace>
|
<RootNamespace>getopt</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
|
@ -44,6 +53,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
|
@ -55,6 +71,12 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
|
@ -67,45 +89,32 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
</PropertyGroup>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
|
|
@ -135,6 +144,19 @@
|
||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<Midl>
|
<Midl>
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
<TargetEnvironment>X64</TargetEnvironment>
|
||||||
|
|
@ -177,6 +199,18 @@
|
||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib>
|
||||||
|
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<Midl>
|
<Midl>
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
<TargetEnvironment>X64</TargetEnvironment>
|
||||||
|
|
@ -193,11 +227,11 @@
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\getopt.c" />
|
<ClCompile Include="..\src\getopt\getopt.c" />
|
||||||
<ClCompile Include="..\getopt1.c" />
|
<ClCompile Include="..\src\getopt\getopt1.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\getopt.h" />
|
<ClInclude Include="..\src\getopt\getopt.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
|
@ -11,15 +11,15 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\getopt.c">
|
<ClCompile Include="..\src\getopt\getopt.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\getopt1.c">
|
<ClCompile Include="..\src\getopt\getopt1.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\getopt.h">
|
<ClInclude Include="..\src\getopt\getopt.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -13,6 +17,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,40 +35,41 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\disc.c" />
|
<ClCompile Include="..\src\libcdio\driver\disc.c" />
|
||||||
<ClCompile Include="..\ds.c" />
|
<ClCompile Include="..\src\libcdio\driver\ds.c" />
|
||||||
<ClCompile Include="..\logging.c" />
|
<ClCompile Include="..\src\libcdio\driver\logging.c" />
|
||||||
<ClCompile Include="..\memory.c" />
|
<ClCompile Include="..\src\libcdio\driver\memory.c" />
|
||||||
<ClCompile Include="..\read.c" />
|
<ClCompile Include="..\src\libcdio\driver\read.c" />
|
||||||
<ClCompile Include="..\sector.c" />
|
<ClCompile Include="..\src\libcdio\driver\sector.c" />
|
||||||
<ClCompile Include="..\track.c" />
|
<ClCompile Include="..\src\libcdio\driver\track.c" />
|
||||||
<ClCompile Include="..\utf8.c" />
|
<ClCompile Include="..\src\libcdio\driver\utf8.c" />
|
||||||
<ClCompile Include="..\util.c" />
|
<ClCompile Include="..\src\libcdio\driver\util.c" />
|
||||||
<ClCompile Include="..\_cdio_stdio.c" />
|
<ClCompile Include="..\src\libcdio\driver\_cdio_stdio.c" />
|
||||||
<ClCompile Include="..\_cdio_stream.c" />
|
<ClCompile Include="..\src\libcdio\driver\_cdio_stream.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\cdio\cdio.h" />
|
<ClInclude Include="..\src\libcdio\cdio\cdio.h" />
|
||||||
<ClInclude Include="..\..\cdio\ds.h" />
|
<ClInclude Include="..\src\libcdio\cdio\ds.h" />
|
||||||
<ClInclude Include="..\..\cdio\logging.h" />
|
<ClInclude Include="..\src\libcdio\cdio\logging.h" />
|
||||||
<ClInclude Include="..\..\cdio\memory.h" />
|
<ClInclude Include="..\src\libcdio\cdio\memory.h" />
|
||||||
<ClInclude Include="..\..\cdio\sector.h" />
|
<ClInclude Include="..\src\libcdio\cdio\sector.h" />
|
||||||
<ClInclude Include="..\..\cdio\types.h" />
|
<ClInclude Include="..\src\libcdio\cdio\types.h" />
|
||||||
<ClInclude Include="..\..\cdio\util.h" />
|
<ClInclude Include="..\src\libcdio\cdio\util.h" />
|
||||||
<ClInclude Include="..\..\cdio\version.h" />
|
<ClInclude Include="..\src\libcdio\cdio\version.h" />
|
||||||
<ClInclude Include="..\..\config.h" />
|
<ClInclude Include="..\src\libcdio\config.h" />
|
||||||
<ClInclude Include="..\cdio_assert.h" />
|
<ClInclude Include="..\src\libcdio\driver\cdio_assert.h" />
|
||||||
<ClInclude Include="..\cdio_private.h" />
|
<ClInclude Include="..\src\libcdio\driver\cdio_private.h" />
|
||||||
<ClInclude Include="..\filemode.h" />
|
<ClInclude Include="..\src\libcdio\driver\filemode.h" />
|
||||||
<ClInclude Include="..\portable.h" />
|
<ClInclude Include="..\src\libcdio\driver\portable.h" />
|
||||||
<ClInclude Include="..\_cdio_stdio.h" />
|
<ClInclude Include="..\src\libcdio\driver\_cdio_stdio.h" />
|
||||||
<ClInclude Include="..\_cdio_stream.h" />
|
<ClInclude Include="..\src\libcdio\driver\_cdio_stream.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{FA1B1093-BA86-410A-B7A0-7A54C605F812}</ProjectGuid>
|
<ProjectGuid>{FA1B1093-BA86-410A-B7A0-7A54C605F812}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>driver</RootNamespace>
|
<RootNamespace>driver</RootNamespace>
|
||||||
<ProjectName>libcdio-driver</ProjectName>
|
<ProjectName>libcdio-driver</ProjectName>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
|
@ -76,6 +85,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
|
@ -91,6 +107,14 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
|
@ -105,29 +129,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -136,27 +147,21 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -176,7 +181,24 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -190,7 +212,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -207,7 +229,21 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -218,7 +254,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -235,7 +271,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -11,84 +11,84 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\_cdio_stdio.c">
|
<ClCompile Include="..\src\libcdio\driver\_cdio_stdio.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\_cdio_stream.c">
|
<ClCompile Include="..\src\libcdio\driver\_cdio_stream.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\logging.c">
|
<ClCompile Include="..\src\libcdio\driver\logging.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\ds.c">
|
<ClCompile Include="..\src\libcdio\driver\ds.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\read.c">
|
<ClCompile Include="..\src\libcdio\driver\read.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\util.c">
|
<ClCompile Include="..\src\libcdio\driver\util.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\sector.c">
|
<ClCompile Include="..\src\libcdio\driver\sector.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\disc.c">
|
<ClCompile Include="..\src\libcdio\driver\disc.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\track.c">
|
<ClCompile Include="..\src\libcdio\driver\track.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\utf8.c">
|
<ClCompile Include="..\src\libcdio\driver\utf8.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\memory.c">
|
<ClCompile Include="..\src\libcdio\driver\memory.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\_cdio_stdio.h">
|
<ClInclude Include="..\src\libcdio\driver\_cdio_stdio.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\_cdio_stream.h">
|
<ClInclude Include="..\src\libcdio\driver\_cdio_stream.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\cdio_assert.h">
|
<ClInclude Include="..\src\libcdio\driver\cdio_assert.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\cdio_private.h">
|
<ClInclude Include="..\src\libcdio\driver\cdio_private.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\filemode.h">
|
<ClInclude Include="..\src\libcdio\driver\filemode.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\logging.h">
|
<ClInclude Include="..\src\libcdio\cdio\logging.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\util.h">
|
<ClInclude Include="..\src\libcdio\cdio\util.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\cdio.h">
|
<ClInclude Include="..\src\libcdio\cdio\cdio.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\ds.h">
|
<ClInclude Include="..\src\libcdio\cdio\ds.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\types.h">
|
<ClInclude Include="..\src\libcdio\cdio\types.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\config.h">
|
<ClInclude Include="..\src\libcdio\config.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\sector.h">
|
<ClInclude Include="..\src\libcdio\cdio\sector.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\version.h">
|
<ClInclude Include="..\src\libcdio\cdio\version.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\memory.h">
|
<ClInclude Include="..\src\libcdio\driver\portable.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\portable.h">
|
<ClInclude Include="..\src\libcdio\cdio\memory.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -13,6 +17,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,32 +35,33 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h" />
|
<ClInclude Include="..\src\libcdio\cdio\bytesex.h" />
|
||||||
<ClInclude Include="..\..\cdio\cdio.h" />
|
<ClInclude Include="..\src\libcdio\cdio\cdio.h" />
|
||||||
<ClInclude Include="..\..\cdio\cdtext.h" />
|
<ClInclude Include="..\src\libcdio\cdio\cdtext.h" />
|
||||||
<ClInclude Include="..\..\cdio\iso9660.h" />
|
<ClInclude Include="..\src\libcdio\cdio\iso9660.h" />
|
||||||
<ClInclude Include="..\..\cdio\logging.h" />
|
<ClInclude Include="..\src\libcdio\cdio\logging.h" />
|
||||||
<ClInclude Include="..\..\cdio\portable.h" />
|
<ClInclude Include="..\src\libcdio\cdio\portable.h" />
|
||||||
<ClInclude Include="..\..\cdio\utf8.h" />
|
<ClInclude Include="..\src\libcdio\cdio\utf8.h" />
|
||||||
<ClInclude Include="..\..\cdio\util.h" />
|
<ClInclude Include="..\src\libcdio\cdio\util.h" />
|
||||||
<ClInclude Include="..\..\config.h" />
|
<ClInclude Include="..\src\libcdio\config.h" />
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h" />
|
<ClInclude Include="..\src\libcdio\driver\cdio_assert.h" />
|
||||||
<ClInclude Include="..\..\driver\cdio_private.h" />
|
<ClInclude Include="..\src\libcdio\driver\cdio_private.h" />
|
||||||
<ClInclude Include="..\..\driver\filemode.h" />
|
<ClInclude Include="..\src\libcdio\driver\filemode.h" />
|
||||||
<ClInclude Include="..\..\driver\_cdio_stdio.h" />
|
<ClInclude Include="..\src\libcdio\driver\_cdio_stdio.h" />
|
||||||
<ClInclude Include="..\iso9660_private.h" />
|
<ClInclude Include="..\src\libcdio\iso9660\iso9660_private.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\iso9660.c" />
|
<ClCompile Include="..\src\libcdio\iso9660\iso9660.c" />
|
||||||
<ClCompile Include="..\iso9660_fs.c" />
|
<ClCompile Include="..\src\libcdio\iso9660\iso9660_fs.c" />
|
||||||
<ClCompile Include="..\rock.c" />
|
<ClCompile Include="..\src\libcdio\iso9660\rock.c" />
|
||||||
<ClCompile Include="..\xa.c" />
|
<ClCompile Include="..\src\libcdio\iso9660\xa.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{D4E80F35-2604-40AC-B436-97B052ECB572}</ProjectGuid>
|
<ProjectGuid>{D4E80F35-2604-40AC-B436-97B052ECB572}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>iso9660</RootNamespace>
|
<RootNamespace>iso9660</RootNamespace>
|
||||||
<ProjectName>libcdio-iso9660</ProjectName>
|
<ProjectName>libcdio-iso9660</ProjectName>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
|
@ -68,6 +77,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
|
@ -83,6 +99,14 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
|
@ -97,29 +121,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -128,27 +139,21 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -168,7 +173,24 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -182,7 +204,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -199,7 +221,21 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -210,7 +246,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -227,7 +263,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -11,60 +11,60 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\iso9660_private.h">
|
<ClInclude Include="..\src\libcdio\iso9660\iso9660_private.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\config.h">
|
<ClInclude Include="..\src\libcdio\config.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h">
|
<ClInclude Include="..\src\libcdio\driver\cdio_assert.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h">
|
<ClInclude Include="..\src\libcdio\cdio\bytesex.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\iso9660.h">
|
<ClInclude Include="..\src\libcdio\cdio\iso9660.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\util.h">
|
<ClInclude Include="..\src\libcdio\cdio\util.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\cdio.h">
|
<ClInclude Include="..\src\libcdio\cdio\cdio.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\utf8.h">
|
<ClInclude Include="..\src\libcdio\cdio\utf8.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\driver\_cdio_stdio.h">
|
<ClInclude Include="..\src\libcdio\driver\_cdio_stdio.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\driver\cdio_private.h">
|
<ClInclude Include="..\src\libcdio\driver\cdio_private.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\logging.h">
|
<ClInclude Include="..\src\libcdio\cdio\logging.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\driver\filemode.h">
|
<ClInclude Include="..\src\libcdio\driver\filemode.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\cdtext.h">
|
<ClInclude Include="..\src\libcdio\cdio\cdtext.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\portable.h">
|
<ClInclude Include="..\src\libcdio\cdio\portable.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\iso9660_fs.c">
|
<ClCompile Include="..\src\libcdio\iso9660\iso9660_fs.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\rock.c">
|
<ClCompile Include="..\src\libcdio\iso9660\rock.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\xa.c">
|
<ClCompile Include="..\src\libcdio\iso9660\xa.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\iso9660.c">
|
<ClCompile Include="..\src\libcdio\iso9660\iso9660.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -13,6 +17,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,26 +35,27 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\filemode.c" />
|
<ClCompile Include="..\src\libcdio\udf\filemode.c" />
|
||||||
<ClCompile Include="..\udf.c" />
|
<ClCompile Include="..\src\libcdio\udf\udf.c" />
|
||||||
<ClCompile Include="..\udf_file.c" />
|
<ClCompile Include="..\src\libcdio\udf\udf_file.c" />
|
||||||
<ClCompile Include="..\udf_fs.c" />
|
<ClCompile Include="..\src\libcdio\udf\udf_fs.c" />
|
||||||
<ClCompile Include="..\udf_time.c" />
|
<ClCompile Include="..\src\libcdio\udf\udf_time.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h" />
|
<ClInclude Include="..\src\libcdio\cdio\bytesex.h" />
|
||||||
<ClInclude Include="..\..\cdio\udf.h" />
|
<ClInclude Include="..\src\libcdio\cdio\udf.h" />
|
||||||
<ClInclude Include="..\..\config.h" />
|
<ClInclude Include="..\src\libcdio\config.h" />
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h" />
|
<ClInclude Include="..\src\libcdio\driver\cdio_assert.h" />
|
||||||
<ClInclude Include="..\..\driver\filemode.h" />
|
<ClInclude Include="..\src\libcdio\driver\filemode.h" />
|
||||||
<ClInclude Include="..\udf_fs.h" />
|
<ClInclude Include="..\src\libcdio\udf\udf_fs.h" />
|
||||||
<ClInclude Include="..\udf_private.h" />
|
<ClInclude Include="..\src\libcdio\udf\udf_private.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}</ProjectGuid>
|
<ProjectGuid>{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>udf</RootNamespace>
|
<RootNamespace>udf</RootNamespace>
|
||||||
<ProjectName>libcdio-udf</ProjectName>
|
<ProjectName>libcdio-udf</ProjectName>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
|
@ -62,6 +71,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
|
@ -77,6 +93,14 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
|
@ -91,29 +115,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -122,27 +133,21 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -162,7 +167,24 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -176,7 +198,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -193,7 +215,21 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -204,7 +240,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -221,7 +257,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\libcdio;..\src\libcdio\driver;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
|
@ -11,42 +11,42 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\filemode.c">
|
<ClCompile Include="..\src\libcdio\udf\filemode.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\udf.c">
|
<ClCompile Include="..\src\libcdio\udf\udf.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\udf_file.c">
|
<ClCompile Include="..\src\libcdio\udf\udf_file.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\udf_fs.c">
|
<ClCompile Include="..\src\libcdio\udf\udf_fs.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\udf_time.c">
|
<ClCompile Include="..\src\libcdio\udf\udf_time.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\udf_fs.h">
|
<ClInclude Include="..\src\libcdio\udf\udf_fs.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\udf_private.h">
|
<ClInclude Include="..\src\libcdio\udf\udf_private.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\udf.h">
|
<ClInclude Include="..\src\libcdio\cdio\udf.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\config.h">
|
<ClInclude Include="..\src\libcdio\config.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\driver\filemode.h">
|
<ClInclude Include="..\src\libcdio\driver\filemode.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h">
|
<ClInclude Include="..\src\libcdio\cdio\bytesex.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h">
|
<ClInclude Include="..\src\libcdio\driver\cdio_assert.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -13,6 +17,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,67 +35,68 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\inc\br.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br.h" />
|
||||||
<ClInclude Include="..\inc\br_fat12_0x0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat12_0x0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat12_0x3e.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat12_0x3e.h" />
|
||||||
<ClInclude Include="..\inc\br_fat16fd_0x3e.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16fd_0x3e.h" />
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16ros_0x0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x3e.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16ros_0x3e.h" />
|
||||||
<ClInclude Include="..\inc\br_fat16_0x0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16_0x0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat16_0x3e.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16_0x3e.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x3f0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32fd_0x3f0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x52.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32fd_0x52.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32kos_0x52.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32kos_0x52.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x1800.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32nt_0x1800.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x3f0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32nt_0x3f0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x52.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32nt_0x52.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x1800.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32pe_0x1800.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x3f0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32pe_0x3f0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x52.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32pe_0x52.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x1c00.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32ros_0x1c00.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x3f0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32ros_0x3f0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x52.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32ros_0x52.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32_0x0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32_0x0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32_0x3f0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32_0x3f0.h" />
|
||||||
<ClInclude Include="..\inc\br_fat32_0x52.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32_0x52.h" />
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x0.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_ntfs_0x0.h" />
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x54.h" />
|
<ClInclude Include="..\src\ms-sys\inc\br_ntfs_0x54.h" />
|
||||||
<ClInclude Include="..\inc\fat12.h" />
|
<ClInclude Include="..\src\ms-sys\inc\fat12.h" />
|
||||||
<ClInclude Include="..\inc\fat16.h" />
|
<ClInclude Include="..\src\ms-sys\inc\fat16.h" />
|
||||||
<ClInclude Include="..\inc\fat32.h" />
|
<ClInclude Include="..\src\ms-sys\inc\fat32.h" />
|
||||||
<ClInclude Include="..\inc\file.h" />
|
<ClInclude Include="..\src\ms-sys\inc\file.h" />
|
||||||
<ClInclude Include="..\inc\label_11_char.h" />
|
<ClInclude Include="..\src\ms-sys\inc\label_11_char.h" />
|
||||||
<ClInclude Include="..\inc\libintl.h" />
|
<ClInclude Include="..\src\ms-sys\inc\libintl.h" />
|
||||||
<ClInclude Include="..\inc\mbr_2000.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_2000.h" />
|
||||||
<ClInclude Include="..\inc\mbr_95b.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_95b.h" />
|
||||||
<ClInclude Include="..\inc\mbr_dos.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_dos.h" />
|
||||||
<ClInclude Include="..\inc\mbr_dos_f2.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_dos_f2.h" />
|
||||||
<ClInclude Include="..\inc\mbr_grub.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_grub.h" />
|
||||||
<ClInclude Include="..\inc\mbr_grub2.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_grub2.h" />
|
||||||
<ClInclude Include="..\inc\mbr_kolibri.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_kolibri.h" />
|
||||||
<ClInclude Include="..\inc\mbr_reactos.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_reactos.h" />
|
||||||
<ClInclude Include="..\inc\mbr_rufus.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_rufus.h" />
|
||||||
<ClInclude Include="..\inc\mbr_syslinux.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_syslinux.h" />
|
||||||
<ClInclude Include="..\inc\mbr_vista.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_vista.h" />
|
||||||
<ClInclude Include="..\inc\mbr_win7.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_win7.h" />
|
||||||
<ClInclude Include="..\inc\mbr_zero.h" />
|
<ClInclude Include="..\src\ms-sys\inc\mbr_zero.h" />
|
||||||
<ClInclude Include="..\inc\nls.h" />
|
<ClInclude Include="..\src\ms-sys\inc\nls.h" />
|
||||||
<ClInclude Include="..\inc\ntfs.h" />
|
<ClInclude Include="..\src\ms-sys\inc\ntfs.h" />
|
||||||
<ClInclude Include="..\inc\partition_info.h" />
|
<ClInclude Include="..\src\ms-sys\inc\partition_info.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\br.c" />
|
<ClCompile Include="..\src\ms-sys\br.c" />
|
||||||
<ClCompile Include="..\fat12.c" />
|
<ClCompile Include="..\src\ms-sys\fat12.c" />
|
||||||
<ClCompile Include="..\fat16.c" />
|
<ClCompile Include="..\src\ms-sys\fat16.c" />
|
||||||
<ClCompile Include="..\fat32.c" />
|
<ClCompile Include="..\src\ms-sys\fat32.c" />
|
||||||
<ClCompile Include="..\file.c" />
|
<ClCompile Include="..\src\ms-sys\file.c" />
|
||||||
<ClCompile Include="..\ntfs.c" />
|
<ClCompile Include="..\src\ms-sys\ntfs.c" />
|
||||||
<ClCompile Include="..\partition_info.c" />
|
<ClCompile Include="..\src\ms-sys\partition_info.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{2B1D078D-8EB4-4398-9CA4-23457265A7F6}</ProjectGuid>
|
<ProjectGuid>{2B1D078D-8EB4-4398-9CA4-23457265A7F6}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>mssys</RootNamespace>
|
<RootNamespace>mssys</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
|
@ -103,6 +112,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
|
@ -118,6 +134,14 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
|
@ -132,29 +156,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -163,27 +174,21 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
|
@ -204,7 +209,26 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<AdditionalOptions>/analyze:stacksize32850 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalOptions>/analyze:stacksize32850 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/analyze:stacksize32850 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
|
@ -220,7 +244,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
|
@ -238,7 +262,23 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<AdditionalOptions>/analyze:stacksize32850 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalOptions>/analyze:stacksize32850 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/analyze:stacksize32850 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
|
@ -251,7 +291,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
|
@ -269,7 +309,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\ms-sys\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
||||||
|
|
@ -11,168 +11,168 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\inc\br.h">
|
<ClInclude Include="..\src\ms-sys\inc\br.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\partition_info.h">
|
<ClInclude Include="..\src\ms-sys\inc\partition_info.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat12_0x0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat12_0x0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat12_0x3e.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat12_0x3e.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat16_0x0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16_0x0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat16_0x3e.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16_0x3e.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat16fd_0x3e.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16fd_0x3e.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32_0x0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32_0x0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32_0x3f0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32_0x3f0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32_0x52.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32_0x52.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x3f0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32fd_0x3f0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x52.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32fd_0x52.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x1800.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32nt_0x1800.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x3f0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32nt_0x3f0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x52.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32nt_0x52.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\fat12.h">
|
<ClInclude Include="..\src\ms-sys\inc\fat12.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\fat16.h">
|
<ClInclude Include="..\src\ms-sys\inc\fat16.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\fat32.h">
|
<ClInclude Include="..\src\ms-sys\inc\fat32.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\file.h">
|
<ClInclude Include="..\src\ms-sys\inc\file.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\label_11_char.h">
|
<ClInclude Include="..\src\ms-sys\inc\label_11_char.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_2000.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_2000.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_95b.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_95b.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_dos.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_dos.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_dos_f2.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_dos_f2.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_syslinux.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_syslinux.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_vista.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_vista.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_win7.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_win7.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_zero.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_zero.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\ntfs.h">
|
<ClInclude Include="..\src\ms-sys\inc\ntfs.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_ntfs_0x0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x54.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_ntfs_0x54.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_reactos.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_reactos.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x1c00.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32ros_0x1c00.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x3f0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32ros_0x3f0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x52.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32ros_0x52.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x3e.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16ros_0x3e.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat16ros_0x0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_rufus.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_rufus.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32kos_0x52.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32kos_0x52.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_kolibri.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_kolibri.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_grub.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_grub.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\mbr_grub2.h">
|
<ClInclude Include="..\src\ms-sys\inc\mbr_grub2.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\nls.h">
|
<ClInclude Include="..\src\ms-sys\inc\nls.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\libintl.h">
|
<ClInclude Include="..\src\ms-sys\inc\libintl.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x3f0.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32pe_0x3f0.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x52.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32pe_0x52.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x1800.h">
|
<ClInclude Include="..\src\ms-sys\inc\br_fat32pe_0x1800.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\br.c">
|
<ClCompile Include="..\src\ms-sys\br.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\file.c">
|
<ClCompile Include="..\src\ms-sys\file.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\fat12.c">
|
<ClCompile Include="..\src\ms-sys\fat12.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\fat16.c">
|
<ClCompile Include="..\src\ms-sys\fat16.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\fat32.c">
|
<ClCompile Include="..\src\ms-sys\fat32.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\partition_info.c">
|
<ClCompile Include="..\src\ms-sys\partition_info.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\ntfs.c">
|
<ClCompile Include="..\src\ms-sys\ntfs.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -17,6 +21,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -31,14 +39,14 @@
|
||||||
<ProjectGuid>{731858A7-0303-4988-877B-9C0DD6471864}</ProjectGuid>
|
<ProjectGuid>{731858A7-0303-4988-877B-9C0DD6471864}</ProjectGuid>
|
||||||
<RootNamespace>rufus</RootNamespace>
|
<RootNamespace>rufus</RootNamespace>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v141_xp</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
|
@ -47,10 +55,17 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v141_xp</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
|
@ -58,6 +73,12 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
|
@ -70,29 +91,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -101,28 +109,22 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<BuildLog />
|
<BuildLog />
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
|
|
@ -146,7 +148,7 @@
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
|
|
@ -157,7 +159,32 @@
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\arm;$(SolutionDir)\res\arm</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>
|
||||||
|
</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<BuildLog />
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
|
<DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;wininet.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
|
@ -171,7 +198,7 @@
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
<TargetEnvironment>X64</TargetEnvironment>
|
||||||
</Midl>
|
</Midl>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
|
@ -199,7 +226,7 @@
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
|
|
@ -222,7 +249,7 @@
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
|
|
@ -233,7 +260,32 @@
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\arm;$(SolutionDir)\res\arm</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<Culture>
|
||||||
|
</Culture>
|
||||||
|
</ResourceCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<BuildLog />
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
|
<DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>advapi32.lib;comctl32.lib;comdlg32.lib;crypt32.lib;gdi32.lib;ole32.lib;setupapi.lib;shell32.lib;shlwapi.lib;wininet.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||||
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
|
@ -250,7 +302,7 @@
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
<ExceptionHandling>false</ExceptionHandling>
|
||||||
|
|
@ -268,90 +320,90 @@
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\badblocks.c" />
|
<ClCompile Include="..\src\badblocks.c" />
|
||||||
<ClCompile Include="..\dos_locale.c" />
|
<ClCompile Include="..\src\dos_locale.c" />
|
||||||
<ClCompile Include="..\drive.c" />
|
<ClCompile Include="..\src\drive.c" />
|
||||||
<ClCompile Include="..\format.c" />
|
<ClCompile Include="..\src\format.c" />
|
||||||
<ClCompile Include="..\dos.c" />
|
<ClCompile Include="..\src\dos.c" />
|
||||||
<ClCompile Include="..\icon.c" />
|
<ClCompile Include="..\src\icon.c" />
|
||||||
<ClCompile Include="..\iso.c" />
|
<ClCompile Include="..\src\iso.c" />
|
||||||
<ClCompile Include="..\localization.c" />
|
<ClCompile Include="..\src\localization.c" />
|
||||||
<ClCompile Include="..\net.c" />
|
<ClCompile Include="..\src\net.c" />
|
||||||
<ClCompile Include="..\parser.c" />
|
<ClCompile Include="..\src\parser.c" />
|
||||||
<ClCompile Include="..\pki.c" />
|
<ClCompile Include="..\src\pki.c" />
|
||||||
<ClCompile Include="..\process.c" />
|
<ClCompile Include="..\src\process.c" />
|
||||||
<ClCompile Include="..\rufus.c" />
|
<ClCompile Include="..\src\rufus.c" />
|
||||||
<ClCompile Include="..\checksum.c" />
|
<ClCompile Include="..\src\checksum.c" />
|
||||||
<ClCompile Include="..\smart.c" />
|
<ClCompile Include="..\src\smart.c" />
|
||||||
<ClCompile Include="..\stdfn.c" />
|
<ClCompile Include="..\src\stdfn.c" />
|
||||||
<ClCompile Include="..\stdio.c" />
|
<ClCompile Include="..\src\stdio.c" />
|
||||||
<ClCompile Include="..\stdlg.c" />
|
<ClCompile Include="..\src\stdlg.c" />
|
||||||
<ClCompile Include="..\syslinux.c" />
|
<ClCompile Include="..\src\syslinux.c" />
|
||||||
<ClCompile Include="..\dev.c" />
|
<ClCompile Include="..\src\dev.c" />
|
||||||
<ClCompile Include="..\vhd.c" />
|
<ClCompile Include="..\src\vhd.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\badblocks.h" />
|
<ClInclude Include="..\src\badblocks.h" />
|
||||||
<ClInclude Include="..\bled\bled.h" />
|
<ClInclude Include="..\src\bled\bled.h" />
|
||||||
<ClInclude Include="..\drive.h" />
|
<ClInclude Include="..\src\drive.h" />
|
||||||
<ClInclude Include="..\format.h" />
|
<ClInclude Include="..\src\format.h" />
|
||||||
<ClInclude Include="..\hdd_vs_ufd.h" />
|
<ClInclude Include="..\src\hdd_vs_ufd.h" />
|
||||||
<ClInclude Include="..\missing.h" />
|
<ClInclude Include="..\src\missing.h" />
|
||||||
<ClInclude Include="..\process.h" />
|
<ClInclude Include="..\src\process.h" />
|
||||||
<ClInclude Include="..\settings.h" />
|
<ClInclude Include="..\src\settings.h" />
|
||||||
<ClInclude Include="..\libcdio\cdio\cdio.h" />
|
<ClInclude Include="..\src\libcdio\cdio\cdio.h" />
|
||||||
<ClInclude Include="..\libcdio\cdio\iso9660.h" />
|
<ClInclude Include="..\src\libcdio\cdio\iso9660.h" />
|
||||||
<ClInclude Include="..\libcdio\cdio\udf.h" />
|
<ClInclude Include="..\src\libcdio\cdio\udf.h" />
|
||||||
<ClInclude Include="..\localization.h" />
|
<ClInclude Include="..\src\localization.h" />
|
||||||
<ClInclude Include="..\localization_data.h" />
|
<ClInclude Include="..\src\localization_data.h" />
|
||||||
<ClInclude Include="..\msapi_utf8.h" />
|
<ClInclude Include="..\src\msapi_utf8.h" />
|
||||||
<ClInclude Include="..\dos.h" />
|
<ClInclude Include="..\src\dos.h" />
|
||||||
<ClInclude Include="..\registry.h" />
|
<ClInclude Include="..\src\registry.h" />
|
||||||
<ClInclude Include="..\resource.h" />
|
<ClInclude Include="..\src\resource.h" />
|
||||||
<ClInclude Include="..\rufus.h" />
|
<ClInclude Include="..\src\rufus.h" />
|
||||||
<ClInclude Include="..\license.h" />
|
<ClInclude Include="..\src\license.h" />
|
||||||
<ClInclude Include="..\db.h" />
|
<ClInclude Include="..\src\db.h" />
|
||||||
<ClInclude Include="..\smart.h" />
|
<ClInclude Include="..\src\smart.h" />
|
||||||
<ClInclude Include="..\sys_types.h" />
|
<ClInclude Include="..\src\sys_types.h" />
|
||||||
<ClInclude Include="..\dev.h" />
|
<ClInclude Include="..\src\dev.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Manifest Include="..\rufus.manifest" />
|
<Manifest Include="..\src\rufus.manifest" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\..\res\down.ico" />
|
<None Include="..\res\down.ico" />
|
||||||
<None Include="..\..\res\rufus.ico" />
|
<None Include="..\res\rufus.ico" />
|
||||||
<None Include="..\..\res\up.ico" />
|
<None Include="..\res\up.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\rufus.rc" />
|
<ResourceCompile Include="..\src\rufus.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\bled\.msvc\bled.vcxproj">
|
<ProjectReference Include=".\bled.vcxproj">
|
||||||
<Project>{fb6d52d4-a2f8-c358-db85-bbcaecfddd7d}</Project>
|
<Project>{fb6d52d4-a2f8-c358-db85-bbcaecfddd7d}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\getopt\.msvc\getopt.vcxproj">
|
<ProjectReference Include=".\getopt.vcxproj">
|
||||||
<Project>{ae83e1b4-ce06-47ee-b7a3-c3a1d7c2d71e}</Project>
|
<Project>{ae83e1b4-ce06-47ee-b7a3-c3a1d7c2d71e}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\libcdio\driver\.msvc\driver.vcxproj">
|
<ProjectReference Include=".\libcdio-driver.vcxproj">
|
||||||
<Project>{fa1b1093-ba86-410a-b7a0-7a54c605f812}</Project>
|
<Project>{fa1b1093-ba86-410a-b7a0-7a54c605f812}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\libcdio\iso9660\.msvc\iso9660.vcxproj">
|
<ProjectReference Include=".\libcdio-iso9660.vcxproj">
|
||||||
<Project>{d4e80f35-2604-40ac-b436-97b052ecb572}</Project>
|
<Project>{d4e80f35-2604-40ac-b436-97b052ecb572}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\libcdio\udf\.msvc\udf.vcxproj">
|
<ProjectReference Include=".\libcdio-udf.vcxproj">
|
||||||
<Project>{0cec40a6-a195-4be5-a88b-0ab00eb142ec}</Project>
|
<Project>{0cec40a6-a195-4be5-a88b-0ab00eb142ec}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\ms-sys\.msvc\ms-sys.vcxproj">
|
<ProjectReference Include=".\ms-sys.vcxproj">
|
||||||
<Project>{2b1d078d-8eb4-4398-9ca4-23457265a7f6}</Project>
|
<Project>{2b1d078d-8eb4-4398-9ca4-23457265a7f6}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\syslinux\libfat\.msvc\libfat.vcxproj">
|
<ProjectReference Include=".\syslinux-libfat.vcxproj">
|
||||||
<Project>{8390dce0-859d-4f57-ad9c-aaeac4d77eef}</Project>
|
<Project>{8390dce0-859d-4f57-ad9c-aaeac4d77eef}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\syslinux\libinstaller\.msvc\libinstaller.vcxproj">
|
<ProjectReference Include=".\syslinux-libinstaller.vcxproj">
|
||||||
<Project>{266502ac-cd74-4581-b707-938a7d05ad7a}</Project>
|
<Project>{266502ac-cd74-4581-b707-938a7d05ad7a}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\syslinux\win\.msvc\win.vcxproj">
|
<ProjectReference Include=".\syslinux-win.vcxproj">
|
||||||
<Project>{7d2e9784-ddf7-4988-a887-cf099bc3b340}</Project>
|
<Project>{7d2e9784-ddf7-4988-a887-cf099bc3b340}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -15,159 +15,159 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\rufus.c">
|
<ClCompile Include="..\src\rufus.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\stdlg.c">
|
<ClCompile Include="..\src\stdlg.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\dos.c">
|
<ClCompile Include="..\src\dos.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\stdio.c">
|
<ClCompile Include="..\src\stdio.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\format.c">
|
<ClCompile Include="..\src\format.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\drive.c">
|
<ClCompile Include="..\src\drive.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\badblocks.c">
|
<ClCompile Include="..\src\badblocks.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\dos_locale.c">
|
<ClCompile Include="..\src\dos_locale.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\syslinux.c">
|
<ClCompile Include="..\src\syslinux.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\iso.c">
|
<ClCompile Include="..\src\iso.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\icon.c">
|
<ClCompile Include="..\src\icon.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\parser.c">
|
<ClCompile Include="..\src\parser.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\net.c">
|
<ClCompile Include="..\src\net.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\vhd.c">
|
<ClCompile Include="..\src\vhd.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\stdfn.c">
|
<ClCompile Include="..\src\stdfn.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\localization.c">
|
<ClCompile Include="..\src\localization.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\smart.c">
|
<ClCompile Include="..\src\smart.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\checksum.c">
|
<ClCompile Include="..\src\checksum.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\pki.c">
|
<ClCompile Include="..\src\pki.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\dev.c">
|
<ClCompile Include="..\src\dev.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\process.c">
|
<ClCompile Include="..\src\process.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\rufus.h">
|
<ClInclude Include="..\src\rufus.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\msapi_utf8.h">
|
<ClInclude Include="..\src\msapi_utf8.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\license.h">
|
<ClInclude Include="..\src\license.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\sys_types.h">
|
<ClInclude Include="..\src\sys_types.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\dos.h">
|
<ClInclude Include="..\src\dos.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\format.h">
|
<ClInclude Include="..\src\format.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\badblocks.h">
|
<ClInclude Include="..\src\badblocks.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\resource.h">
|
<ClInclude Include="..\src\resource.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\libcdio\cdio\cdio.h">
|
<ClInclude Include="..\src\libcdio\cdio\cdio.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\libcdio\cdio\iso9660.h">
|
<ClInclude Include="..\src\libcdio\cdio\iso9660.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\libcdio\cdio\udf.h">
|
<ClInclude Include="..\src\libcdio\cdio\udf.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\registry.h">
|
<ClInclude Include="..\src\registry.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\localization.h">
|
<ClInclude Include="..\src\localization.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\localization_data.h">
|
<ClInclude Include="..\src\localization_data.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\smart.h">
|
<ClInclude Include="..\src\smart.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\hdd_vs_ufd.h">
|
<ClInclude Include="..\src\hdd_vs_ufd.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\drive.h">
|
<ClInclude Include="..\src\drive.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\bled\bled.h">
|
<ClInclude Include="..\src\bled\bled.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\settings.h">
|
<ClInclude Include="..\src\settings.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\missing.h">
|
<ClInclude Include="..\src\missing.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\dev.h">
|
<ClInclude Include="..\src\dev.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\db.h">
|
<ClInclude Include="..\src\db.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\process.h">
|
<ClInclude Include="..\src\process.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\..\res\rufus.ico">
|
<None Include="..\res\rufus.ico">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="..\..\res\up.ico">
|
<None Include="..\res\up.ico">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="..\..\res\down.ico">
|
<None Include="..\res\down.ico">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Manifest Include="..\rufus.manifest">
|
<Manifest Include="..\src\rufus.manifest">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</Manifest>
|
</Manifest>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\rufus.rc">
|
<ResourceCompile Include="..\src\rufus.rc">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -13,6 +17,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,22 +35,23 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\fat.h" />
|
<ClInclude Include="..\src\syslinux\libfat\fat.h" />
|
||||||
<ClInclude Include="..\libfat.h" />
|
<ClInclude Include="..\src\syslinux\libfat\libfat.h" />
|
||||||
<ClInclude Include="..\libfatint.h" />
|
<ClInclude Include="..\src\syslinux\libfat\libfatint.h" />
|
||||||
<ClInclude Include="..\ulint.h" />
|
<ClInclude Include="..\src\syslinux\libfat\ulint.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\cache.c" />
|
<ClCompile Include="..\src\syslinux\libfat\cache.c" />
|
||||||
<ClCompile Include="..\fatchain.c" />
|
<ClCompile Include="..\src\syslinux\libfat\fatchain.c" />
|
||||||
<ClCompile Include="..\open.c" />
|
<ClCompile Include="..\src\syslinux\libfat\open.c" />
|
||||||
<ClCompile Include="..\searchdir.c" />
|
<ClCompile Include="..\src\syslinux\libfat\searchdir.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}</ProjectGuid>
|
<ProjectGuid>{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>libfat</RootNamespace>
|
<RootNamespace>libfat</RootNamespace>
|
||||||
<ProjectName>syslinux-libfat</ProjectName>
|
<ProjectName>syslinux-libfat</ProjectName>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
|
@ -58,6 +67,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
|
@ -73,6 +89,14 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
|
@ -87,29 +111,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -118,27 +129,21 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
|
@ -159,7 +164,25 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
|
@ -174,7 +197,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
|
@ -192,7 +215,22 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
|
@ -204,7 +242,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
|
@ -222,7 +260,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
|
||||||
|
|
@ -11,30 +11,30 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\fat.h">
|
<ClInclude Include="..\src\syslinux\libfat\fat.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\libfat.h">
|
<ClInclude Include="..\src\syslinux\libfat\libfat.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\libfatint.h">
|
<ClInclude Include="..\src\syslinux\libfat\libfatint.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\ulint.h">
|
<ClInclude Include="..\src\syslinux\libfat\ulint.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\cache.c">
|
<ClCompile Include="..\src\syslinux\libfat\cache.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\fatchain.c">
|
<ClCompile Include="..\src\syslinux\libfat\fatchain.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\open.c">
|
<ClCompile Include="..\src\syslinux\libfat\open.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\searchdir.c">
|
<ClCompile Include="..\src\syslinux\libfat\searchdir.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -13,6 +17,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,22 +35,23 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\advconst.h" />
|
<ClInclude Include="..\src\syslinux\libinstaller\advconst.h" />
|
||||||
<ClInclude Include="..\syslinux.h" />
|
<ClInclude Include="..\src\syslinux\libinstaller\syslinux.h" />
|
||||||
<ClInclude Include="..\syslxcom.h" />
|
<ClInclude Include="..\src\syslinux\libinstaller\syslxcom.h" />
|
||||||
<ClInclude Include="..\syslxfs.h" />
|
<ClInclude Include="..\src\syslinux\libinstaller\syslxfs.h" />
|
||||||
<ClInclude Include="..\syslxint.h" />
|
<ClInclude Include="..\src\syslinux\libinstaller\syslxint.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\fs.c" />
|
<ClCompile Include="..\src\syslinux\libinstaller\fs.c" />
|
||||||
<ClCompile Include="..\setadv.c" />
|
<ClCompile Include="..\src\syslinux\libinstaller\setadv.c" />
|
||||||
<ClCompile Include="..\syslxmod.c" />
|
<ClCompile Include="..\src\syslinux\libinstaller\syslxmod.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{266502AC-CD74-4581-B707-938A7D05AD7A}</ProjectGuid>
|
<ProjectGuid>{266502AC-CD74-4581-B707-938A7D05AD7A}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>libinstaller</RootNamespace>
|
<RootNamespace>libinstaller</RootNamespace>
|
||||||
<ProjectName>syslinux-libinstaller</ProjectName>
|
<ProjectName>syslinux-libinstaller</ProjectName>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
|
@ -58,6 +67,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
|
@ -73,6 +89,14 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
|
@ -87,29 +111,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -118,27 +129,21 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
|
@ -159,7 +164,25 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
|
@ -174,7 +197,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
|
@ -192,7 +215,22 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
|
@ -204,7 +242,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
|
@ -222,7 +260,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
|
||||||
|
|
@ -11,30 +11,30 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\advconst.h">
|
<ClInclude Include="..\src\syslinux\libinstaller\advconst.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\syslinux.h">
|
<ClInclude Include="..\src\syslinux\libinstaller\syslinux.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\syslxint.h">
|
<ClInclude Include="..\src\syslinux\libinstaller\syslxint.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\syslxfs.h">
|
<ClInclude Include="..\src\syslinux\libinstaller\syslxfs.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\syslxcom.h">
|
<ClInclude Include="..\src\syslinux\libinstaller\syslxcom.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\fs.c">
|
<ClCompile Include="..\src\syslinux\libinstaller\fs.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\setadv.c">
|
<ClCompile Include="..\src\syslinux\libinstaller\setadv.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\syslxmod.c">
|
<ClCompile Include="..\src\syslinux\libinstaller\syslxmod.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -13,6 +17,10 @@
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>ARM</Platform>
|
<Platform>ARM</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
|
|
@ -27,16 +35,17 @@
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\ntfssect.h" />
|
<ClInclude Include="..\src\syslinux\win\ntfssect.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\ntfssect.c" />
|
<ClCompile Include="..\src\syslinux\win\ntfssect.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{7D2E9784-DDF7-4988-A887-CF099BC3B340}</ProjectGuid>
|
<ProjectGuid>{7D2E9784-DDF7-4988-A887-CF099BC3B340}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>win</RootNamespace>
|
<RootNamespace>win</RootNamespace>
|
||||||
<ProjectName>syslinux-win</ProjectName>
|
<ProjectName>syslinux-win</ProjectName>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
|
@ -52,6 +61,13 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
|
@ -67,6 +83,14 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
|
@ -81,29 +105,16 @@
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
||||||
|
|
@ -112,27 +123,21 @@
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<OutDir>$(SolutionDir)arm\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)arm\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
|
@ -153,7 +158,25 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
|
@ -168,7 +191,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
|
@ -186,7 +209,22 @@
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib />
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
|
@ -198,7 +236,7 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
|
@ -216,7 +254,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>inline=__inline;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
|
||||||
|
|
@ -11,12 +11,12 @@
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\ntfssect.h">
|
<ClInclude Include="..\src\syslinux\win\ntfssect.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\ntfssect.c">
|
<ClCompile Include="..\src\syslinux\win\ntfssect.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
@ -1,3 +1,33 @@
|
||||||
|
o Version 2.18 (2017.11.07)
|
||||||
|
Ensure that the same drive is reselected on device refresh
|
||||||
|
Add a cheat mode to cycle the USB port of currently selected device
|
||||||
|
Make lookup for updatable .cfg file more generic (e.g. ESET SysRescue)
|
||||||
|
Fix handling of multiextent ISOs (e.g. BlackArch Linux)
|
||||||
|
Fix propagation of image decompression errors
|
||||||
|
Update grub4dos to latest
|
||||||
|
|
||||||
|
IMPORTANT: THIS IS THE LAST RELEASE TO SUPPORT WINDOWS XP AND WINDOWS VISTA
|
||||||
|
FUTURE RUFUS RELEASES WILL *NO LONGER* BE COMPATIBLE WITH THESE PLATFORMS
|
||||||
|
|
||||||
|
o Version 2.17 (2017.09.12)
|
||||||
|
Add support for Debian 9 live ISOs in UEFI mode
|
||||||
|
Add support for Super Floppy Disk "partitioning" mode
|
||||||
|
Add support for more non-USB card readers
|
||||||
|
Strengthen download update checks, to prevent attack scenarios that leverage user unawareness
|
||||||
|
Fix an issue with Spanish translation prompts not displaying properly
|
||||||
|
Fix an issue with Windows To Go support on some non-official Windows ISOs
|
||||||
|
Fix an issue with log autoscrolling
|
||||||
|
Fix an issue when using A: or B: as drive letters
|
||||||
|
|
||||||
|
o Version 2.16 (2017.07.31)
|
||||||
|
Add an audiovisual cue on completion/error
|
||||||
|
Add a workaround for ISOs using nonstandard Rock Ridge extensions (looking at you Kali Linux!)
|
||||||
|
Notify user when an ISO is broken or truncated
|
||||||
|
Notify user if other processes are accessing the drive before format
|
||||||
|
List processes that are locking a drive on failure
|
||||||
|
Improve verbosity of the Windows To Go process
|
||||||
|
Other fixes and improvements
|
||||||
|
|
||||||
o Version 2.15 (2017.05.17)
|
o Version 2.15 (2017.05.17)
|
||||||
Fix non-listing of drives that are opened for write access by another process
|
Fix non-listing of drives that are opened for write access by another process
|
||||||
Report external processes that may be preventing disk access (in the log)
|
Report external processes that may be preventing disk access (in the log)
|
||||||
|
|
|
||||||
10
README.md
10
README.md
|
|
@ -11,15 +11,15 @@ Features
|
||||||
--------
|
--------
|
||||||
|
|
||||||
* Format USB, flash card and virtual drives to FAT/FAT32/NTFS/UDF/exFAT/ReFS
|
* Format USB, flash card and virtual drives to FAT/FAT32/NTFS/UDF/exFAT/ReFS
|
||||||
* Create DOS bootable USB drives, using [FreeDOS](http://www.freedos.org/) or MS-DOS
|
* Create DOS bootable USB drives, using [FreeDOS](http://www.freedos.org/) or MS-DOS (Windows 8.1 or earlier)
|
||||||
* Create BIOS or UEFI bootable drives, including [UEFI bootable NTFS](https://github.com/pbatard/uefi-ntfs)
|
* Create BIOS or UEFI bootable drives, including [UEFI bootable NTFS](https://github.com/pbatard/uefi-ntfs)
|
||||||
* Create bootable drives from bootable ISOs (Windows, Linux, etc.)
|
* Create bootable drives from bootable ISOs (Windows, Linux, etc.)
|
||||||
* Create bootable drives from bootable disk images, including compressed ones
|
* Create bootable drives from bootable disk images, including compressed ones
|
||||||
* Create [Windows To Go](https://en.wikipedia.org/wiki/Windows_To_Go) drives
|
* Create [Windows To Go](https://en.wikipedia.org/wiki/Windows_To_Go) drives
|
||||||
|
* Compute MD5, SHA-1 and SHA-256 checksums of the selected image
|
||||||
* Twice as fast as Microsoft's USB/DVD tool or UNetbootin, on ISO -> USB creation <sup>(1)</sup>
|
* Twice as fast as Microsoft's USB/DVD tool or UNetbootin, on ISO -> USB creation <sup>(1)</sup>
|
||||||
* Perform bad blocks checks, including detection of "fake" flash drives
|
* Perform bad blocks checks, including detection of "fake" flash drives
|
||||||
* Compute MD5, SHA-1 and SHA-256 checksums of the selected image
|
* Modern and familiar UI, with [39 languages natively supported](https://rufus.akeo.ie/translations)
|
||||||
* Modern and familiar UI, with more than [35 languages natively supported](https://rufus.akeo.ie/translations)
|
|
||||||
* Small footprint. No installation required.
|
* Small footprint. No installation required.
|
||||||
* Portable
|
* Portable
|
||||||
* 100% [Free Software](http://www.gnu.org/philosophy/free-sw.en.html) ([GPL v3](http://www.gnu.org/licenses/gpl-3.0.en.html))
|
* 100% [Free Software](http://www.gnu.org/philosophy/free-sw.en.html) ([GPL v3](http://www.gnu.org/licenses/gpl-3.0.en.html))
|
||||||
|
|
@ -27,8 +27,8 @@ Features
|
||||||
Compilation
|
Compilation
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Use either Visual Studio (2017 or later), WDK 7.1 (Windows Driver Kit) or MinGW and then
|
Use either Visual Studio 2017 (with Update 4 and SDK 10.0.16299 installed) or MinGW and
|
||||||
invoke the `.sln`, `wdk_build.cmd` or `configure`/`make` respectively.
|
then invoke the `.sln` or `configure`/`make` respectively.
|
||||||
|
|
||||||
#### Visual Studio
|
#### Visual Studio
|
||||||
Note that, since Rufus is an OSI compliant Open Source project, you are entitled to
|
Note that, since Rufus is an OSI compliant Open Source project, you are entitled to
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
@rem *** Internal developer script to run Coverity ***
|
@rem *** Internal developer script to run Coverity ***
|
||||||
@echo off
|
@echo off
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
|
||||||
set COV_DIR=D:\cov-analysis-win64-8.7.0
|
set COV_DIR=D:\cov-analysis-win64-2017.07
|
||||||
set PATH=%PATH%;%COV_DIR%\bin
|
set PATH=%PATH%;%COV_DIR%\bin
|
||||||
set PWD=%~dp0
|
set PWD=%~dp0
|
||||||
set TARGET=x86_32
|
set TARGET=x86_32
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
@echo off
|
@echo off
|
||||||
"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool" sign /v /sha1 655f6413a8f721e3286ace95025c9e0ea132a984 /fd SHA1 /tr http://timestamp.comodoca.com/rfc3161 /td SHA1 %1
|
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\signtool" sign /v /sha1 5759b23dc8f45e9120a7317f306e5b6890b612f0 /fd SHA256 /tr http://timestamp.comodoca.com/rfc3161 /td SHA256 %1
|
||||||
if ERRORLEVEL 1 goto out
|
|
||||||
"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool" sign /as /v /sha1 5759b23dc8f45e9120a7317f306e5b6890b612f0 /fd SHA256 /tr http://timestamp.comodoca.com/rfc3161 /td SHA256 %1
|
|
||||||
:out
|
|
||||||
exit
|
exit
|
||||||
|
|
|
||||||
24
configure
vendored
24
configure
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for rufus 2.15.
|
# Generated by GNU Autoconf 2.69 for rufus 2.18.
|
||||||
#
|
#
|
||||||
# Report bugs to <https://github.com/pbatard/rufus/issues>.
|
# Report bugs to <https://github.com/pbatard/rufus/issues>.
|
||||||
#
|
#
|
||||||
|
|
@ -580,8 +580,8 @@ MAKEFLAGS=
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='rufus'
|
PACKAGE_NAME='rufus'
|
||||||
PACKAGE_TARNAME='rufus'
|
PACKAGE_TARNAME='rufus'
|
||||||
PACKAGE_VERSION='2.15'
|
PACKAGE_VERSION='2.18'
|
||||||
PACKAGE_STRING='rufus 2.15'
|
PACKAGE_STRING='rufus 2.18'
|
||||||
PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues'
|
PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues'
|
||||||
PACKAGE_URL='https://rufus.akeo.ie'
|
PACKAGE_URL='https://rufus.akeo.ie'
|
||||||
|
|
||||||
|
|
@ -1228,7 +1228,7 @@ if test "$ac_init_help" = "long"; then
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures rufus 2.15 to adapt to many kinds of systems.
|
\`configure' configures rufus 2.18 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
|
@ -1294,7 +1294,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of rufus 2.15:";;
|
short | recursive ) echo "Configuration of rufus 2.18:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
|
@ -1385,7 +1385,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
rufus configure 2.15
|
rufus configure 2.18
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
|
@ -1440,7 +1440,7 @@ cat >config.log <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by rufus $as_me 2.15, which was
|
It was created by rufus $as_me 2.18, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
|
@ -2303,7 +2303,7 @@ fi
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='rufus'
|
PACKAGE='rufus'
|
||||||
VERSION='2.15'
|
VERSION='2.18'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
|
@ -3813,9 +3813,7 @@ esac
|
||||||
$as_echo "#define _GNU_SOURCE /**/" >>confdefs.h
|
$as_echo "#define _GNU_SOURCE /**/" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
# Clang needs an explicit WIN32_WINNT defined else it produces warnings
|
AM_CFLAGS="${AM_CFLAGS} -DWINVER=0x601 -D_WIN32_WINNT=0x601 -D_WIN32_IE=0x800"
|
||||||
# in msapi_utf8.h - including winver.h only doesn't work
|
|
||||||
AM_CFLAGS="${AM_CFLAGS} -DWINVER=0x501 -D_WIN32_IE=0x501 -D_WIN32_WINNT=0x501"
|
|
||||||
# "-Wl,--nxcompat" to enable DEP (Data Execution Prevention)
|
# "-Wl,--nxcompat" to enable DEP (Data Execution Prevention)
|
||||||
AM_LDFLAGS="${AM_LDFLAGS} -Wl,-no-undefined -Wl,--nxcompat"
|
AM_LDFLAGS="${AM_LDFLAGS} -Wl,-no-undefined -Wl,--nxcompat"
|
||||||
|
|
||||||
|
|
@ -4483,7 +4481,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by rufus $as_me 2.15, which was
|
This file was extended by rufus $as_me 2.18, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
|
@ -4537,7 +4535,7 @@ _ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
rufus config.status 2.15
|
rufus config.status 2.18
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
AC_INIT([rufus], [2.15], [https://github.com/pbatard/rufus/issues], [rufus], [https://rufus.akeo.ie])
|
AC_INIT([rufus], [2.18], [https://github.com/pbatard/rufus/issues], [rufus], [https://rufus.akeo.ie])
|
||||||
AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies])
|
AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies])
|
||||||
AC_CONFIG_SRCDIR([src/rufus.c])
|
AC_CONFIG_SRCDIR([src/rufus.c])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
@ -17,9 +17,7 @@ AC_CHECK_TOOL(WINDRES, windres, windres)
|
||||||
AC_C_INLINE
|
AC_C_INLINE
|
||||||
AC_DEFINE([_GNU_SOURCE], [], [Use GNU extensions])
|
AC_DEFINE([_GNU_SOURCE], [], [Use GNU extensions])
|
||||||
|
|
||||||
# Clang needs an explicit WIN32_WINNT defined else it produces warnings
|
AM_CFLAGS="${AM_CFLAGS} -DWINVER=0x601 -D_WIN32_WINNT=0x601 -D_WIN32_IE=0x800"
|
||||||
# in msapi_utf8.h - including winver.h only doesn't work
|
|
||||||
AM_CFLAGS="${AM_CFLAGS} -DWINVER=0x501 -D_WIN32_IE=0x501 -D_WIN32_WINNT=0x501"
|
|
||||||
# "-Wl,--nxcompat" to enable DEP (Data Execution Prevention)
|
# "-Wl,--nxcompat" to enable DEP (Data Execution Prevention)
|
||||||
AM_LDFLAGS="${AM_LDFLAGS} -Wl,-no-undefined -Wl,--nxcompat"
|
AM_LDFLAGS="${AM_LDFLAGS} -Wl,-no-undefined -Wl,--nxcompat"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
for an interesting struggle, when you also happen to have a comma in one of the fields... -->
|
for an interesting struggle, when you also happen to have a comma in one of the fields... -->
|
||||||
<Identity
|
<Identity
|
||||||
Name="Rufus"
|
Name="Rufus"
|
||||||
Version="2.15.1117.0"
|
Version="2.18.1213.0"
|
||||||
ProcessorArchitecture="x86"
|
ProcessorArchitecture="x86"
|
||||||
Publisher='CN=Akeo Consulting, O=Akeo Consulting, STREET="24, Grey Rock", L=Milford, S=Co Donegal, PostalCode=Co Donegal, C=IE' />
|
Publisher='CN=Akeo Consulting, O=Akeo Consulting, STREET="24, Grey Rock", L=Milford, S=Co Donegal, PostalCode=Co Donegal, C=IE' />
|
||||||
<Properties>
|
<Properties>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
@echo off
|
@echo off
|
||||||
set VERSION=2.15
|
set VERSION=2.18
|
||||||
|
|
||||||
rem Make sure you don't have anything you don't want included in the package, as anything residing in the
|
rem Make sure you don't have anything you don't want included in the package, as anything residing in the
|
||||||
rem current directory will be included, including any previous .appx, which makes for nice recursion...
|
rem current directory will be included, including any previous .appx, which makes for nice recursion...
|
||||||
|
|
@ -13,11 +13,11 @@ copy "..\icon-set\rufus-48.png" "Assets\Square44x44Logo.targetsize-48.png"
|
||||||
copy "..\icon-set\rufus-48.png" "Assets\Square44x44Logo.targetsize-48_altform-unplated.png"
|
copy "..\icon-set\rufus-48.png" "Assets\Square44x44Logo.targetsize-48_altform-unplated.png"
|
||||||
copy "..\icon-set\rufus-150.png" "Assets\Square150x150Logo.png"
|
copy "..\icon-set\rufus-150.png" "Assets\Square150x150Logo.png"
|
||||||
copy "..\..\rufus-%VERSION%.exe" "rufus.exe"
|
copy "..\..\rufus-%VERSION%.exe" "rufus.exe"
|
||||||
"C:\Program Files (x86)\Windows Kits\10\bin\x64\MakePri" createconfig /o /dq en-US /cf priconfig.xml
|
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\MakePri" createconfig /o /dq en-US /cf priconfig.xml
|
||||||
"C:\Program Files (x86)\Windows Kits\10\bin\x64\MakePri" new /o /pr . /cf priconfig.xml
|
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\MakePri" new /o /pr . /cf priconfig.xml
|
||||||
"C:\Program Files (x86)\Windows Kits\10\bin\x64\MakeAppx" pack /o /d . /p Rufus-%VERSION%.appx
|
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\MakeAppx" pack /o /d . /p Rufus-%VERSION%.appx
|
||||||
if ERRORLEVEL 1 goto out
|
if ERRORLEVEL 1 goto out
|
||||||
"C:\Program Files (x86)\Windows Kits\10\bin\x64\SignTool" sign /v /sha1 5759b23dc8f45e9120a7317f306e5b6890b612f0 /fd SHA256 /tr http://timestamp.comodoca.com/rfc3161 /td SHA256 Rufus-%VERSION%.appx
|
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\SignTool" sign /v /sha1 5759b23dc8f45e9120a7317f306e5b6890b612f0 /fd SHA256 /tr http://timestamp.comodoca.com/rfc3161 /td SHA256 Rufus-%VERSION%.appx
|
||||||
:out
|
:out
|
||||||
del /q rufus.exe
|
del /q rufus.exe
|
||||||
del /q priconfig.xml
|
del /q priconfig.xml
|
||||||
|
|
|
||||||
BIN
res/down.ico
BIN
res/down.ico
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
|
@ -1,7 +1,7 @@
|
||||||
This directory contains the Grub4DOS boot records that are used by Rufus
|
This directory contains the Grub4DOS boot records that are used by Rufus
|
||||||
|
|
||||||
* grldr.mbr was taken from the official 2017.05.15 release from
|
* grldr.mbr was taken from the official 2017.10.23 release from
|
||||||
http://grub4dos.chenall.net/downloads/grub4dos-0.4.6a-2017-05-15/
|
http://grub4dos.chenall.net/downloads/grub4dos-0.4.6a-2017-10-23/
|
||||||
|
|
||||||
* Note that, for convenience reasons, the first 512 bytes from this grldr.mbr are
|
* Note that, for convenience reasons, the first 512 bytes from this grldr.mbr are
|
||||||
*not* the ones that Rufus processes when writing the actual MBR (first 512 bytes).
|
*not* the ones that Rufus processes when writing the actual MBR (first 512 bytes).
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,15 @@ content. PLEASE, do not just look at this Changelog when updating your
|
||||||
translation, but always use the English section of rufus.loc as your base.
|
translation, but always use the English section of rufus.loc as your base.
|
||||||
For instance, MSG_114, that was introduced in v1.0.8 is MORE than one line!
|
For instance, MSG_114, that was introduced in v1.0.8 is MORE than one line!
|
||||||
|
|
||||||
|
o Version 1.0.22 (2017.07.17)
|
||||||
|
- *NEW* MSG_295 "Warning: Unofficial version"
|
||||||
|
- *NEW* MSG_296 "This version of Rufus was NOT produced by its official developer(s).\n\nAre you sure you want to run it?"
|
||||||
|
- *NEW* MSG_297 "Truncated ISO detected"
|
||||||
|
- *NEW* MSG_298 "The ISO file you have selected does not match its declared size: %s of data is missing!\n\nIf you obtained "
|
||||||
|
"this file from the Internet, you should try to download a new copy and verify that the MD5 or SHA checksums match the "
|
||||||
|
"official ones.\n\nNote that you can compute the MD5 or SHA in Rufus by clicking the '#' button."
|
||||||
|
Note: You can test MSG_297/MSG_298 using https://rufus.akeo.ie/testing/arch_trunc.iso (A truncated version of archlinux-2017.07.01-x86_64.iso)
|
||||||
|
|
||||||
o Version 1.0.21 (2017.01.16)
|
o Version 1.0.21 (2017.01.16)
|
||||||
- *NEW* MSG_288 "Missing elevated privileges"
|
- *NEW* MSG_288 "Missing elevated privileges"
|
||||||
- *NEW* MSG_289 "This application can only run with elevated privileges"
|
- *NEW* MSG_289 "This application can only run with elevated privileges"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
# This sed script removes everything we don't need from rufus.loc, for embedding.
|
# This sed script removes everything we don't need from rufus.loc, for embedding.
|
||||||
|
|
||||||
# remove comments (aggressively!)
|
# remove comments (but not so aggressively as to drop the end of MSG_298!)
|
||||||
s/#.*$//
|
s/^#.*$//
|
||||||
|
s/[ \t]#.*$//
|
||||||
|
|
||||||
# remove empty lines
|
# remove empty lines
|
||||||
/^$/d
|
/^$/d
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
BIN
res/up.ico
BIN
res/up.ico
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 KiB |
|
|
@ -1,117 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 15
|
|
||||||
VisualStudioVersion = 15.0.26228.4
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rufus", "src\.clang\rufus.vcxproj", "{731858A7-0303-4988-877B-9C0DD6471864}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ms-sys", "src\ms-sys\.clang\ms-sys.vcxproj", "{2B1D078D-8EB4-4398-9CA4-23457265A7F6}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-libfat", "src\syslinux\libfat\.clang\libfat.vcxproj", "{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-libinstaller", "src\syslinux\libinstaller\.clang\libinstaller.vcxproj", "{266502AC-CD74-4581-B707-938A7D05AD7A}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-win", "src\syslinux\win\.clang\win.vcxproj", "{7D2E9784-DDF7-4988-A887-CF099BC3B340}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-iso9660", "src\libcdio\iso9660\.clang\iso9660.vcxproj", "{D4E80F35-2604-40AC-B436-97B052ECB572}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-udf", "src\libcdio\udf\.clang\udf.vcxproj", "{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-driver", "src\libcdio\driver\.clang\driver.vcxproj", "{FA1B1093-BA86-410A-B7A0-7A54C605F812}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getopt", "src\getopt\.clang\getopt.vcxproj", "{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bled", "src\bled\.clang\bled.vcxproj", "{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|x86_32 = Debug|x86_32
|
|
||||||
Debug|x86_64 = Debug|x86_64
|
|
||||||
Release|x86_32 = Release|x86_32
|
|
||||||
Release|x86_64 = Release|x86_64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.ActiveCfg = Debug|Win32
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.Build.0 = Debug|Win32
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.ActiveCfg = Debug|x64
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.Build.0 = Debug|x64
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.ActiveCfg = Release|Win32
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.Build.0 = Release|Win32
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_64.ActiveCfg = Release|x64
|
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
67
rufus.sln
67
rufus.sln
|
|
@ -1,153 +1,195 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 15
|
# Visual Studio 15
|
||||||
VisualStudioVersion = 15.0.26430.4
|
VisualStudioVersion = 15.0.27004.2006
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rufus", "src\.msvc\rufus.vcxproj", "{731858A7-0303-4988-877B-9C0DD6471864}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rufus", ".vs\rufus.vcxproj", "{731858A7-0303-4988-877B-9C0DD6471864}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ms-sys", "src\ms-sys\.msvc\ms-sys.vcxproj", "{2B1D078D-8EB4-4398-9CA4-23457265A7F6}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ms-sys", ".vs\ms-sys.vcxproj", "{2B1D078D-8EB4-4398-9CA4-23457265A7F6}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-libfat", "src\syslinux\libfat\.msvc\libfat.vcxproj", "{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-libfat", ".vs\syslinux-libfat.vcxproj", "{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-libinstaller", "src\syslinux\libinstaller\.msvc\libinstaller.vcxproj", "{266502AC-CD74-4581-B707-938A7D05AD7A}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-libinstaller", ".vs\syslinux-libinstaller.vcxproj", "{266502AC-CD74-4581-B707-938A7D05AD7A}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-win", "src\syslinux\win\.msvc\win.vcxproj", "{7D2E9784-DDF7-4988-A887-CF099BC3B340}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "syslinux-win", ".vs\syslinux-win.vcxproj", "{7D2E9784-DDF7-4988-A887-CF099BC3B340}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-iso9660", "src\libcdio\iso9660\.msvc\iso9660.vcxproj", "{D4E80F35-2604-40AC-B436-97B052ECB572}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-iso9660", ".vs\libcdio-iso9660.vcxproj", "{D4E80F35-2604-40AC-B436-97B052ECB572}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-udf", "src\libcdio\udf\.msvc\udf.vcxproj", "{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-udf", ".vs\libcdio-udf.vcxproj", "{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-driver", "src\libcdio\driver\.msvc\driver.vcxproj", "{FA1B1093-BA86-410A-B7A0-7A54C605F812}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio-driver", ".vs\libcdio-driver.vcxproj", "{FA1B1093-BA86-410A-B7A0-7A54C605F812}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getopt", "src\getopt\.msvc\getopt.vcxproj", "{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getopt", ".vs\getopt.vcxproj", "{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bled", "src\bled\.msvc\bled.vcxproj", "{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bled", ".vs\bled.vcxproj", "{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|arm = Debug|arm
|
Debug|arm = Debug|arm
|
||||||
|
Debug|arm64 = Debug|arm64
|
||||||
Debug|x86_32 = Debug|x86_32
|
Debug|x86_32 = Debug|x86_32
|
||||||
Debug|x86_64 = Debug|x86_64
|
Debug|x86_64 = Debug|x86_64
|
||||||
Release|arm = Release|arm
|
Release|arm = Release|arm
|
||||||
|
Release|arm64 = Release|arm64
|
||||||
Release|x86_32 = Release|x86_32
|
Release|x86_32 = Release|x86_32
|
||||||
Release|x86_64 = Release|x86_64
|
Release|x86_64 = Release|x86_64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|arm.ActiveCfg = Debug|ARM
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|arm.Build.0 = Debug|ARM
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.Build.0 = Debug|Win32
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.ActiveCfg = Debug|x64
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.Build.0 = Debug|x64
|
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|arm.ActiveCfg = Release|ARM
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|arm.Build.0 = Release|ARM
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.ActiveCfg = Release|Win32
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.Build.0 = Release|Win32
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.ActiveCfg = Release|x64
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.Build.0 = Release|x64
|
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.Build.0 = Release|x64
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|arm.ActiveCfg = Debug|ARM
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|arm.Build.0 = Debug|ARM
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.Build.0 = Debug|Win32
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.ActiveCfg = Debug|x64
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.Build.0 = Debug|x64
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|arm.ActiveCfg = Release|ARM
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|arm.Build.0 = Release|ARM
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.ActiveCfg = Release|Win32
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.Build.0 = Release|Win32
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.ActiveCfg = Release|x64
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.Build.0 = Release|x64
|
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.Build.0 = Release|x64
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|arm.ActiveCfg = Debug|ARM
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|arm.Build.0 = Debug|ARM
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.Build.0 = Debug|Win32
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.ActiveCfg = Debug|x64
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.Build.0 = Debug|x64
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|arm.ActiveCfg = Release|ARM
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|arm.Build.0 = Release|ARM
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.ActiveCfg = Release|Win32
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.Build.0 = Release|Win32
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.ActiveCfg = Release|x64
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.Build.0 = Release|x64
|
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.Build.0 = Release|x64
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|arm.ActiveCfg = Debug|ARM
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|arm.Build.0 = Debug|ARM
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.Build.0 = Debug|Win32
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.ActiveCfg = Debug|x64
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.Build.0 = Debug|x64
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|arm.ActiveCfg = Release|ARM
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|arm.Build.0 = Release|ARM
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.ActiveCfg = Release|Win32
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.Build.0 = Release|Win32
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.ActiveCfg = Release|x64
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.Build.0 = Release|x64
|
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.Build.0 = Release|x64
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|arm.ActiveCfg = Debug|ARM
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|arm.Build.0 = Debug|ARM
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_32.Build.0 = Debug|Win32
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_64.ActiveCfg = Debug|x64
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_64.Build.0 = Debug|x64
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|arm.ActiveCfg = Release|ARM
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|arm.Build.0 = Release|ARM
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_32.ActiveCfg = Release|Win32
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_32.Build.0 = Release|Win32
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_64.ActiveCfg = Release|x64
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_64.Build.0 = Release|x64
|
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86_64.Build.0 = Release|x64
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|arm.ActiveCfg = Debug|ARM
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|arm.Build.0 = Debug|ARM
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.Build.0 = Debug|Win32
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.ActiveCfg = Debug|x64
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.Build.0 = Debug|x64
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|arm.ActiveCfg = Release|ARM
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|arm.Build.0 = Release|ARM
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.ActiveCfg = Release|Win32
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.Build.0 = Release|Win32
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.ActiveCfg = Release|x64
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.Build.0 = Release|x64
|
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.Build.0 = Release|x64
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|arm.ActiveCfg = Debug|ARM
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|arm.Build.0 = Debug|ARM
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.Build.0 = Debug|Win32
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.ActiveCfg = Debug|x64
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.Build.0 = Debug|x64
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|arm.ActiveCfg = Release|ARM
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|arm.Build.0 = Release|ARM
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.ActiveCfg = Release|Win32
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.Build.0 = Release|Win32
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.ActiveCfg = Release|x64
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.Build.0 = Release|x64
|
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.Build.0 = Release|x64
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|arm.ActiveCfg = Debug|ARM
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|arm.Build.0 = Debug|ARM
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.Build.0 = Debug|Win32
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.ActiveCfg = Debug|x64
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.Build.0 = Debug|x64
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|arm.ActiveCfg = Release|ARM
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|arm.Build.0 = Release|ARM
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.ActiveCfg = Release|Win32
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.Build.0 = Release|Win32
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.ActiveCfg = Release|x64
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.Build.0 = Release|x64
|
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.Build.0 = Release|x64
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|arm.ActiveCfg = Debug|ARM
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|arm.Build.0 = Debug|ARM
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.Build.0 = Debug|Win32
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.ActiveCfg = Debug|x64
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.Build.0 = Debug|x64
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|arm.ActiveCfg = Release|ARM
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|arm.Build.0 = Release|ARM
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.ActiveCfg = Release|Win32
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.Build.0 = Release|Win32
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.ActiveCfg = Release|x64
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.Build.0 = Release|x64
|
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.Build.0 = Release|x64
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|arm.ActiveCfg = Debug|ARM
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|arm.ActiveCfg = Debug|ARM
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|arm.Build.0 = Debug|ARM
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|arm.Build.0 = Debug|ARM
|
||||||
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|arm64.ActiveCfg = Debug|ARM64
|
||||||
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|arm64.Build.0 = Debug|ARM64
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.ActiveCfg = Debug|Win32
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.ActiveCfg = Debug|Win32
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.Build.0 = Debug|Win32
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.Build.0 = Debug|Win32
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.ActiveCfg = Debug|x64
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.ActiveCfg = Debug|x64
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.Build.0 = Debug|x64
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.Build.0 = Debug|x64
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|arm.ActiveCfg = Release|ARM
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|arm.ActiveCfg = Release|ARM
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|arm.Build.0 = Release|ARM
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|arm.Build.0 = Release|ARM
|
||||||
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|arm64.ActiveCfg = Release|ARM64
|
||||||
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|arm64.Build.0 = Release|ARM64
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.ActiveCfg = Release|Win32
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.ActiveCfg = Release|Win32
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.Build.0 = Release|Win32
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.Build.0 = Release|Win32
|
||||||
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_64.ActiveCfg = Release|x64
|
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_64.ActiveCfg = Release|x64
|
||||||
|
|
@ -156,4 +198,7 @@ Global
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {CCF051E2-A27D-48B0-94ED-ADC18A40E0DB}
|
||||||
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
||||||
|
|
@ -1,290 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectName>rufus</ProjectName>
|
|
||||||
<ProjectGuid>{731858A7-0303-4988-877B-9C0DD6471864}</ProjectGuid>
|
|
||||||
<RootNamespace>rufus</RootNamespace>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<BuildLog />
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
<DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;crypt32.lib;wintrust.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<BuildLog />
|
|
||||||
<Midl>
|
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
<DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;crypt32.lib;wintrust.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<BuildLog />
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
<DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;crypt32.lib;wintrust.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
<LinkTimeCodeGeneration />
|
|
||||||
</Link>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<BuildLog />
|
|
||||||
<Midl>
|
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<AdditionalIncludeDirectories>..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\syslinux\win;..\libcdio;..\getopt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
<DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;crypt32.lib;wintrust.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
<LinkTimeCodeGeneration />
|
|
||||||
</Link>
|
|
||||||
<ResourceCompile>
|
|
||||||
<PreprocessorDefinitions>_UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\badblocks.c" />
|
|
||||||
<ClCompile Include="..\dos_locale.c" />
|
|
||||||
<ClCompile Include="..\drive.c" />
|
|
||||||
<ClCompile Include="..\format.c" />
|
|
||||||
<ClCompile Include="..\dos.c" />
|
|
||||||
<ClCompile Include="..\icon.c" />
|
|
||||||
<ClCompile Include="..\iso.c" />
|
|
||||||
<ClCompile Include="..\localization.c" />
|
|
||||||
<ClCompile Include="..\net.c" />
|
|
||||||
<ClCompile Include="..\parser.c" />
|
|
||||||
<ClCompile Include="..\pki.c" />
|
|
||||||
<ClCompile Include="..\process.c" />
|
|
||||||
<ClCompile Include="..\rufus.c" />
|
|
||||||
<ClCompile Include="..\checksum.c" />
|
|
||||||
<ClCompile Include="..\smart.c" />
|
|
||||||
<ClCompile Include="..\stdfn.c" />
|
|
||||||
<ClCompile Include="..\stdio.c" />
|
|
||||||
<ClCompile Include="..\stdlg.c" />
|
|
||||||
<ClCompile Include="..\syslinux.c" />
|
|
||||||
<ClCompile Include="..\dev.c" />
|
|
||||||
<ClCompile Include="..\vhd.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\badblocks.h" />
|
|
||||||
<ClInclude Include="..\bled\bled.h" />
|
|
||||||
<ClInclude Include="..\drive.h" />
|
|
||||||
<ClInclude Include="..\format.h" />
|
|
||||||
<ClInclude Include="..\hdd_vs_ufd.h" />
|
|
||||||
<ClInclude Include="..\missing.h" />
|
|
||||||
<ClInclude Include="..\process.h" />
|
|
||||||
<ClInclude Include="..\settings.h" />
|
|
||||||
<ClInclude Include="..\libcdio\cdio\cdio.h" />
|
|
||||||
<ClInclude Include="..\libcdio\cdio\iso9660.h" />
|
|
||||||
<ClInclude Include="..\libcdio\cdio\udf.h" />
|
|
||||||
<ClInclude Include="..\localization.h" />
|
|
||||||
<ClInclude Include="..\localization_data.h" />
|
|
||||||
<ClInclude Include="..\msapi_utf8.h" />
|
|
||||||
<ClInclude Include="..\dos.h" />
|
|
||||||
<ClInclude Include="..\registry.h" />
|
|
||||||
<ClInclude Include="..\resource.h" />
|
|
||||||
<ClInclude Include="..\rufus.h" />
|
|
||||||
<ClInclude Include="..\license.h" />
|
|
||||||
<ClInclude Include="..\db.h" />
|
|
||||||
<ClInclude Include="..\smart.h" />
|
|
||||||
<ClInclude Include="..\sys_types.h" />
|
|
||||||
<ClInclude Include="..\dev.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Manifest Include="..\rufus.manifest" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="..\..\res\down.ico" />
|
|
||||||
<None Include="..\..\res\rufus.ico" />
|
|
||||||
<None Include="..\..\res\up.ico" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="..\rufus.rc" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\bled\.msvc\bled.vcxproj">
|
|
||||||
<Project>{fb6d52d4-a2f8-c358-db85-bbcaecfddd7d}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\getopt\.msvc\getopt.vcxproj">
|
|
||||||
<Project>{ae83e1b4-ce06-47ee-b7a3-c3a1d7c2d71e}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\libcdio\driver\.msvc\driver.vcxproj">
|
|
||||||
<Project>{fa1b1093-ba86-410a-b7a0-7a54c605f812}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\libcdio\iso9660\.msvc\iso9660.vcxproj">
|
|
||||||
<Project>{d4e80f35-2604-40ac-b436-97b052ecb572}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\libcdio\udf\.msvc\udf.vcxproj">
|
|
||||||
<Project>{0cec40a6-a195-4be5-a88b-0ab00eb142ec}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\ms-sys\.msvc\ms-sys.vcxproj">
|
|
||||||
<Project>{2b1d078d-8eb4-4398-9ca4-23457265a7f6}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\syslinux\libfat\.msvc\libfat.vcxproj">
|
|
||||||
<Project>{8390dce0-859d-4f57-ad9c-aaeac4d77eef}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\syslinux\libinstaller\.msvc\libinstaller.vcxproj">
|
|
||||||
<Project>{266502ac-cd74-4581-b707-938a7d05ad7a}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\syslinux\win\.msvc\win.vcxproj">
|
|
||||||
<Project>{7d2e9784-ddf7-4988-a887-cf099bc3b340}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -4,7 +4,5 @@ root = true
|
||||||
[*]
|
[*]
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
# Of course the following is broken in VS2017 release.
|
# Finally, having a default of UTF-8 *without* BOM got fixed in VS2017 15.3
|
||||||
# Hopefully will be fixed with next update:
|
charset = utf-8
|
||||||
# https://developercommunity.visualstudio.com/content/problem/22922/editorconfig-support-interprets-charset-utf-8-as-u.html
|
|
||||||
#charset = utf-8
|
|
||||||
|
|
|
||||||
|
|
@ -1,174 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\rufus.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\stdlg.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\dos.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\stdio.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\format.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\drive.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\badblocks.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\dos_locale.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\syslinux.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\iso.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\icon.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\parser.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\net.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\vhd.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\stdfn.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\localization.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\smart.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\checksum.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\pki.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\dev.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\process.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\rufus.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\msapi_utf8.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\license.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\sys_types.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\dos.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\format.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\badblocks.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\resource.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\libcdio\cdio\cdio.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\libcdio\cdio\iso9660.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\libcdio\cdio\udf.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\registry.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\localization.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\localization_data.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\smart.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\hdd_vs_ufd.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\drive.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\bled\bled.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\settings.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\missing.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\dev.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\db.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\process.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="..\..\res\rufus.ico">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="..\..\res\up.ico">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
<None Include="..\..\res\down.ico">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Manifest Include="..\rufus.manifest">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</Manifest>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ResourceCompile Include="..\rufus.rc">
|
|
||||||
<Filter>Resource Files</Filter>
|
|
||||||
</ResourceCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
TARGETNAME=rufus
|
|
||||||
TARGETTYPE=PROGRAM
|
|
||||||
UMTYPE=windows
|
|
||||||
UMENTRY=winmain
|
|
||||||
|
|
||||||
INCLUDES=$(DDK_INC_PATH);.\ms-sys\inc;.\syslinux\libfat;.\syslinux\libinstaller;.\syslinux\win;.\msvc-missing;.\libcdio;.\getopt;.\bled
|
|
||||||
C_DEFINES = $(C_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DRUFUS_LOC /DISOLATION_AWARE_ENABLED
|
|
||||||
|
|
||||||
!IFNDEF MSC_WARNING_LEVEL
|
|
||||||
MSC_WARNING_LEVEL=/W3
|
|
||||||
!ENDIF
|
|
||||||
USE_MSVCRT=1
|
|
||||||
|
|
||||||
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
|
|
||||||
$(SDK_LIB_PATH)\user32.lib \
|
|
||||||
$(SDK_LIB_PATH)\setupapi.lib \
|
|
||||||
$(SDK_LIB_PATH)\ole32.lib \
|
|
||||||
$(SDK_LIB_PATH)\uuid.lib \
|
|
||||||
$(SDK_LIB_PATH)\shell32.lib \
|
|
||||||
$(SDK_LIB_PATH)\wininet.lib \
|
|
||||||
$(SDK_LIB_PATH)\shlwapi.lib \
|
|
||||||
$(SDK_LIB_PATH)\crypt32.lib \
|
|
||||||
$(SDK_LIB_PATH)\wintrust.lib \
|
|
||||||
.\bled\bled.lib \
|
|
||||||
.\ms-sys\ms-sys.lib \
|
|
||||||
.\syslinux\libfat\libfat.lib \
|
|
||||||
.\syslinux\libinstaller\libinstaller.lib \
|
|
||||||
.\syslinux\win\win.lib \
|
|
||||||
.\libcdio\iso9660\iso9660.lib \
|
|
||||||
.\libcdio\udf\udf.lib \
|
|
||||||
.\libcdio\driver\driver.lib \
|
|
||||||
.\getopt\getopt.lib
|
|
||||||
|
|
||||||
# http://jpassing.com/2008/02/01/how-to-use-manifests-with-buildexe/
|
|
||||||
SXS_APPLICATION_MANIFEST=..\rufus.manifest
|
|
||||||
|
|
||||||
SOURCES=badblocks.c \
|
|
||||||
checksum.c \
|
|
||||||
dev.c \
|
|
||||||
dos.c \
|
|
||||||
dos_locale.c \
|
|
||||||
drive.c \
|
|
||||||
format.c \
|
|
||||||
icon.c \
|
|
||||||
iso.c \
|
|
||||||
localization.c \
|
|
||||||
net.c \
|
|
||||||
parser.c \
|
|
||||||
pki.c \
|
|
||||||
rufus.c \
|
|
||||||
smart.c \
|
|
||||||
stdfn.c \
|
|
||||||
stdio.c \
|
|
||||||
stdlg.c \
|
|
||||||
syslinux.c \
|
|
||||||
vhd.c \
|
|
||||||
rufus.rc
|
|
||||||
|
|
@ -15,4 +15,4 @@ rufus_SOURCES = badblocks.c checksum.c dev.c dos.c dos_locale.c drive.c format.c
|
||||||
rufus_CFLAGS = -I./ms-sys/inc -I./syslinux/libfat -I./syslinux/libinstaller -I./syslinux/win -I./libcdio $(AM_CFLAGS)
|
rufus_CFLAGS = -I./ms-sys/inc -I./syslinux/libfat -I./syslinux/libinstaller -I./syslinux/win -I./libcdio $(AM_CFLAGS)
|
||||||
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows
|
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows
|
||||||
rufus_LDADD = rufus_rc.o bled/libbled.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
rufus_LDADD = rufus_rc.o bled/libbled.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
||||||
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a -lsetupapi -lole32 -lgdi32 -lwininet -lshlwapi -lcrypt32 -lwintrust -lcomdlg32 -luuid -lpsapi
|
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a -lsetupapi -lole32 -lgdi32 -lwininet -lshlwapi -lcrypt32 -lwintrust -lcomdlg32 -lcomctl32 -luuid -lpsapi
|
||||||
|
|
|
||||||
|
|
@ -276,7 +276,7 @@ rufus_SOURCES = badblocks.c checksum.c dev.c dos.c dos_locale.c drive.c format.c
|
||||||
rufus_CFLAGS = -I./ms-sys/inc -I./syslinux/libfat -I./syslinux/libinstaller -I./syslinux/win -I./libcdio $(AM_CFLAGS)
|
rufus_CFLAGS = -I./ms-sys/inc -I./syslinux/libfat -I./syslinux/libinstaller -I./syslinux/win -I./libcdio $(AM_CFLAGS)
|
||||||
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows
|
rufus_LDFLAGS = $(AM_LDFLAGS) -mwindows
|
||||||
rufus_LDADD = rufus_rc.o bled/libbled.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
rufus_LDADD = rufus_rc.o bled/libbled.a ms-sys/libmssys.a syslinux/libfat/libfat.a syslinux/libinstaller/libinstaller.a syslinux/win/libwin.a \
|
||||||
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a -lsetupapi -lole32 -lgdi32 -lwininet -lshlwapi -lcrypt32 -lwintrust -lcomdlg32 -luuid -lpsapi
|
libcdio/iso9660/libiso9660.a libcdio/udf/libudf.a libcdio/driver/libdriver.a -lsetupapi -lole32 -lgdi32 -lwininet -lshlwapi -lcrypt32 -lwintrust -lcomdlg32 -lcomctl32 -luuid -lpsapi
|
||||||
|
|
||||||
all: all-recursive
|
all: all-recursive
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,7 @@ static errcode_t bb_u64_list_add(bb_u64_list bb, uint64_t blk)
|
||||||
bb->size -= 100;
|
bb->size -= 100;
|
||||||
return BB_ET_NO_MEMORY;
|
return BB_ET_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
// coverity[suspicious_sizeof]
|
||||||
memset(&bb->list[bb->size-100], 0, 100 * sizeof(uint64_t));
|
memset(&bb->list[bb->size-100], 0, 100 * sizeof(uint64_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -349,7 +350,7 @@ static void pattern_fill(unsigned char *buffer, unsigned int pattern,
|
||||||
unsigned char bpattern[sizeof(pattern)], *ptr;
|
unsigned char bpattern[sizeof(pattern)], *ptr;
|
||||||
|
|
||||||
if (pattern == (unsigned int) ~0) {
|
if (pattern == (unsigned int) ~0) {
|
||||||
srand((unsigned int)_GetTickCount64());
|
srand((unsigned int)GetTickCount64());
|
||||||
for (ptr = buffer; ptr < buffer + n; ptr++) {
|
for (ptr = buffer; ptr < buffer + n; ptr++) {
|
||||||
// coverity[dont_call]
|
// coverity[dont_call]
|
||||||
(*ptr) = rand() % (1 << (8 * sizeof(char)));
|
(*ptr) = rand() % (1 << (8 * sizeof(char)));
|
||||||
|
|
@ -451,7 +452,7 @@ static unsigned int test_rw(HANDLE hDrive, blk_t last_block, size_t block_size,
|
||||||
cur_pattern = 0;
|
cur_pattern = 0;
|
||||||
|
|
||||||
for (pat_idx = 0; pat_idx < nb_passes; pat_idx++) {
|
for (pat_idx = 0; pat_idx < nb_passes; pat_idx++) {
|
||||||
srand((unsigned int)_GetTickCount64());
|
srand((unsigned int)GetTickCount64());
|
||||||
if (cancel_ops) goto out;
|
if (cancel_ops) goto out;
|
||||||
// coverity[dont_call]
|
// coverity[dont_call]
|
||||||
id_offset = rand() * (block_size-sizeof(blk_t)) / RAND_MAX;
|
id_offset = rand() * (block_size-sizeof(blk_t)) / RAND_MAX;
|
||||||
|
|
|
||||||
|
|
@ -1,193 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\bled.c" />
|
|
||||||
<ClCompile Include="..\crc32.c" />
|
|
||||||
<ClCompile Include="..\data_align.c" />
|
|
||||||
<ClCompile Include="..\data_extract_all.c" />
|
|
||||||
<ClCompile Include="..\data_skip.c" />
|
|
||||||
<ClCompile Include="..\decompress_bunzip2.c" />
|
|
||||||
<ClCompile Include="..\decompress_gunzip.c" />
|
|
||||||
<ClCompile Include="..\decompress_uncompress.c" />
|
|
||||||
<ClCompile Include="..\decompress_unlzma.c" />
|
|
||||||
<ClCompile Include="..\decompress_unxz.c" />
|
|
||||||
<ClCompile Include="..\decompress_unzip.c" />
|
|
||||||
<ClCompile Include="..\filter_accept_all.c" />
|
|
||||||
<ClCompile Include="..\filter_accept_list.c" />
|
|
||||||
<ClCompile Include="..\filter_accept_reject_list.c" />
|
|
||||||
<ClCompile Include="..\find_list_entry.c" />
|
|
||||||
<ClCompile Include="..\header_list.c" />
|
|
||||||
<ClCompile Include="..\header_skip.c" />
|
|
||||||
<ClCompile Include="..\header_verbose_list.c" />
|
|
||||||
<ClCompile Include="..\init_handle.c" />
|
|
||||||
<ClCompile Include="..\open_transformer.c" />
|
|
||||||
<ClCompile Include="..\seek_by_jump.c" />
|
|
||||||
<ClCompile Include="..\seek_by_read.c" />
|
|
||||||
<ClCompile Include="..\xz_dec_bcj.c" />
|
|
||||||
<ClCompile Include="..\xz_dec_lzma2.c" />
|
|
||||||
<ClCompile Include="..\xz_dec_stream.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\bb_archive.h" />
|
|
||||||
<ClInclude Include="..\bled.h" />
|
|
||||||
<ClInclude Include="..\libbb.h" />
|
|
||||||
<ClInclude Include="..\platform.h" />
|
|
||||||
<ClInclude Include="..\xz.h" />
|
|
||||||
<ClInclude Include="..\xz_config.h" />
|
|
||||||
<ClInclude Include="..\xz_lzma2.h" />
|
|
||||||
<ClInclude Include="..\xz_private.h" />
|
|
||||||
<ClInclude Include="..\xz_stream.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectName>bled</ProjectName>
|
|
||||||
<ProjectGuid>{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}</ProjectGuid>
|
|
||||||
<RootNamespace>bled</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<LinkDLL>true</LinkDLL>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
||||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<LinkDLL>true</LinkDLL>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
||||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<LinkDLL>true</LinkDLL>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
||||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<LinkDLL>true</LinkDLL>
|
|
||||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
|
||||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<ModuleDefinitionFile>.\7z.def</ModuleDefinitionFile>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,117 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{396df203-84ec-49b8-ae11-074c50a020f0}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{0147b833-dc8f-4666-be99-77dfae5e6679}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\bled.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\crc32.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\data_extract_all.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\data_skip.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\data_align.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\filter_accept_all.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\filter_accept_list.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\filter_accept_reject_list.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\find_list_entry.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\header_list.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\header_skip.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\header_verbose_list.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\init_handle.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\seek_by_jump.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\seek_by_read.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\decompress_bunzip2.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\decompress_gunzip.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\decompress_uncompress.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\decompress_unlzma.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\decompress_unxz.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\open_transformer.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\xz_dec_bcj.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\xz_dec_lzma2.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\xz_dec_stream.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\decompress_unzip.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\bb_archive.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\bled.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\libbb.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\platform.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\xz.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\xz_config.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\xz_lzma2.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\xz_private.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\xz_stream.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
TARGETNAME=bled
|
|
||||||
TARGETTYPE=LIBRARY
|
|
||||||
|
|
||||||
INCLUDES=$(DDK_INC_PATH);.;..;..\msvc-missing
|
|
||||||
BLED_DEFINES = /D_OFF_T_DEFINED /D_off_t=__int64 /Doff_t=_off_t /D_FILE_OFFSET_BITS=64
|
|
||||||
C_DEFINES=$(C_DEFINES) $(BLED_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DISOLATION_AWARE_ENABLED
|
|
||||||
|
|
||||||
!IFNDEF MSC_WARNING_LEVEL
|
|
||||||
MSC_WARNING_LEVEL=/W3
|
|
||||||
!ENDIF
|
|
||||||
USE_MSVCRT=1
|
|
||||||
|
|
||||||
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
|
|
||||||
$(SDK_LIB_PATH)\user32.lib
|
|
||||||
|
|
||||||
SOURCES=bled.c crc32.c data_align.c data_extract_all.c data_skip.c decompress_bunzip2.c \
|
|
||||||
decompress_gunzip.c decompress_uncompress.c decompress_unlzma.c decompress_unxz.c decompress_unzip.c \
|
|
||||||
filter_accept_all.c filter_accept_list.c filter_accept_reject_list.c find_list_entry.c \
|
|
||||||
header_list.c header_skip.c header_verbose_list.c init_handle.c open_transformer.c \
|
|
||||||
seek_by_jump.c seek_by_read.c xz_dec_bcj.c xz_dec_lzma2.c xz_dec_stream.c
|
|
||||||
|
|
@ -20,15 +20,6 @@
|
||||||
#error Only Windows platforms are supported
|
#error Only Windows platforms are supported
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(DDKBUILD)
|
|
||||||
#pragma warning(disable: 4242) // "Conversion from x to y, possible loss of data"
|
|
||||||
#pragma warning(disable: 4244)
|
|
||||||
struct timeval {
|
|
||||||
long tv_sec;
|
|
||||||
long tv_usec;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
#include "msapi_utf8.h"
|
#include "msapi_utf8.h"
|
||||||
|
|
||||||
|
|
@ -193,12 +184,8 @@ static inline int full_read(int fd, void *buf, size_t count) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct tm *localtime_r(const time_t *timep, struct tm *result) {
|
static inline struct tm *localtime_r(const time_t *timep, struct tm *result) {
|
||||||
#if defined(DDKBUILD)
|
|
||||||
result = localtime(timep);
|
|
||||||
#else
|
|
||||||
if (localtime_s(result, timep) != 0)
|
if (localtime_s(result, timep) != 0)
|
||||||
result = NULL;
|
result = NULL;
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@ static __inline uint64_t bswap_64(uint64_t x)
|
||||||
#elif defined(BYTE_ORDER) && BYTE_ORDER == LITTLE_ENDIAN
|
#elif defined(BYTE_ORDER) && BYTE_ORDER == LITTLE_ENDIAN
|
||||||
# define BB_BIG_ENDIAN 0
|
# define BB_BIG_ENDIAN 0
|
||||||
# define BB_LITTLE_ENDIAN 1
|
# define BB_LITTLE_ENDIAN 1
|
||||||
#elif defined(__386__) || defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_X64) || (defined(_M_ARM))
|
#elif defined(__386__) || defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM) || (defined(_M_ARM64))
|
||||||
# define BB_BIG_ENDIAN 0
|
# define BB_BIG_ENDIAN 0
|
||||||
# define BB_LITTLE_ENDIAN 1
|
# define BB_LITTLE_ENDIAN 1
|
||||||
#else
|
#else
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
/* Globals */
|
/* Globals */
|
||||||
char sum_str[CHECKSUM_MAX][65];
|
char sum_str[CHECKSUM_MAX][65];
|
||||||
uint32_t bufnum, sum_count[CHECKSUM_MAX] = { 16, 20, 32 };
|
uint32_t bufnum, sum_count[CHECKSUM_MAX] = { 16, 20, 32 };
|
||||||
HANDLE data_ready[CHECKSUM_MAX], thread_ready[CHECKSUM_MAX];
|
HANDLE data_ready[CHECKSUM_MAX] = { 0 }, thread_ready[CHECKSUM_MAX] = { 0 };
|
||||||
DWORD read_size[2];
|
DWORD read_size[2];
|
||||||
unsigned char ALIGNED(64) buffer[2][BUFFER_SIZE];
|
unsigned char ALIGNED(64) buffer[2][BUFFER_SIZE];
|
||||||
|
|
||||||
|
|
@ -886,7 +886,7 @@ DWORD WINAPI SumThread(void* param)
|
||||||
float format_percent = 0.0f;
|
float format_percent = 0.0f;
|
||||||
|
|
||||||
if ((image_path == NULL) || (thread_affinity == NULL))
|
if ((image_path == NULL) || (thread_affinity == NULL))
|
||||||
goto out;
|
ExitThread(r);
|
||||||
|
|
||||||
uprintf("\r\nComputing checksum for '%s'...", image_path);
|
uprintf("\r\nComputing checksum for '%s'...", image_path);
|
||||||
|
|
||||||
|
|
@ -929,8 +929,8 @@ DWORD WINAPI SumThread(void* param)
|
||||||
read_size[0] = 1; // Don't trigger the first loop break
|
read_size[0] = 1; // Don't trigger the first loop break
|
||||||
for (rb = 0; ;rb += read_size[_bufnum]) {
|
for (rb = 0; ;rb += read_size[_bufnum]) {
|
||||||
// Update the progress and check for cancel
|
// Update the progress and check for cancel
|
||||||
if (_GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
if (GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
||||||
LastRefresh = _GetTickCount64();
|
LastRefresh = GetTickCount64();
|
||||||
format_percent = (100.0f*rb) / (1.0f*img_report.image_size);
|
format_percent = (100.0f*rb) / (1.0f*img_report.image_size);
|
||||||
PrintInfo(0, MSG_271, format_percent);
|
PrintInfo(0, MSG_271, format_percent);
|
||||||
SendMessage(hProgress, PBM_SETPOS, (WPARAM)((format_percent / 100.0f)*MAX_PROGRESS), 0);
|
SendMessage(hProgress, PBM_SETPOS, (WPARAM)((format_percent / 100.0f)*MAX_PROGRESS), 0);
|
||||||
|
|
@ -985,8 +985,8 @@ out:
|
||||||
for (i = 0; i < CHECKSUM_MAX; i++) {
|
for (i = 0; i < CHECKSUM_MAX; i++) {
|
||||||
if (sum_thread[i] != NULL)
|
if (sum_thread[i] != NULL)
|
||||||
TerminateThread(sum_thread[i], 1);
|
TerminateThread(sum_thread[i], 1);
|
||||||
CloseHandle(data_ready[i]);
|
safe_closehandle(data_ready[i]);
|
||||||
CloseHandle(thread_ready[i]);
|
safe_closehandle(thread_ready[i]);
|
||||||
}
|
}
|
||||||
safe_closehandle(h);
|
safe_closehandle(h);
|
||||||
PostMessage(hMainDialog, UM_FORMAT_COMPLETED, (WPARAM)FALSE, 0);
|
PostMessage(hMainDialog, UM_FORMAT_COMPLETED, (WPARAM)FALSE, 0);
|
||||||
|
|
|
||||||
7
src/db.h
7
src/db.h
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Rufus: The Reliable USB Formatting Utility
|
* Rufus: The Reliable USB Formatting Utility
|
||||||
* DB of the hash values we know for downloadable content (GRUB, Syslinux, etc.)
|
* DB of the hash values we know for downloadable content (GRUB, Syslinux, etc.)
|
||||||
* Copyright © 2016-2017 Pete Batard <pete@akeo.ie>
|
* Copyright © 2016-2017 Pete Batard <pete@akeo.ie>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -28,7 +28,6 @@
|
||||||
static uint8_t sha256db[] = {
|
static uint8_t sha256db[] = {
|
||||||
0x12, 0xbd, 0x22, 0xd2, 0xb3, 0x69, 0x56, 0x0f, 0x89, 0xb8, 0x50, 0x7e, 0x7e, 0x74, 0xeb, 0xc5, 0xea, 0x44, 0x91, 0x48, 0x75, 0xf0, 0xa4, 0xcb, 0x1e, 0xa6, 0xfb, 0x4e, 0xc9, 0x89, 0x58, 0x17, // syslinux-6.03/pre6/ldlinux.sys
|
0x12, 0xbd, 0x22, 0xd2, 0xb3, 0x69, 0x56, 0x0f, 0x89, 0xb8, 0x50, 0x7e, 0x7e, 0x74, 0xeb, 0xc5, 0xea, 0x44, 0x91, 0x48, 0x75, 0xf0, 0xa4, 0xcb, 0x1e, 0xa6, 0xfb, 0x4e, 0xc9, 0x89, 0x58, 0x17, // syslinux-6.03/pre6/ldlinux.sys
|
||||||
0x15, 0x5f, 0x36, 0x7b, 0xb1, 0x30, 0xfe, 0x05, 0x5c, 0x79, 0x9f, 0x88, 0xb3, 0xc0, 0xc1, 0xa0, 0x0a, 0x18, 0x05, 0x78, 0x22, 0x69, 0xcf, 0x7e, 0x54, 0xaa, 0x61, 0xbd, 0xe3, 0x8e, 0x05, 0x92, // syslinux-6.03/pre3/ldlinux.bss
|
0x15, 0x5f, 0x36, 0x7b, 0xb1, 0x30, 0xfe, 0x05, 0x5c, 0x79, 0x9f, 0x88, 0xb3, 0xc0, 0xc1, 0xa0, 0x0a, 0x18, 0x05, 0x78, 0x22, 0x69, 0xcf, 0x7e, 0x54, 0xaa, 0x61, 0xbd, 0xe3, 0x8e, 0x05, 0x92, // syslinux-6.03/pre3/ldlinux.bss
|
||||||
0x16, 0xfa, 0x7a, 0xb6, 0x9b, 0x63, 0xc3, 0x79, 0xa1, 0x25, 0x7d, 0x6a, 0x1f, 0x1c, 0xf0, 0xc8, 0x17, 0xfe, 0x59, 0x67, 0xc0, 0x69, 0x66, 0xd8, 0x7e, 0x6c, 0x48, 0x0b, 0x87, 0x71, 0x1d, 0xf7, // grub4dos-0.4.6a/grldr
|
|
||||||
0x1c, 0xb7, 0x8b, 0x98, 0xbc, 0xd6, 0x76, 0x7b, 0x01, 0x44, 0xf5, 0x00, 0xaf, 0x81, 0xef, 0x4f, 0x3c, 0x54, 0xea, 0xaf, 0xe3, 0xc9, 0x4e, 0x1f, 0xd6, 0x24, 0x68, 0x41, 0x4e, 0x98, 0x92, 0x25, // syslinux-6.03/pre20/ldlinux.bss
|
0x1c, 0xb7, 0x8b, 0x98, 0xbc, 0xd6, 0x76, 0x7b, 0x01, 0x44, 0xf5, 0x00, 0xaf, 0x81, 0xef, 0x4f, 0x3c, 0x54, 0xea, 0xaf, 0xe3, 0xc9, 0x4e, 0x1f, 0xd6, 0x24, 0x68, 0x41, 0x4e, 0x98, 0x92, 0x25, // syslinux-6.03/pre20/ldlinux.bss
|
||||||
0x1c, 0xc6, 0x32, 0x21, 0xfd, 0xf4, 0x46, 0xfc, 0xda, 0xc6, 0xc0, 0x56, 0x35, 0x79, 0x54, 0xc1, 0x5b, 0x61, 0x75, 0xca, 0x1b, 0xc2, 0xa4, 0x9f, 0x85, 0x52, 0xec, 0xca, 0x28, 0xac, 0x3e, 0x51, // syslinux-6.02/ldlinux.bss
|
0x1c, 0xc6, 0x32, 0x21, 0xfd, 0xf4, 0x46, 0xfc, 0xda, 0xc6, 0xc0, 0x56, 0x35, 0x79, 0x54, 0xc1, 0x5b, 0x61, 0x75, 0xca, 0x1b, 0xc2, 0xa4, 0x9f, 0x85, 0x52, 0xec, 0xca, 0x28, 0xac, 0x3e, 0x51, // syslinux-6.02/ldlinux.bss
|
||||||
0x22, 0x96, 0x82, 0xac, 0x61, 0xb8, 0x8b, 0x11, 0x25, 0xfc, 0xd7, 0xe6, 0x9f, 0x4e, 0x7f, 0x46, 0x7f, 0x68, 0xc5, 0x14, 0x9e, 0xb9, 0x37, 0x1a, 0x98, 0xd8, 0xf2, 0x78, 0x41, 0x40, 0xad, 0x88, // syslinux-5.00/ldlinux.sys
|
0x22, 0x96, 0x82, 0xac, 0x61, 0xb8, 0x8b, 0x11, 0x25, 0xfc, 0xd7, 0xe6, 0x9f, 0x4e, 0x7f, 0x46, 0x7f, 0x68, 0xc5, 0x14, 0x9e, 0xb9, 0x37, 0x1a, 0x98, 0xd8, 0xf2, 0x78, 0x41, 0x40, 0xad, 0x88, // syslinux-5.00/ldlinux.sys
|
||||||
|
|
@ -51,6 +50,7 @@ static uint8_t sha256db[] = {
|
||||||
0x42, 0x23, 0x03, 0x86, 0x6d, 0xa1, 0xf2, 0xaf, 0x28, 0x25, 0x92, 0x29, 0x17, 0x21, 0xc7, 0x61, 0x23, 0xcf, 0xe9, 0x84, 0x05, 0xb7, 0x60, 0x2a, 0xc7, 0xe3, 0xe9, 0x5b, 0xf3, 0xcb, 0xd4, 0xba, // syslinux-6.00/ldlinux.c32
|
0x42, 0x23, 0x03, 0x86, 0x6d, 0xa1, 0xf2, 0xaf, 0x28, 0x25, 0x92, 0x29, 0x17, 0x21, 0xc7, 0x61, 0x23, 0xcf, 0xe9, 0x84, 0x05, 0xb7, 0x60, 0x2a, 0xc7, 0xe3, 0xe9, 0x5b, 0xf3, 0xcb, 0xd4, 0xba, // syslinux-6.00/ldlinux.c32
|
||||||
0x46, 0x48, 0xe8, 0x13, 0xd7, 0x54, 0x20, 0x39, 0x4e, 0xe6, 0x35, 0xd2, 0xa4, 0x78, 0x44, 0xeb, 0xdc, 0xc9, 0x98, 0xd3, 0x45, 0x8f, 0x95, 0xf9, 0x50, 0x80, 0x50, 0x9b, 0x88, 0x80, 0x44, 0x4a, // syslinux-6.03/pre17/ldlinux.sys
|
0x46, 0x48, 0xe8, 0x13, 0xd7, 0x54, 0x20, 0x39, 0x4e, 0xe6, 0x35, 0xd2, 0xa4, 0x78, 0x44, 0xeb, 0xdc, 0xc9, 0x98, 0xd3, 0x45, 0x8f, 0x95, 0xf9, 0x50, 0x80, 0x50, 0x9b, 0x88, 0x80, 0x44, 0x4a, // syslinux-6.03/pre17/ldlinux.sys
|
||||||
0x47, 0x0c, 0x04, 0x6d, 0xe8, 0x53, 0x5d, 0x46, 0x0e, 0x05, 0x63, 0x99, 0xa8, 0x89, 0x28, 0x0b, 0x25, 0x55, 0xf2, 0xb7, 0xbf, 0x89, 0x84, 0x9a, 0x7f, 0x27, 0xa4, 0x32, 0x72, 0xb5, 0x3f, 0x12, // syslinux-6.01/ldlinux.sys
|
0x47, 0x0c, 0x04, 0x6d, 0xe8, 0x53, 0x5d, 0x46, 0x0e, 0x05, 0x63, 0x99, 0xa8, 0x89, 0x28, 0x0b, 0x25, 0x55, 0xf2, 0xb7, 0xbf, 0x89, 0x84, 0x9a, 0x7f, 0x27, 0xa4, 0x32, 0x72, 0xb5, 0x3f, 0x12, // syslinux-6.01/ldlinux.sys
|
||||||
|
0x4c, 0x42, 0x56, 0x49, 0xae, 0xea, 0x45, 0xce, 0x84, 0x23, 0xc5, 0x14, 0xdf, 0x20, 0xf6, 0x86, 0x43, 0xeb, 0xcb, 0x42, 0xec, 0xa3, 0xd2, 0x9b, 0x70, 0x3a, 0x7c, 0xab, 0x1f, 0xe6, 0xc7, 0xd4, // grub4dos-0.4.6a/grldr
|
||||||
0x4d, 0xee, 0xc3, 0x47, 0xb0, 0xa3, 0x18, 0x46, 0x09, 0x42, 0xb2, 0xeb, 0x3e, 0xd1, 0x75, 0xcf, 0x3f, 0x8c, 0x3e, 0x8c, 0xe4, 0x3b, 0x14, 0xfc, 0x8e, 0x8f, 0x8c, 0x51, 0xcb, 0xa5, 0x5a, 0xdb, // syslinux-5.02/ldlinux.c32
|
0x4d, 0xee, 0xc3, 0x47, 0xb0, 0xa3, 0x18, 0x46, 0x09, 0x42, 0xb2, 0xeb, 0x3e, 0xd1, 0x75, 0xcf, 0x3f, 0x8c, 0x3e, 0x8c, 0xe4, 0x3b, 0x14, 0xfc, 0x8e, 0x8f, 0x8c, 0x51, 0xcb, 0xa5, 0x5a, 0xdb, // syslinux-5.02/ldlinux.c32
|
||||||
0x4e, 0xfb, 0x8f, 0xde, 0xb9, 0xe1, 0xe2, 0xa2, 0xc3, 0xf0, 0x11, 0xca, 0x77, 0x3b, 0x95, 0xf4, 0xb9, 0x7f, 0xbc, 0x7f, 0x3d, 0x40, 0x4d, 0x7c, 0x60, 0xf3, 0x4a, 0x61, 0x43, 0x44, 0x7e, 0x7f, // syslinux-5.01/ldlinux.c32
|
0x4e, 0xfb, 0x8f, 0xde, 0xb9, 0xe1, 0xe2, 0xa2, 0xc3, 0xf0, 0x11, 0xca, 0x77, 0x3b, 0x95, 0xf4, 0xb9, 0x7f, 0xbc, 0x7f, 0x3d, 0x40, 0x4d, 0x7c, 0x60, 0xf3, 0x4a, 0x61, 0x43, 0x44, 0x7e, 0x7f, // syslinux-5.01/ldlinux.c32
|
||||||
0x50, 0xca, 0xe9, 0x94, 0x79, 0x68, 0xdf, 0xa6, 0xd7, 0x11, 0xcd, 0xb0, 0x7d, 0x84, 0xf2, 0x56, 0x78, 0xd6, 0x69, 0xbf, 0xb0, 0x29, 0xaa, 0x56, 0xa1, 0x04, 0x55, 0xb0, 0xcd, 0x06, 0xca, 0xd2, // syslinux-6.03/pre3/ldlinux.sys
|
0x50, 0xca, 0xe9, 0x94, 0x79, 0x68, 0xdf, 0xa6, 0xd7, 0x11, 0xcd, 0xb0, 0x7d, 0x84, 0xf2, 0x56, 0x78, 0xd6, 0x69, 0xbf, 0xb0, 0x29, 0xaa, 0x56, 0xa1, 0x04, 0x55, 0xb0, 0xcd, 0x06, 0xca, 0xd2, // syslinux-6.03/pre3/ldlinux.sys
|
||||||
|
|
@ -70,7 +70,6 @@ static uint8_t sha256db[] = {
|
||||||
0x77, 0x9a, 0x5e, 0xbd, 0x69, 0xd3, 0x28, 0x5e, 0xb9, 0xed, 0x4a, 0xc7, 0xc0, 0x4d, 0x2d, 0x15, 0xcb, 0xa1, 0x8a, 0x1f, 0x97, 0xc7, 0xc4, 0xbe, 0x62, 0x48, 0x93, 0xa9, 0xe1, 0xb0, 0x89, 0x2e, // syslinux-6.03/pre9/ldlinux.sys
|
0x77, 0x9a, 0x5e, 0xbd, 0x69, 0xd3, 0x28, 0x5e, 0xb9, 0xed, 0x4a, 0xc7, 0xc0, 0x4d, 0x2d, 0x15, 0xcb, 0xa1, 0x8a, 0x1f, 0x97, 0xc7, 0xc4, 0xbe, 0x62, 0x48, 0x93, 0xa9, 0xe1, 0xb0, 0x89, 0x2e, // syslinux-6.03/pre9/ldlinux.sys
|
||||||
0x78, 0x64, 0x8e, 0xf0, 0xc5, 0x00, 0x41, 0x75, 0xb9, 0xa8, 0xea, 0x33, 0x30, 0x14, 0xea, 0x02, 0xc9, 0x17, 0xf8, 0x23, 0xe7, 0x7a, 0x3e, 0xc9, 0xac, 0xd9, 0xd2, 0x2b, 0x46, 0x02, 0xf3, 0x6d, // syslinux-6.03/pre13/ldlinux.sys
|
0x78, 0x64, 0x8e, 0xf0, 0xc5, 0x00, 0x41, 0x75, 0xb9, 0xa8, 0xea, 0x33, 0x30, 0x14, 0xea, 0x02, 0xc9, 0x17, 0xf8, 0x23, 0xe7, 0x7a, 0x3e, 0xc9, 0xac, 0xd9, 0xd2, 0x2b, 0x46, 0x02, 0xf3, 0x6d, // syslinux-6.03/pre13/ldlinux.sys
|
||||||
0x7d, 0xa9, 0xc5, 0x21, 0x76, 0xb8, 0xaf, 0x01, 0x64, 0xea, 0x39, 0x21, 0x22, 0x44, 0xb1, 0x0a, 0xa0, 0xc7, 0x97, 0xe7, 0x65, 0xbb, 0x6b, 0x92, 0x69, 0xb5, 0x8b, 0xc9, 0xe5, 0x0a, 0x9f, 0x18, // syslinux-5.01/ldlinux.bss
|
0x7d, 0xa9, 0xc5, 0x21, 0x76, 0xb8, 0xaf, 0x01, 0x64, 0xea, 0x39, 0x21, 0x22, 0x44, 0xb1, 0x0a, 0xa0, 0xc7, 0x97, 0xe7, 0x65, 0xbb, 0x6b, 0x92, 0x69, 0xb5, 0x8b, 0xc9, 0xe5, 0x0a, 0x9f, 0x18, // syslinux-5.01/ldlinux.bss
|
||||||
0x80, 0xea, 0x9a, 0xc3, 0xab, 0x09, 0xaf, 0x3f, 0xbe, 0x05, 0x6a, 0xf6, 0xd4, 0x8a, 0xf5, 0x2c, 0xdb, 0xa7, 0x36, 0xcb, 0xa5, 0xe2, 0x49, 0x63, 0x49, 0xd0, 0xe9, 0x31, 0xa7, 0x16, 0x9b, 0x11, // grub4dos-0.4.6a/grldr.mbr
|
|
||||||
0x82, 0x11, 0xfa, 0xe8, 0xaf, 0xf0, 0x23, 0x3f, 0x05, 0xa8, 0xb7, 0x8c, 0x58, 0x15, 0x25, 0xe2, 0x81, 0xac, 0x98, 0x23, 0x54, 0xa8, 0xc4, 0x3b, 0xb4, 0x96, 0x5e, 0x61, 0xdc, 0x98, 0xb4, 0x62, // syslinux-6.03/pre8/ldlinux.bss
|
0x82, 0x11, 0xfa, 0xe8, 0xaf, 0xf0, 0x23, 0x3f, 0x05, 0xa8, 0xb7, 0x8c, 0x58, 0x15, 0x25, 0xe2, 0x81, 0xac, 0x98, 0x23, 0x54, 0xa8, 0xc4, 0x3b, 0xb4, 0x96, 0x5e, 0x61, 0xdc, 0x98, 0xb4, 0x62, // syslinux-6.03/pre8/ldlinux.bss
|
||||||
0x83, 0x9b, 0xd0, 0x8a, 0xcb, 0x68, 0x47, 0xd6, 0x55, 0x07, 0xf1, 0x4e, 0x7a, 0x55, 0x6e, 0x91, 0xe6, 0x12, 0x9c, 0x47, 0x86, 0x3f, 0x7d, 0x61, 0xe2, 0xce, 0x6d, 0xb7, 0x8d, 0xf3, 0xd2, 0x3f, // syslinux-6.03/pre9/ldlinux.bss
|
0x83, 0x9b, 0xd0, 0x8a, 0xcb, 0x68, 0x47, 0xd6, 0x55, 0x07, 0xf1, 0x4e, 0x7a, 0x55, 0x6e, 0x91, 0xe6, 0x12, 0x9c, 0x47, 0x86, 0x3f, 0x7d, 0x61, 0xe2, 0xce, 0x6d, 0xb7, 0x8d, 0xf3, 0xd2, 0x3f, // syslinux-6.03/pre9/ldlinux.bss
|
||||||
0x87, 0xaa, 0x91, 0xf8, 0x7f, 0xba, 0x5f, 0x31, 0x79, 0x43, 0x08, 0xda, 0xa4, 0xa4, 0x8d, 0xad, 0x6c, 0xf6, 0xfa, 0x34, 0x26, 0x4d, 0x66, 0xb8, 0x84, 0xb8, 0xb9, 0xdc, 0x96, 0x42, 0xed, 0x86, // syslinux-5.02/ldlinux.sys
|
0x87, 0xaa, 0x91, 0xf8, 0x7f, 0xba, 0x5f, 0x31, 0x79, 0x43, 0x08, 0xda, 0xa4, 0xa4, 0x8d, 0xad, 0x6c, 0xf6, 0xfa, 0x34, 0x26, 0x4d, 0x66, 0xb8, 0x84, 0xb8, 0xb9, 0xdc, 0x96, 0x42, 0xed, 0x86, // syslinux-5.02/ldlinux.sys
|
||||||
|
|
@ -78,6 +77,7 @@ static uint8_t sha256db[] = {
|
||||||
0x8b, 0x93, 0x7e, 0x5e, 0x8b, 0xae, 0x5a, 0xf8, 0xc8, 0x95, 0x63, 0xc0, 0x0e, 0x9c, 0xaf, 0xc6, 0xcd, 0x7c, 0x2c, 0x80, 0x8a, 0xda, 0x7b, 0xf4, 0xad, 0x51, 0x08, 0xda, 0x3e, 0x51, 0xcd, 0x70, // grub-2.00-22/core.img
|
0x8b, 0x93, 0x7e, 0x5e, 0x8b, 0xae, 0x5a, 0xf8, 0xc8, 0x95, 0x63, 0xc0, 0x0e, 0x9c, 0xaf, 0xc6, 0xcd, 0x7c, 0x2c, 0x80, 0x8a, 0xda, 0x7b, 0xf4, 0xad, 0x51, 0x08, 0xda, 0x3e, 0x51, 0xcd, 0x70, // grub-2.00-22/core.img
|
||||||
0x8e, 0xc8, 0x42, 0x06, 0x94, 0x4c, 0xd4, 0x3d, 0xf6, 0xba, 0x83, 0x63, 0xc0, 0x81, 0xe4, 0xa0, 0x82, 0x9e, 0x71, 0x9a, 0xbf, 0x5a, 0x46, 0x6d, 0x7c, 0x81, 0x0c, 0x2f, 0x5b, 0x6d, 0x13, 0x75, // syslinux-6.03/pre5/ldlinux.sys
|
0x8e, 0xc8, 0x42, 0x06, 0x94, 0x4c, 0xd4, 0x3d, 0xf6, 0xba, 0x83, 0x63, 0xc0, 0x81, 0xe4, 0xa0, 0x82, 0x9e, 0x71, 0x9a, 0xbf, 0x5a, 0x46, 0x6d, 0x7c, 0x81, 0x0c, 0x2f, 0x5b, 0x6d, 0x13, 0x75, // syslinux-6.03/pre5/ldlinux.sys
|
||||||
0x95, 0x8d, 0x10, 0xbb, 0x87, 0x28, 0xcc, 0x1f, 0xf1, 0x6a, 0x12, 0xee, 0x6a, 0x60, 0x62, 0x40, 0xa6, 0xb7, 0x4d, 0xab, 0xa0, 0x2b, 0x8c, 0xb8, 0xed, 0x2a, 0xe8, 0x1c, 0x2f, 0xb2, 0x5b, 0x97, // syslinux-6.00/ldlinux.bss
|
0x95, 0x8d, 0x10, 0xbb, 0x87, 0x28, 0xcc, 0x1f, 0xf1, 0x6a, 0x12, 0xee, 0x6a, 0x60, 0x62, 0x40, 0xa6, 0xb7, 0x4d, 0xab, 0xa0, 0x2b, 0x8c, 0xb8, 0xed, 0x2a, 0xe8, 0x1c, 0x2f, 0xb2, 0x5b, 0x97, // syslinux-6.00/ldlinux.bss
|
||||||
|
0x97, 0x34, 0xdc, 0x05, 0x5e, 0x3d, 0xa6, 0xd0, 0xec, 0xe8, 0x86, 0xa1, 0xde, 0x5a, 0xe2, 0xb4, 0x81, 0xd5, 0xd4, 0xdf, 0x61, 0x52, 0xf7, 0x1e, 0x82, 0x5c, 0x99, 0x44, 0x03, 0x92, 0x92, 0xf0, // grub-2.03/core.img
|
||||||
0x9a, 0x0b, 0xc4, 0x1b, 0xd7, 0x95, 0xed, 0xb0, 0x83, 0x0f, 0x1c, 0xc4, 0x82, 0x4b, 0xfa, 0x9d, 0xe0, 0x9d, 0x68, 0x63, 0x92, 0x09, 0x4f, 0x5a, 0xe7, 0xfb, 0xac, 0xfb, 0xb0, 0x17, 0x9d, 0xa6, // syslinux-6.03/pre1/ldlinux.bss
|
0x9a, 0x0b, 0xc4, 0x1b, 0xd7, 0x95, 0xed, 0xb0, 0x83, 0x0f, 0x1c, 0xc4, 0x82, 0x4b, 0xfa, 0x9d, 0xe0, 0x9d, 0x68, 0x63, 0x92, 0x09, 0x4f, 0x5a, 0xe7, 0xfb, 0xac, 0xfb, 0xb0, 0x17, 0x9d, 0xa6, // syslinux-6.03/pre1/ldlinux.bss
|
||||||
0x9b, 0xcc, 0x65, 0x92, 0xa7, 0xba, 0x7e, 0x73, 0x38, 0xf4, 0xbb, 0xba, 0x27, 0xc6, 0x30, 0x16, 0xb9, 0x5e, 0xcb, 0x1e, 0xc6, 0x8c, 0x0b, 0xe9, 0xb6, 0x99, 0xb2, 0xea, 0x69, 0xcb, 0xab, 0xb2, // syslinux-5.00/ldlinux.c32
|
0x9b, 0xcc, 0x65, 0x92, 0xa7, 0xba, 0x7e, 0x73, 0x38, 0xf4, 0xbb, 0xba, 0x27, 0xc6, 0x30, 0x16, 0xb9, 0x5e, 0xcb, 0x1e, 0xc6, 0x8c, 0x0b, 0xe9, 0xb6, 0x99, 0xb2, 0xea, 0x69, 0xcb, 0xab, 0xb2, // syslinux-5.00/ldlinux.c32
|
||||||
0xa6, 0x82, 0x43, 0xa0, 0xf2, 0xe5, 0x90, 0xb8, 0x14, 0x02, 0xd6, 0xfa, 0x62, 0xd4, 0xfd, 0x30, 0x94, 0x8c, 0x00, 0x3d, 0xa1, 0x2b, 0xfe, 0xeb, 0x69, 0xba, 0x20, 0x34, 0x17, 0x27, 0x09, 0x4c, // syslinux-6.03/pre14/ldlinux.sys
|
0xa6, 0x82, 0x43, 0xa0, 0xf2, 0xe5, 0x90, 0xb8, 0x14, 0x02, 0xd6, 0xfa, 0x62, 0xd4, 0xfd, 0x30, 0x94, 0x8c, 0x00, 0x3d, 0xa1, 0x2b, 0xfe, 0xeb, 0x69, 0xba, 0x20, 0x34, 0x17, 0x27, 0x09, 0x4c, // syslinux-6.03/pre14/ldlinux.sys
|
||||||
|
|
@ -104,6 +104,7 @@ static uint8_t sha256db[] = {
|
||||||
0xec, 0xfd, 0xbc, 0x3f, 0x4f, 0x2e, 0x4d, 0x99, 0x16, 0x9c, 0xdd, 0xfb, 0x15, 0x2d, 0x92, 0x4d, 0x7d, 0xe6, 0x8a, 0xb6, 0x7f, 0x4d, 0x12, 0x54, 0x40, 0xfa, 0xbc, 0x9f, 0x00, 0x46, 0xd5, 0xbc, // syslinux-6.03/pre5/ldlinux.bss
|
0xec, 0xfd, 0xbc, 0x3f, 0x4f, 0x2e, 0x4d, 0x99, 0x16, 0x9c, 0xdd, 0xfb, 0x15, 0x2d, 0x92, 0x4d, 0x7d, 0xe6, 0x8a, 0xb6, 0x7f, 0x4d, 0x12, 0x54, 0x40, 0xfa, 0xbc, 0x9f, 0x00, 0x46, 0xd5, 0xbc, // syslinux-6.03/pre5/ldlinux.bss
|
||||||
0xee, 0xed, 0xc0, 0x4c, 0x13, 0x73, 0xb5, 0xc4, 0x04, 0x4d, 0x1f, 0xde, 0x0d, 0x2f, 0xb8, 0xe2, 0x8c, 0x74, 0xb1, 0x02, 0x9c, 0x99, 0xed, 0x67, 0x0a, 0x15, 0x98, 0x3f, 0x18, 0xa0, 0x4d, 0x36, // syslinux-6.02/ldlinux.c32
|
0xee, 0xed, 0xc0, 0x4c, 0x13, 0x73, 0xb5, 0xc4, 0x04, 0x4d, 0x1f, 0xde, 0x0d, 0x2f, 0xb8, 0xe2, 0x8c, 0x74, 0xb1, 0x02, 0x9c, 0x99, 0xed, 0x67, 0x0a, 0x15, 0x98, 0x3f, 0x18, 0xa0, 0x4d, 0x36, // syslinux-6.02/ldlinux.c32
|
||||||
0xf5, 0x40, 0x26, 0x1c, 0x09, 0x7d, 0xbd, 0x8a, 0x8a, 0x12, 0x9b, 0x68, 0x99, 0x5f, 0x33, 0xab, 0xe7, 0x1c, 0x29, 0x40, 0xf8, 0x87, 0xc6, 0x68, 0x9b, 0xf8, 0xdc, 0x3f, 0x1a, 0xcf, 0x0b, 0x44, // syslinux-6.03/pre17/ldlinux.bss
|
0xf5, 0x40, 0x26, 0x1c, 0x09, 0x7d, 0xbd, 0x8a, 0x8a, 0x12, 0x9b, 0x68, 0x99, 0x5f, 0x33, 0xab, 0xe7, 0x1c, 0x29, 0x40, 0xf8, 0x87, 0xc6, 0x68, 0x9b, 0xf8, 0xdc, 0x3f, 0x1a, 0xcf, 0x0b, 0x44, // syslinux-6.03/pre17/ldlinux.bss
|
||||||
|
0xf5, 0xc6, 0xe8, 0xe2, 0xc1, 0xeb, 0x73, 0x80, 0x28, 0x5f, 0xa9, 0xcb, 0x1c, 0x91, 0x68, 0xe9, 0x2d, 0x5b, 0x3b, 0x55, 0xcd, 0xe0, 0x52, 0xc0, 0x43, 0xba, 0x81, 0xed, 0x17, 0xb9, 0xac, 0xef, // grub4dos-0.4.6a/grldr.mbr
|
||||||
0xfb, 0x0a, 0x23, 0xca, 0x4d, 0x22, 0xfd, 0xd2, 0xad, 0x4e, 0xfa, 0x1b, 0x21, 0x08, 0xb6, 0x60, 0xd2, 0xff, 0xa3, 0xf2, 0xfb, 0xdd, 0x25, 0x32, 0xdc, 0xf1, 0x3f, 0x49, 0x33, 0x28, 0x46, 0x7b, // syslinux-6.03/pre11/ldlinux.bss
|
0xfb, 0x0a, 0x23, 0xca, 0x4d, 0x22, 0xfd, 0xd2, 0xad, 0x4e, 0xfa, 0x1b, 0x21, 0x08, 0xb6, 0x60, 0xd2, 0xff, 0xa3, 0xf2, 0xfb, 0xdd, 0x25, 0x32, 0xdc, 0xf1, 0x3f, 0x49, 0x33, 0x28, 0x46, 0x7b, // syslinux-6.03/pre11/ldlinux.bss
|
||||||
0xfb, 0x49, 0xfd, 0x45, 0x8c, 0xaf, 0x47, 0x5a, 0x16, 0x05, 0x5e, 0x4a, 0x75, 0x5a, 0xc3, 0xe3, 0x95, 0x52, 0xf4, 0xe9, 0x6c, 0xa2, 0x0d, 0xea, 0x53, 0xf5, 0xc4, 0x09, 0x2b, 0x68, 0xfd, 0x4f, // syslinux-6.00/ldlinux.sys
|
0xfb, 0x49, 0xfd, 0x45, 0x8c, 0xaf, 0x47, 0x5a, 0x16, 0x05, 0x5e, 0x4a, 0x75, 0x5a, 0xc3, 0xe3, 0x95, 0x52, 0xf4, 0xe9, 0x6c, 0xa2, 0x0d, 0xea, 0x53, 0xf5, 0xc4, 0x09, 0x2b, 0x68, 0xfd, 0x4f, // syslinux-6.00/ldlinux.sys
|
||||||
};
|
};
|
||||||
|
|
|
||||||
93
src/dev.c
93
src/dev.c
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Rufus: The Reliable USB Formatting Utility
|
* Rufus: The Reliable USB Formatting Utility
|
||||||
* Device detection and enumeration
|
* Device detection and enumeration
|
||||||
* Copyright © 2014-2017 Pete Batard <pete@akeo.ie>
|
* Copyright © 2014-2017 Pete Batard <pete@akeo.ie>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -42,7 +42,8 @@
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "dev.h"
|
#include "dev.h"
|
||||||
|
|
||||||
extern StrArray DriveID, DriveLabel;
|
extern StrArray DriveID, DriveLabel, DriveHub;
|
||||||
|
extern uint32_t DrivePort[MAX_DRIVES];
|
||||||
extern BOOL enable_HDDs, use_fake_units, enable_vmdk, usb_debug, list_non_usb_removable_drives;
|
extern BOOL enable_HDDs, use_fake_units, enable_vmdk, usb_debug, list_non_usb_removable_drives;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -123,6 +124,51 @@ out:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cycle port (reset) the selected device
|
||||||
|
*/
|
||||||
|
BOOL ResetDevice(int index)
|
||||||
|
{
|
||||||
|
static uint64_t LastReset = 0;
|
||||||
|
BOOL r = FALSE;
|
||||||
|
HANDLE handle = INVALID_HANDLE_VALUE;
|
||||||
|
DWORD size;
|
||||||
|
USB_CYCLE_PORT_PARAMS cycle_port;
|
||||||
|
|
||||||
|
// Wait at least 10 secs between resets
|
||||||
|
if (GetTickCount64() < LastReset + 10000ULL) {
|
||||||
|
uprintf("You must wait at least 10 seconds before trying to reset a device");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DriveHub.String[index] == NULL)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
LastReset = GetTickCount64();
|
||||||
|
|
||||||
|
handle = CreateFileA(DriveHub.String[index], GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
|
||||||
|
if (handle == INVALID_HANDLE_VALUE) {
|
||||||
|
uprintf("Could not open %s: %s", DriveHub.String[index], WindowsErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(&cycle_port, 0, sizeof(cycle_port));
|
||||||
|
size = sizeof(cycle_port);
|
||||||
|
cycle_port.ConnectionIndex = DrivePort[index];
|
||||||
|
uprintf("Cycling port %d (reset) on %s", DrivePort[index], DriveHub.String[index]);
|
||||||
|
// As per https://msdn.microsoft.com/en-us/library/windows/hardware/ff537340.aspx
|
||||||
|
// IOCTL_USB_HUB_CYCLE_PORT is not supported on Windows 7, Windows Vista, and Windows Server 2008
|
||||||
|
if (!DeviceIoControl(handle, IOCTL_USB_HUB_CYCLE_PORT, &cycle_port, size, &cycle_port, size, &size, NULL)) {
|
||||||
|
uprintf(" Failed to cycle port: %s", WindowsErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
r = TRUE;
|
||||||
|
|
||||||
|
out:
|
||||||
|
safe_closehandle(handle);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
static __inline BOOL IsVHD(const char* buffer)
|
static __inline BOOL IsVHD(const char* buffer)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -184,7 +230,7 @@ BOOL GetOpticalMedia(IMG_SAVE* img_save)
|
||||||
if (!SetupDiGetDeviceRegistryPropertyU(dev_info, &dev_info_data, SPDRP_FRIENDLYNAME,
|
if (!SetupDiGetDeviceRegistryPropertyU(dev_info, &dev_info_data, SPDRP_FRIENDLYNAME,
|
||||||
&datatype, (LPBYTE)str, sizeof(str), &size)) {
|
&datatype, (LPBYTE)str, sizeof(str), &size)) {
|
||||||
uprintf("SetupDiGetDeviceRegistryProperty (Friendly Name) failed: %s\n", WindowsErrorString());
|
uprintf("SetupDiGetDeviceRegistryProperty (Friendly Name) failed: %s\n", WindowsErrorString());
|
||||||
safe_strcpy(str, sizeof(str), "Generic Optical Drive");
|
static_strcpy(str, "Generic Optical Drive");
|
||||||
}
|
}
|
||||||
uprintf("Found '%s' optical device", str);
|
uprintf("Found '%s' optical device", str);
|
||||||
devint_data.cbSize = sizeof(devint_data);
|
devint_data.cbSize = sizeof(devint_data);
|
||||||
|
|
@ -245,7 +291,7 @@ BOOL GetOpticalMedia(IMG_SAVE* img_save)
|
||||||
label[k] = 0;
|
label[k] = 0;
|
||||||
img_save->Label = label;
|
img_save->Label = label;
|
||||||
}
|
}
|
||||||
safe_strcpy(str, sizeof(str), devint_detail_data->DevicePath);
|
static_strcpy(str, devint_detail_data->DevicePath);
|
||||||
img_save->DevicePath = str;
|
img_save->DevicePath = str;
|
||||||
img_save->DeviceSize = DiskGeometry->DiskSize.QuadPart;
|
img_save->DeviceSize = DiskGeometry->DiskSize.QuadPart;
|
||||||
safe_closehandle(hDrive);
|
safe_closehandle(hDrive);
|
||||||
|
|
@ -296,7 +342,7 @@ BOOL GetDevices(DWORD devnum)
|
||||||
// Oh, and we also have card devices (e.g. 'SCSI\DiskO2Micro_SD_...') under the SCSI enumerator...
|
// Oh, and we also have card devices (e.g. 'SCSI\DiskO2Micro_SD_...') under the SCSI enumerator...
|
||||||
const char* scsi_disk_prefix = "SCSI\\Disk";
|
const char* scsi_disk_prefix = "SCSI\\Disk";
|
||||||
const char* scsi_card_name[] = {
|
const char* scsi_card_name[] = {
|
||||||
"_SD_", "_MMC_", "_MS_", "_MSPro_", "_xDPicture_", "_O2Media_"
|
"_SD_", "_SDHC_", "_MMC_", "_MS_", "_MSPro_", "_xDPicture_", "_O2Media_"
|
||||||
};
|
};
|
||||||
const char* usb_speed_name[USB_SPEED_MAX] = { "USB", "USB 1.0", "USB 1.1", "USB 2.0", "USB 3.0" };
|
const char* usb_speed_name[USB_SPEED_MAX] = { "USB", "USB 1.0", "USB 1.1", "USB 2.0", "USB 3.0" };
|
||||||
// Hash table and String Array used to match a Device ID with the parent hub's Device Interface Path
|
// Hash table and String Array used to match a Device ID with the parent hub's Device Interface Path
|
||||||
|
|
@ -305,6 +351,7 @@ BOOL GetDevices(DWORD devnum)
|
||||||
char letter_name[] = " (?:)";
|
char letter_name[] = " (?:)";
|
||||||
char drive_name[] = "?:\\";
|
char drive_name[] = "?:\\";
|
||||||
char uefi_togo_check[] = "?:\\EFI\\Rufus\\ntfs_x64.efi";
|
char uefi_togo_check[] = "?:\\EFI\\Rufus\\ntfs_x64.efi";
|
||||||
|
char scsi_card_name_copy[16];
|
||||||
BOOL r = FALSE, found = FALSE, post_backslash;
|
BOOL r = FALSE, found = FALSE, post_backslash;
|
||||||
HDEVINFO dev_info = NULL;
|
HDEVINFO dev_info = NULL;
|
||||||
SP_DEVINFO_DATA dev_info_data;
|
SP_DEVINFO_DATA dev_info_data;
|
||||||
|
|
@ -318,12 +365,13 @@ BOOL GetDevices(DWORD devnum)
|
||||||
LONG maxwidth = 0;
|
LONG maxwidth = 0;
|
||||||
int s, score, drive_number, remove_drive;
|
int s, score, drive_number, remove_drive;
|
||||||
char drive_letters[27], *device_id, *devid_list = NULL, entry_msg[128];
|
char drive_letters[27], *device_id, *devid_list = NULL, entry_msg[128];
|
||||||
char *p, *label, *entry, buffer[MAX_PATH], str[MAX_PATH], *method_str;
|
char *p, *label, *entry, buffer[MAX_PATH], str[MAX_PATH], *method_str, *hub_path;
|
||||||
usb_device_props props;
|
usb_device_props props;
|
||||||
|
|
||||||
IGNORE_RETVAL(ComboBox_ResetContent(hDeviceList));
|
IGNORE_RETVAL(ComboBox_ResetContent(hDeviceList));
|
||||||
StrArrayClear(&DriveID);
|
StrArrayClear(&DriveID);
|
||||||
StrArrayClear(&DriveLabel);
|
StrArrayClear(&DriveLabel);
|
||||||
|
StrArrayClear(&DriveHub);
|
||||||
StrArrayCreate(&dev_if_path, 128);
|
StrArrayCreate(&dev_if_path, 128);
|
||||||
// Add a dummy for string index zero, as this is what non matching hashes will point to
|
// Add a dummy for string index zero, as this is what non matching hashes will point to
|
||||||
StrArrayAdd(&dev_if_path, "", TRUE);
|
StrArrayAdd(&dev_if_path, "", TRUE);
|
||||||
|
|
@ -384,9 +432,7 @@ BOOL GetDevices(DWORD devnum)
|
||||||
|
|
||||||
// Build a single list of Device IDs from all the storage enumerators we know of
|
// Build a single list of Device IDs from all the storage enumerators we know of
|
||||||
full_list_size = 0;
|
full_list_size = 0;
|
||||||
ulFlags = CM_GETIDLIST_FILTER_SERVICE;
|
ulFlags = CM_GETIDLIST_FILTER_SERVICE | CM_GETIDLIST_FILTER_PRESENT;
|
||||||
if (nWindowsVersion >= WINDOWS_7)
|
|
||||||
ulFlags |= CM_GETIDLIST_FILTER_PRESENT;
|
|
||||||
for (s=0; s<ARRAYSIZE(usbstor_name); s++) {
|
for (s=0; s<ARRAYSIZE(usbstor_name); s++) {
|
||||||
// Get a list of device IDs for all USB storage devices
|
// Get a list of device IDs for all USB storage devices
|
||||||
// This will be used to find if a device is UASP
|
// This will be used to find if a device is UASP
|
||||||
|
|
@ -451,6 +497,7 @@ BOOL GetDevices(DWORD devnum)
|
||||||
memset(buffer, 0, sizeof(buffer));
|
memset(buffer, 0, sizeof(buffer));
|
||||||
memset(&props, 0, sizeof(props));
|
memset(&props, 0, sizeof(props));
|
||||||
method_str = "";
|
method_str = "";
|
||||||
|
hub_path = NULL;
|
||||||
if (!SetupDiGetDeviceRegistryPropertyA(dev_info, &dev_info_data, SPDRP_ENUMERATOR_NAME,
|
if (!SetupDiGetDeviceRegistryPropertyA(dev_info, &dev_info_data, SPDRP_ENUMERATOR_NAME,
|
||||||
&datatype, (LPBYTE)buffer, sizeof(buffer), &size)) {
|
&datatype, (LPBYTE)buffer, sizeof(buffer), &size)) {
|
||||||
uprintf("SetupDiGetDeviceRegistryProperty (Enumerator Name) failed: %s\n", WindowsErrorString());
|
uprintf("SetupDiGetDeviceRegistryProperty (Enumerator Name) failed: %s\n", WindowsErrorString());
|
||||||
|
|
@ -490,7 +537,15 @@ BOOL GetDevices(DWORD devnum)
|
||||||
// Additional detection for SCSI card readers
|
// Additional detection for SCSI card readers
|
||||||
if ((!props.is_CARD) && (safe_strnicmp(buffer, scsi_disk_prefix, sizeof(scsi_disk_prefix)-1) == 0)) {
|
if ((!props.is_CARD) && (safe_strnicmp(buffer, scsi_disk_prefix, sizeof(scsi_disk_prefix)-1) == 0)) {
|
||||||
for (j = 0; j < ARRAYSIZE(scsi_card_name); j++) {
|
for (j = 0; j < ARRAYSIZE(scsi_card_name); j++) {
|
||||||
if (safe_strstr(buffer, scsi_card_name[j]) != NULL) {
|
static_strcpy(scsi_card_name_copy, scsi_card_name[j]);
|
||||||
|
if (safe_strstr(buffer, scsi_card_name_copy) != NULL) {
|
||||||
|
props.is_CARD = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// Also test for "_SD&" instead of "_SD_" and so on to allow for devices like
|
||||||
|
// "SCSI\DiskRicoh_Storage_SD&REV_3.0" to be detected.
|
||||||
|
scsi_card_name_copy[strlen(scsi_card_name_copy) - 1] = '&';
|
||||||
|
if (safe_strstr(buffer, scsi_card_name_copy) != NULL) {
|
||||||
props.is_CARD = TRUE;
|
props.is_CARD = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -507,7 +562,7 @@ BOOL GetDevices(DWORD devnum)
|
||||||
&datatype, (LPBYTE)buffer, sizeof(buffer), &size)) {
|
&datatype, (LPBYTE)buffer, sizeof(buffer), &size)) {
|
||||||
uprintf("SetupDiGetDeviceRegistryProperty (Friendly Name) failed: %s\n", WindowsErrorString());
|
uprintf("SetupDiGetDeviceRegistryProperty (Friendly Name) failed: %s\n", WindowsErrorString());
|
||||||
// We can afford a failure on this call - just replace the name with "USB Storage Device (Generic)"
|
// We can afford a failure on this call - just replace the name with "USB Storage Device (Generic)"
|
||||||
safe_strcpy(buffer, sizeof(buffer), lmprintf(MSG_045));
|
static_strcpy(buffer, lmprintf(MSG_045));
|
||||||
} else if ((!props.is_VHD) && (devid_list != NULL)) {
|
} else if ((!props.is_VHD) && (devid_list != NULL)) {
|
||||||
// Get the properties of the device. We could avoid doing this lookup every time by keeping
|
// Get the properties of the device. We could avoid doing this lookup every time by keeping
|
||||||
// a lookup table, but there shouldn't be that many USB storage devices connected...
|
// a lookup table, but there shouldn't be that many USB storage devices connected...
|
||||||
|
|
@ -575,12 +630,14 @@ BOOL GetDevices(DWORD devnum)
|
||||||
if ((uintptr_t)htab_devid.table[j].data > 0) {
|
if ((uintptr_t)htab_devid.table[j].data > 0) {
|
||||||
uuprintf(" Matched with Hub[%d]: '%s'", (uintptr_t)htab_devid.table[j].data,
|
uuprintf(" Matched with Hub[%d]: '%s'", (uintptr_t)htab_devid.table[j].data,
|
||||||
dev_if_path.String[(uintptr_t)htab_devid.table[j].data]);
|
dev_if_path.String[(uintptr_t)htab_devid.table[j].data]);
|
||||||
if (GetUSBProperties(dev_if_path.String[(uintptr_t)htab_devid.table[j].data], device_id, &props))
|
if (GetUSBProperties(dev_if_path.String[(uintptr_t)htab_devid.table[j].data], device_id, &props)) {
|
||||||
method_str = "";
|
method_str = "";
|
||||||
|
hub_path = dev_if_path.String[(uintptr_t)htab_devid.table[j].data];
|
||||||
|
}
|
||||||
#ifdef FORCED_DEVICE
|
#ifdef FORCED_DEVICE
|
||||||
props.vid = FORCED_VID;
|
props.vid = FORCED_VID;
|
||||||
props.pid = FORCED_PID;
|
props.pid = FORCED_PID;
|
||||||
safe_strcpy(buffer, sizeof(buffer), FORCED_NAME);
|
static_strcpy(buffer, FORCED_NAME);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -605,7 +662,7 @@ BOOL GetDevices(DWORD devnum)
|
||||||
uuprintf("Found non-USB non-removable device '%s' => Eliminated", buffer);
|
uuprintf("Found non-USB non-removable device '%s' => Eliminated", buffer);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
safe_strcpy(str, sizeof(str), "????:????"); // Couldn't figure VID:PID
|
static_strcpy(str, "????:????"); // Couldn't figure VID:PID
|
||||||
} else {
|
} else {
|
||||||
static_sprintf(str, "%04X:%04X", props.vid, props.pid);
|
static_sprintf(str, "%04X:%04X", props.vid, props.pid);
|
||||||
}
|
}
|
||||||
|
|
@ -731,14 +788,14 @@ BOOL GetDevices(DWORD devnum)
|
||||||
}
|
}
|
||||||
// We have multiple volumes assigned to the same device (multiple partitions)
|
// We have multiple volumes assigned to the same device (multiple partitions)
|
||||||
// If that is the case, use "Multiple Volumes" instead of the label
|
// If that is the case, use "Multiple Volumes" instead of the label
|
||||||
safe_strcpy(entry_msg, sizeof(entry_msg), (((drive_letters[0] != 0) && (drive_letters[1] != 0))?
|
static_strcpy(entry_msg, (((drive_letters[0] != 0) && (drive_letters[1] != 0))?
|
||||||
lmprintf(MSG_047):label));
|
lmprintf(MSG_047):label));
|
||||||
for (k=0, remove_drive=0; drive_letters[k] && (!remove_drive); k++) {
|
for (k=0, remove_drive=0; drive_letters[k] && (!remove_drive); k++) {
|
||||||
// Append all the drive letters we detected
|
// Append all the drive letters we detected
|
||||||
letter_name[2] = drive_letters[k];
|
letter_name[2] = drive_letters[k];
|
||||||
if (right_to_left_mode)
|
if (right_to_left_mode)
|
||||||
safe_strcat(entry_msg, sizeof(entry_msg), RIGHT_TO_LEFT_MARK);
|
static_strcat(entry_msg, RIGHT_TO_LEFT_MARK);
|
||||||
safe_strcat(entry_msg, sizeof(entry_msg), letter_name);
|
static_strcat(entry_msg, letter_name);
|
||||||
if (drive_letters[k] == (PathGetDriveNumberU(app_dir) + 'A'))
|
if (drive_letters[k] == (PathGetDriveNumberU(app_dir) + 'A'))
|
||||||
remove_drive = 1;
|
remove_drive = 1;
|
||||||
if (drive_letters[k] == (PathGetDriveNumberU(system_dir) + 'A'))
|
if (drive_letters[k] == (PathGetDriveNumberU(system_dir) + 'A'))
|
||||||
|
|
@ -760,6 +817,8 @@ BOOL GetDevices(DWORD devnum)
|
||||||
// Must ensure that the combo box is UNSORTED for indexes to be the same
|
// Must ensure that the combo box is UNSORTED for indexes to be the same
|
||||||
StrArrayAdd(&DriveID, buffer, TRUE);
|
StrArrayAdd(&DriveID, buffer, TRUE);
|
||||||
StrArrayAdd(&DriveLabel, label, TRUE);
|
StrArrayAdd(&DriveLabel, label, TRUE);
|
||||||
|
if ((hub_path != NULL) && (StrArrayAdd(&DriveHub, hub_path, TRUE) >= 0))
|
||||||
|
DrivePort[DriveHub.Index - 1] = props.port;
|
||||||
|
|
||||||
IGNORE_RETVAL(ComboBox_SetItemData(hDeviceList, ComboBox_AddStringU(hDeviceList, entry), drive_index));
|
IGNORE_RETVAL(ComboBox_SetItemData(hDeviceList, ComboBox_AddStringU(hDeviceList, entry), drive_index));
|
||||||
maxwidth = max(maxwidth, GetEntryWidth(hDeviceList, entry));
|
maxwidth = max(maxwidth, GetEntryWidth(hDeviceList, entry));
|
||||||
|
|
|
||||||
10
src/dev.h
10
src/dev.h
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Rufus: The Reliable USB Formatting Utility
|
* Rufus: The Reliable USB Formatting Utility
|
||||||
* Device listing
|
* Device listing
|
||||||
* Copyright © 2014-2016 Pete Batard <pete@akeo.ie>
|
* Copyright © 2014-2016 Pete Batard <pete@akeo.ie>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -106,9 +106,12 @@ DECLSPEC_IMPORT CONFIGRET WINAPI CM_Get_Sibling(PDEVINST pdnDevInst, DEVINST dnD
|
||||||
// This last one is unknown from MinGW32 and needs to be fetched from the DLL
|
// This last one is unknown from MinGW32 and needs to be fetched from the DLL
|
||||||
PF_TYPE_DECL(WINAPI, CONFIGRET, CM_Get_DevNode_Registry_PropertyA, (DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG));
|
PF_TYPE_DECL(WINAPI, CONFIGRET, CM_Get_DevNode_Registry_PropertyA, (DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG));
|
||||||
|
|
||||||
|
#define USB_HUB_CYCLE_PORT 273
|
||||||
#define USB_GET_NODE_CONNECTION_INFORMATION_EX 274
|
#define USB_GET_NODE_CONNECTION_INFORMATION_EX 274
|
||||||
#define USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 279
|
#define USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 279
|
||||||
|
|
||||||
|
#define IOCTL_USB_HUB_CYCLE_PORT \
|
||||||
|
CTL_CODE(FILE_DEVICE_USB, USB_HUB_CYCLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||||||
#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX \
|
#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX \
|
||||||
CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||||||
#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 \
|
#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 \
|
||||||
|
|
@ -172,6 +175,11 @@ typedef struct _USB_NODE_CONNECTION_INFORMATION_EX_V2 {
|
||||||
USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS Flags;
|
USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS Flags;
|
||||||
} USB_NODE_CONNECTION_INFORMATION_EX_V2, *PUSB_NODE_CONNECTION_INFORMATION_EX_V2;
|
} USB_NODE_CONNECTION_INFORMATION_EX_V2, *PUSB_NODE_CONNECTION_INFORMATION_EX_V2;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ULONG ConnectionIndex;
|
||||||
|
ULONG StatusReturned;
|
||||||
|
} USB_CYCLE_PORT_PARAMS;
|
||||||
|
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
const GUID _GUID_DEVINTERFACE_DISK =
|
const GUID _GUID_DEVINTERFACE_DISK =
|
||||||
|
|
|
||||||
14
src/dos.c
14
src/dos.c
|
|
@ -301,8 +301,8 @@ static BOOL ExtractMSDOS(const char* path)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
// Reduce the visible mess by placing all the locale files into a subdir
|
// Reduce the visible mess by placing all the locale files into a subdir
|
||||||
safe_strcpy(locale_path, sizeof(locale_path), path);
|
static_strcpy(locale_path, path);
|
||||||
safe_strcat(locale_path, sizeof(locale_path), "LOCALE\\");
|
static_strcat(locale_path, "LOCALE\\");
|
||||||
CreateDirectoryA(locale_path, NULL);
|
CreateDirectoryA(locale_path, NULL);
|
||||||
|
|
||||||
len = GetSystemDirectoryA(dllname, sizeof(dllname));
|
len = GetSystemDirectoryA(dllname, sizeof(dllname));
|
||||||
|
|
@ -310,7 +310,7 @@ static BOOL ExtractMSDOS(const char* path)
|
||||||
uprintf("Unable to get system directory: %s\n", WindowsErrorString());
|
uprintf("Unable to get system directory: %s\n", WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
safe_strcat(dllname, sizeof(dllname), "\\diskcopy.dll");
|
static_strcat(dllname, "\\diskcopy.dll");
|
||||||
hDLL = LoadLibraryA(dllname);
|
hDLL = LoadLibraryA(dllname);
|
||||||
if (hDLL == NULL) {
|
if (hDLL == NULL) {
|
||||||
uprintf("Unable to open %s: %s\n", dllname, WindowsErrorString());
|
uprintf("Unable to open %s: %s\n", dllname, WindowsErrorString());
|
||||||
|
|
@ -375,15 +375,15 @@ BOOL ExtractFreeDOS(const char* path)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reduce the visible mess by placing all the locale files into a subdir
|
// Reduce the visible mess by placing all the locale files into a subdir
|
||||||
safe_strcpy(locale_path, sizeof(locale_path), path);
|
static_strcpy(locale_path, path);
|
||||||
safe_strcat(locale_path, sizeof(locale_path), "LOCALE\\");
|
static_strcat(locale_path, "LOCALE\\");
|
||||||
CreateDirectoryA(locale_path, NULL);
|
CreateDirectoryA(locale_path, NULL);
|
||||||
|
|
||||||
for (i=0; i<ARRAYSIZE(res_name); i++) {
|
for (i=0; i<ARRAYSIZE(res_name); i++) {
|
||||||
res_data = (BYTE*)GetResource(hMainInstance, MAKEINTRESOURCEA(res_id[i]), _RT_RCDATA, res_name[i], &res_size, FALSE);
|
res_data = (BYTE*)GetResource(hMainInstance, MAKEINTRESOURCEA(res_id[i]), _RT_RCDATA, res_name[i], &res_size, FALSE);
|
||||||
|
|
||||||
safe_strcpy(filename, sizeof(filename), ((i<2)?path:locale_path));
|
static_strcpy(filename, ((i<2)?path:locale_path));
|
||||||
safe_strcat(filename, sizeof(filename), res_name[i]);
|
static_strcat(filename, res_name[i]);
|
||||||
|
|
||||||
hFile = CreateFileA(filename, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL,
|
hFile = CreateFileA(filename, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL,
|
||||||
CREATE_ALWAYS, (i<2)?(FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM):FILE_ATTRIBUTE_NORMAL, NULL);
|
CREATE_ALWAYS, (i<2)?(FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM):FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
|
|
|
||||||
|
|
@ -992,8 +992,8 @@ BOOL SetDOSLocale(const char* path, BOOL bFreeDOS)
|
||||||
|
|
||||||
if ((cp == 437) && (strcmp(kb, "us") == 0)) {
|
if ((cp == 437) && (strcmp(kb, "us") == 0)) {
|
||||||
// Nothing much to do if US/US - just notify in autoexec.bat
|
// Nothing much to do if US/US - just notify in autoexec.bat
|
||||||
safe_strcpy(filename, sizeof(filename), path);
|
static_strcpy(filename, path);
|
||||||
safe_strcat(filename, sizeof(filename), "\\AUTOEXEC.BAT");
|
static_strcat(filename, "\\AUTOEXEC.BAT");
|
||||||
fd = fopen(filename, "w+");
|
fd = fopen(filename, "w+");
|
||||||
if (fd == NULL) {
|
if (fd == NULL) {
|
||||||
uprintf("Unable to create 'AUTOEXEC.BAT': %s.\n", WindowsErrorString());
|
uprintf("Unable to create 'AUTOEXEC.BAT': %s.\n", WindowsErrorString());
|
||||||
|
|
@ -1008,8 +1008,8 @@ BOOL SetDOSLocale(const char* path, BOOL bFreeDOS)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CONFIG.SYS
|
// CONFIG.SYS
|
||||||
safe_strcpy(filename, sizeof(filename), path);
|
static_strcpy(filename, path);
|
||||||
safe_strcat(filename, sizeof(filename), "\\CONFIG.SYS");
|
static_strcat(filename, "\\CONFIG.SYS");
|
||||||
fd = fopen(filename, "w+");
|
fd = fopen(filename, "w+");
|
||||||
if (fd == NULL) {
|
if (fd == NULL) {
|
||||||
uprintf("Unable to create 'CONFIG.SYS': %s.\n", WindowsErrorString());
|
uprintf("Unable to create 'CONFIG.SYS': %s.\n", WindowsErrorString());
|
||||||
|
|
@ -1033,8 +1033,8 @@ BOOL SetDOSLocale(const char* path, BOOL bFreeDOS)
|
||||||
uprintf("Successfully wrote 'CONFIG.SYS'\n");
|
uprintf("Successfully wrote 'CONFIG.SYS'\n");
|
||||||
|
|
||||||
// AUTOEXEC.BAT
|
// AUTOEXEC.BAT
|
||||||
safe_strcpy(filename, sizeof(filename), path);
|
static_strcpy(filename, path);
|
||||||
safe_strcat(filename, sizeof(filename), "\\AUTOEXEC.BAT");
|
static_strcat(filename, "\\AUTOEXEC.BAT");
|
||||||
fd = fopen(filename, "w+");
|
fd = fopen(filename, "w+");
|
||||||
if (fd == NULL) {
|
if (fd == NULL) {
|
||||||
uprintf("Unable to create 'AUTOEXEC.BAT': %s.\n", WindowsErrorString());
|
uprintf("Unable to create 'AUTOEXEC.BAT': %s.\n", WindowsErrorString());
|
||||||
|
|
|
||||||
165
src/drive.c
165
src/drive.c
|
|
@ -120,8 +120,9 @@ BOOL GetAutoMount(BOOL* enabled)
|
||||||
static HANDLE GetHandle(char* Path, BOOL bLockDrive, BOOL bWriteAccess, BOOL bWriteShare)
|
static HANDLE GetHandle(char* Path, BOOL bLockDrive, BOOL bWriteAccess, BOOL bWriteShare)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
BOOL bSearchProcess = FALSE;
|
BYTE access_mask = 0;
|
||||||
DWORD size, EndTime;
|
DWORD size;
|
||||||
|
uint64_t EndTime;
|
||||||
HANDLE hDrive = INVALID_HANDLE_VALUE;
|
HANDLE hDrive = INVALID_HANDLE_VALUE;
|
||||||
char DevPath[MAX_PATH];
|
char DevPath[MAX_PATH];
|
||||||
|
|
||||||
|
|
@ -152,13 +153,13 @@ static HANDLE GetHandle(char* Path, BOOL bLockDrive, BOOL bWriteAccess, BOOL bWr
|
||||||
uprintf("Warning: Could not obtain exclusive rights. Retrying with write sharing enabled...");
|
uprintf("Warning: Could not obtain exclusive rights. Retrying with write sharing enabled...");
|
||||||
bWriteShare = TRUE;
|
bWriteShare = TRUE;
|
||||||
// Try to report the process that is locking the drive
|
// Try to report the process that is locking the drive
|
||||||
SearchProcess(DevPath, TRUE, TRUE);
|
// We also use bit 6 as a flag to indicate that SearchProcess was called.
|
||||||
bSearchProcess = TRUE;
|
access_mask = SearchProcess(DevPath, 5000, TRUE, TRUE, FALSE) | 0x40;
|
||||||
}
|
}
|
||||||
Sleep(DRIVE_ACCESS_TIMEOUT / DRIVE_ACCESS_RETRIES);
|
Sleep(DRIVE_ACCESS_TIMEOUT / DRIVE_ACCESS_RETRIES);
|
||||||
}
|
}
|
||||||
if (hDrive == INVALID_HANDLE_VALUE) {
|
if (hDrive == INVALID_HANDLE_VALUE) {
|
||||||
uprintf("Could not open %s: %s\n", Path, WindowsErrorString());
|
uprintf("Could not open %s: %s", Path, WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -168,24 +169,26 @@ static HANDLE GetHandle(char* Path, BOOL bLockDrive, BOOL bWriteAccess, BOOL bWr
|
||||||
|
|
||||||
if (bLockDrive) {
|
if (bLockDrive) {
|
||||||
if (DeviceIoControl(hDrive, FSCTL_ALLOW_EXTENDED_DASD_IO, NULL, 0, NULL, 0, &size, NULL)) {
|
if (DeviceIoControl(hDrive, FSCTL_ALLOW_EXTENDED_DASD_IO, NULL, 0, NULL, 0, &size, NULL)) {
|
||||||
uprintf("I/O boundary checks disabled\n");
|
uprintf("I/O boundary checks disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
uprintf("Requesting lock...");
|
uprintf("Requesting lock...");
|
||||||
EndTime = GetTickCount() + DRIVE_ACCESS_TIMEOUT;
|
EndTime = GetTickCount64() + DRIVE_ACCESS_TIMEOUT;
|
||||||
do {
|
do {
|
||||||
if (DeviceIoControl(hDrive, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &size, NULL))
|
if (DeviceIoControl(hDrive, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &size, NULL))
|
||||||
goto out;
|
goto out;
|
||||||
if (IS_ERROR(FormatStatus)) // User cancel
|
if (IS_ERROR(FormatStatus)) // User cancel
|
||||||
break;
|
break;
|
||||||
Sleep(DRIVE_ACCESS_TIMEOUT / DRIVE_ACCESS_RETRIES);
|
Sleep(DRIVE_ACCESS_TIMEOUT / DRIVE_ACCESS_RETRIES);
|
||||||
} while (GetTickCount() < EndTime);
|
} while (GetTickCount64() < EndTime);
|
||||||
// If we reached this section, either we didn't manage to get a lock or the user cancelled
|
// If we reached this section, either we didn't manage to get a lock or the user cancelled
|
||||||
uprintf("Could not lock access to %s: %s", Path, WindowsErrorString());
|
uprintf("Could not lock access to %s: %s", Path, WindowsErrorString());
|
||||||
// See if we can tell the user what processes are accessing the drive
|
// See if we can report the processes are accessing the drive
|
||||||
if (!IS_ERROR(FormatStatus) && !bSearchProcess)
|
if (!IS_ERROR(FormatStatus) && (access_mask == 0))
|
||||||
SearchProcess(DevPath, TRUE, TRUE);
|
access_mask = SearchProcess(DevPath, 5000, TRUE, TRUE, FALSE);
|
||||||
safe_closehandle(hDrive);
|
// Try to continue if the only access rights we saw were for read-only
|
||||||
|
if ((access_mask & 0x07) != 0x01)
|
||||||
|
safe_closehandle(hDrive);
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
@ -202,7 +205,7 @@ char* GetPhysicalName(DWORD DriveIndex)
|
||||||
char physical_name[24];
|
char physical_name[24];
|
||||||
|
|
||||||
CheckDriveIndex(DriveIndex);
|
CheckDriveIndex(DriveIndex);
|
||||||
safe_sprintf(physical_name, sizeof(physical_name), "\\\\.\\PHYSICALDRIVE%lu", DriveIndex);
|
static_sprintf(physical_name, "\\\\.\\PHYSICALDRIVE%lu", DriveIndex);
|
||||||
success = TRUE;
|
success = TRUE;
|
||||||
out:
|
out:
|
||||||
return (success)?safe_strdup(physical_name):NULL;
|
return (success)?safe_strdup(physical_name):NULL;
|
||||||
|
|
@ -245,13 +248,13 @@ char* GetLogicalName(DWORD DriveIndex, BOOL bKeepTrailingBackslash, BOOL bSilent
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
hVolume = FindFirstVolumeA(volume_name, sizeof(volume_name));
|
hVolume = FindFirstVolumeA(volume_name, sizeof(volume_name));
|
||||||
if (hVolume == INVALID_HANDLE_VALUE) {
|
if (hVolume == INVALID_HANDLE_VALUE) {
|
||||||
suprintf("Could not access first GUID volume: %s\n", WindowsErrorString());
|
suprintf("Could not access first GUID volume: %s", WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!FindNextVolumeA(hVolume, volume_name, sizeof(volume_name))) {
|
if (!FindNextVolumeA(hVolume, volume_name, sizeof(volume_name))) {
|
||||||
if (GetLastError() != ERROR_NO_MORE_FILES) {
|
if (GetLastError() != ERROR_NO_MORE_FILES) {
|
||||||
suprintf("Could not access next GUID volume: %s\n", WindowsErrorString());
|
suprintf("Could not access next GUID volume: %s", WindowsErrorString());
|
||||||
}
|
}
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
@ -260,7 +263,7 @@ char* GetLogicalName(DWORD DriveIndex, BOOL bKeepTrailingBackslash, BOOL bSilent
|
||||||
// Sanity checks
|
// Sanity checks
|
||||||
len = safe_strlen(volume_name);
|
len = safe_strlen(volume_name);
|
||||||
if ((len <= 1) || (safe_strnicmp(volume_name, volume_start, 4) != 0) || (volume_name[len-1] != '\\')) {
|
if ((len <= 1) || (safe_strnicmp(volume_name, volume_start, 4) != 0) || (volume_name[len-1] != '\\')) {
|
||||||
suprintf("'%s' is not a GUID volume name\n", volume_name);
|
suprintf("'%s' is not a GUID volume name", volume_name);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -271,27 +274,27 @@ char* GetLogicalName(DWORD DriveIndex, BOOL bKeepTrailingBackslash, BOOL bSilent
|
||||||
volume_name[len-1] = 0;
|
volume_name[len-1] = 0;
|
||||||
|
|
||||||
if (QueryDosDeviceA(&volume_name[4], path, sizeof(path)) == 0) {
|
if (QueryDosDeviceA(&volume_name[4], path, sizeof(path)) == 0) {
|
||||||
suprintf("Failed to get device path for GUID volume '%s': %s\n", volume_name, WindowsErrorString());
|
suprintf("Failed to get device path for GUID volume '%s': %s", volume_name, WindowsErrorString());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j=0; (j<ARRAYSIZE(ignore_device)) &&
|
for (j=0; (j<ARRAYSIZE(ignore_device)) &&
|
||||||
(_strnicmp(path, ignore_device[j], safe_strlen(ignore_device[j])) != 0); j++);
|
(_strnicmp(path, ignore_device[j], safe_strlen(ignore_device[j])) != 0); j++);
|
||||||
if (j < ARRAYSIZE(ignore_device)) {
|
if (j < ARRAYSIZE(ignore_device)) {
|
||||||
suprintf("Skipping GUID volume for '%s'\n", path);
|
suprintf("Skipping GUID volume for '%s'", path);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
hDrive = CreateFileA(volume_name, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE,
|
hDrive = CreateFileA(volume_name, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE,
|
||||||
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (hDrive == INVALID_HANDLE_VALUE) {
|
if (hDrive == INVALID_HANDLE_VALUE) {
|
||||||
suprintf("Could not open GUID volume '%s': %s\n", volume_name, WindowsErrorString());
|
suprintf("Could not open GUID volume '%s': %s", volume_name, WindowsErrorString());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!DeviceIoControl(hDrive, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0,
|
if ((!DeviceIoControl(hDrive, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0,
|
||||||
&DiskExtents, sizeof(DiskExtents), &size, NULL)) || (size <= 0)) {
|
&DiskExtents, sizeof(DiskExtents), &size, NULL)) || (size <= 0)) {
|
||||||
suprintf("Could not get Disk Extents: %s\n", WindowsErrorString());
|
suprintf("Could not get Disk Extents: %s", WindowsErrorString());
|
||||||
safe_closehandle(hDrive);
|
safe_closehandle(hDrive);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -313,12 +316,12 @@ out:
|
||||||
/* Wait for a logical drive to reappear - Used when a drive has just been repartitioned */
|
/* Wait for a logical drive to reappear - Used when a drive has just been repartitioned */
|
||||||
BOOL WaitForLogical(DWORD DriveIndex)
|
BOOL WaitForLogical(DWORD DriveIndex)
|
||||||
{
|
{
|
||||||
DWORD EndTime;
|
uint64_t EndTime;
|
||||||
char* LogicalPath = NULL;
|
char* LogicalPath = NULL;
|
||||||
|
|
||||||
// GetLogicalName() calls may be slow, so use the system time to
|
// GetLogicalName() calls may be slow, so use the system time to
|
||||||
// make sure we don't spend more than DRIVE_ACCESS_TIMEOUT in wait.
|
// make sure we don't spend more than DRIVE_ACCESS_TIMEOUT in wait.
|
||||||
EndTime = GetTickCount() + DRIVE_ACCESS_TIMEOUT;
|
EndTime = GetTickCount64() + DRIVE_ACCESS_TIMEOUT;
|
||||||
do {
|
do {
|
||||||
LogicalPath = GetLogicalName(DriveIndex, FALSE, TRUE);
|
LogicalPath = GetLogicalName(DriveIndex, FALSE, TRUE);
|
||||||
if (LogicalPath != NULL) {
|
if (LogicalPath != NULL) {
|
||||||
|
|
@ -328,8 +331,8 @@ BOOL WaitForLogical(DWORD DriveIndex)
|
||||||
if (IS_ERROR(FormatStatus)) // User cancel
|
if (IS_ERROR(FormatStatus)) // User cancel
|
||||||
return FALSE;
|
return FALSE;
|
||||||
Sleep(DRIVE_ACCESS_TIMEOUT/DRIVE_ACCESS_RETRIES);
|
Sleep(DRIVE_ACCESS_TIMEOUT/DRIVE_ACCESS_RETRIES);
|
||||||
} while (GetTickCount() < EndTime);
|
} while (GetTickCount64() < EndTime);
|
||||||
uprintf("Timeout while waiting for logical drive\n");
|
uprintf("Timeout while waiting for logical drive");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -344,7 +347,7 @@ HANDLE GetLogicalHandle(DWORD DriveIndex, BOOL bLockDrive, BOOL bWriteAccess, BO
|
||||||
char* LogicalPath = GetLogicalName(DriveIndex, FALSE, FALSE);
|
char* LogicalPath = GetLogicalName(DriveIndex, FALSE, FALSE);
|
||||||
|
|
||||||
if (LogicalPath == NULL) {
|
if (LogicalPath == NULL) {
|
||||||
uprintf("No logical drive found (unpartitioned?)\n");
|
uprintf("No logical drive found (unpartitioned?)");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -416,11 +419,11 @@ static BOOL _GetDriveLettersAndType(DWORD DriveIndex, char* drive_letters, UINT*
|
||||||
// always, as each drive string is at least 4 chars long anyway.
|
// always, as each drive string is at least 4 chars long anyway.
|
||||||
size = GetLogicalDriveStringsA(sizeof(drives), drives);
|
size = GetLogicalDriveStringsA(sizeof(drives), drives);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
uprintf("GetLogicalDriveStrings failed: %s\n", WindowsErrorString());
|
uprintf("GetLogicalDriveStrings failed: %s", WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (size > sizeof(drives)) {
|
if (size > sizeof(drives)) {
|
||||||
uprintf("GetLogicalDriveStrings: Buffer too small (required %d vs. %d)\n", size, sizeof(drives));
|
uprintf("GetLogicalDriveStrings: Buffer too small (required %d vs. %d)", size, sizeof(drives));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -429,9 +432,6 @@ static BOOL _GetDriveLettersAndType(DWORD DriveIndex, char* drive_letters, UINT*
|
||||||
if (!isalpha(*drive))
|
if (!isalpha(*drive))
|
||||||
continue;
|
continue;
|
||||||
*drive = (char)toupper((int)*drive);
|
*drive = (char)toupper((int)*drive);
|
||||||
if (*drive < 'C') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// IOCTL_STORAGE_GET_DEVICE_NUMBER's STORAGE_DEVICE_NUMBER.DeviceNumber is
|
// IOCTL_STORAGE_GET_DEVICE_NUMBER's STORAGE_DEVICE_NUMBER.DeviceNumber is
|
||||||
// not unique! An HDD, a DVD and probably other drives can have the same
|
// not unique! An HDD, a DVD and probably other drives can have the same
|
||||||
|
|
@ -442,11 +442,11 @@ static BOOL _GetDriveLettersAndType(DWORD DriveIndex, char* drive_letters, UINT*
|
||||||
if ((_drive_type != DRIVE_REMOVABLE) && (_drive_type != DRIVE_FIXED))
|
if ((_drive_type != DRIVE_REMOVABLE) && (_drive_type != DRIVE_FIXED))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
safe_sprintf(logical_drive, sizeof(logical_drive), "\\\\.\\%c:", drive[0]);
|
static_sprintf(logical_drive, "\\\\.\\%c:", drive[0]);
|
||||||
hDrive = CreateFileA(logical_drive, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE,
|
hDrive = CreateFileA(logical_drive, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE,
|
||||||
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (hDrive == INVALID_HANDLE_VALUE) {
|
if (hDrive == INVALID_HANDLE_VALUE) {
|
||||||
// uprintf("Warning: could not open drive %c: %s\n", drive[0], WindowsErrorString());
|
// uprintf("Warning: could not open drive %c: %s", drive[0], WindowsErrorString());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -492,15 +492,15 @@ char GetUnusedDriveLetter(void)
|
||||||
|
|
||||||
size = GetLogicalDriveStringsA(sizeof(drives), drives);
|
size = GetLogicalDriveStringsA(sizeof(drives), drives);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
uprintf("GetLogicalDriveStrings failed: %s\n", WindowsErrorString());
|
uprintf("GetLogicalDriveStrings failed: %s", WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (size > sizeof(drives)) {
|
if (size > sizeof(drives)) {
|
||||||
uprintf("GetLogicalDriveStrings: Buffer too small (required %d vs. %d)\n", size, sizeof(drives));
|
uprintf("GetLogicalDriveStrings: Buffer too small (required %d vs. %d)", size, sizeof(drives));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (drive_letter = 'C'; drive_letter < 'Z'; drive_letter++) {
|
for (drive_letter = 'C'; drive_letter <= 'Z'; drive_letter++) {
|
||||||
for (drive = drives ;*drive; drive += safe_strlen(drive)+1) {
|
for (drive = drives ;*drive; drive += safe_strlen(drive)+1) {
|
||||||
if (!isalpha(*drive))
|
if (!isalpha(*drive))
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -545,12 +545,12 @@ BOOL GetDriveLabel(DWORD DriveIndex, char* letters, char** label)
|
||||||
if (DeviceIoControl(hPhysical, IOCTL_STORAGE_CHECK_VERIFY, NULL, 0, NULL, 0, &size, NULL))
|
if (DeviceIoControl(hPhysical, IOCTL_STORAGE_CHECK_VERIFY, NULL, 0, NULL, 0, &size, NULL))
|
||||||
AutorunLabel = get_token_data_file("label", AutorunPath);
|
AutorunLabel = get_token_data_file("label", AutorunPath);
|
||||||
else if (GetLastError() == ERROR_NOT_READY)
|
else if (GetLastError() == ERROR_NOT_READY)
|
||||||
uprintf("Ignoring autorun.inf label for drive %c: %s\n", letters[0],
|
uprintf("Ignoring autorun.inf label for drive %c: %s", letters[0],
|
||||||
(HRESULT_CODE(GetLastError()) == ERROR_NOT_READY)?"No media":WindowsErrorString());
|
(HRESULT_CODE(GetLastError()) == ERROR_NOT_READY)?"No media":WindowsErrorString());
|
||||||
safe_closehandle(hPhysical);
|
safe_closehandle(hPhysical);
|
||||||
if (AutorunLabel != NULL) {
|
if (AutorunLabel != NULL) {
|
||||||
uprintf("Using autorun.inf label for drive %c: '%s'\n", letters[0], AutorunLabel);
|
uprintf("Using autorun.inf label for drive %c: '%s'", letters[0], AutorunLabel);
|
||||||
safe_strcpy(VolumeLabel, sizeof(VolumeLabel), AutorunLabel);
|
static_strcpy(VolumeLabel, AutorunLabel);
|
||||||
safe_free(AutorunLabel);
|
safe_free(AutorunLabel);
|
||||||
*label = VolumeLabel;
|
*label = VolumeLabel;
|
||||||
} else if (GetVolumeInformationU(DrivePath, VolumeLabel, ARRAYSIZE(VolumeLabel),
|
} else if (GetVolumeInformationU(DrivePath, VolumeLabel, ARRAYSIZE(VolumeLabel),
|
||||||
|
|
@ -631,17 +631,17 @@ BOOL AnalyzeMBR(HANDLE hPhysicalDrive, const char* TargetName)
|
||||||
set_bytes_per_sector(SelectedDrive.SectorSize);
|
set_bytes_per_sector(SelectedDrive.SectorSize);
|
||||||
|
|
||||||
if (!is_br(fp)) {
|
if (!is_br(fp)) {
|
||||||
uprintf("%s does not have an x86 %s\n", TargetName, mbr_name);
|
uprintf("%s does not have an x86 %s", TargetName, mbr_name);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
for (i=0; i<ARRAYSIZE(known_mbr); i++) {
|
for (i=0; i<ARRAYSIZE(known_mbr); i++) {
|
||||||
if (known_mbr[i].fn(fp)) {
|
if (known_mbr[i].fn(fp)) {
|
||||||
uprintf("%s has a %s %s\n", TargetName, known_mbr[i].str, mbr_name);
|
uprintf("%s has a %s %s", TargetName, known_mbr[i].str, mbr_name);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uprintf("%s has an unknown %s\n", TargetName, mbr_name);
|
uprintf("%s has an unknown %s", TargetName, mbr_name);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -667,20 +667,20 @@ BOOL AnalyzePBR(HANDLE hLogicalVolume)
|
||||||
set_bytes_per_sector(SelectedDrive.SectorSize);
|
set_bytes_per_sector(SelectedDrive.SectorSize);
|
||||||
|
|
||||||
if (!is_br(fp)) {
|
if (!is_br(fp)) {
|
||||||
uprintf("Volume does not have an x86 %s\n", pbr_name);
|
uprintf("Volume does not have an x86 %s", pbr_name);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_fat_16_br(fp) || is_fat_32_br(fp)) {
|
if (is_fat_16_br(fp) || is_fat_32_br(fp)) {
|
||||||
for (i=0; i<ARRAYSIZE(known_pbr); i++) {
|
for (i=0; i<ARRAYSIZE(known_pbr); i++) {
|
||||||
if (known_pbr[i].fn(fp)) {
|
if (known_pbr[i].fn(fp)) {
|
||||||
uprintf("Drive has a %s %s\n", known_pbr[i].str, pbr_name);
|
uprintf("Drive has a %s %s", known_pbr[i].str, pbr_name);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uprintf("Volume has an unknown FAT16 or FAT32 %s\n", pbr_name);
|
uprintf("Volume has an unknown FAT16 or FAT32 %s", pbr_name);
|
||||||
} else {
|
} else {
|
||||||
uprintf("Volume has an unknown %s\n", pbr_name);
|
uprintf("Volume has an unknown %s", pbr_name);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
@ -701,7 +701,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
PDRIVE_LAYOUT_INFORMATION_EX DriveLayout = (PDRIVE_LAYOUT_INFORMATION_EX)(void*)layout;
|
PDRIVE_LAYOUT_INFORMATION_EX DriveLayout = (PDRIVE_LAYOUT_INFORMATION_EX)(void*)layout;
|
||||||
char* volume_name;
|
char* volume_name;
|
||||||
char tmp[256];
|
char tmp[256];
|
||||||
DWORD i, j, big_floppy = FALSE;
|
DWORD i, j, super_floppy_disk = FALSE;
|
||||||
|
|
||||||
if (FileSystemName == NULL)
|
if (FileSystemName == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -711,7 +711,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
FileSystemName[0] = 0;
|
FileSystemName[0] = 0;
|
||||||
volume_name = GetLogicalName(DriveIndex, TRUE, FALSE);
|
volume_name = GetLogicalName(DriveIndex, TRUE, FALSE);
|
||||||
if ((volume_name == NULL) || (!GetVolumeInformationA(volume_name, NULL, 0, NULL, NULL, NULL, FileSystemName, FileSystemNameSize))) {
|
if ((volume_name == NULL) || (!GetVolumeInformationA(volume_name, NULL, 0, NULL, NULL, NULL, FileSystemName, FileSystemNameSize))) {
|
||||||
suprintf("No volume information for drive 0x%02x\n", DriveIndex);
|
suprintf("No volume information for drive 0x%02x", DriveIndex);
|
||||||
}
|
}
|
||||||
safe_free(volume_name);
|
safe_free(volume_name);
|
||||||
|
|
||||||
|
|
@ -722,7 +722,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,
|
r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,
|
||||||
NULL, 0, geometry, sizeof(geometry), &size, NULL);
|
NULL, 0, geometry, sizeof(geometry), &size, NULL);
|
||||||
if (!r || size <= 0) {
|
if (!r || size <= 0) {
|
||||||
suprintf("Could not get geometry for drive 0x%02x: %s\n", DriveIndex, WindowsErrorString());
|
suprintf("Could not get geometry for drive 0x%02x: %s", DriveIndex, WindowsErrorString());
|
||||||
safe_closehandle(hPhysical);
|
safe_closehandle(hPhysical);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -730,22 +730,22 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
SelectedDrive.SectorSize = DiskGeometry->Geometry.BytesPerSector;
|
SelectedDrive.SectorSize = DiskGeometry->Geometry.BytesPerSector;
|
||||||
SelectedDrive.FirstDataSector = MAXDWORD;
|
SelectedDrive.FirstDataSector = MAXDWORD;
|
||||||
if (SelectedDrive.SectorSize < 512) {
|
if (SelectedDrive.SectorSize < 512) {
|
||||||
suprintf("Warning: Drive 0x%02x reports a sector size of %d - Correcting to 512 bytes.\n",
|
suprintf("Warning: Drive 0x%02x reports a sector size of %d - Correcting to 512 bytes.",
|
||||||
DriveIndex, SelectedDrive.SectorSize);
|
DriveIndex, SelectedDrive.SectorSize);
|
||||||
SelectedDrive.SectorSize = 512;
|
SelectedDrive.SectorSize = 512;
|
||||||
}
|
}
|
||||||
SelectedDrive.SectorsPerTrack = DiskGeometry->Geometry.SectorsPerTrack;
|
SelectedDrive.SectorsPerTrack = DiskGeometry->Geometry.SectorsPerTrack;
|
||||||
SelectedDrive.MediaType = DiskGeometry->Geometry.MediaType;
|
SelectedDrive.MediaType = DiskGeometry->Geometry.MediaType;
|
||||||
|
|
||||||
suprintf("Disk type: %s, Sector Size: %d bytes\n", (SelectedDrive.MediaType == FixedMedia)?"FIXED":"Removable",
|
suprintf("Disk type: %s, Disk size: %s, Sector size: %d bytes", (SelectedDrive.MediaType == FixedMedia)?"FIXED":"Removable",
|
||||||
SelectedDrive.SectorSize);
|
SizeToHumanReadable(SelectedDrive.DiskSize, FALSE, TRUE), SelectedDrive.SectorSize);
|
||||||
suprintf("Cylinders: %" PRIi64 ", TracksPerCylinder: %d, SectorsPerTrack: %d\n",
|
suprintf("Cylinders: %" PRIi64 ", Tracks per cylinder: %d, Sectors per track: %d",
|
||||||
DiskGeometry->Geometry.Cylinders, DiskGeometry->Geometry.TracksPerCylinder, DiskGeometry->Geometry.SectorsPerTrack);
|
DiskGeometry->Geometry.Cylinders, DiskGeometry->Geometry.TracksPerCylinder, DiskGeometry->Geometry.SectorsPerTrack);
|
||||||
|
|
||||||
r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX,
|
r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX,
|
||||||
NULL, 0, layout, sizeof(layout), &size, NULL );
|
NULL, 0, layout, sizeof(layout), &size, NULL );
|
||||||
if (!r || size <= 0) {
|
if (!r || size <= 0) {
|
||||||
suprintf("Could not get layout for drive 0x%02x: %s\n", DriveIndex, WindowsErrorString());
|
suprintf("Could not get layout for drive 0x%02x: %s", DriveIndex, WindowsErrorString());
|
||||||
safe_closehandle(hPhysical);
|
safe_closehandle(hPhysical);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -766,11 +766,11 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
if ((DriveLayout->PartitionEntry[0].Mbr.PartitionType != PARTITION_ENTRY_UNUSED) &&
|
if ((DriveLayout->PartitionEntry[0].Mbr.PartitionType != PARTITION_ENTRY_UNUSED) &&
|
||||||
(DriveLayout->PartitionEntry[0].StartingOffset.QuadPart == 0LL)) {
|
(DriveLayout->PartitionEntry[0].StartingOffset.QuadPart == 0LL)) {
|
||||||
suprintf("Partition type: SFD (Super Floppy Disk) or Unpartitioned");
|
suprintf("Partition type: SFD (Super Floppy Disk) or Unpartitioned");
|
||||||
big_floppy = TRUE;
|
super_floppy_disk = TRUE;
|
||||||
} else {
|
} else {
|
||||||
suprintf("Partition type: MBR, NB Partitions: %d\n", SelectedDrive.nPartitions);
|
suprintf("Partition type: MBR, NB Partitions: %d", SelectedDrive.nPartitions);
|
||||||
SelectedDrive.has_mbr_uefi_marker = (DriveLayout->Mbr.Signature == MBR_UEFI_MARKER);
|
SelectedDrive.has_mbr_uefi_marker = (DriveLayout->Mbr.Signature == MBR_UEFI_MARKER);
|
||||||
suprintf("Disk ID: 0x%08X %s\n", DriveLayout->Mbr.Signature, SelectedDrive.has_mbr_uefi_marker ? "(UEFI target)" : "");
|
suprintf("Disk ID: 0x%08X %s", DriveLayout->Mbr.Signature, SelectedDrive.has_mbr_uefi_marker ? "(UEFI target)" : "");
|
||||||
AnalyzeMBR(hPhysical, "Drive");
|
AnalyzeMBR(hPhysical, "Drive");
|
||||||
}
|
}
|
||||||
for (i=0; i<DriveLayout->PartitionCount; i++) {
|
for (i=0; i<DriveLayout->PartitionCount; i++) {
|
||||||
|
|
@ -778,7 +778,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
part_type = DriveLayout->PartitionEntry[i].Mbr.PartitionType;
|
part_type = DriveLayout->PartitionEntry[i].Mbr.PartitionType;
|
||||||
isUefiNtfs = (i == 1) && (part_type == 0xef) &&
|
isUefiNtfs = (i == 1) && (part_type == 0xef) &&
|
||||||
(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart <= 1*MB);
|
(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart <= 1*MB);
|
||||||
suprintf("Partition %d%s:\n", i+(big_floppy?0:1), isUefiNtfs?" (UEFI:NTFS)":"");
|
suprintf("Partition %d%s:", i+(super_floppy_disk?0:1), isUefiNtfs?" (UEFI:NTFS)":"");
|
||||||
for (j=0; j<ARRAYSIZE(mbr_mountable); j++) {
|
for (j=0; j<ARRAYSIZE(mbr_mountable); j++) {
|
||||||
if (part_type == mbr_mountable[j]) {
|
if (part_type == mbr_mountable[j]) {
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
|
|
@ -787,7 +787,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
}
|
}
|
||||||
// NB: MinGW's gcc 4.9.2 broke "%lld" printout on XP so we use the inttypes.h "PRI##" qualifiers
|
// NB: MinGW's gcc 4.9.2 broke "%lld" printout on XP so we use the inttypes.h "PRI##" qualifiers
|
||||||
suprintf(" Type: %s (0x%02x)\r\n Size: %s (%" PRIi64 " bytes)\r\n Start Sector: %" PRIi64 ", Boot: %s",
|
suprintf(" Type: %s (0x%02x)\r\n Size: %s (%" PRIi64 " bytes)\r\n Start Sector: %" PRIi64 ", Boot: %s",
|
||||||
((part_type==0x07||big_floppy)&&(FileSystemName[0]!=0))?FileSystemName:GetPartitionType(part_type), big_floppy?0:part_type,
|
((part_type==0x07||super_floppy_disk)&&(FileSystemName[0]!=0))?FileSystemName:GetPartitionType(part_type), super_floppy_disk?0:part_type,
|
||||||
SizeToHumanReadable(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, TRUE, FALSE),
|
SizeToHumanReadable(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, TRUE, FALSE),
|
||||||
DriveLayout->PartitionEntry[i].PartitionLength.QuadPart,
|
DriveLayout->PartitionEntry[i].PartitionLength.QuadPart,
|
||||||
DriveLayout->PartitionEntry[i].StartingOffset.QuadPart / SelectedDrive.SectorSize,
|
DriveLayout->PartitionEntry[i].StartingOffset.QuadPart / SelectedDrive.SectorSize,
|
||||||
|
|
@ -804,17 +804,17 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
break;
|
break;
|
||||||
case PARTITION_STYLE_GPT:
|
case PARTITION_STYLE_GPT:
|
||||||
SelectedDrive.PartitionType = PARTITION_STYLE_GPT;
|
SelectedDrive.PartitionType = PARTITION_STYLE_GPT;
|
||||||
suprintf("Partition type: GPT, NB Partitions: %d\n", DriveLayout->PartitionCount);
|
suprintf("Partition type: GPT, NB Partitions: %d", DriveLayout->PartitionCount);
|
||||||
suprintf("Disk GUID: %s\n", GuidToString(&DriveLayout->Gpt.DiskId));
|
suprintf("Disk GUID: %s", GuidToString(&DriveLayout->Gpt.DiskId));
|
||||||
suprintf("Max parts: %d, Start Offset: %" PRIi64 ", Usable = %" PRIi64 " bytes\n",
|
suprintf("Max parts: %d, Start Offset: %" PRIi64 ", Usable = %" PRIi64 " bytes",
|
||||||
DriveLayout->Gpt.MaxPartitionCount, DriveLayout->Gpt.StartingUsableOffset.QuadPart, DriveLayout->Gpt.UsableLength.QuadPart);
|
DriveLayout->Gpt.MaxPartitionCount, DriveLayout->Gpt.StartingUsableOffset.QuadPart, DriveLayout->Gpt.UsableLength.QuadPart);
|
||||||
for (i=0; i<DriveLayout->PartitionCount; i++) {
|
for (i=0; i<DriveLayout->PartitionCount; i++) {
|
||||||
SelectedDrive.nPartitions++;
|
SelectedDrive.nPartitions++;
|
||||||
tmp[0] = 0;
|
tmp[0] = 0;
|
||||||
wchar_to_utf8_no_alloc(DriveLayout->PartitionEntry[i].Gpt.Name, tmp, sizeof(tmp));
|
wchar_to_utf8_no_alloc(DriveLayout->PartitionEntry[i].Gpt.Name, tmp, sizeof(tmp));
|
||||||
suprintf("Partition %d:\r\n Type: %s\r\n Name: '%s'\n", i+1,
|
suprintf("Partition %d:\r\n Type: %s\r\n Name: '%s'", i+1,
|
||||||
GuidToString(&DriveLayout->PartitionEntry[i].Gpt.PartitionType), tmp);
|
GuidToString(&DriveLayout->PartitionEntry[i].Gpt.PartitionType), tmp);
|
||||||
suprintf(" ID: %s\r\n Size: %s (%" PRIi64 " bytes)\r\n Start Sector: %" PRIi64 ", Attributes: 0x%016" PRIX64 "\n",
|
suprintf(" ID: %s\r\n Size: %s (%" PRIi64 " bytes)\r\n Start Sector: %" PRIi64 ", Attributes: 0x%016" PRIX64,
|
||||||
GuidToString(&DriveLayout->PartitionEntry[i].Gpt.PartitionId),
|
GuidToString(&DriveLayout->PartitionEntry[i].Gpt.PartitionId),
|
||||||
SizeToHumanReadable(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, TRUE, FALSE),
|
SizeToHumanReadable(DriveLayout->PartitionEntry[i].PartitionLength.QuadPart, TRUE, FALSE),
|
||||||
DriveLayout->PartitionEntry[i].PartitionLength,
|
DriveLayout->PartitionEntry[i].PartitionLength,
|
||||||
|
|
@ -827,14 +827,13 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
|
||||||
(CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_MSFT_RESERVED_GUID)) ||
|
(CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_MSFT_RESERVED_GUID)) ||
|
||||||
(CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_SYSTEM_GUID)) )
|
(CompareGUID(&DriveLayout->PartitionEntry[i].Gpt.PartitionType, &PARTITION_SYSTEM_GUID)) )
|
||||||
--SelectedDrive.nPartitions;
|
--SelectedDrive.nPartitions;
|
||||||
if ( (memcmp(&PARTITION_BASIC_DATA_GUID, &DriveLayout->PartitionEntry[i].Gpt.PartitionType, sizeof(GUID)) == 0) &&
|
if (memcmp(&PARTITION_BASIC_DATA_GUID, &DriveLayout->PartitionEntry[i].Gpt.PartitionType, sizeof(GUID)) == 0)
|
||||||
(nWindowsVersion >= WINDOWS_VISTA) )
|
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SelectedDrive.PartitionType = PARTITION_STYLE_MBR;
|
SelectedDrive.PartitionType = PARTITION_STYLE_MBR;
|
||||||
suprintf("Partition type: RAW\n");
|
suprintf("Partition type: RAW");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
|
|
@ -858,12 +857,12 @@ static BOOL FlushDrive(char drive_letter)
|
||||||
hDrive = CreateFileA(logical_drive, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
|
hDrive = CreateFileA(logical_drive, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
|
||||||
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (hDrive == INVALID_HANDLE_VALUE) {
|
if (hDrive == INVALID_HANDLE_VALUE) {
|
||||||
uprintf("Failed to open %c: for flushing: %s\n", drive_letter, WindowsErrorString());
|
uprintf("Failed to open %c: for flushing: %s", drive_letter, WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
r = FlushFileBuffers(hDrive);
|
r = FlushFileBuffers(hDrive);
|
||||||
if (r == FALSE)
|
if (r == FALSE)
|
||||||
uprintf("Failed to flush %c: %s\n", drive_letter, WindowsErrorString());
|
uprintf("Failed to flush %c: %s", drive_letter, WindowsErrorString());
|
||||||
|
|
||||||
out:
|
out:
|
||||||
safe_closehandle(hDrive);
|
safe_closehandle(hDrive);
|
||||||
|
|
@ -878,7 +877,7 @@ BOOL UnmountVolume(HANDLE hDrive)
|
||||||
DWORD size;
|
DWORD size;
|
||||||
|
|
||||||
if (!DeviceIoControl(hDrive, FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0, &size, NULL)) {
|
if (!DeviceIoControl(hDrive, FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0, &size, NULL)) {
|
||||||
uprintf("Could not unmount drive: %s\n", WindowsErrorString());
|
uprintf("Could not unmount drive: %s", WindowsErrorString());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
@ -900,7 +899,7 @@ BOOL MountVolume(char* drive_name, char *drive_guid)
|
||||||
// than the one we want. If that's the case, we need to unmount first.
|
// than the one we want. If that's the case, we need to unmount first.
|
||||||
if ( (GetVolumePathNamesForVolumeNameA(drive_guid, mounted_letter, sizeof(mounted_letter), &size))
|
if ( (GetVolumePathNamesForVolumeNameA(drive_guid, mounted_letter, sizeof(mounted_letter), &size))
|
||||||
&& (size > 1) && (mounted_letter[0] != drive_name[0]) ) {
|
&& (size > 1) && (mounted_letter[0] != drive_name[0]) ) {
|
||||||
uprintf("Volume is already mounted, but as %c: instead of %c: - Unmounting...\n", mounted_letter[0], drive_name[0]);
|
uprintf("Volume is already mounted, but as %c: instead of %c: - Unmounting...", mounted_letter[0], drive_name[0]);
|
||||||
if (!DeleteVolumeMountPointA(mounted_letter))
|
if (!DeleteVolumeMountPointA(mounted_letter))
|
||||||
uprintf("Failed to unmount volume: %s", WindowsErrorString());
|
uprintf("Failed to unmount volume: %s", WindowsErrorString());
|
||||||
// Also delete the destination mountpoint if needed (Don't care about errors)
|
// Also delete the destination mountpoint if needed (Don't care about errors)
|
||||||
|
|
@ -913,16 +912,16 @@ BOOL MountVolume(char* drive_name, char *drive_guid)
|
||||||
// with ERROR_DIR_NOT_EMPTY. If that's the case, just check that mountpoints match
|
// with ERROR_DIR_NOT_EMPTY. If that's the case, just check that mountpoints match
|
||||||
if (GetLastError() == ERROR_DIR_NOT_EMPTY) {
|
if (GetLastError() == ERROR_DIR_NOT_EMPTY) {
|
||||||
if (!GetVolumeNameForVolumeMountPointA(drive_name, mounted_guid, sizeof(mounted_guid))) {
|
if (!GetVolumeNameForVolumeMountPointA(drive_name, mounted_guid, sizeof(mounted_guid))) {
|
||||||
uprintf("%s already mounted, but volume GUID could not be checked: %s\n",
|
uprintf("%s already mounted, but volume GUID could not be checked: %s",
|
||||||
drive_name, WindowsErrorString());
|
drive_name, WindowsErrorString());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (safe_strcmp(drive_guid, mounted_guid) != 0) {
|
if (safe_strcmp(drive_guid, mounted_guid) != 0) {
|
||||||
uprintf("%s already mounted, but volume GUID doesn't match:\r\n expected %s, got %s\n",
|
uprintf("%s already mounted, but volume GUID doesn't match:\r\n expected %s, got %s",
|
||||||
drive_name, drive_guid, mounted_guid);
|
drive_name, drive_guid, mounted_guid);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
uprintf("%s was already mounted as %s\n", drive_guid, drive_name);
|
uprintf("%s was already mounted as %s", drive_guid, drive_name);
|
||||||
} else {
|
} else {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
@ -1076,7 +1075,7 @@ typedef struct _DRIVE_LAYOUT_INFORMATION_EX4 {
|
||||||
*/
|
*/
|
||||||
BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL mbr_uefi_marker, uint8_t extra_partitions)
|
BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL mbr_uefi_marker, uint8_t extra_partitions)
|
||||||
{
|
{
|
||||||
const char* PartitionTypeName[2] = { "MBR", "GPT" };
|
const char* PartitionTypeName[] = { "MBR", "GPT", "SFD" };
|
||||||
unsigned char* buffer;
|
unsigned char* buffer;
|
||||||
size_t uefi_ntfs_size = 0;
|
size_t uefi_ntfs_size = 0;
|
||||||
CREATE_DISK CreateDisk = {PARTITION_STYLE_RAW, {{0}}};
|
CREATE_DISK CreateDisk = {PARTITION_STYLE_RAW, {{0}}};
|
||||||
|
|
@ -1088,6 +1087,10 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m
|
||||||
|
|
||||||
PrintInfoDebug(0, MSG_238, PartitionTypeName[partition_style]);
|
PrintInfoDebug(0, MSG_238, PartitionTypeName[partition_style]);
|
||||||
|
|
||||||
|
if (partition_style == PARTITION_STYLE_SFD)
|
||||||
|
// Nothing to do
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
if (extra_partitions & XP_UEFI_NTFS) {
|
if (extra_partitions & XP_UEFI_NTFS) {
|
||||||
uefi_ntfs_size = GetResourceSize(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_NTFS), _RT_RCDATA, "uefi-ntfs.img");
|
uefi_ntfs_size = GetResourceSize(hMainInstance, MAKEINTRESOURCEA(IDR_UEFI_NTFS), _RT_RCDATA, "uefi-ntfs.img");
|
||||||
if (uefi_ntfs_size == 0)
|
if (uefi_ntfs_size == 0)
|
||||||
|
|
@ -1176,7 +1179,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m
|
||||||
DriveLayoutEx.PartitionEntry[pn].Mbr.PartitionType = 0x0c; // FAT32 LBA
|
DriveLayoutEx.PartitionEntry[pn].Mbr.PartitionType = 0x0c; // FAT32 LBA
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
uprintf("Unsupported file system\n");
|
uprintf("Unsupported file system");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1239,7 +1242,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m
|
||||||
// This helps us reselect the partition scheme option that was used when creating the
|
// This helps us reselect the partition scheme option that was used when creating the
|
||||||
// drive in Rufus. As far as I can tell, Windows doesn't care much if this signature
|
// drive in Rufus. As far as I can tell, Windows doesn't care much if this signature
|
||||||
// isn't unique for USB drives.
|
// isn't unique for USB drives.
|
||||||
CreateDisk.Mbr.Signature = mbr_uefi_marker?MBR_UEFI_MARKER:(DWORD)_GetTickCount64();
|
CreateDisk.Mbr.Signature = mbr_uefi_marker?MBR_UEFI_MARKER:(DWORD)GetTickCount64();
|
||||||
|
|
||||||
DriveLayoutEx.PartitionStyle = PARTITION_STYLE_MBR;
|
DriveLayoutEx.PartitionStyle = PARTITION_STYLE_MBR;
|
||||||
DriveLayoutEx.PartitionCount = 4; // Must be multiple of 4 for MBR
|
DriveLayoutEx.PartitionCount = 4; // Must be multiple of 4 for MBR
|
||||||
|
|
@ -1271,14 +1274,14 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m
|
||||||
size = sizeof(CreateDisk);
|
size = sizeof(CreateDisk);
|
||||||
r = DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK, (BYTE*)&CreateDisk, size, NULL, 0, &size, NULL );
|
r = DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK, (BYTE*)&CreateDisk, size, NULL, 0, &size, NULL );
|
||||||
if (!r) {
|
if (!r) {
|
||||||
uprintf("Could not reset disk: %s\n", WindowsErrorString());
|
uprintf("Could not reset disk: %s", WindowsErrorString());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
size = sizeof(DriveLayoutEx) - ((partition_style == PARTITION_STYLE_GPT)?((4-pn)*sizeof(PARTITION_INFORMATION_EX)):0);
|
size = sizeof(DriveLayoutEx) - ((partition_style == PARTITION_STYLE_GPT)?((4-pn)*sizeof(PARTITION_INFORMATION_EX)):0);
|
||||||
r = DeviceIoControl(hDrive, IOCTL_DISK_SET_DRIVE_LAYOUT_EX, (BYTE*)&DriveLayoutEx, size, NULL, 0, &size, NULL );
|
r = DeviceIoControl(hDrive, IOCTL_DISK_SET_DRIVE_LAYOUT_EX, (BYTE*)&DriveLayoutEx, size, NULL, 0, &size, NULL );
|
||||||
if (!r) {
|
if (!r) {
|
||||||
uprintf("Could not set drive layout: %s\n", WindowsErrorString());
|
uprintf("Could not set drive layout: %s", WindowsErrorString());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1296,7 +1299,7 @@ BOOL RefreshDriveLayout(HANDLE hDrive)
|
||||||
// Diskpart does call the following IOCTL this after updating the partition table, so we do too
|
// Diskpart does call the following IOCTL this after updating the partition table, so we do too
|
||||||
r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &size, NULL );
|
r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &size, NULL );
|
||||||
if (!r)
|
if (!r)
|
||||||
uprintf("Could not refresh drive layout: %s\n", WindowsErrorString());
|
uprintf("Could not refresh drive layout: %s", WindowsErrorString());
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1313,14 +1316,14 @@ BOOL InitializeDisk(HANDLE hDrive)
|
||||||
r = DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK,
|
r = DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK,
|
||||||
(BYTE*)&CreateDisk, size, NULL, 0, &size, NULL );
|
(BYTE*)&CreateDisk, size, NULL, 0, &size, NULL );
|
||||||
if (!r) {
|
if (!r) {
|
||||||
uprintf("Could not delete drive layout: %s\n", WindowsErrorString());
|
uprintf("Could not delete drive layout: %s", WindowsErrorString());
|
||||||
safe_closehandle(hDrive);
|
safe_closehandle(hDrive);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &size, NULL );
|
r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &size, NULL );
|
||||||
if (!r) {
|
if (!r) {
|
||||||
uprintf("Could not refresh drive layout: %s\n", WindowsErrorString());
|
uprintf("Could not refresh drive layout: %s", WindowsErrorString());
|
||||||
safe_closehandle(hDrive);
|
safe_closehandle(hDrive);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
108
src/format.c
108
src/format.c
|
|
@ -607,8 +607,8 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
|
|
||||||
format_percent = 0.0f;
|
format_percent = 0.0f;
|
||||||
for (i=0; i<(SystemAreaSize+BurstSize-1); i+=BurstSize) {
|
for (i=0; i<(SystemAreaSize+BurstSize-1); i+=BurstSize) {
|
||||||
if (_GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
if (GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
||||||
LastRefresh = _GetTickCount64();
|
LastRefresh = GetTickCount64();
|
||||||
format_percent = (100.0f*i)/(1.0f*(SystemAreaSize+BurstSize));
|
format_percent = (100.0f*i)/(1.0f*(SystemAreaSize+BurstSize));
|
||||||
PrintInfo(0, MSG_217, format_percent);
|
PrintInfo(0, MSG_217, format_percent);
|
||||||
UpdateProgress(OP_FORMAT, format_percent);
|
UpdateProgress(OP_FORMAT, format_percent);
|
||||||
|
|
@ -712,8 +712,8 @@ static BOOL FormatDrive(DWORD DriveIndex)
|
||||||
|
|
||||||
// Check if Windows picked the UEFI:NTFS partition
|
// Check if Windows picked the UEFI:NTFS partition
|
||||||
// NB: No need to do this for Large FAT32, as this only applies to NTFS
|
// NB: No need to do this for Large FAT32, as this only applies to NTFS
|
||||||
safe_strcpy(path, MAX_PATH, VolumeName);
|
static_strcpy(path, VolumeName);
|
||||||
safe_strcat(path, MAX_PATH, "EFI\\Rufus\\ntfs_x64.efi");
|
static_strcat(path, "EFI\\Rufus\\ntfs_x64.efi");
|
||||||
if (PathFileExistsA(path)) {
|
if (PathFileExistsA(path)) {
|
||||||
uprintf("Windows selected the UEFI:NTFS partition for formatting - Retry needed", VolumeName);
|
uprintf("Windows selected the UEFI:NTFS partition for formatting - Retry needed", VolumeName);
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_RETRY;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_RETRY;
|
||||||
|
|
@ -1167,16 +1167,16 @@ static BOOL SetupWinPE(char drive_letter)
|
||||||
|
|
||||||
index = ((img_report.winpe&WINPE_I386) == WINPE_I386)?0:1;
|
index = ((img_report.winpe&WINPE_I386) == WINPE_I386)?0:1;
|
||||||
// Allow other values than harddisk 1, as per user choice for disk ID
|
// Allow other values than harddisk 1, as per user choice for disk ID
|
||||||
safe_sprintf(setupsrcdev, sizeof(setupsrcdev),
|
static_sprintf(setupsrcdev, "SetupSourceDevice = \"\\device\\harddisk%d\\partition1\"",
|
||||||
"SetupSourceDevice = \"\\device\\harddisk%d\\partition1\"", ComboBox_GetCurSel(hDiskID));
|
ComboBox_GetCurSel(hDiskID));
|
||||||
// Copy of ntdetect.com in root
|
// Copy of ntdetect.com in root
|
||||||
safe_sprintf(src, sizeof(src), "%c:\\%s\\ntdetect.com", drive_letter, basedir[index]);
|
static_sprintf(src, "%c:\\%s\\ntdetect.com", drive_letter, basedir[index]);
|
||||||
safe_sprintf(dst, sizeof(dst), "%c:\\ntdetect.com", drive_letter);
|
static_sprintf(dst, "%c:\\ntdetect.com", drive_letter);
|
||||||
CopyFileA(src, dst, TRUE);
|
CopyFileA(src, dst, TRUE);
|
||||||
if (!img_report.uses_minint) {
|
if (!img_report.uses_minint) {
|
||||||
// Create a copy of txtsetup.sif, as we want to keep the i386 files unmodified
|
// Create a copy of txtsetup.sif, as we want to keep the i386 files unmodified
|
||||||
safe_sprintf(src, sizeof(src), "%c:\\%s\\txtsetup.sif", drive_letter, basedir[index]);
|
static_sprintf(src, "%c:\\%s\\txtsetup.sif", drive_letter, basedir[index]);
|
||||||
safe_sprintf(dst, sizeof(dst), "%c:\\txtsetup.sif", drive_letter);
|
static_sprintf(dst, "%c:\\txtsetup.sif", drive_letter);
|
||||||
if (!CopyFileA(src, dst, TRUE)) {
|
if (!CopyFileA(src, dst, TRUE)) {
|
||||||
uprintf("Did not copy %s as %s: %s\n", src, dst, WindowsErrorString());
|
uprintf("Did not copy %s as %s: %s\n", src, dst, WindowsErrorString());
|
||||||
}
|
}
|
||||||
|
|
@ -1187,8 +1187,8 @@ static BOOL SetupWinPE(char drive_letter)
|
||||||
uprintf("Successfully added '%s' to %s\n", setupsrcdev, dst);
|
uprintf("Successfully added '%s' to %s\n", setupsrcdev, dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
safe_sprintf(src, sizeof(src), "%c:\\%s\\setupldr.bin", drive_letter, basedir[index]);
|
static_sprintf(src, "%c:\\%s\\setupldr.bin", drive_letter, basedir[index]);
|
||||||
safe_sprintf(dst, sizeof(dst), "%c:\\BOOTMGR", drive_letter);
|
static_sprintf(dst, "%c:\\BOOTMGR", drive_letter);
|
||||||
if (!CopyFileA(src, dst, TRUE)) {
|
if (!CopyFileA(src, dst, TRUE)) {
|
||||||
uprintf("Did not copy %s as %s: %s\n", src, dst, WindowsErrorString());
|
uprintf("Did not copy %s as %s: %s\n", src, dst, WindowsErrorString());
|
||||||
}
|
}
|
||||||
|
|
@ -1288,6 +1288,7 @@ int SetWinToGoIndex(void)
|
||||||
char tmp_path[MAX_PATH] = "", xml_file[MAX_PATH] = "";
|
char tmp_path[MAX_PATH] = "", xml_file[MAX_PATH] = "";
|
||||||
StrArray version_name, version_index;
|
StrArray version_name, version_index;
|
||||||
int i, build_nr = 0;
|
int i, build_nr = 0;
|
||||||
|
BOOL bNonStandard = FALSE;
|
||||||
|
|
||||||
// Sanity checks
|
// Sanity checks
|
||||||
wintogo_index = -1;
|
wintogo_index = -1;
|
||||||
|
|
@ -1307,8 +1308,8 @@ int SetWinToGoIndex(void)
|
||||||
if ((GetTempPathU(sizeof(tmp_path), tmp_path) == 0)
|
if ((GetTempPathU(sizeof(tmp_path), tmp_path) == 0)
|
||||||
|| (GetTempFileNameU(tmp_path, APPLICATION_NAME, 0, xml_file) == 0)
|
|| (GetTempFileNameU(tmp_path, APPLICATION_NAME, 0, xml_file) == 0)
|
||||||
|| (xml_file[0] == 0)) {
|
|| (xml_file[0] == 0)) {
|
||||||
// Last ditch effort to get a loc file - just extract it to the current directory
|
// Last ditch effort to get a tmp file - just extract it to the current directory
|
||||||
safe_strcpy(xml_file, sizeof(xml_file), ".\\RufVXml.tmp");
|
static_strcpy(xml_file, ".\\RufVXml.tmp");
|
||||||
}
|
}
|
||||||
// GetTempFileName() may leave a file behind
|
// GetTempFileName() may leave a file behind
|
||||||
DeleteFileU(xml_file);
|
DeleteFileU(xml_file);
|
||||||
|
|
@ -1321,11 +1322,27 @@ int SetWinToGoIndex(void)
|
||||||
|
|
||||||
StrArrayCreate(&version_name, 16);
|
StrArrayCreate(&version_name, 16);
|
||||||
StrArrayCreate(&version_index, 16);
|
StrArrayCreate(&version_index, 16);
|
||||||
for (i = 0; (StrArrayAdd(&version_name, get_token_data_file_indexed("DISPLAYNAME", xml_file, i + 1), FALSE) >= 0) &&
|
for (i = 0; StrArrayAdd(&version_index, get_token_data_file_indexed("IMAGE INDEX", xml_file, i + 1), FALSE) >= 0; i++) {
|
||||||
(StrArrayAdd(&version_index, get_token_data_file_indexed("IMAGE INDEX", xml_file, i + 1), FALSE) >= 0); i++);
|
// Some people are apparently creating *unofficial* Windows ISOs that don't have DISPLAYNAME elements.
|
||||||
|
// If we are parsing such an ISO, try to fall back to using DESCRIPTION. Of course, since we don't use
|
||||||
|
// a formal XML parser, if an ISO mixes entries with both DISPLAYNAME and DESCRIPTION and others with
|
||||||
|
// only DESCRIPTION, the version names we report will be wrong.
|
||||||
|
// But hey, there's only so far I'm willing to go to help people who, not content to have demonstrated
|
||||||
|
// their utter ignorance on development matters, are also trying to lecture experienced developers
|
||||||
|
// about specific "noob mistakes"... that don't exist in the code they are trying to criticize.
|
||||||
|
if (StrArrayAdd(&version_name, get_token_data_file_indexed("DISPLAYNAME", xml_file, i + 1), FALSE) < 0) {
|
||||||
|
bNonStandard = TRUE;
|
||||||
|
if (StrArrayAdd(&version_name, get_token_data_file_indexed("DESCRIPTION", xml_file, i + 1), FALSE) < 0) {
|
||||||
|
uprintf("Warning: Could not find a description for image index %d", i + 1);
|
||||||
|
StrArrayAdd(&version_name, "Unknown Windows Version", TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bNonStandard)
|
||||||
|
uprintf("Warning: Nonstandard Windows image (missing <DISPLAYNAME> entries)");
|
||||||
|
|
||||||
if (i > 1)
|
if (i > 1)
|
||||||
i = Selection(lmprintf(MSG_291), lmprintf(MSG_292), version_name.String, i);
|
i = SelectionDialog(lmprintf(MSG_291), lmprintf(MSG_292), version_name.String, i);
|
||||||
if (i < 0) {
|
if (i < 0) {
|
||||||
wintogo_index = -2; // Cancelled by the user
|
wintogo_index = -2; // Cancelled by the user
|
||||||
} else if (i == 0) {
|
} else if (i == 0) {
|
||||||
|
|
@ -1333,7 +1350,7 @@ int SetWinToGoIndex(void)
|
||||||
} else {
|
} else {
|
||||||
wintogo_index = atoi(version_index.String[i - 1]);
|
wintogo_index = atoi(version_index.String[i - 1]);
|
||||||
}
|
}
|
||||||
if (i >= 0) {
|
if (i > 0) {
|
||||||
// Get the build version
|
// Get the build version
|
||||||
build = get_token_data_file_indexed("BUILD", xml_file, i);
|
build = get_token_data_file_indexed("BUILD", xml_file, i);
|
||||||
if (build != NULL)
|
if (build != NULL)
|
||||||
|
|
@ -1499,8 +1516,8 @@ static BOOL SetupWinToGo(const char* drive_name, BOOL use_ms_efi)
|
||||||
|
|
||||||
static void update_progress(const uint64_t processed_bytes)
|
static void update_progress(const uint64_t processed_bytes)
|
||||||
{
|
{
|
||||||
if (_GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
if (GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
||||||
LastRefresh = _GetTickCount64();
|
LastRefresh = GetTickCount64();
|
||||||
format_percent = (100.0f*processed_bytes)/(1.0f*img_report.image_size);
|
format_percent = (100.0f*processed_bytes)/(1.0f*img_report.image_size);
|
||||||
PrintInfo(0, MSG_261, format_percent);
|
PrintInfo(0, MSG_261, format_percent);
|
||||||
UpdateProgress(OP_FORMAT, format_percent);
|
UpdateProgress(OP_FORMAT, format_percent);
|
||||||
|
|
@ -1514,6 +1531,7 @@ static BOOL WriteDrive(HANDLE hPhysicalDrive, HANDLE hSourceImage)
|
||||||
LARGE_INTEGER li;
|
LARGE_INTEGER li;
|
||||||
DWORD rSize, wSize, BufSize;
|
DWORD rSize, wSize, BufSize;
|
||||||
uint64_t wb, target_size = hSourceImage?img_report.image_size:SelectedDrive.DiskSize;
|
uint64_t wb, target_size = hSourceImage?img_report.image_size:SelectedDrive.DiskSize;
|
||||||
|
int64_t bled_ret;
|
||||||
uint8_t *buffer = NULL;
|
uint8_t *buffer = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
@ -1524,10 +1542,16 @@ static BOOL WriteDrive(HANDLE hPhysicalDrive, HANDLE hSourceImage)
|
||||||
LastRefresh = 0;
|
LastRefresh = 0;
|
||||||
|
|
||||||
if (img_report.compression_type != BLED_COMPRESSION_NONE) {
|
if (img_report.compression_type != BLED_COMPRESSION_NONE) {
|
||||||
uprintf("Writing Compressed Image...");
|
uprintf("Writing compressed image...");
|
||||||
bled_init(_uprintf, update_progress, &FormatStatus);
|
bled_init(_uprintf, update_progress, &FormatStatus);
|
||||||
bled_uncompress_with_handles(hSourceImage, hPhysicalDrive, img_report.compression_type);
|
bled_ret = bled_uncompress_with_handles(hSourceImage, hPhysicalDrive, img_report.compression_type);
|
||||||
bled_exit();
|
bled_exit();
|
||||||
|
if ((bled_ret < 0) && (SCODE_CODE(FormatStatus) != ERROR_CANCELLED)) {
|
||||||
|
// Unfortunately, different compression backends return different negative error codes
|
||||||
|
uprintf("Could not write compressed image: %" PRIi64, bled_ret);
|
||||||
|
FormatStatus = ERROR_SEVERITY_ERROR | FAC(FACILITY_STORAGE) | ERROR_WRITE_FAULT;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
uprintf(hSourceImage?"Writing Image...":"Zeroing drive...");
|
uprintf(hSourceImage?"Writing Image...":"Zeroing drive...");
|
||||||
// Our buffer size must be a multiple of the sector size and *ALIGNED* to the sector size
|
// Our buffer size must be a multiple of the sector size and *ALIGNED* to the sector size
|
||||||
|
|
@ -1550,8 +1574,8 @@ static BOOL WriteDrive(HANDLE hPhysicalDrive, HANDLE hSourceImage)
|
||||||
// will be as fast, if not faster, than whatever async scheme you can come up with.
|
// will be as fast, if not faster, than whatever async scheme you can come up with.
|
||||||
rSize = BufSize;
|
rSize = BufSize;
|
||||||
for (wb = 0, wSize = 0; wb < (uint64_t)SelectedDrive.DiskSize; wb += wSize) {
|
for (wb = 0, wSize = 0; wb < (uint64_t)SelectedDrive.DiskSize; wb += wSize) {
|
||||||
if (_GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
if (GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
||||||
LastRefresh = _GetTickCount64();
|
LastRefresh = GetTickCount64();
|
||||||
format_percent = (100.0f*wb) / (1.0f*target_size);
|
format_percent = (100.0f*wb) / (1.0f*target_size);
|
||||||
PrintInfo(0, hSourceImage?MSG_261:MSG_286, format_percent);
|
PrintInfo(0, hSourceImage?MSG_261:MSG_286, format_percent);
|
||||||
UpdateProgress(OP_FORMAT, format_percent);
|
UpdateProgress(OP_FORMAT, format_percent);
|
||||||
|
|
@ -1637,11 +1661,6 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
char kolibri_dst[] = "?:\\MTLD_F32";
|
char kolibri_dst[] = "?:\\MTLD_F32";
|
||||||
char grub4dos_dst[] = "?:\\grldr";
|
char grub4dos_dst[] = "?:\\grldr";
|
||||||
|
|
||||||
PF_TYPE_DECL(WINAPI, LANGID, GetThreadUILanguage, (void));
|
|
||||||
PF_TYPE_DECL(WINAPI, LANGID, SetThreadUILanguage, (LANGID));
|
|
||||||
PF_INIT(GetThreadUILanguage, Kernel32);
|
|
||||||
PF_INIT(SetThreadUILanguage, Kernel32);
|
|
||||||
|
|
||||||
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
|
||||||
bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
|
bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
|
||||||
pt = GETPARTTYPE((int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme)));
|
pt = GETPARTTYPE((int)ComboBox_GetItemData(hPartitionScheme, ComboBox_GetCurSel(hPartitionScheme)));
|
||||||
|
|
@ -1727,10 +1746,6 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
UpdateProgress(OP_ANALYZE_MBR, -1.0f);
|
UpdateProgress(OP_ANALYZE_MBR, -1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Yet another half-workaround needed for XP...
|
|
||||||
if (nWindowsVersion <= WINDOWS_XP)
|
|
||||||
InitializeDisk(hPhysicalDrive);
|
|
||||||
|
|
||||||
if (zero_drive) {
|
if (zero_drive) {
|
||||||
WriteDrive(hPhysicalDrive, NULL);
|
WriteDrive(hPhysicalDrive, NULL);
|
||||||
goto out;
|
goto out;
|
||||||
|
|
@ -1740,7 +1755,7 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
// Note, Microsoft's way of cleaning partitions (IOCTL_DISK_CREATE_DISK, which is what we apply
|
// Note, Microsoft's way of cleaning partitions (IOCTL_DISK_CREATE_DISK, which is what we apply
|
||||||
// in InitializeDisk) is *NOT ENOUGH* to reset a disk and can render it inoperable for partitioning
|
// in InitializeDisk) is *NOT ENOUGH* to reset a disk and can render it inoperable for partitioning
|
||||||
// or formatting under Windows. See https://github.com/pbatard/rufus/issues/759 for details.
|
// or formatting under Windows. See https://github.com/pbatard/rufus/issues/759 for details.
|
||||||
if ((nWindowsVersion > WINDOWS_XP) && ((!IsChecked(IDC_BOOT)) || (bt != BT_IMG))) {
|
if ((!IsChecked(IDC_BOOT)) || (bt != BT_IMG)) {
|
||||||
if ((!ClearMBRGPT(hPhysicalDrive, SelectedDrive.DiskSize, SelectedDrive.SectorSize, use_large_fat32)) ||
|
if ((!ClearMBRGPT(hPhysicalDrive, SelectedDrive.DiskSize, SelectedDrive.SectorSize, use_large_fat32)) ||
|
||||||
(!InitializeDisk(hPhysicalDrive))) {
|
(!InitializeDisk(hPhysicalDrive))) {
|
||||||
uprintf("Could not reset partitions\n");
|
uprintf("Could not reset partitions\n");
|
||||||
|
|
@ -1754,7 +1769,7 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
// create a log file for bad blocks report. Since %USERPROFILE% may
|
// create a log file for bad blocks report. Since %USERPROFILE% may
|
||||||
// have localized characters, we use the UTF-8 API.
|
// have localized characters, we use the UTF-8 API.
|
||||||
userdir = getenvU("USERPROFILE");
|
userdir = getenvU("USERPROFILE");
|
||||||
safe_strcpy(logfile, MAX_PATH, userdir);
|
static_strcpy(logfile, userdir);
|
||||||
safe_free(userdir);
|
safe_free(userdir);
|
||||||
GetLocalTime(<);
|
GetLocalTime(<);
|
||||||
safe_sprintf(&logfile[strlen(logfile)], sizeof(logfile)-strlen(logfile)-1,
|
safe_sprintf(&logfile[strlen(logfile)], sizeof(logfile)-strlen(logfile)-1,
|
||||||
|
|
@ -1776,7 +1791,7 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_BADBLOCKS_FAILURE);
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_BADBLOCKS_FAILURE);
|
||||||
ClearMBRGPT(hPhysicalDrive, SelectedDrive.DiskSize, SelectedDrive.SectorSize, FALSE);
|
ClearMBRGPT(hPhysicalDrive, SelectedDrive.DiskSize, SelectedDrive.SectorSize, FALSE);
|
||||||
fclose(log_fd);
|
fclose(log_fd);
|
||||||
_unlink(logfile);
|
_unlinkU(logfile);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
uprintf("Bad Blocks: Check completed, %d bad block%s found. (%d/%d/%d errors)\n",
|
uprintf("Bad Blocks: Check completed, %d bad block%s found. (%d/%d/%d errors)\n",
|
||||||
|
|
@ -1786,14 +1801,7 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
if (report.bb_count) {
|
if (report.bb_count) {
|
||||||
bb_msg = lmprintf(MSG_011, report.bb_count, report.num_read_errors, report.num_write_errors,
|
bb_msg = lmprintf(MSG_011, report.bb_count, report.num_read_errors, report.num_write_errors,
|
||||||
report.num_corruption_errors);
|
report.num_corruption_errors);
|
||||||
#if defined(__clang__)
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
#pragma clang diagnostic ignored "-Wformat-security"
|
|
||||||
#endif
|
|
||||||
fprintf(log_fd, bb_msg);
|
fprintf(log_fd, bb_msg);
|
||||||
#if defined(__clang__)
|
|
||||||
#pragma clang diagnostic pop
|
|
||||||
#endif
|
|
||||||
GetLocalTime(<);
|
GetLocalTime(<);
|
||||||
fprintf(log_fd, APPLICATION_NAME " bad blocks check ended on: %04d.%02d.%02d %02d:%02d:%02d\n",
|
fprintf(log_fd, APPLICATION_NAME " bad blocks check ended on: %04d.%02d.%02d %02d:%02d:%02d\n",
|
||||||
lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute, lt.wSecond);
|
lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute, lt.wSecond);
|
||||||
|
|
@ -1803,7 +1811,7 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
} else {
|
} else {
|
||||||
// We didn't get any errors => delete the log file
|
// We didn't get any errors => delete the log file
|
||||||
fclose(log_fd);
|
fclose(log_fd);
|
||||||
_unlink(logfile);
|
_unlinkU(logfile);
|
||||||
}
|
}
|
||||||
} while (r == IDRETRY);
|
} while (r == IDRETRY);
|
||||||
if (r == IDABORT) {
|
if (r == IDABORT) {
|
||||||
|
|
@ -2025,7 +2033,7 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
efi_dst[0] = drive_name[0];
|
efi_dst[0] = drive_name[0];
|
||||||
efi_dst[sizeof(efi_dst) - sizeof("\\bootx64.efi")] = 0;
|
efi_dst[sizeof(efi_dst) - sizeof("\\bootx64.efi")] = 0;
|
||||||
if (!CreateDirectoryA(efi_dst, 0)) {
|
if (!CreateDirectoryA(efi_dst, 0)) {
|
||||||
uprintf("Could not create directory '%s': %s\n", WindowsErrorString());
|
uprintf("Could not create directory '%s': %s\n", efi_dst, WindowsErrorString());
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_CANT_PATCH);
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_CANT_PATCH);
|
||||||
} else {
|
} else {
|
||||||
efi_dst[sizeof(efi_dst) - sizeof("\\bootx64.efi")] = '\\';
|
efi_dst[sizeof(efi_dst) - sizeof("\\bootx64.efi")] = '\\';
|
||||||
|
|
@ -2051,9 +2059,9 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
// NTFS fixup (WinPE/AIK images don't seem to boot without an extra checkdisk)
|
// NTFS fixup (WinPE/AIK images don't seem to boot without an extra checkdisk)
|
||||||
if ((bt == BT_ISO) && (fs == FS_NTFS)) {
|
if ((bt == BT_ISO) && (fs == FS_NTFS)) {
|
||||||
// Try to ensure that all messages from Checkdisk will be in English
|
// Try to ensure that all messages from Checkdisk will be in English
|
||||||
if ((pfGetThreadUILanguage != NULL) && (PRIMARYLANGID(pfGetThreadUILanguage()) != LANG_ENGLISH)) {
|
if (PRIMARYLANGID(GetThreadUILanguage()) != LANG_ENGLISH) {
|
||||||
pfSetThreadUILanguage(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
SetThreadUILanguage(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
||||||
if (PRIMARYLANGID(pfGetThreadUILanguage()) != LANG_ENGLISH)
|
if (PRIMARYLANGID(GetThreadUILanguage()) != LANG_ENGLISH)
|
||||||
uprintf("Note: CheckDisk messages may be localized");
|
uprintf("Note: CheckDisk messages may be localized");
|
||||||
}
|
}
|
||||||
CheckDisk(drive_name[0]);
|
CheckDisk(drive_name[0]);
|
||||||
|
|
@ -2152,8 +2160,8 @@ DWORD WINAPI SaveImageThread(void* param)
|
||||||
}
|
}
|
||||||
if (rSize == 0)
|
if (rSize == 0)
|
||||||
break;
|
break;
|
||||||
if (_GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
if (GetTickCount64() > LastRefresh + MAX_REFRESH) {
|
||||||
LastRefresh = _GetTickCount64();
|
LastRefresh = GetTickCount64();
|
||||||
format_percent = (100.0f*wb)/(1.0f*img_save->DeviceSize);
|
format_percent = (100.0f*wb)/(1.0f*img_save->DeviceSize);
|
||||||
PrintInfo(0, MSG_261, format_percent);
|
PrintInfo(0, MSG_261, format_percent);
|
||||||
UpdateProgress(OP_FORMAT, format_percent);
|
UpdateProgress(OP_FORMAT, format_percent);
|
||||||
|
|
|
||||||
|
|
@ -1,159 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}</ProjectGuid>
|
|
||||||
<RootNamespace>getopt</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Midl>
|
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Midl>
|
|
||||||
<TargetEnvironment>X64</TargetEnvironment>
|
|
||||||
</Midl>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\getopt.c" />
|
|
||||||
<ClCompile Include="..\getopt1.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\getopt.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\getopt.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\getopt1.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\getopt.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
TARGETNAME=getopt
|
|
||||||
TARGETTYPE=LIBRARY
|
|
||||||
|
|
||||||
INCLUDES=$(DDK_INC_PATH);..\msvc-missing
|
|
||||||
C_DEFINES=$(C_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DISOLATION_AWARE_ENABLED /DHAVE_STRING_H
|
|
||||||
|
|
||||||
!IFNDEF MSC_WARNING_LEVEL
|
|
||||||
MSC_WARNING_LEVEL=/W3
|
|
||||||
!ENDIF
|
|
||||||
USE_MSVCRT=1
|
|
||||||
|
|
||||||
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
|
|
||||||
$(SDK_LIB_PATH)\user32.lib
|
|
||||||
|
|
||||||
SOURCES=getopt1.c \
|
|
||||||
getopt.c
|
|
||||||
|
|
@ -210,7 +210,7 @@ static char *posixly_correct;
|
||||||
|
|
||||||
#ifndef getenv
|
#ifndef getenv
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
// DDK will complain if you don't use the stdlib defined getenv
|
// MSVC will complain if you don't use the stdlib defined getenv
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#else
|
#else
|
||||||
extern char *getenv ();
|
extern char *getenv ();
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ BOOL SetAutorun(const char* path)
|
||||||
char filename[64];
|
char filename[64];
|
||||||
wchar_t wlabel[128], wRufusVersion[32];
|
wchar_t wlabel[128], wRufusVersion[32];
|
||||||
|
|
||||||
safe_sprintf(filename, sizeof(filename), "%sautorun.inf", path);
|
static_sprintf(filename, "%sautorun.inf", path);
|
||||||
fd = fopen(filename, "r"); // If there's an existing autorun, don't overwrite
|
fd = fopen(filename, "r"); // If there's an existing autorun, don't overwrite
|
||||||
if (fd != NULL) {
|
if (fd != NULL) {
|
||||||
uprintf("%s already exists - keeping it", filename);
|
uprintf("%s already exists - keeping it", filename);
|
||||||
|
|
|
||||||
399
src/iso.c
399
src/iso.c
|
|
@ -32,6 +32,7 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <direct.h>
|
#include <direct.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#include <virtdisk.h>
|
||||||
|
|
||||||
#include <cdio/cdio.h>
|
#include <cdio/cdio.h>
|
||||||
#include <cdio/logging.h>
|
#include <cdio/logging.h>
|
||||||
|
|
@ -39,6 +40,7 @@
|
||||||
#include <cdio/udf.h>
|
#include <cdio/udf.h>
|
||||||
|
|
||||||
#include "rufus.h"
|
#include "rufus.h"
|
||||||
|
#include "libfat.h"
|
||||||
#include "missing.h"
|
#include "missing.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "msapi_utf8.h"
|
#include "msapi_utf8.h"
|
||||||
|
|
@ -56,9 +58,9 @@ void cdio_destroy (CdIo_t* p_cdio) {}
|
||||||
uint32_t GetInstallWimVersion(const char* iso);
|
uint32_t GetInstallWimVersion(const char* iso);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
BOOLEAN is_cfg;
|
||||||
BOOLEAN is_syslinux_cfg;
|
BOOLEAN is_syslinux_cfg;
|
||||||
BOOLEAN is_grub_cfg;
|
BOOLEAN is_grub_cfg;
|
||||||
BOOLEAN is_arch_cfg;
|
|
||||||
BOOLEAN is_old_c32[NB_OLD_C32];
|
BOOLEAN is_old_c32[NB_OLD_C32];
|
||||||
} EXTRACT_PROPS;
|
} EXTRACT_PROPS;
|
||||||
|
|
||||||
|
|
@ -73,6 +75,7 @@ static const char* grldr_name = "grldr";
|
||||||
static const char* ldlinux_name = "ldlinux.sys";
|
static const char* ldlinux_name = "ldlinux.sys";
|
||||||
static const char* ldlinux_c32 = "ldlinux.c32";
|
static const char* ldlinux_c32 = "ldlinux.c32";
|
||||||
static const char* efi_dirname = "/efi/boot";
|
static const char* efi_dirname = "/efi/boot";
|
||||||
|
static const char* efi_img_name = "efi.img"; // Used by Debian Live ISOHybrids
|
||||||
static const char* efi_bootname[] = { "bootia32.efi", "bootia64.efi", "bootx64.efi", "bootarm.efi", "bootaa64.efi", "bootebc.efi" };
|
static const char* efi_bootname[] = { "bootia32.efi", "bootia64.efi", "bootx64.efi", "bootarm.efi", "bootaa64.efi", "bootebc.efi" };
|
||||||
static const char* install_wim_path = "/sources";
|
static const char* install_wim_path = "/sources";
|
||||||
static const char* install_wim_name[] = { "install.wim", "install.swm" };
|
static const char* install_wim_name[] = { "install.wim", "install.swm" };
|
||||||
|
|
@ -81,8 +84,6 @@ static const char* install_wim_name[] = { "install.wim", "install.swm" };
|
||||||
static const char* grub_dirname = "/boot/grub/i386-pc";
|
static const char* grub_dirname = "/boot/grub/i386-pc";
|
||||||
static const char* grub_cfg = "grub.cfg";
|
static const char* grub_cfg = "grub.cfg";
|
||||||
static const char* syslinux_cfg[] = { "isolinux.cfg", "syslinux.cfg", "extlinux.conf" };
|
static const char* syslinux_cfg[] = { "isolinux.cfg", "syslinux.cfg", "extlinux.conf" };
|
||||||
static const char* arch_cfg[] = { "archiso_sys32.cfg", "archiso_sys64.cfg" };
|
|
||||||
static const char* isolinux_tmp = ".\\isolinux.tmp";
|
|
||||||
static const char* isolinux_bin[] = { "isolinux.bin", "boot.bin" };
|
static const char* isolinux_bin[] = { "isolinux.bin", "boot.bin" };
|
||||||
static const char* pe_dirname[] = { "/i386", "/minint" };
|
static const char* pe_dirname[] = { "/i386", "/minint" };
|
||||||
static const char* pe_file[] = { "ntdetect.com", "setupldr.bin", "txtsetup.sif" };
|
static const char* pe_file[] = { "ntdetect.com", "setupldr.bin", "txtsetup.sif" };
|
||||||
|
|
@ -143,11 +144,12 @@ static void log_handler (cdio_log_level_t level, const char *message)
|
||||||
static BOOL check_iso_props(const char* psz_dirname, int64_t i_file_length, const char* psz_basename,
|
static BOOL check_iso_props(const char* psz_dirname, int64_t i_file_length, const char* psz_basename,
|
||||||
const char* psz_fullpath, EXTRACT_PROPS *props)
|
const char* psz_fullpath, EXTRACT_PROPS *props)
|
||||||
{
|
{
|
||||||
size_t i, j;
|
size_t i, j, len;
|
||||||
// Check for an isolinux/syslinux config file anywhere
|
// Check for an isolinux/syslinux config file anywhere
|
||||||
memset(props, 0, sizeof(EXTRACT_PROPS));
|
memset(props, 0, sizeof(EXTRACT_PROPS));
|
||||||
for (i=0; i<ARRAYSIZE(syslinux_cfg); i++) {
|
for (i=0; i<ARRAYSIZE(syslinux_cfg); i++) {
|
||||||
if (safe_stricmp(psz_basename, syslinux_cfg[i]) == 0) {
|
if (safe_stricmp(psz_basename, syslinux_cfg[i]) == 0) {
|
||||||
|
props->is_cfg = TRUE; // Required for "extlinux.conf"
|
||||||
props->is_syslinux_cfg = TRUE;
|
props->is_syslinux_cfg = TRUE;
|
||||||
if ((scan_only) && (i == 1) && (safe_stricmp(psz_dirname, efi_dirname) == 0))
|
if ((scan_only) && (i == 1) && (safe_stricmp(psz_dirname, efi_dirname) == 0))
|
||||||
img_report.has_efi_syslinux = TRUE;
|
img_report.has_efi_syslinux = TRUE;
|
||||||
|
|
@ -160,13 +162,11 @@ static BOOL check_iso_props(const char* psz_dirname, int64_t i_file_length, cons
|
||||||
props->is_old_c32[i] = TRUE;
|
props->is_old_c32[i] = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for ArchLinux derivatives config files
|
// Check for config files that may need patching
|
||||||
if (!scan_only) {
|
if (!scan_only) {
|
||||||
for (i = 0; i<ARRAYSIZE(arch_cfg); i++) {
|
len = safe_strlen(psz_basename);
|
||||||
if (safe_stricmp(psz_basename, arch_cfg[i]) == 0) {
|
if ((len >= 4) && safe_stricmp(&psz_basename[len-4], ".cfg") == 0)
|
||||||
props->is_arch_cfg = TRUE;
|
props->is_cfg = TRUE;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for GRUB artifacts
|
// Check for GRUB artifacts
|
||||||
|
|
@ -201,7 +201,11 @@ static BOOL check_iso_props(const char* psz_dirname, int64_t i_file_length, cons
|
||||||
|
|
||||||
// Check for ReactOS' setupldr.sys anywhere
|
// Check for ReactOS' setupldr.sys anywhere
|
||||||
if ((img_report.reactos_path[0] == 0) && (safe_stricmp(psz_basename, reactos_name) == 0))
|
if ((img_report.reactos_path[0] == 0) && (safe_stricmp(psz_basename, reactos_name) == 0))
|
||||||
safe_strcpy(img_report.reactos_path, sizeof(img_report.reactos_path), psz_fullpath);
|
static_strcpy(img_report.reactos_path, psz_fullpath);
|
||||||
|
|
||||||
|
// Check for the first 'efi.img' we can find (that hopefully contains EFI boot files)
|
||||||
|
if (!HAS_EFI_IMG(img_report) && (safe_stricmp(psz_basename, efi_img_name) == 0))
|
||||||
|
static_strcpy(img_report.efi_img_path, psz_fullpath);
|
||||||
|
|
||||||
// Check for the EFI boot entries
|
// Check for the EFI boot entries
|
||||||
if (safe_stricmp(psz_dirname, efi_dirname) == 0) {
|
if (safe_stricmp(psz_dirname, efi_dirname) == 0) {
|
||||||
|
|
@ -271,13 +275,13 @@ static void fix_config(const char* psz_fullpath, const char* psz_path, const cha
|
||||||
|
|
||||||
// Workaround for config files requiring an ISO label for kernel append that may be
|
// Workaround for config files requiring an ISO label for kernel append that may be
|
||||||
// different from our USB label. Oh, and these labels must have spaces converted to \x20.
|
// different from our USB label. Oh, and these labels must have spaces converted to \x20.
|
||||||
if ((props->is_syslinux_cfg) || (props->is_grub_cfg) || (props->is_arch_cfg)) {
|
if (props->is_cfg) {
|
||||||
iso_label = replace_char(img_report.label, ' ', "\\x20");
|
iso_label = replace_char(img_report.label, ' ', "\\x20");
|
||||||
usb_label = replace_char(img_report.usb_label, ' ', "\\x20");
|
usb_label = replace_char(img_report.usb_label, ' ', "\\x20");
|
||||||
if ((iso_label != NULL) && (usb_label != NULL)) {
|
if ((iso_label != NULL) && (usb_label != NULL)) {
|
||||||
if (replace_in_token_data(src, (props->is_grub_cfg) ? "linuxefi" : "append",
|
if (replace_in_token_data(src, (props->is_grub_cfg) ? "linuxefi" : "append",
|
||||||
iso_label, usb_label, TRUE) != NULL)
|
iso_label, usb_label, TRUE) != NULL)
|
||||||
uprintf(" Patched %s: '%s' ⇨ '%s'\n", src, iso_label, usb_label);
|
uprintf(" Patched %s: '%s' ➔ '%s'\n", src, iso_label, usb_label);
|
||||||
}
|
}
|
||||||
safe_free(iso_label);
|
safe_free(iso_label);
|
||||||
safe_free(usb_label);
|
safe_free(usb_label);
|
||||||
|
|
@ -301,7 +305,7 @@ static void fix_config(const char* psz_fullpath, const char* psz_path, const cha
|
||||||
safe_sprintf(iso_label, MAX_PATH, "cd9660:/dev/iso9660/%s", img_report.label);
|
safe_sprintf(iso_label, MAX_PATH, "cd9660:/dev/iso9660/%s", img_report.label);
|
||||||
safe_sprintf(usb_label, MAX_PATH, "msdosfs:/dev/msdosfs/%s", img_report.usb_label);
|
safe_sprintf(usb_label, MAX_PATH, "msdosfs:/dev/msdosfs/%s", img_report.usb_label);
|
||||||
if (replace_in_token_data(src, "set", iso_label, usb_label, TRUE) != NULL)
|
if (replace_in_token_data(src, "set", iso_label, usb_label, TRUE) != NULL)
|
||||||
uprintf(" Patched %s: '%s' ⇨ '%s'\n", src, iso_label, usb_label);
|
uprintf(" Patched %s: '%s' ➔ '%s'\n", src, iso_label, usb_label);
|
||||||
}
|
}
|
||||||
safe_free(iso_label);
|
safe_free(iso_label);
|
||||||
safe_free(usb_label);
|
safe_free(usb_label);
|
||||||
|
|
@ -463,7 +467,7 @@ static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const cha
|
||||||
// The drawback however is with cancellation. With a large file, CloseHandle()
|
// The drawback however is with cancellation. With a large file, CloseHandle()
|
||||||
// may take forever to complete and is not interruptible. We try to detect this.
|
// may take forever to complete and is not interruptible. We try to detect this.
|
||||||
ISO_BLOCKING(safe_closehandle(file_handle));
|
ISO_BLOCKING(safe_closehandle(file_handle));
|
||||||
if (props.is_syslinux_cfg || props.is_grub_cfg || props.is_arch_cfg)
|
if (props.is_cfg)
|
||||||
fix_config(psz_sanpath, psz_path, psz_basename, &props);
|
fix_config(psz_sanpath, psz_path, psz_basename, &props);
|
||||||
safe_free(psz_sanpath);
|
safe_free(psz_sanpath);
|
||||||
}
|
}
|
||||||
|
|
@ -493,7 +497,7 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path)
|
||||||
CdioListNode_t* p_entnode;
|
CdioListNode_t* p_entnode;
|
||||||
iso9660_stat_t *p_statbuf;
|
iso9660_stat_t *p_statbuf;
|
||||||
CdioList_t* p_entlist;
|
CdioList_t* p_entlist;
|
||||||
size_t i;
|
size_t i, j;
|
||||||
lsn_t lsn;
|
lsn_t lsn;
|
||||||
int64_t i_file_length;
|
int64_t i_file_length;
|
||||||
|
|
||||||
|
|
@ -547,7 +551,7 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path)
|
||||||
if (iso_extract_files(p_iso, psz_iso_name))
|
if (iso_extract_files(p_iso, psz_iso_name))
|
||||||
goto out;
|
goto out;
|
||||||
} else {
|
} else {
|
||||||
i_file_length = p_statbuf->size;
|
i_file_length = p_statbuf->total_size;
|
||||||
if (check_iso_props(psz_path, i_file_length, psz_basename, psz_fullpath, &props)) {
|
if (check_iso_props(psz_path, i_file_length, psz_basename, psz_fullpath, &props)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -581,24 +585,27 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path)
|
||||||
uprintf(stupid_antivirus);
|
uprintf(stupid_antivirus);
|
||||||
else
|
else
|
||||||
goto out;
|
goto out;
|
||||||
} else for (i=0; i_file_length>0; i++) {
|
} else for (j=0; j<p_statbuf->extents; j++) {
|
||||||
if (FormatStatus) goto out;
|
i_file_length = p_statbuf->size[j];
|
||||||
memset(buf, 0, ISO_BLOCKSIZE);
|
for (i=0; i_file_length>0; i++) {
|
||||||
lsn = p_statbuf->lsn + (lsn_t)i;
|
if (FormatStatus) goto out;
|
||||||
if (iso9660_iso_seek_read(p_iso, buf, lsn, 1) != ISO_BLOCKSIZE) {
|
memset(buf, 0, ISO_BLOCKSIZE);
|
||||||
uprintf(" Error reading ISO9660 file %s at LSN %lu",
|
lsn = p_statbuf->lsn[j] + (lsn_t)i;
|
||||||
psz_iso_name, (long unsigned int)lsn);
|
if (iso9660_iso_seek_read(p_iso, buf, lsn, 1) != ISO_BLOCKSIZE) {
|
||||||
goto out;
|
uprintf(" Error reading ISO9660 file %s at LSN %lu",
|
||||||
|
psz_iso_name, (long unsigned int)lsn);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
buf_size = (DWORD)MIN(i_file_length, ISO_BLOCKSIZE);
|
||||||
|
ISO_BLOCKING(r = WriteFileWithRetry(file_handle, buf, buf_size, &wr_size, WRITE_RETRIES));
|
||||||
|
if (!r) {
|
||||||
|
uprintf(" Error writing file: %s", WindowsErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
i_file_length -= ISO_BLOCKSIZE;
|
||||||
|
if (nb_blocks++ % PROGRESS_THRESHOLD == 0)
|
||||||
|
UpdateProgress(OP_DOS, 100.0f*nb_blocks/total_blocks);
|
||||||
}
|
}
|
||||||
buf_size = (DWORD)MIN(i_file_length, ISO_BLOCKSIZE);
|
|
||||||
ISO_BLOCKING(r = WriteFileWithRetry(file_handle, buf, buf_size, &wr_size, WRITE_RETRIES));
|
|
||||||
if (!r) {
|
|
||||||
uprintf(" Error writing file: %s", WindowsErrorString());
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
i_file_length -= ISO_BLOCKSIZE;
|
|
||||||
if (nb_blocks++ % PROGRESS_THRESHOLD == 0)
|
|
||||||
UpdateProgress(OP_DOS, 100.0f*nb_blocks/total_blocks);
|
|
||||||
}
|
}
|
||||||
if (preserve_timestamps) {
|
if (preserve_timestamps) {
|
||||||
LPFILETIME ft = to_filetime(mktime(&p_statbuf->tm));
|
LPFILETIME ft = to_filetime(mktime(&p_statbuf->tm));
|
||||||
|
|
@ -606,7 +613,7 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path)
|
||||||
uprintf(" Could not set timestamp: %s", WindowsErrorString());
|
uprintf(" Could not set timestamp: %s", WindowsErrorString());
|
||||||
}
|
}
|
||||||
ISO_BLOCKING(safe_closehandle(file_handle));
|
ISO_BLOCKING(safe_closehandle(file_handle));
|
||||||
if (props.is_syslinux_cfg || props.is_grub_cfg || props.is_arch_cfg)
|
if (props.is_cfg)
|
||||||
fix_config(psz_sanpath, psz_path, psz_basename, &props);
|
fix_config(psz_sanpath, psz_path, psz_basename, &props);
|
||||||
safe_free(psz_sanpath);
|
safe_free(psz_sanpath);
|
||||||
}
|
}
|
||||||
|
|
@ -627,7 +634,7 @@ void GetGrubVersion(char* buf, size_t buf_size)
|
||||||
|
|
||||||
for (i=0; i<buf_size; i++) {
|
for (i=0; i<buf_size; i++) {
|
||||||
if (memcmp(&buf[i], grub_version_str, sizeof(grub_version_str)) == 0) {
|
if (memcmp(&buf[i], grub_version_str, sizeof(grub_version_str)) == 0) {
|
||||||
safe_strcpy(img_report.grub2_version, sizeof(img_report.grub2_version), &buf[i + sizeof(grub_version_str)]);
|
static_strcpy(img_report.grub2_version, &buf[i + sizeof(grub_version_str)]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -733,7 +740,7 @@ try_iso:
|
||||||
i_joliet_level = iso9660_ifs_get_joliet_level(p_iso);
|
i_joliet_level = iso9660_ifs_get_joliet_level(p_iso);
|
||||||
if (scan_only) {
|
if (scan_only) {
|
||||||
if (iso9660_ifs_get_volume_id(p_iso, &tmp)) {
|
if (iso9660_ifs_get_volume_id(p_iso, &tmp)) {
|
||||||
safe_strcpy(img_report.label, sizeof(img_report.label), tmp);
|
static_strcpy(img_report.label, tmp);
|
||||||
safe_free(tmp);
|
safe_free(tmp);
|
||||||
} else
|
} else
|
||||||
img_report.label[0] = 0;
|
img_report.label[0] = 0;
|
||||||
|
|
@ -774,7 +781,7 @@ out:
|
||||||
// See https://github.com/openSUSE/kiwi/issues/354
|
// See https://github.com/openSUSE/kiwi/issues/354
|
||||||
if ( (_stricmp(config_path.String[i], "/boot/i386/loader/isolinux.cfg") == 0) ||
|
if ( (_stricmp(config_path.String[i], "/boot/i386/loader/isolinux.cfg") == 0) ||
|
||||||
(_stricmp(config_path.String[i], "/boot/x86_64/loader/isolinux.cfg") == 0)) {
|
(_stricmp(config_path.String[i], "/boot/x86_64/loader/isolinux.cfg") == 0)) {
|
||||||
safe_strcpy(img_report.cfg_path, sizeof(img_report.cfg_path), config_path.String[i]);
|
static_strcpy(img_report.cfg_path, config_path.String[i]);
|
||||||
img_report.needs_syslinux_overwrite = TRUE;
|
img_report.needs_syslinux_overwrite = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -784,11 +791,13 @@ out:
|
||||||
// We may have to revisit this and prefer a path that contains '/isolinux' if
|
// We may have to revisit this and prefer a path that contains '/isolinux' if
|
||||||
// this hack is not enough for other images.
|
// this hack is not enough for other images.
|
||||||
if (safe_strlen(img_report.cfg_path) >= safe_strlen(config_path.String[i]))
|
if (safe_strlen(img_report.cfg_path) >= safe_strlen(config_path.String[i]))
|
||||||
safe_strcpy(img_report.cfg_path, sizeof(img_report.cfg_path), config_path.String[i]);
|
static_strcpy(img_report.cfg_path, config_path.String[i]);
|
||||||
}
|
}
|
||||||
uprintf(" Will use '%s' for Syslinux", img_report.cfg_path);
|
uprintf(" Will use '%s' for Syslinux", img_report.cfg_path);
|
||||||
// Extract all of the isolinux.bin files we found to identify their versions
|
// Extract all of the isolinux.bin files we found to identify their versions
|
||||||
for (i=0; i<isolinux_path.Index; i++) {
|
for (i=0; i<isolinux_path.Index; i++) {
|
||||||
|
char isolinux_tmp[MAX_PATH];
|
||||||
|
static_sprintf(isolinux_tmp, "%s\\isolinux.tmp", temp_dir);
|
||||||
size = (size_t)ExtractISOFile(src_iso, isolinux_path.String[i], isolinux_tmp, FILE_ATTRIBUTE_NORMAL);
|
size = (size_t)ExtractISOFile(src_iso, isolinux_path.String[i], isolinux_tmp, FILE_ATTRIBUTE_NORMAL);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
uprintf(" Could not access %s", isolinux_path.String[i]);
|
uprintf(" Could not access %s", isolinux_path.String[i]);
|
||||||
|
|
@ -804,7 +813,7 @@ out:
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
sl_version = GetSyslinuxVersion(buf, size, &ext);
|
sl_version = GetSyslinuxVersion(buf, size, &ext);
|
||||||
if (img_report.sl_version == 0) {
|
if (img_report.sl_version == 0) {
|
||||||
safe_strcpy(img_report.sl_version_ext, sizeof(img_report.sl_version_ext), ext);
|
static_strcpy(img_report.sl_version_ext, ext);
|
||||||
img_report.sl_version = sl_version;
|
img_report.sl_version = sl_version;
|
||||||
sl_index = i;
|
sl_index = i;
|
||||||
} else if ((img_report.sl_version != sl_version) || (safe_strcmp(img_report.sl_version_ext, ext) != 0)) {
|
} else if ((img_report.sl_version != sl_version) || (safe_strcmp(img_report.sl_version_ext, ext) != 0)) {
|
||||||
|
|
@ -815,14 +824,14 @@ out:
|
||||||
// Where possible, prefer to the one that resides in the same directory as the config file.
|
// Where possible, prefer to the one that resides in the same directory as the config file.
|
||||||
for (j=safe_strlen(img_report.cfg_path); (j>0) && (img_report.cfg_path[j]!='/'); j--);
|
for (j=safe_strlen(img_report.cfg_path); (j>0) && (img_report.cfg_path[j]!='/'); j--);
|
||||||
if (safe_strnicmp(img_report.cfg_path, isolinux_path.String[i], j) == 0) {
|
if (safe_strnicmp(img_report.cfg_path, isolinux_path.String[i], j) == 0) {
|
||||||
safe_strcpy(img_report.sl_version_ext, sizeof(img_report.sl_version_ext), ext);
|
static_strcpy(img_report.sl_version_ext, ext);
|
||||||
img_report.sl_version = sl_version;
|
img_report.sl_version = sl_version;
|
||||||
sl_index = i;
|
sl_index = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(buf);
|
free(buf);
|
||||||
_unlink(isolinux_tmp);
|
|
||||||
}
|
}
|
||||||
|
_unlinkU(isolinux_tmp);
|
||||||
}
|
}
|
||||||
if (img_report.sl_version != 0) {
|
if (img_report.sl_version != 0) {
|
||||||
static_sprintf(img_report.sl_version_str, "%d.%02d",
|
static_sprintf(img_report.sl_version_str, "%d.%02d",
|
||||||
|
|
@ -840,12 +849,15 @@ out:
|
||||||
uprintf(" Warning: Could not detect Isolinux version - Forcing to %s (embedded)",
|
uprintf(" Warning: Could not detect Isolinux version - Forcing to %s (embedded)",
|
||||||
img_report.sl_version_str);
|
img_report.sl_version_str);
|
||||||
}
|
}
|
||||||
|
if (!IS_EFI_BOOTABLE(img_report) && HAS_EFI_IMG(img_report) && ExtractEfiImgFiles(NULL)) {
|
||||||
|
img_report.has_efi = 0x80;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (HAS_WINPE(img_report)) {
|
if (HAS_WINPE(img_report)) {
|
||||||
// In case we have a WinPE 1.x based iso, we extract and parse txtsetup.sif
|
// In case we have a WinPE 1.x based iso, we extract and parse txtsetup.sif
|
||||||
// during scan, to see if /minint was provided for OsLoadOptions, as it decides
|
// during scan, to see if /minint was provided for OsLoadOptions, as it decides
|
||||||
// whether we should use 0x80 or 0x81 as the disk ID in the MBR
|
// whether we should use 0x80 or 0x81 as the disk ID in the MBR
|
||||||
safe_sprintf(path, sizeof(path), "/%s/txtsetup.sif",
|
static_sprintf(path, "/%s/txtsetup.sif",
|
||||||
basedir[((img_report.winpe&WINPE_I386) == WINPE_I386)?0:1]);
|
basedir[((img_report.winpe&WINPE_I386) == WINPE_I386)?0:1]);
|
||||||
ExtractISOFile(src_iso, path, tmp_sif, FILE_ATTRIBUTE_NORMAL);
|
ExtractISOFile(src_iso, path, tmp_sif, FILE_ATTRIBUTE_NORMAL);
|
||||||
tmp = get_token_data_file("OsLoadOptions", tmp_sif);
|
tmp = get_token_data_file("OsLoadOptions", tmp_sif);
|
||||||
|
|
@ -855,7 +867,7 @@ out:
|
||||||
uprintf(" Checking txtsetup.sif:\n OsLoadOptions = %s", tmp);
|
uprintf(" Checking txtsetup.sif:\n OsLoadOptions = %s", tmp);
|
||||||
img_report.uses_minint = (strstr(tmp, "/minint") != NULL);
|
img_report.uses_minint = (strstr(tmp, "/minint") != NULL);
|
||||||
}
|
}
|
||||||
_unlink(tmp_sif);
|
_unlinkU(tmp_sif);
|
||||||
safe_free(tmp);
|
safe_free(tmp);
|
||||||
}
|
}
|
||||||
if (HAS_INSTALL_WIM(img_report)) {
|
if (HAS_INSTALL_WIM(img_report)) {
|
||||||
|
|
@ -876,7 +888,7 @@ out:
|
||||||
GetGrubVersion(buf, size);
|
GetGrubVersion(buf, size);
|
||||||
}
|
}
|
||||||
free(buf);
|
free(buf);
|
||||||
_unlink(path);
|
_unlinkU(path);
|
||||||
}
|
}
|
||||||
if (img_report.grub2_version[0] != 0)
|
if (img_report.grub2_version[0] != 0)
|
||||||
uprintf(" Detected Grub version: %s", img_report.grub2_version);
|
uprintf(" Detected Grub version: %s", img_report.grub2_version);
|
||||||
|
|
@ -888,35 +900,40 @@ out:
|
||||||
StrArrayDestroy(&config_path);
|
StrArrayDestroy(&config_path);
|
||||||
StrArrayDestroy(&isolinux_path);
|
StrArrayDestroy(&isolinux_path);
|
||||||
SendMessage(hMainDialog, UM_PROGRESS_EXIT, 0, 0);
|
SendMessage(hMainDialog, UM_PROGRESS_EXIT, 0, 0);
|
||||||
} else if (HAS_SYSLINUX(img_report)) {
|
} else {
|
||||||
safe_sprintf(path, sizeof(path), "%s\\syslinux.cfg", dest_dir);
|
// For Debian live ISOs, that only provide EFI boot files in a FAT efi.img
|
||||||
// Create a /syslinux.cfg (if none exists) that points to the existing isolinux cfg
|
if (img_report.has_efi == 0x80)
|
||||||
fd = fopen(path, "r");
|
ExtractEfiImgFiles(dest_dir);
|
||||||
if (fd != NULL && img_report.needs_syslinux_overwrite) {
|
if (HAS_SYSLINUX(img_report)) {
|
||||||
fclose(fd);
|
static_sprintf(path, "%s\\syslinux.cfg", dest_dir);
|
||||||
fd = NULL;
|
// Create a /syslinux.cfg (if none exists) that points to the existing isolinux cfg
|
||||||
safe_sprintf(path2, sizeof(path2), "%s\\syslinux.org", dest_dir);
|
fd = fopen(path, "r");
|
||||||
uprintf("Renaming: %s ⇨ %s", path, path2);
|
if (fd != NULL && img_report.needs_syslinux_overwrite) {
|
||||||
IGNORE_RETVAL(rename(path, path2));
|
fclose(fd);
|
||||||
}
|
fd = NULL;
|
||||||
if (fd == NULL) {
|
static_sprintf(path2, "%s\\syslinux.org", dest_dir);
|
||||||
fd = fopen(path, "w"); // No "/syslinux.cfg" => create a new one
|
uprintf("Renaming: %s ➔ %s", path, path2);
|
||||||
if (fd == NULL) {
|
IGNORE_RETVAL(rename(path, path2));
|
||||||
uprintf("Unable to create %s - booting from USB will not work", path);
|
|
||||||
r = 1;
|
|
||||||
} else {
|
|
||||||
fprintf(fd, "DEFAULT loadconfig\n\nLABEL loadconfig\n CONFIG %s\n", img_report.cfg_path);
|
|
||||||
for (i=safe_strlen(img_report.cfg_path); (i>0)&&(img_report.cfg_path[i]!='/'); i--);
|
|
||||||
if (i>0) {
|
|
||||||
img_report.cfg_path[i] = 0;
|
|
||||||
fprintf(fd, " APPEND %s/\n", img_report.cfg_path);
|
|
||||||
img_report.cfg_path[i] = '/';
|
|
||||||
}
|
|
||||||
uprintf("Created: %s", path);
|
|
||||||
}
|
}
|
||||||
|
if (fd == NULL) {
|
||||||
|
fd = fopen(path, "w"); // No "/syslinux.cfg" => create a new one
|
||||||
|
if (fd == NULL) {
|
||||||
|
uprintf("Unable to create %s - booting from USB will not work", path);
|
||||||
|
r = 1;
|
||||||
|
} else {
|
||||||
|
fprintf(fd, "DEFAULT loadconfig\n\nLABEL loadconfig\n CONFIG %s\n", img_report.cfg_path);
|
||||||
|
for (i = safe_strlen(img_report.cfg_path); (i > 0) && (img_report.cfg_path[i] != '/'); i--);
|
||||||
|
if (i > 0) {
|
||||||
|
img_report.cfg_path[i] = 0;
|
||||||
|
fprintf(fd, " APPEND %s/\n", img_report.cfg_path);
|
||||||
|
img_report.cfg_path[i] = '/';
|
||||||
|
}
|
||||||
|
uprintf("Created: %s", path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fd != NULL)
|
||||||
|
fclose(fd);
|
||||||
}
|
}
|
||||||
if (fd != NULL)
|
|
||||||
fclose(fd);
|
|
||||||
}
|
}
|
||||||
if (p_iso != NULL)
|
if (p_iso != NULL)
|
||||||
iso9660_close(p_iso);
|
iso9660_close(p_iso);
|
||||||
|
|
@ -929,7 +946,7 @@ out:
|
||||||
|
|
||||||
int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_file, DWORD attributes)
|
int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_file, DWORD attributes)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i, j;
|
||||||
ssize_t read_size;
|
ssize_t read_size;
|
||||||
int64_t file_length, r = 0;
|
int64_t file_length, r = 0;
|
||||||
char buf[UDF_BLOCKSIZE];
|
char buf[UDF_BLOCKSIZE];
|
||||||
|
|
@ -944,7 +961,7 @@ int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_f
|
||||||
file_handle = CreateFileU(dest_file, GENERIC_READ | GENERIC_WRITE,
|
file_handle = CreateFileU(dest_file, GENERIC_READ | GENERIC_WRITE,
|
||||||
FILE_SHARE_READ, NULL, CREATE_ALWAYS, attributes, NULL);
|
FILE_SHARE_READ, NULL, CREATE_ALWAYS, attributes, NULL);
|
||||||
if (file_handle == INVALID_HANDLE_VALUE) {
|
if (file_handle == INVALID_HANDLE_VALUE) {
|
||||||
uprintf(" Unable to create file %s: %s\n", dest_file, WindowsErrorString());
|
uprintf(" Could not create file %s: %s", dest_file, WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -955,12 +972,12 @@ int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_f
|
||||||
|
|
||||||
p_udf_root = udf_get_root(p_udf, true, 0);
|
p_udf_root = udf_get_root(p_udf, true, 0);
|
||||||
if (p_udf_root == NULL) {
|
if (p_udf_root == NULL) {
|
||||||
uprintf("Could not locate UDF root directory\n");
|
uprintf("Could not locate UDF root directory");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
p_udf_file = udf_fopen(p_udf_root, iso_file);
|
p_udf_file = udf_fopen(p_udf_root, iso_file);
|
||||||
if (!p_udf_file) {
|
if (!p_udf_file) {
|
||||||
uprintf("Could not locate file %s in ISO image\n", iso_file);
|
uprintf("Could not locate file %s in ISO image", iso_file);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
file_length = udf_get_file_length(p_udf_file);
|
file_length = udf_get_file_length(p_udf_file);
|
||||||
|
|
@ -968,12 +985,12 @@ int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_f
|
||||||
memset(buf, 0, UDF_BLOCKSIZE);
|
memset(buf, 0, UDF_BLOCKSIZE);
|
||||||
read_size = udf_read_block(p_udf_file, buf, 1);
|
read_size = udf_read_block(p_udf_file, buf, 1);
|
||||||
if (read_size < 0) {
|
if (read_size < 0) {
|
||||||
uprintf("Error reading UDF file %s\n", iso_file);
|
uprintf("Error reading UDF file %s", iso_file);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
buf_size = (DWORD)MIN(file_length, read_size);
|
buf_size = (DWORD)MIN(file_length, read_size);
|
||||||
if (!WriteFileWithRetry(file_handle, buf, buf_size, &wr_size, WRITE_RETRIES)) {
|
if (!WriteFileWithRetry(file_handle, buf, buf_size, &wr_size, WRITE_RETRIES)) {
|
||||||
uprintf(" Error writing file %s: %s\n", dest_file, WindowsErrorString());
|
uprintf(" Error writing file %s: %s", dest_file, WindowsErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
file_length -= read_size;
|
file_length -= read_size;
|
||||||
|
|
@ -984,31 +1001,33 @@ int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_f
|
||||||
try_iso:
|
try_iso:
|
||||||
p_iso = iso9660_open(iso);
|
p_iso = iso9660_open(iso);
|
||||||
if (p_iso == NULL) {
|
if (p_iso == NULL) {
|
||||||
uprintf("Unable to open image '%s'.\n", iso);
|
uprintf("Unable to open image '%s'", iso);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
p_statbuf = iso9660_ifs_stat_translate(p_iso, iso_file);
|
p_statbuf = iso9660_ifs_stat_translate(p_iso, iso_file);
|
||||||
if (p_statbuf == NULL) {
|
if (p_statbuf == NULL) {
|
||||||
uprintf("Could not get ISO-9660 file information for file %s\n", iso_file);
|
uprintf("Could not get ISO-9660 file information for file %s", iso_file);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
file_length = p_statbuf->size;
|
for (j = 0; j < p_statbuf->extents; j++) {
|
||||||
for (i = 0; file_length > 0; i++) {
|
file_length = p_statbuf->size[j];
|
||||||
memset(buf, 0, ISO_BLOCKSIZE);
|
for (i = 0; file_length > 0; i++) {
|
||||||
lsn = p_statbuf->lsn + (lsn_t)i;
|
memset(buf, 0, ISO_BLOCKSIZE);
|
||||||
if (iso9660_iso_seek_read(p_iso, buf, lsn, 1) != ISO_BLOCKSIZE) {
|
lsn = p_statbuf->lsn[j] + (lsn_t)i;
|
||||||
uprintf(" Error reading ISO9660 file %s at LSN %lu\n", iso_file, (long unsigned int)lsn);
|
if (iso9660_iso_seek_read(p_iso, buf, lsn, 1) != ISO_BLOCKSIZE) {
|
||||||
goto out;
|
uprintf(" Error reading ISO9660 file %s at LSN %lu", iso_file, (long unsigned int)lsn);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
buf_size = (DWORD)MIN(file_length, ISO_BLOCKSIZE);
|
||||||
|
if (!WriteFileWithRetry(file_handle, buf, buf_size, &wr_size, WRITE_RETRIES)) {
|
||||||
|
uprintf(" Error writing file %s: %s", dest_file, WindowsErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
file_length -= ISO_BLOCKSIZE;
|
||||||
|
r += ISO_BLOCKSIZE;
|
||||||
}
|
}
|
||||||
buf_size = (DWORD)MIN(file_length, ISO_BLOCKSIZE);
|
|
||||||
if (!WriteFileWithRetry(file_handle, buf, buf_size, &wr_size, WRITE_RETRIES)) {
|
|
||||||
uprintf(" Error writing file %s: %s\n", dest_file, WindowsErrorString());
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
file_length -= ISO_BLOCKSIZE;
|
|
||||||
r += ISO_BLOCKSIZE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
@ -1051,16 +1070,16 @@ uint32_t GetInstallWimVersion(const char* iso)
|
||||||
|
|
||||||
p_udf_root = udf_get_root(p_udf, true, 0);
|
p_udf_root = udf_get_root(p_udf, true, 0);
|
||||||
if (p_udf_root == NULL) {
|
if (p_udf_root == NULL) {
|
||||||
uprintf("Could not locate UDF root directory\n");
|
uprintf("Could not locate UDF root directory");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
p_udf_file = udf_fopen(p_udf_root, wim_path);
|
p_udf_file = udf_fopen(p_udf_root, wim_path);
|
||||||
if (!p_udf_file) {
|
if (!p_udf_file) {
|
||||||
uprintf("Could not locate file %s in ISO image\n", wim_path);
|
uprintf("Could not locate file %s in ISO image", wim_path);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (udf_read_block(p_udf_file, buf, 1) != UDF_BLOCKSIZE) {
|
if (udf_read_block(p_udf_file, buf, 1) != UDF_BLOCKSIZE) {
|
||||||
uprintf("Error reading UDF file %s\n", wim_path);
|
uprintf("Error reading UDF file %s", wim_path);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
r = wim_header[3];
|
r = wim_header[3];
|
||||||
|
|
@ -1069,16 +1088,16 @@ uint32_t GetInstallWimVersion(const char* iso)
|
||||||
try_iso:
|
try_iso:
|
||||||
p_iso = iso9660_open(iso);
|
p_iso = iso9660_open(iso);
|
||||||
if (p_iso == NULL) {
|
if (p_iso == NULL) {
|
||||||
uprintf("Unable to open image '%s'.\n", iso);
|
uprintf("Could not open image '%s'", iso);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
p_statbuf = iso9660_ifs_stat_translate(p_iso, wim_path);
|
p_statbuf = iso9660_ifs_stat_translate(p_iso, wim_path);
|
||||||
if (p_statbuf == NULL) {
|
if (p_statbuf == NULL) {
|
||||||
uprintf("Could not get ISO-9660 file information for file %s\n", wim_path);
|
uprintf("Could not get ISO-9660 file information for file %s", wim_path);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (iso9660_iso_seek_read(p_iso, buf, p_statbuf->lsn, 1) != ISO_BLOCKSIZE) {
|
if (iso9660_iso_seek_read(p_iso, buf, p_statbuf->lsn[0], 1) != ISO_BLOCKSIZE) {
|
||||||
uprintf("Error reading ISO9660 file %s at LSN %lu\n", wim_path, (long unsigned int)p_statbuf->lsn);
|
uprintf("Error reading ISO-9660 file %s at LSN %d", wim_path, p_statbuf->lsn[0]);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
r = wim_header[3];
|
r = wim_header[3];
|
||||||
|
|
@ -1099,6 +1118,184 @@ out:
|
||||||
return bswap_uint32(r);
|
return bswap_uint32(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define ISO_NB_BLOCKS 16
|
||||||
|
typedef struct {
|
||||||
|
iso9660_t* p_iso;
|
||||||
|
lsn_t lsn;
|
||||||
|
libfat_sector_t sec_start;
|
||||||
|
// Use a multi block buffer, to improve sector reads
|
||||||
|
uint8_t buf[ISO_BLOCKSIZE * ISO_NB_BLOCKS];
|
||||||
|
} iso9660_readfat_private;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Read sectors from a FAT img file residing on an ISO-9660 filesystem.
|
||||||
|
* NB: This assumes that the img file sectors are contiguous on the ISO.
|
||||||
|
*/
|
||||||
|
int iso9660_readfat(intptr_t pp, void *buf, size_t secsize, libfat_sector_t sec)
|
||||||
|
{
|
||||||
|
iso9660_readfat_private* p_private = (iso9660_readfat_private*)pp;
|
||||||
|
|
||||||
|
if (sizeof(p_private->buf) % secsize != 0) {
|
||||||
|
uprintf("iso9660_readfat: Sector size %d is not a divisor of %d", secsize, sizeof(p_private->buf));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((sec < p_private->sec_start) || (sec >= p_private->sec_start + sizeof(p_private->buf) / secsize)) {
|
||||||
|
// Sector being queried is not in our multi block buffer -> Update it
|
||||||
|
p_private->sec_start = (((sec * secsize) / ISO_BLOCKSIZE) * ISO_BLOCKSIZE) / secsize;
|
||||||
|
if (iso9660_iso_seek_read(p_private->p_iso, p_private->buf,
|
||||||
|
p_private->lsn + (lsn_t)((p_private->sec_start * secsize) / ISO_BLOCKSIZE), ISO_NB_BLOCKS)
|
||||||
|
!= ISO_NB_BLOCKS * ISO_BLOCKSIZE) {
|
||||||
|
uprintf("Error reading ISO-9660 file %s at LSN %lu\n", img_report.efi_img_path,
|
||||||
|
(long unsigned int)(p_private->lsn + (p_private->sec_start * secsize) / ISO_BLOCKSIZE));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memcpy(buf, &p_private->buf[(sec - p_private->sec_start)*secsize], secsize);
|
||||||
|
return (int)secsize;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extract EFI bootloaders files from an ISO-9660 FAT img file into directory <dir>.
|
||||||
|
* If <dir> is NULL, returns TRUE if an EFI bootloader exists in the img.
|
||||||
|
* If <dir> is not NULL, returns TRUE if any if the bootloaders was properly written.
|
||||||
|
*/
|
||||||
|
BOOL ExtractEfiImgFiles(const char* dir)
|
||||||
|
{
|
||||||
|
BOOL ret = FALSE;
|
||||||
|
HANDLE handle;
|
||||||
|
DWORD size, file_size, written;
|
||||||
|
iso9660_t* p_iso = NULL;
|
||||||
|
iso9660_stat_t* p_statbuf = NULL;
|
||||||
|
iso9660_readfat_private* p_private = NULL;
|
||||||
|
libfat_sector_t s;
|
||||||
|
int32_t dc, c;
|
||||||
|
struct libfat_filesystem *fs = NULL;
|
||||||
|
struct libfat_direntry direntry;
|
||||||
|
char name[12] = { 0 };
|
||||||
|
char path[64];
|
||||||
|
int i, j, k;
|
||||||
|
void* buf;
|
||||||
|
|
||||||
|
if ((image_path == NULL) || !HAS_EFI_IMG(img_report))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
p_iso = iso9660_open(image_path);
|
||||||
|
if (p_iso == NULL) {
|
||||||
|
uprintf("Could not open image '%s' as an ISO-9660 file system", image_path);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
p_statbuf = iso9660_ifs_stat_translate(p_iso, img_report.efi_img_path);
|
||||||
|
if (p_statbuf == NULL) {
|
||||||
|
uprintf("Could not get ISO-9660 file information for file %s\n", img_report.efi_img_path);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
p_private = malloc(sizeof(iso9660_readfat_private));
|
||||||
|
if (p_private == NULL)
|
||||||
|
goto out;
|
||||||
|
p_private->p_iso = p_iso;
|
||||||
|
p_private->lsn = p_statbuf->lsn[0]; // Image should be small enough not to use multiextents
|
||||||
|
p_private->sec_start = 0;
|
||||||
|
// Populate our intial buffer
|
||||||
|
if (iso9660_iso_seek_read(p_private->p_iso, p_private->buf, p_private->lsn, ISO_NB_BLOCKS) != ISO_NB_BLOCKS * ISO_BLOCKSIZE) {
|
||||||
|
uprintf("Error reading ISO-9660 file %s at LSN %lu\n", img_report.efi_img_path, (long unsigned int)p_private->lsn);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
fs = libfat_open(iso9660_readfat, (intptr_t)p_private);
|
||||||
|
if (fs == NULL) {
|
||||||
|
uprintf("FAT access error");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Navigate to /EFI/BOOT
|
||||||
|
if (libfat_searchdir(fs, 0, "EFI ", &direntry) < 0)
|
||||||
|
goto out;
|
||||||
|
dc = direntry.entry[26] + (direntry.entry[27] << 8);
|
||||||
|
if (libfat_searchdir(fs, dc, "BOOT ", &direntry) < 0)
|
||||||
|
goto out;
|
||||||
|
dc = direntry.entry[26] + (direntry.entry[27] << 8);
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAYSIZE(efi_bootname); i++) {
|
||||||
|
// Sanity check in case the EFI forum comes up with a 'bootmips64.efi' or something...
|
||||||
|
if (strlen(efi_bootname[i]) > 12) {
|
||||||
|
uprintf("Internal error: FAT 8.3");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (j = 0, k = 0; efi_bootname[i][j] != 0; j++) {
|
||||||
|
if (efi_bootname[i][j] == '.') {
|
||||||
|
while (k < 8)
|
||||||
|
name[k++] = ' ';
|
||||||
|
} else
|
||||||
|
name[k++] = toupper(efi_bootname[i][j]);
|
||||||
|
}
|
||||||
|
c = libfat_searchdir(fs, dc, name, &direntry);
|
||||||
|
if (c > 0) {
|
||||||
|
if (dir == NULL) {
|
||||||
|
if (!ret)
|
||||||
|
uprintf(" Detected EFI bootloader(s) (from '%s'):", img_report.efi_img_path);
|
||||||
|
uprintf(" ● '%s'", efi_bootname[i]);
|
||||||
|
ret = TRUE;
|
||||||
|
} else {
|
||||||
|
file_size = direntry.entry[28] + (direntry.entry[29] << 8) + (direntry.entry[30] << 16) +
|
||||||
|
(direntry.entry[31] << 24);
|
||||||
|
// Sanity check
|
||||||
|
if (file_size > 64 * MB) {
|
||||||
|
uprintf("Warning: File size is larger than 64 MB => not extracted");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
static_sprintf(path, "%s\\efi", dir);
|
||||||
|
if (!CreateDirectoryA(path, 0) && (GetLastError() != ERROR_ALREADY_EXISTS)) {
|
||||||
|
uprintf("Could not create directory '%s': %s\n", path, WindowsErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
static_strcat(path, "\\boot");
|
||||||
|
if (!CreateDirectoryA(path, 0) && (GetLastError() != ERROR_ALREADY_EXISTS)) {
|
||||||
|
uprintf("Could not create directory '%s': %s\n", path, WindowsErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
static_strcat(path, "\\");
|
||||||
|
static_strcat(path, efi_bootname[i]);
|
||||||
|
uprintf("Extracting: %s (from '%s', %s)", path, img_report.efi_img_path,
|
||||||
|
SizeToHumanReadable(file_size, FALSE, FALSE));
|
||||||
|
handle = CreateFileA(path, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ,
|
||||||
|
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
|
if (handle == INVALID_HANDLE_VALUE) {
|
||||||
|
uprintf("Unable to create '%s': %s", path, WindowsErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
written = 0;
|
||||||
|
s = libfat_clustertosector(fs, c);
|
||||||
|
while ((s != 0) && (s < 0xFFFFFFFFULL) && (written < file_size)) {
|
||||||
|
buf = libfat_get_sector(fs, s);
|
||||||
|
size = MIN(LIBFAT_SECTOR_SIZE, file_size - written);
|
||||||
|
if (!WriteFileWithRetry(handle, buf, size, &size, WRITE_RETRIES) ||
|
||||||
|
(size != MIN(LIBFAT_SECTOR_SIZE, file_size - written))) {
|
||||||
|
uprintf("Error writing '%s': %s", path, WindowsErrorString());
|
||||||
|
CloseHandle(handle);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
written += size;
|
||||||
|
s = libfat_nextsector(fs, s);
|
||||||
|
}
|
||||||
|
CloseHandle(handle);
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
|
if (fs != NULL)
|
||||||
|
libfat_close(fs);
|
||||||
|
if (p_statbuf != NULL)
|
||||||
|
safe_free(p_statbuf->rr.psz_symlink);
|
||||||
|
safe_free(p_statbuf);
|
||||||
|
safe_free(p_private);
|
||||||
|
if (p_iso != NULL)
|
||||||
|
iso9660_close(p_iso);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
// VirtDisk API Prototypes - Only available for Windows 8 or later
|
// VirtDisk API Prototypes - Only available for Windows 8 or later
|
||||||
PF_TYPE_DECL(WINAPI, DWORD, OpenVirtualDisk, (PVIRTUAL_STORAGE_TYPE, PCWSTR,
|
PF_TYPE_DECL(WINAPI, DWORD, OpenVirtualDisk, (PVIRTUAL_STORAGE_TYPE, PCWSTR,
|
||||||
VIRTUAL_DISK_ACCESS_MASK, OPEN_VIRTUAL_DISK_FLAG, POPEN_VIRTUAL_DISK_PARAMETERS, PHANDLE));
|
VIRTUAL_DISK_ACCESS_MASK, OPEN_VIRTUAL_DISK_FLAG, POPEN_VIRTUAL_DISK_PARAMETERS, PHANDLE));
|
||||||
|
|
|
||||||
|
|
@ -200,8 +200,9 @@ to_733(uint32_t i)
|
||||||
static CDIO_INLINE uint32_t
|
static CDIO_INLINE uint32_t
|
||||||
from_733 (uint64_t p)
|
from_733 (uint64_t p)
|
||||||
{
|
{
|
||||||
if (uint64_swap_le_be (p) != p)
|
// Commented out for Rufus
|
||||||
cdio_warn ("from_733: broken byte order");
|
// if (uint64_swap_le_be (p) != p)
|
||||||
|
// cdio_warn ("from_733: broken byte order");
|
||||||
|
|
||||||
return (UINT32_C(0xFFFFFFFF) & p);
|
return (UINT32_C(0xFFFFFFFF) & p);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,9 @@ extern enum iso_vd_enum_s {
|
||||||
/*! \brief Maximum number of characters in a volume-set id. */
|
/*! \brief Maximum number of characters in a volume-set id. */
|
||||||
#define ISO_MAX_VOLUMESET_ID 128
|
#define ISO_MAX_VOLUMESET_ID 128
|
||||||
|
|
||||||
|
/*! \brief Maximum number of multi file extent licdio supports. */
|
||||||
|
#define ISO_MAX_MULTIEXTENT 8
|
||||||
|
|
||||||
/*! String inside frame which identifies an ISO 9660 filesystem. This
|
/*! String inside frame which identifies an ISO 9660 filesystem. This
|
||||||
string is the "id" field of an iso9660_pvd_t or an iso9660_svd_t.
|
string is the "id" field of an iso9660_pvd_t or an iso9660_svd_t.
|
||||||
*/
|
*/
|
||||||
|
|
@ -517,17 +520,19 @@ PRAGMA_END_PACKED
|
||||||
*/
|
*/
|
||||||
struct iso9660_stat_s { /* big endian!! */
|
struct iso9660_stat_s { /* big endian!! */
|
||||||
|
|
||||||
iso_rock_statbuf_t rr; /**< Rock Ridge-specific fields */
|
iso_rock_statbuf_t rr; /**< Rock Ridge-specific fields */
|
||||||
|
|
||||||
struct tm tm; /**< time on entry - FIXME merge with
|
struct tm tm; /**< time on entry - FIXME merge with
|
||||||
one of entries above, like ctime? */
|
one of entries above, like ctime? */
|
||||||
lsn_t lsn; /**< start logical sector number */
|
uint64_t total_size; /**< total size in bytes */
|
||||||
uint32_t size; /**< total size in bytes */
|
uint8_t extents; /**< number of multiextents */
|
||||||
uint32_t secsize; /**< number of sectors allocated */
|
lsn_t lsn[ISO_MAX_MULTIEXTENT]; /**< start logical sector number for each extent */
|
||||||
|
uint32_t size[ISO_MAX_MULTIEXTENT]; /**< size of each extent */
|
||||||
|
uint32_t secsize[ISO_MAX_MULTIEXTENT]; /**< number of sectors allocated for each extent*/
|
||||||
iso9660_xa_t xa; /**< XA attributes */
|
iso9660_xa_t xa; /**< XA attributes */
|
||||||
enum { _STAT_FILE = 1, _STAT_DIR = 2 } type;
|
enum { _STAT_FILE = 1, _STAT_DIR = 2 } type;
|
||||||
bool b_xa;
|
bool b_xa;
|
||||||
char filename[EMPTY_ARRAY_SIZE]; /**< filename */
|
char filename[EMPTY_ARRAY_SIZE]; /**< filename */
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A mask used in iso9660_ifs_read_vd which allows what kinds
|
/** A mask used in iso9660_ifs_read_vd which allows what kinds
|
||||||
|
|
|
||||||
|
|
@ -1,202 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\disc.c" />
|
|
||||||
<ClCompile Include="..\ds.c" />
|
|
||||||
<ClCompile Include="..\logging.c" />
|
|
||||||
<ClCompile Include="..\memory.c" />
|
|
||||||
<ClCompile Include="..\read.c" />
|
|
||||||
<ClCompile Include="..\sector.c" />
|
|
||||||
<ClCompile Include="..\track.c" />
|
|
||||||
<ClCompile Include="..\utf8.c" />
|
|
||||||
<ClCompile Include="..\util.c" />
|
|
||||||
<ClCompile Include="..\_cdio_stdio.c" />
|
|
||||||
<ClCompile Include="..\_cdio_stream.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\cdio\cdio.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\ds.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\logging.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\memory.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\sector.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\types.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\util.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\version.h" />
|
|
||||||
<ClInclude Include="..\..\config.h" />
|
|
||||||
<ClInclude Include="..\cdio_assert.h" />
|
|
||||||
<ClInclude Include="..\cdio_private.h" />
|
|
||||||
<ClInclude Include="..\filemode.h" />
|
|
||||||
<ClInclude Include="..\portable.h" />
|
|
||||||
<ClInclude Include="..\_cdio_stdio.h" />
|
|
||||||
<ClInclude Include="..\_cdio_stream.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{FA1B1093-BA86-410A-B7A0-7A54C605F812}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>driver</RootNamespace>
|
|
||||||
<ProjectName>libcdio-driver</ProjectName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations -Wno-sizeof-array-argument</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations -Wno-sizeof-array-argument</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\_cdio_stdio.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\_cdio_stream.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\logging.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\ds.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\read.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\util.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\sector.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\disc.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\track.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\utf8.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\memory.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\_cdio_stdio.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\_cdio_stream.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\cdio_assert.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\cdio_private.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\filemode.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\logging.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\util.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\cdio.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\ds.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\types.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\config.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\sector.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\version.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\memory.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\portable.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
TARGETNAME=driver
|
|
||||||
TARGETTYPE=LIBRARY
|
|
||||||
|
|
||||||
INCLUDES=$(DDK_INC_PATH);.;..;..\..\msvc-missing
|
|
||||||
LIBCDIO_DEFINES = /DHAVE_CONFIG_H /D_OFF_T_DEFINED /D_off_t=__int64 /Doff_t=_off_t /D_FILE_OFFSET_BITS=64
|
|
||||||
C_DEFINES=$(C_DEFINES) $(LIBCDIO_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DISOLATION_AWARE_ENABLED
|
|
||||||
|
|
||||||
!IFNDEF MSC_WARNING_LEVEL
|
|
||||||
MSC_WARNING_LEVEL=/W3
|
|
||||||
!ENDIF
|
|
||||||
USE_MSVCRT=1
|
|
||||||
|
|
||||||
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
|
|
||||||
$(SDK_LIB_PATH)\user32.lib
|
|
||||||
|
|
||||||
SOURCES=disc.c \
|
|
||||||
ds.c \
|
|
||||||
logging.c \
|
|
||||||
memory.c \
|
|
||||||
read.c \
|
|
||||||
sector.c \
|
|
||||||
track.c \
|
|
||||||
util.c \
|
|
||||||
utf8.c \
|
|
||||||
_cdio_stdio.c \
|
|
||||||
_cdio_stream.c
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\cdio.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\cdtext.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\iso9660.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\logging.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\portable.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\utf8.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\util.h" />
|
|
||||||
<ClInclude Include="..\..\config.h" />
|
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h" />
|
|
||||||
<ClInclude Include="..\..\driver\cdio_private.h" />
|
|
||||||
<ClInclude Include="..\..\driver\filemode.h" />
|
|
||||||
<ClInclude Include="..\..\driver\_cdio_stdio.h" />
|
|
||||||
<ClInclude Include="..\iso9660_private.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\iso9660.c" />
|
|
||||||
<ClCompile Include="..\iso9660_fs.c" />
|
|
||||||
<ClCompile Include="..\rock.c" />
|
|
||||||
<ClCompile Include="..\xa.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{D4E80F35-2604-40AC-B436-97B052ECB572}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>iso9660</RootNamespace>
|
|
||||||
<ProjectName>libcdio-iso9660</ProjectName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations -Wno-array-bounds -Wno-unused-variable</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations -Wno-array-bounds -Wno-unused-variable</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations -Wno-array-bounds -Wno-unused-variable</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations -Wno-array-bounds -Wno-unused-variable</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\iso9660_private.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\config.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\iso9660.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\util.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\cdio.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\utf8.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\driver\_cdio_stdio.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\driver\cdio_private.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\logging.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\driver\filemode.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\cdtext.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\portable.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\iso9660_fs.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\rock.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\xa.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\iso9660.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
TARGETNAME=iso9660
|
|
||||||
TARGETTYPE=LIBRARY
|
|
||||||
|
|
||||||
INCLUDES=$(DDK_INC_PATH);.;..;..\driver;..\..\msvc-missing
|
|
||||||
LIBCDIO_DEFINES = /DHAVE_CONFIG_H /D_OFF_T_DEFINED /D_off_t=__int64 /Doff_t=_off_t /D_FILE_OFFSET_BITS=64
|
|
||||||
C_DEFINES=$(C_DEFINES) $(LIBCDIO_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DISOLATION_AWARE_ENABLED
|
|
||||||
|
|
||||||
!IFNDEF MSC_WARNING_LEVEL
|
|
||||||
MSC_WARNING_LEVEL=/W3
|
|
||||||
!ENDIF
|
|
||||||
USE_MSVCRT=1
|
|
||||||
|
|
||||||
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
|
|
||||||
$(SDK_LIB_PATH)\user32.lib
|
|
||||||
|
|
||||||
SOURCES=iso9660.c \
|
|
||||||
iso9660_fs.c \
|
|
||||||
rock.c \
|
|
||||||
xa.c
|
|
||||||
|
|
@ -709,14 +709,17 @@ iso9660_iso_seek_read (const iso9660_t *p_iso, void *ptr, lsn_t start,
|
||||||
|
|
||||||
|
|
||||||
static iso9660_stat_t *
|
static iso9660_stat_t *
|
||||||
_iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa,
|
_iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir,
|
||||||
uint8_t u_joliet_level)
|
iso9660_stat_t *last_p_stat,
|
||||||
|
bool_3way_t b_xa, uint8_t u_joliet_level)
|
||||||
{
|
{
|
||||||
uint8_t dir_len= iso9660_get_dir_len(p_iso9660_dir);
|
uint8_t dir_len= iso9660_get_dir_len(p_iso9660_dir);
|
||||||
iso711_t i_fname;
|
iso711_t i_fname;
|
||||||
unsigned int stat_len;
|
unsigned int stat_len;
|
||||||
iso9660_stat_t *p_stat;
|
iso9660_stat_t *p_stat = last_p_stat;
|
||||||
bool err;
|
bool err;
|
||||||
|
char rr_fname[256] = "";
|
||||||
|
int i_rr_fname;
|
||||||
|
|
||||||
if (!dir_len) return NULL;
|
if (!dir_len) return NULL;
|
||||||
|
|
||||||
|
|
@ -725,7 +728,9 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa,
|
||||||
/* .. string in statbuf is one longer than in p_iso9660_dir's listing '\1' */
|
/* .. string in statbuf is one longer than in p_iso9660_dir's listing '\1' */
|
||||||
stat_len = sizeof(iso9660_stat_t)+i_fname+2;
|
stat_len = sizeof(iso9660_stat_t)+i_fname+2;
|
||||||
|
|
||||||
p_stat = calloc(1, stat_len);
|
/* Reuse multiextent p_stat if not NULL */
|
||||||
|
if (!p_stat)
|
||||||
|
p_stat = calloc(1, stat_len);
|
||||||
if (!p_stat)
|
if (!p_stat)
|
||||||
{
|
{
|
||||||
cdio_warn("Couldn't calloc(1, %d)", stat_len);
|
cdio_warn("Couldn't calloc(1, %d)", stat_len);
|
||||||
|
|
@ -733,24 +738,33 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa,
|
||||||
}
|
}
|
||||||
p_stat->type = (p_iso9660_dir->file_flags & ISO_DIRECTORY)
|
p_stat->type = (p_iso9660_dir->file_flags & ISO_DIRECTORY)
|
||||||
? _STAT_DIR : _STAT_FILE;
|
? _STAT_DIR : _STAT_FILE;
|
||||||
p_stat->lsn = from_733_with_err (p_iso9660_dir->extent, &err);
|
p_stat->lsn[p_stat->extents] = from_733_with_err (p_iso9660_dir->extent, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
free(p_stat);
|
free(p_stat);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
p_stat->size = from_733_with_err (p_iso9660_dir->size, &err);
|
p_stat->size[p_stat->extents] = from_733_with_err (p_iso9660_dir->size, &err);
|
||||||
|
p_stat->total_size += p_stat->size[p_stat->extents];
|
||||||
if (err) {
|
if (err) {
|
||||||
free(p_stat);
|
free(p_stat);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
p_stat->secsize = _cdio_len2blocks (p_stat->size, ISO_BLOCKSIZE);
|
p_stat->secsize[p_stat->extents] = _cdio_len2blocks (p_stat->size[p_stat->extents], ISO_BLOCKSIZE);
|
||||||
p_stat->rr.b3_rock = dunno; /*FIXME should do based on mask */
|
p_stat->rr.b3_rock = dunno; /*FIXME should do based on mask */
|
||||||
p_stat->b_xa = false;
|
p_stat->b_xa = false;
|
||||||
|
|
||||||
|
/* Only resolve the full filename when we're not dealing with extent */
|
||||||
|
if ((p_iso9660_dir->file_flags & ISO_MULTIEXTENT) == 0)
|
||||||
{
|
{
|
||||||
char rr_fname[256] = "";
|
/* Check if this is the last part of a multiextent file */
|
||||||
|
if (p_stat->extents != 0) {
|
||||||
int i_rr_fname =
|
if (strcmp(p_stat->filename, &p_iso9660_dir->filename.str[1]) != 0) {
|
||||||
|
cdio_warn("Warning: Non consecutive multiextent file parts for '%s'", p_stat->filename);
|
||||||
|
free(p_stat);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i_rr_fname =
|
||||||
#ifdef HAVE_ROCK
|
#ifdef HAVE_ROCK
|
||||||
get_rock_ridge_filename(p_iso9660_dir, rr_fname, p_stat);
|
get_rock_ridge_filename(p_iso9660_dir, rr_fname, p_stat);
|
||||||
#else
|
#else
|
||||||
|
|
@ -797,8 +811,17 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa,
|
||||||
strncpy (p_stat->filename, &p_iso9660_dir->filename.str[1], i_fname);
|
strncpy (p_stat->filename, &p_iso9660_dir->filename.str[1], i_fname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
/* Use the plain ISO-9660 name when dealing with a multiextent file part */
|
||||||
|
strncpy(p_stat->filename, &p_iso9660_dir->filename.str[1], i_fname);
|
||||||
|
}
|
||||||
|
p_stat->extents++;
|
||||||
|
if (p_stat->extents > ISO_MAX_MULTIEXTENT) {
|
||||||
|
cdio_warn("Warning: Too many multiextent file parts for '%s'", p_stat->filename);
|
||||||
|
free(p_stat->rr.psz_symlink);
|
||||||
|
free(p_stat);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
iso9660_get_dtime(&(p_iso9660_dir->recording_time), true, &(p_stat->tm));
|
iso9660_get_dtime(&(p_iso9660_dir->recording_time), true, &(p_stat->tm));
|
||||||
|
|
||||||
|
|
@ -921,8 +944,8 @@ _fs_stat_root (CdIo_t *p_cdio)
|
||||||
p_iso9660_dir = &(p_env->pvd.root_directory_record) ;
|
p_iso9660_dir = &(p_env->pvd.root_directory_record) ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, b_xa,
|
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, NULL,
|
||||||
p_env->u_joliet_level);
|
b_xa, p_env->u_joliet_level);
|
||||||
return p_stat;
|
return p_stat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -942,7 +965,8 @@ _ifs_stat_root (iso9660_t *p_iso)
|
||||||
p_iso9660_dir = &(p_iso->pvd.root_directory_record) ;
|
p_iso9660_dir = &(p_iso->pvd.root_directory_record) ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, p_iso->b_xa,
|
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, NULL,
|
||||||
|
p_iso->b_xa,
|
||||||
p_iso->u_joliet_level);
|
p_iso->u_joliet_level);
|
||||||
return p_stat;
|
return p_stat;
|
||||||
}
|
}
|
||||||
|
|
@ -974,18 +998,18 @@ _fs_stat_traverse (const CdIo_t *p_cdio, const iso9660_stat_t *_root,
|
||||||
|
|
||||||
cdio_assert (_root->type == _STAT_DIR);
|
cdio_assert (_root->type == _STAT_DIR);
|
||||||
|
|
||||||
_dirbuf = calloc(1, _root->secsize * ISO_BLOCKSIZE);
|
_dirbuf = calloc(1, _root->secsize[0] * ISO_BLOCKSIZE);
|
||||||
if (!_dirbuf)
|
if (!_dirbuf)
|
||||||
{
|
{
|
||||||
cdio_warn("Couldn't calloc(1, %d)", _root->secsize * ISO_BLOCKSIZE);
|
cdio_warn("Couldn't calloc(1, %d)", _root->secsize[0] * ISO_BLOCKSIZE);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdio_read_data_sectors (p_cdio, _dirbuf, _root->lsn, ISO_BLOCKSIZE,
|
if (cdio_read_data_sectors (p_cdio, _dirbuf, _root->lsn[0], ISO_BLOCKSIZE,
|
||||||
_root->secsize))
|
_root->secsize[0]))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
while (offset < (_root->secsize * ISO_BLOCKSIZE))
|
while (offset < (_root->secsize[0] * ISO_BLOCKSIZE))
|
||||||
{
|
{
|
||||||
iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset];
|
iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset];
|
||||||
iso9660_stat_t *p_iso9660_stat;
|
iso9660_stat_t *p_iso9660_stat;
|
||||||
|
|
@ -997,8 +1021,8 @@ _fs_stat_traverse (const CdIo_t *p_cdio, const iso9660_stat_t *_root,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p_iso9660_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, dunno,
|
p_iso9660_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, NULL,
|
||||||
p_env->u_joliet_level);
|
dunno, p_env->u_joliet_level);
|
||||||
|
|
||||||
cmp = strcmp(splitpath[0], p_iso9660_stat->filename);
|
cmp = strcmp(splitpath[0], p_iso9660_stat->filename);
|
||||||
|
|
||||||
|
|
@ -1037,7 +1061,7 @@ _fs_stat_traverse (const CdIo_t *p_cdio, const iso9660_stat_t *_root,
|
||||||
offset += iso9660_get_dir_len(p_iso9660_dir);
|
offset += iso9660_get_dir_len(p_iso9660_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
cdio_assert (offset == (_root->secsize * ISO_BLOCKSIZE));
|
cdio_assert (offset == (_root->secsize[0] * ISO_BLOCKSIZE));
|
||||||
|
|
||||||
/* not found */
|
/* not found */
|
||||||
free (_dirbuf);
|
free (_dirbuf);
|
||||||
|
|
@ -1048,13 +1072,14 @@ static iso9660_stat_t *
|
||||||
_fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
_fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
char **splitpath)
|
char **splitpath)
|
||||||
{
|
{
|
||||||
unsigned offset = 0;
|
unsigned offset;
|
||||||
uint8_t *_dirbuf = NULL;
|
uint8_t *_dirbuf = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
iso9660_stat_t *p_stat = NULL;
|
||||||
|
iso9660_dir_t *p_iso9660_dir = NULL;
|
||||||
|
|
||||||
if (!splitpath[0])
|
if (!splitpath[0])
|
||||||
{
|
{
|
||||||
iso9660_stat_t *p_stat;
|
|
||||||
unsigned int len=sizeof(iso9660_stat_t) + strlen(_root->filename)+1;
|
unsigned int len=sizeof(iso9660_stat_t) + strlen(_root->filename)+1;
|
||||||
p_stat = calloc(1, len);
|
p_stat = calloc(1, len);
|
||||||
cdio_assert (p_stat != NULL);
|
cdio_assert (p_stat != NULL);
|
||||||
|
|
@ -1071,20 +1096,20 @@ _fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
|
|
||||||
cdio_assert (_root->type == _STAT_DIR);
|
cdio_assert (_root->type == _STAT_DIR);
|
||||||
|
|
||||||
_dirbuf = calloc(1, _root->secsize * ISO_BLOCKSIZE);
|
_dirbuf = calloc(1, _root->secsize[0] * ISO_BLOCKSIZE);
|
||||||
if (!_dirbuf)
|
if (!_dirbuf)
|
||||||
{
|
{
|
||||||
cdio_warn("Couldn't calloc(1, %d)", _root->secsize * ISO_BLOCKSIZE);
|
cdio_warn("Couldn't calloc(1, %d)", _root->secsize[0] * ISO_BLOCKSIZE);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = iso9660_iso_seek_read (p_iso, _dirbuf, _root->lsn, _root->secsize);
|
ret = iso9660_iso_seek_read (p_iso, _dirbuf, _root->lsn[0], _root->secsize[0]);
|
||||||
if (ret!=ISO_BLOCKSIZE*_root->secsize) return NULL;
|
if (ret!=ISO_BLOCKSIZE*_root->secsize[0]) return NULL;
|
||||||
|
|
||||||
while (offset < (_root->secsize * ISO_BLOCKSIZE))
|
for (offset = 0; offset < (_root->secsize[0] * ISO_BLOCKSIZE);
|
||||||
|
offset += iso9660_get_dir_len(p_iso9660_dir))
|
||||||
{
|
{
|
||||||
iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset];
|
p_iso9660_dir = (void *) &_dirbuf[offset];
|
||||||
iso9660_stat_t *p_stat;
|
|
||||||
int cmp;
|
int cmp;
|
||||||
|
|
||||||
if (!iso9660_get_dir_len(p_iso9660_dir))
|
if (!iso9660_get_dir_len(p_iso9660_dir))
|
||||||
|
|
@ -1093,8 +1118,8 @@ _fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, p_iso->b_xa,
|
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, p_stat,
|
||||||
p_iso->u_joliet_level);
|
p_iso->b_xa, p_iso->u_joliet_level);
|
||||||
|
|
||||||
if (!p_stat) {
|
if (!p_stat) {
|
||||||
cdio_warn("Bad directory information for %s", splitpath[0]);
|
cdio_warn("Bad directory information for %s", splitpath[0]);
|
||||||
|
|
@ -1102,6 +1127,10 @@ _fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we have multiextent file parts, loop until the last one */
|
||||||
|
if (p_iso9660_dir->file_flags & ISO_MULTIEXTENT)
|
||||||
|
continue;
|
||||||
|
|
||||||
cmp = strcmp(splitpath[0], p_stat->filename);
|
cmp = strcmp(splitpath[0], p_stat->filename);
|
||||||
|
|
||||||
if ( 0 != cmp && 0 == p_iso->u_joliet_level
|
if ( 0 != cmp && 0 == p_iso->u_joliet_level
|
||||||
|
|
@ -1135,11 +1164,10 @@ _fs_iso_stat_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
|
|
||||||
free(p_stat->rr.psz_symlink);
|
free(p_stat->rr.psz_symlink);
|
||||||
free(p_stat);
|
free(p_stat);
|
||||||
|
p_stat = NULL;
|
||||||
offset += iso9660_get_dir_len(p_iso9660_dir);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cdio_assert (offset == (_root->secsize * ISO_BLOCKSIZE));
|
cdio_assert (offset == (_root->secsize[0] * ISO_BLOCKSIZE));
|
||||||
|
|
||||||
/* not found */
|
/* not found */
|
||||||
free (_dirbuf);
|
free (_dirbuf);
|
||||||
|
|
@ -1262,6 +1290,8 @@ CdioList_t *
|
||||||
iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[], bool b_mode2)
|
iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[], bool b_mode2)
|
||||||
{
|
{
|
||||||
generic_img_private_t *p_env;
|
generic_img_private_t *p_env;
|
||||||
|
iso9660_dir_t *p_iso9660_dir;
|
||||||
|
iso9660_stat_t *p_iso9660_stat = NULL;
|
||||||
iso9660_stat_t *p_stat;
|
iso9660_stat_t *p_stat;
|
||||||
|
|
||||||
if (!p_cdio) return NULL;
|
if (!p_cdio) return NULL;
|
||||||
|
|
@ -1283,24 +1313,23 @@ iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[], bool b_mode2)
|
||||||
uint8_t *_dirbuf = NULL;
|
uint8_t *_dirbuf = NULL;
|
||||||
CdioList_t *retval = _cdio_list_new ();
|
CdioList_t *retval = _cdio_list_new ();
|
||||||
|
|
||||||
_dirbuf = calloc(1, p_stat->secsize * ISO_BLOCKSIZE);
|
_dirbuf = calloc(1, p_stat->secsize[0] * ISO_BLOCKSIZE);
|
||||||
if (!_dirbuf)
|
if (!_dirbuf)
|
||||||
{
|
{
|
||||||
cdio_warn("Couldn't calloc(1, %d)", p_stat->secsize * ISO_BLOCKSIZE);
|
cdio_warn("Couldn't calloc(1, %d)", p_stat->secsize[0] * ISO_BLOCKSIZE);
|
||||||
_cdio_list_free (retval, true);
|
_cdio_list_free (retval, true);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cdio_read_data_sectors (p_cdio, _dirbuf, p_stat->lsn,
|
if (cdio_read_data_sectors (p_cdio, _dirbuf, p_stat->lsn[0],
|
||||||
ISO_BLOCKSIZE, p_stat->secsize)) {
|
ISO_BLOCKSIZE, p_stat->secsize[0])) {
|
||||||
_cdio_list_free (retval, true);
|
_cdio_list_free (retval, true);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (offset < (p_stat->secsize * ISO_BLOCKSIZE))
|
while (offset < (p_stat->secsize[0] * ISO_BLOCKSIZE))
|
||||||
{
|
{
|
||||||
iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset];
|
p_iso9660_dir = (void *) &_dirbuf[offset];
|
||||||
iso9660_stat_t *p_iso9660_stat;
|
|
||||||
|
|
||||||
if (!iso9660_get_dir_len(p_iso9660_dir))
|
if (!iso9660_get_dir_len(p_iso9660_dir))
|
||||||
{
|
{
|
||||||
|
|
@ -1308,14 +1337,20 @@ iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[], bool b_mode2)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p_iso9660_stat = _iso9660_dir_to_statbuf(p_iso9660_dir, dunno,
|
p_iso9660_stat = _iso9660_dir_to_statbuf(p_iso9660_dir,
|
||||||
|
p_iso9660_stat, dunno,
|
||||||
p_env->u_joliet_level);
|
p_env->u_joliet_level);
|
||||||
_cdio_list_append (retval, p_iso9660_stat);
|
if ((p_iso9660_stat) &&
|
||||||
|
((p_iso9660_dir->file_flags & ISO_MULTIEXTENT) == 0))
|
||||||
|
{
|
||||||
|
_cdio_list_append (retval, p_iso9660_stat);
|
||||||
|
p_iso9660_stat = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
offset += iso9660_get_dir_len(p_iso9660_dir);
|
offset += iso9660_get_dir_len(p_iso9660_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
cdio_assert (offset == (p_stat->secsize * ISO_BLOCKSIZE));
|
cdio_assert (offset == (p_stat->secsize[0] * ISO_BLOCKSIZE));
|
||||||
|
|
||||||
free (_dirbuf);
|
free (_dirbuf);
|
||||||
free (p_stat);
|
free (p_stat);
|
||||||
|
|
@ -1330,6 +1365,8 @@ iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[], bool b_mode2)
|
||||||
CdioList_t *
|
CdioList_t *
|
||||||
iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[])
|
iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[])
|
||||||
{
|
{
|
||||||
|
iso9660_dir_t *p_iso9660_dir;
|
||||||
|
iso9660_stat_t *p_iso9660_stat = NULL;
|
||||||
iso9660_stat_t *p_stat;
|
iso9660_stat_t *p_stat;
|
||||||
|
|
||||||
if (!p_iso) return NULL;
|
if (!p_iso) return NULL;
|
||||||
|
|
@ -1349,12 +1386,12 @@ iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[])
|
||||||
unsigned offset = 0;
|
unsigned offset = 0;
|
||||||
uint8_t *_dirbuf = NULL;
|
uint8_t *_dirbuf = NULL;
|
||||||
CdioList_t *retval = _cdio_list_new ();
|
CdioList_t *retval = _cdio_list_new ();
|
||||||
const size_t dirbuf_len = p_stat->secsize * ISO_BLOCKSIZE;
|
const size_t dirbuf_len = p_stat->secsize[0] * ISO_BLOCKSIZE;
|
||||||
|
|
||||||
|
|
||||||
if (!dirbuf_len)
|
if (!dirbuf_len)
|
||||||
{
|
{
|
||||||
cdio_warn("Invalid directory buffer sector size %u", p_stat->secsize);
|
cdio_warn("Invalid directory buffer sector size %u", p_stat->secsize[0]);
|
||||||
free(p_stat->rr.psz_symlink);
|
free(p_stat->rr.psz_symlink);
|
||||||
free(p_stat);
|
free(p_stat);
|
||||||
_cdio_list_free (retval, true);
|
_cdio_list_free (retval, true);
|
||||||
|
|
@ -1371,7 +1408,7 @@ iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[])
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = iso9660_iso_seek_read (p_iso, _dirbuf, p_stat->lsn, p_stat->secsize);
|
ret = iso9660_iso_seek_read (p_iso, _dirbuf, p_stat->lsn[0], p_stat->secsize[0]);
|
||||||
if (ret != dirbuf_len) {
|
if (ret != dirbuf_len) {
|
||||||
_cdio_list_free (retval, true);
|
_cdio_list_free (retval, true);
|
||||||
free(p_stat->rr.psz_symlink);
|
free(p_stat->rr.psz_symlink);
|
||||||
|
|
@ -1382,8 +1419,7 @@ iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[])
|
||||||
|
|
||||||
while (offset < (dirbuf_len))
|
while (offset < (dirbuf_len))
|
||||||
{
|
{
|
||||||
iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset];
|
p_iso9660_dir = (void *) &_dirbuf[offset];
|
||||||
iso9660_stat_t *p_iso9660_stat;
|
|
||||||
|
|
||||||
if (!iso9660_get_dir_len(p_iso9660_dir))
|
if (!iso9660_get_dir_len(p_iso9660_dir))
|
||||||
{
|
{
|
||||||
|
|
@ -1391,11 +1427,16 @@ iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[])
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p_iso9660_stat = _iso9660_dir_to_statbuf(p_iso9660_dir, p_iso->b_xa,
|
p_iso9660_stat = _iso9660_dir_to_statbuf(p_iso9660_dir,
|
||||||
|
p_iso9660_stat,
|
||||||
|
p_iso->b_xa,
|
||||||
p_iso->u_joliet_level);
|
p_iso->u_joliet_level);
|
||||||
|
if ((p_iso9660_stat) &&
|
||||||
if (p_iso9660_stat)
|
((p_iso9660_dir->file_flags & ISO_MULTIEXTENT) == 0))
|
||||||
_cdio_list_append (retval, p_iso9660_stat);
|
{
|
||||||
|
_cdio_list_append(retval, p_iso9660_stat);
|
||||||
|
p_iso9660_stat = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
offset += iso9660_get_dir_len(p_iso9660_dir);
|
offset += iso9660_get_dir_len(p_iso9660_dir);
|
||||||
}
|
}
|
||||||
|
|
@ -1434,6 +1475,7 @@ find_lsn_recurse (void *p_image, iso9660_readdir_t iso9660_readdir,
|
||||||
iso9660_stat_t *statbuf = _cdio_list_node_data (entnode);
|
iso9660_stat_t *statbuf = _cdio_list_node_data (entnode);
|
||||||
const char *psz_filename = (char *) statbuf->filename;
|
const char *psz_filename = (char *) statbuf->filename;
|
||||||
unsigned int len = strlen(psz_path) + strlen(psz_filename)+2;
|
unsigned int len = strlen(psz_path) + strlen(psz_filename)+2;
|
||||||
|
size_t extent;
|
||||||
|
|
||||||
if (*ppsz_full_filename != NULL) free(*ppsz_full_filename);
|
if (*ppsz_full_filename != NULL) free(*ppsz_full_filename);
|
||||||
*ppsz_full_filename = calloc(1, len);
|
*ppsz_full_filename = calloc(1, len);
|
||||||
|
|
@ -1445,19 +1487,20 @@ find_lsn_recurse (void *p_image, iso9660_readdir_t iso9660_readdir,
|
||||||
_cdio_list_append (dirlist, strdup(*ppsz_full_filename));
|
_cdio_list_append (dirlist, strdup(*ppsz_full_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (statbuf->lsn == lsn) {
|
for (extent = 0; extent < statbuf->extents; extent++) {
|
||||||
const unsigned int len2 = sizeof(iso9660_stat_t)+strlen(statbuf->filename)+1;
|
if (statbuf->lsn[extent] == lsn) {
|
||||||
iso9660_stat_t *ret_stat = calloc(1, len2);
|
const unsigned int len2 = sizeof(iso9660_stat_t)+strlen(statbuf->filename)+1;
|
||||||
if (!ret_stat)
|
iso9660_stat_t *ret_stat = calloc(1, len2);
|
||||||
{
|
if (!ret_stat) {
|
||||||
_cdio_list_free (dirlist, true);
|
_cdio_list_free (dirlist, true);
|
||||||
cdio_warn("Couldn't calloc(1, %d)", len2);
|
cdio_warn("Couldn't calloc(1, %d)", len2);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
memcpy(ret_stat, statbuf, len2);
|
memcpy(ret_stat, statbuf, len2);
|
||||||
_cdio_list_free (entlist, true);
|
_cdio_list_free (entlist, true);
|
||||||
_cdio_list_free (dirlist, true);
|
_cdio_list_free (dirlist, true);
|
||||||
return ret_stat;
|
return ret_stat;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1582,17 +1625,17 @@ iso_have_rr_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
|
|
||||||
cdio_assert (_root->type == _STAT_DIR);
|
cdio_assert (_root->type == _STAT_DIR);
|
||||||
|
|
||||||
_dirbuf = calloc(1, _root->secsize * ISO_BLOCKSIZE);
|
_dirbuf = calloc(1, _root->secsize[0] * ISO_BLOCKSIZE);
|
||||||
if (!_dirbuf)
|
if (!_dirbuf)
|
||||||
{
|
{
|
||||||
cdio_warn("Couldn't calloc(1, %d)", _root->secsize * ISO_BLOCKSIZE);
|
cdio_warn("Couldn't calloc(1, %d)", _root->secsize[0] * ISO_BLOCKSIZE);
|
||||||
return dunno;
|
return dunno;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = iso9660_iso_seek_read (p_iso, _dirbuf, _root->lsn, _root->secsize);
|
ret = iso9660_iso_seek_read (p_iso, _dirbuf, _root->lsn[0], _root->secsize[0]);
|
||||||
if (ret!=ISO_BLOCKSIZE*_root->secsize) return false;
|
if (ret!=ISO_BLOCKSIZE*_root->secsize[0]) return false;
|
||||||
|
|
||||||
while (offset < (_root->secsize * ISO_BLOCKSIZE))
|
while (offset < (_root->secsize[0] * ISO_BLOCKSIZE))
|
||||||
{
|
{
|
||||||
iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset];
|
iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset];
|
||||||
iso9660_stat_t *p_stat;
|
iso9660_stat_t *p_stat;
|
||||||
|
|
@ -1603,7 +1646,7 @@ iso_have_rr_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, p_iso->b_xa,
|
p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, NULL, p_iso->b_xa,
|
||||||
p_iso->u_joliet_level);
|
p_iso->u_joliet_level);
|
||||||
have_rr = p_stat->rr.b3_rock;
|
have_rr = p_stat->rr.b3_rock;
|
||||||
if ( have_rr != yep) {
|
if ( have_rr != yep) {
|
||||||
|
|
@ -1623,7 +1666,7 @@ iso_have_rr_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cdio_assert (offset == (_root->secsize * ISO_BLOCKSIZE));
|
cdio_assert (offset == (_root->secsize[0] * ISO_BLOCKSIZE));
|
||||||
|
|
||||||
/* not found */
|
/* not found */
|
||||||
free (_dirbuf);
|
free (_dirbuf);
|
||||||
|
|
|
||||||
|
|
@ -182,10 +182,12 @@ get_rock_ridge_filename(iso9660_dir_t * p_iso9660_dir,
|
||||||
case SIG('P','L'):
|
case SIG('P','L'):
|
||||||
case SIG('T','F'):
|
case SIG('T','F'):
|
||||||
case SIG('Z','F'):
|
case SIG('Z','F'):
|
||||||
|
case SIG('A','L'): // libburnia's AAIP extension (used by Kali Linux)
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Something got screwed up here */
|
/* Warn about other Rock Ridge extensions */
|
||||||
goto out;
|
cdio_warn("Unsupported Rock Ridge extension detected: '%c%c'\n", *chr, *(chr+1));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rr->len == 0) goto out; /* Something got screwed up here */
|
if (rr->len == 0) goto out; /* Something got screwed up here */
|
||||||
|
|
|
||||||
|
|
@ -1,188 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\filemode.c" />
|
|
||||||
<ClCompile Include="..\udf.c" />
|
|
||||||
<ClCompile Include="..\udf_file.c" />
|
|
||||||
<ClCompile Include="..\udf_fs.c" />
|
|
||||||
<ClCompile Include="..\udf_time.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h" />
|
|
||||||
<ClInclude Include="..\..\cdio\udf.h" />
|
|
||||||
<ClInclude Include="..\..\config.h" />
|
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h" />
|
|
||||||
<ClInclude Include="..\..\driver\filemode.h" />
|
|
||||||
<ClInclude Include="..\udf_fs.h" />
|
|
||||||
<ClInclude Include="..\udf_private.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>udf</RootNamespace>
|
|
||||||
<ProjectName>libcdio-udf</ProjectName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>HAVE_CONFIG_H;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>..;..\..;..\..\driver;..\..\..\msvc-missing;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
<AdditionalOptions>-Wno-deprecated-declarations</AdditionalOptions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\filemode.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\udf.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\udf_file.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\udf_fs.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\udf_time.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\udf_fs.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\udf_private.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\udf.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\config.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\driver\filemode.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\cdio\bytesex.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\driver\cdio_assert.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
TARGETNAME=udf
|
|
||||||
TARGETTYPE=LIBRARY
|
|
||||||
|
|
||||||
INCLUDES=$(DDK_INC_PATH);.;..;..\driver;..\..\msvc-missing
|
|
||||||
LIBCDIO_DEFINES = /DHAVE_CONFIG_H /D_OFF_T_DEFINED /D_off_t=__int64 /Doff_t=_off_t /D_FILE_OFFSET_BITS=64
|
|
||||||
C_DEFINES=$(C_DEFINES) $(LIBCDIO_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DISOLATION_AWARE_ENABLED
|
|
||||||
|
|
||||||
!IFNDEF MSC_WARNING_LEVEL
|
|
||||||
MSC_WARNING_LEVEL=/W3
|
|
||||||
!ENDIF
|
|
||||||
USE_MSVCRT=1
|
|
||||||
|
|
||||||
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
|
|
||||||
$(SDK_LIB_PATH)\user32.lib
|
|
||||||
|
|
||||||
SOURCES=udf.c \
|
|
||||||
udf_file.c \
|
|
||||||
udf_fs.c \
|
|
||||||
udf_time.c \
|
|
||||||
filemode.c
|
|
||||||
|
|
@ -762,4 +762,4 @@ const char* gplv3 =
|
||||||
"Program, unless a warranty or assumption of liability accompanies a\r\n"
|
"Program, unless a warranty or assumption of liability accompanies a\r\n"
|
||||||
"copy of the Program in return for a fee.\r\n"
|
"copy of the Program in return for a fee.\r\n"
|
||||||
"\r\n"
|
"\r\n"
|
||||||
" END OF TERMS AND CONDITIONS";
|
" END OF TERMS AND CONDITIONS";
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <windowsx.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
@ -426,6 +427,8 @@ static uint64_t last_msg_time[2] = { 0, 0 };
|
||||||
|
|
||||||
static void PrintInfoMessage(char* msg) {
|
static void PrintInfoMessage(char* msg) {
|
||||||
SetWindowTextU(hInfo, msg);
|
SetWindowTextU(hInfo, msg);
|
||||||
|
// Make sure our field gets redrawn
|
||||||
|
SendMessage(hInfo, WM_PAINT, 0, 0);
|
||||||
}
|
}
|
||||||
static void PrintStatusMessage(char* msg) {
|
static void PrintStatusMessage(char* msg) {
|
||||||
SendMessageLU(hStatus, SB_SETTEXTW, SBT_OWNERDRAW | SB_SECTION_LEFT, msg);
|
SendMessageLU(hStatus, SB_SETTEXTW, SBT_OWNERDRAW | SB_SECTION_LEFT, msg);
|
||||||
|
|
@ -444,7 +447,7 @@ static void CALLBACK OutputMessageTimeout(HWND hWnd, UINT uMsg, UINT_PTR idEvent
|
||||||
KillTimer(hMainDialog, idEvent);
|
KillTimer(hMainDialog, idEvent);
|
||||||
bOutputTimerArmed[i] = FALSE;
|
bOutputTimerArmed[i] = FALSE;
|
||||||
PrintMessage[i](output_msg[i]);
|
PrintMessage[i](output_msg[i]);
|
||||||
last_msg_time[i] = _GetTickCount64();
|
last_msg_time[i] = GetTickCount64();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void OutputMessage(BOOL info, char* msg)
|
static void OutputMessage(BOOL info, char* msg)
|
||||||
|
|
@ -457,7 +460,7 @@ static void OutputMessage(BOOL info, char* msg)
|
||||||
output_msg[i] = msg;
|
output_msg[i] = msg;
|
||||||
} else {
|
} else {
|
||||||
// Find if we need to arm a timer
|
// Find if we need to arm a timer
|
||||||
delta = _GetTickCount64() - last_msg_time[i];
|
delta = GetTickCount64() - last_msg_time[i];
|
||||||
if (delta < (2 * MAX_REFRESH)) {
|
if (delta < (2 * MAX_REFRESH)) {
|
||||||
// Not enough time has elapsed since our last output => arm a timer
|
// Not enough time has elapsed since our last output => arm a timer
|
||||||
output_msg[i] = msg;
|
output_msg[i] = msg;
|
||||||
|
|
@ -465,7 +468,7 @@ static void OutputMessage(BOOL info, char* msg)
|
||||||
bOutputTimerArmed[i] = TRUE;
|
bOutputTimerArmed[i] = TRUE;
|
||||||
} else {
|
} else {
|
||||||
PrintMessage[i](msg);
|
PrintMessage[i](msg);
|
||||||
last_msg_time[i] = _GetTickCount64();
|
last_msg_time[i] = GetTickCount64();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
465
src/missing.h
465
src/missing.h
|
|
@ -18,10 +18,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <commctrl.h>
|
|
||||||
#include <shlobj.h>
|
|
||||||
#include <wininet.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
@ -60,11 +56,9 @@
|
||||||
/* Read/write with endianness swap */
|
/* Read/write with endianness swap */
|
||||||
#if defined (_MSC_VER) && (_MSC_VER >= 1300)
|
#if defined (_MSC_VER) && (_MSC_VER >= 1300)
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#if !defined(__clang__)
|
|
||||||
#pragma intrinsic(_byteswap_ushort)
|
#pragma intrinsic(_byteswap_ushort)
|
||||||
#pragma intrinsic(_byteswap_ulong)
|
#pragma intrinsic(_byteswap_ulong)
|
||||||
#pragma intrinsic(_byteswap_uint64)
|
#pragma intrinsic(_byteswap_uint64)
|
||||||
#endif
|
|
||||||
#define bswap_uint64 _byteswap_uint64
|
#define bswap_uint64 _byteswap_uint64
|
||||||
#define bswap_uint32 _byteswap_ulong
|
#define bswap_uint32 _byteswap_ulong
|
||||||
#define bswap_uint16 _byteswap_ushort
|
#define bswap_uint16 _byteswap_ushort
|
||||||
|
|
@ -108,471 +102,14 @@ static __inline void *_reallocf(void *ptr, size_t size) {
|
||||||
#define _RT_RCDATA MAKEINTRESOURCEA(10)
|
#define _RT_RCDATA MAKEINTRESOURCEA(10)
|
||||||
#define _RT_GROUP_ICON MAKEINTRESOURCEA((ULONG_PTR)(MAKEINTRESOURCEA(3) + 11))
|
#define _RT_GROUP_ICON MAKEINTRESOURCEA((ULONG_PTR)(MAKEINTRESOURCEA(3) + 11))
|
||||||
|
|
||||||
/* UI redefinitions for WDK and MinGW */
|
/* MinGW doesn't know these */
|
||||||
#ifndef PBM_SETSTATE
|
|
||||||
#define PBM_SETSTATE (WM_USER+16)
|
|
||||||
#endif
|
|
||||||
#ifndef PBST_NORMAL
|
|
||||||
#define PBST_NORMAL 1
|
|
||||||
#endif
|
|
||||||
#ifndef PBST_ERROR
|
|
||||||
#define PBST_ERROR 2
|
|
||||||
#endif
|
|
||||||
#ifndef PBST_PAUSED
|
|
||||||
#define PBST_PAUSED 3
|
|
||||||
#endif
|
|
||||||
#ifndef BUTTON_IMAGELIST_ALIGN_CENTER
|
|
||||||
#define BUTTON_IMAGELIST_ALIGN_CENTER 4
|
|
||||||
#endif
|
|
||||||
#ifndef BCM_SETIMAGELIST
|
|
||||||
#define BCM_SETIMAGELIST 0x1602
|
|
||||||
#endif
|
|
||||||
#ifndef DBT_CUSTOMEVENT
|
|
||||||
#define DBT_CUSTOMEVENT 0x8006
|
|
||||||
#endif
|
|
||||||
#ifndef ERROR_FILE_TOO_LARGE
|
|
||||||
#define ERROR_FILE_TOO_LARGE 223
|
|
||||||
#endif
|
|
||||||
#ifndef MSGFLT_ADD
|
|
||||||
#define MSGFLT_ADD 1
|
|
||||||
#endif
|
|
||||||
#ifndef WM_CLIENTSHUTDOWN
|
#ifndef WM_CLIENTSHUTDOWN
|
||||||
#define WM_CLIENTSHUTDOWN 0x3B
|
#define WM_CLIENTSHUTDOWN 0x3B
|
||||||
#endif
|
#endif
|
||||||
#ifndef WM_COPYGLOBALDATA
|
#ifndef WM_COPYGLOBALDATA
|
||||||
#define WM_COPYGLOBALDATA 0x49
|
#define WM_COPYGLOBALDATA 0x49
|
||||||
#endif
|
#endif
|
||||||
#ifndef PBS_MARQUEE
|
|
||||||
#define PBS_MARQUEE 0x08
|
|
||||||
#endif
|
|
||||||
#ifndef PBM_SETMARQUEE
|
|
||||||
#define PBM_SETMARQUEE (WM_USER+10)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
HIMAGELIST himl;
|
|
||||||
RECT margin;
|
|
||||||
UINT uAlign;
|
|
||||||
} MY_BUTTON_IMAGELIST;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
LPCITEMIDLIST pidl;
|
|
||||||
BOOL fRecursive;
|
|
||||||
} MY_SHChangeNotifyEntry;
|
|
||||||
|
|
||||||
/* The following is used for native ISO mounting in Windows 8 or later */
|
/* The following is used for native ISO mounting in Windows 8 or later */
|
||||||
#define VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT \
|
#define VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT \
|
||||||
{ 0xEC984AECL, 0xA0F9, 0x47e9, { 0x90, 0x1F, 0x71, 0x41, 0x5A, 0x66, 0x34, 0x5B } }
|
{ 0xEC984AECL, 0xA0F9, 0x47e9, { 0x90, 0x1F, 0x71, 0x41, 0x5A, 0x66, 0x34, 0x5B } }
|
||||||
|
|
||||||
typedef enum _VIRTUAL_DISK_ACCESS_MASK {
|
|
||||||
VIRTUAL_DISK_ACCESS_NONE = 0x00000000,
|
|
||||||
VIRTUAL_DISK_ACCESS_ATTACH_RO = 0x00010000,
|
|
||||||
VIRTUAL_DISK_ACCESS_ATTACH_RW = 0x00020000,
|
|
||||||
VIRTUAL_DISK_ACCESS_DETACH = 0x00040000,
|
|
||||||
VIRTUAL_DISK_ACCESS_GET_INFO = 0x00080000,
|
|
||||||
VIRTUAL_DISK_ACCESS_CREATE = 0x00100000,
|
|
||||||
VIRTUAL_DISK_ACCESS_METAOPS = 0x00200000,
|
|
||||||
VIRTUAL_DISK_ACCESS_READ = 0x000d0000,
|
|
||||||
VIRTUAL_DISK_ACCESS_ALL = 0x003f0000,
|
|
||||||
VIRTUAL_DISK_ACCESS_WRITABLE = 0x00320000
|
|
||||||
} VIRTUAL_DISK_ACCESS_MASK;
|
|
||||||
|
|
||||||
typedef enum _OPEN_VIRTUAL_DISK_FLAG {
|
|
||||||
OPEN_VIRTUAL_DISK_FLAG_NONE = 0x00000000,
|
|
||||||
OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS = 0x00000001,
|
|
||||||
OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE = 0x00000002,
|
|
||||||
OPEN_VIRTUAL_DISK_FLAG_BOOT_DRIVE = 0x00000004,
|
|
||||||
OPEN_VIRTUAL_DISK_FLAG_CACHED_IO = 0x00000008,
|
|
||||||
OPEN_VIRTUAL_DISK_FLAG_CUSTOM_DIFF_CHAIN = 0x00000010
|
|
||||||
} OPEN_VIRTUAL_DISK_FLAG;
|
|
||||||
|
|
||||||
typedef enum _OPEN_VIRTUAL_DISK_VERSION {
|
|
||||||
OPEN_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0,
|
|
||||||
OPEN_VIRTUAL_DISK_VERSION_1 = 1,
|
|
||||||
OPEN_VIRTUAL_DISK_VERSION_2 = 2
|
|
||||||
} OPEN_VIRTUAL_DISK_VERSION;
|
|
||||||
|
|
||||||
typedef enum _ATTACH_VIRTUAL_DISK_FLAG {
|
|
||||||
ATTACH_VIRTUAL_DISK_FLAG_NONE = 0x00000000,
|
|
||||||
ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY = 0x00000001,
|
|
||||||
ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER = 0x00000002,
|
|
||||||
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME = 0x00000004,
|
|
||||||
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST = 0x00000008
|
|
||||||
} ATTACH_VIRTUAL_DISK_FLAG;
|
|
||||||
|
|
||||||
typedef enum _ATTACH_VIRTUAL_DISK_VERSION {
|
|
||||||
ATTACH_VIRTUAL_DISK_VERSION_UNSPECIFIED = 0,
|
|
||||||
ATTACH_VIRTUAL_DISK_VERSION_1 = 1
|
|
||||||
} ATTACH_VIRTUAL_DISK_VERSION;
|
|
||||||
|
|
||||||
typedef enum _DETACH_VIRTUAL_DISK_FLAG {
|
|
||||||
DETACH_VIRTUAL_DISK_FLAG_NONE = 0x00000000
|
|
||||||
} DETACH_VIRTUAL_DISK_FLAG;
|
|
||||||
|
|
||||||
#ifndef _VIRTUAL_STORAGE_TYPE_DEFINED
|
|
||||||
#define _VIRTUAL_STORAGE_TYPE_DEFINED
|
|
||||||
typedef struct _VIRTUAL_STORAGE_TYPE {
|
|
||||||
ULONG DeviceId;
|
|
||||||
GUID VendorId;
|
|
||||||
} VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct _OPEN_VIRTUAL_DISK_PARAMETERS {
|
|
||||||
OPEN_VIRTUAL_DISK_VERSION Version;
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
ULONG RWDepth;
|
|
||||||
} Version1;
|
|
||||||
struct {
|
|
||||||
BOOL GetInfoOnly;
|
|
||||||
BOOL ReadOnly;
|
|
||||||
GUID ResiliencyGuid;
|
|
||||||
} Version2;
|
|
||||||
};
|
|
||||||
} OPEN_VIRTUAL_DISK_PARAMETERS, *POPEN_VIRTUAL_DISK_PARAMETERS;
|
|
||||||
|
|
||||||
typedef struct _ATTACH_VIRTUAL_DISK_PARAMETERS {
|
|
||||||
ATTACH_VIRTUAL_DISK_VERSION Version;
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
ULONG Reserved;
|
|
||||||
} Version1;
|
|
||||||
};
|
|
||||||
} ATTACH_VIRTUAL_DISK_PARAMETERS, *PATTACH_VIRTUAL_DISK_PARAMETERS;
|
|
||||||
|
|
||||||
/* Networking constants missing from MinGW */
|
|
||||||
#if !defined(ERROR_INTERNET_DISCONNECTED)
|
|
||||||
#define ERROR_INTERNET_DISCONNECTED (INTERNET_ERROR_BASE + 163)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_SERVER_UNREACHABLE)
|
|
||||||
#define ERROR_INTERNET_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 164)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_PROXY_SERVER_UNREACHABLE)
|
|
||||||
#define ERROR_INTERNET_PROXY_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 165)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT)
|
|
||||||
#define ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT (INTERNET_ERROR_BASE + 166)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT)
|
|
||||||
#define ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT (INTERNET_ERROR_BASE + 167)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_FAILED_DUETOSECURITYCHECK)
|
|
||||||
#define ERROR_INTERNET_FAILED_DUETOSECURITYCHECK (INTERNET_ERROR_BASE + 171)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_NOT_INITIALIZED)
|
|
||||||
#define ERROR_INTERNET_NOT_INITIALIZED (INTERNET_ERROR_BASE + 172)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_NEED_MSN_SSPI_PKG)
|
|
||||||
#define ERROR_INTERNET_NEED_MSN_SSPI_PKG (INTERNET_ERROR_BASE + 173)
|
|
||||||
#endif
|
|
||||||
#if !defined(ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY)
|
|
||||||
#define ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY (INTERNET_ERROR_BASE + 174)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Clang/MinGW32 has an issue with intptr_t */
|
|
||||||
#ifndef _UINTPTR_T_DEFINED
|
|
||||||
#define _UINTPTR_T_DEFINED
|
|
||||||
#ifdef _WIN64
|
|
||||||
typedef unsigned __int64 uintptr_t;
|
|
||||||
#else
|
|
||||||
typedef unsigned int uintptr_t;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* IFile[Open]Dialog interface for Vista and later (from MinGW headers)
|
|
||||||
*/
|
|
||||||
#ifndef __IFileDialog_INTERFACE_DEFINED__
|
|
||||||
#define __IFileDialog_INTERFACE_DEFINED__
|
|
||||||
|
|
||||||
enum _FILEOPENDIALOGOPTIONS {
|
|
||||||
FOS_OVERWRITEPROMPT = 0x2,
|
|
||||||
FOS_STRICTFILETYPES = 0x4,
|
|
||||||
FOS_NOCHANGEDIR = 0x8,
|
|
||||||
FOS_PICKFOLDERS = 0x20,
|
|
||||||
FOS_FORCEFILESYSTEM = 0x40,
|
|
||||||
FOS_ALLNONSTORAGEITEMS = 0x80,
|
|
||||||
FOS_NOVALIDATE = 0x100,
|
|
||||||
FOS_ALLOWMULTISELECT = 0x200,
|
|
||||||
FOS_PATHMUSTEXIST = 0x800,
|
|
||||||
FOS_FILEMUSTEXIST = 0x1000,
|
|
||||||
FOS_CREATEPROMPT = 0x2000,
|
|
||||||
FOS_SHAREAWARE = 0x4000,
|
|
||||||
FOS_NOREADONLYRETURN = 0x8000,
|
|
||||||
FOS_NOTESTFILECREATE = 0x10000,
|
|
||||||
FOS_HIDEMRUPLACES = 0x20000,
|
|
||||||
FOS_HIDEPINNEDPLACES = 0x40000,
|
|
||||||
FOS_NODEREFERENCELINKS = 0x100000,
|
|
||||||
FOS_DONTADDTORECENT = 0x2000000,
|
|
||||||
FOS_FORCESHOWHIDDEN = 0x10000000,
|
|
||||||
FOS_DEFAULTNOMINIMODE = 0x20000000,
|
|
||||||
FOS_FORCEPREVIEWPANEON = 0x40000000
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef enum FDAP {
|
|
||||||
FDAP_BOTTOM = 0,
|
|
||||||
FDAP_TOP = 1
|
|
||||||
} FDAP;
|
|
||||||
|
|
||||||
typedef DWORD FILEOPENDIALOGOPTIONS;
|
|
||||||
|
|
||||||
DEFINE_GUID(IID_IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85, 0xf1, 0xe4, 0x07, 0x5d, 0x13, 0x5f, 0xc8);
|
|
||||||
|
|
||||||
typedef struct IFileDialogVtbl {
|
|
||||||
BEGIN_INTERFACE
|
|
||||||
|
|
||||||
/*** IUnknown methods ***/
|
|
||||||
HRESULT(STDMETHODCALLTYPE *QueryInterface)(
|
|
||||||
IFileDialog* This,
|
|
||||||
REFIID riid,
|
|
||||||
void **ppvObject);
|
|
||||||
|
|
||||||
ULONG(STDMETHODCALLTYPE *AddRef)(
|
|
||||||
IFileDialog* This);
|
|
||||||
|
|
||||||
ULONG(STDMETHODCALLTYPE *Release)(
|
|
||||||
IFileDialog* This);
|
|
||||||
|
|
||||||
/*** IModalWindow methods ***/
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Show)(
|
|
||||||
IFileDialog* This,
|
|
||||||
HWND hwndOwner);
|
|
||||||
|
|
||||||
/*** IFileDialog methods ***/
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileTypes)(
|
|
||||||
IFileDialog* This,
|
|
||||||
UINT cFileTypes,
|
|
||||||
const COMDLG_FILTERSPEC *rgFilterSpec);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileTypeIndex)(
|
|
||||||
IFileDialog* This,
|
|
||||||
UINT iFileType);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetFileTypeIndex)(
|
|
||||||
IFileDialog* This,
|
|
||||||
UINT *piFileType);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Advise)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IFileDialogEvents *pfde,
|
|
||||||
DWORD *pdwCookie);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Unadvise)(
|
|
||||||
IFileDialog* This,
|
|
||||||
DWORD dwCookie);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetOptions)(
|
|
||||||
IFileDialog* This,
|
|
||||||
FILEOPENDIALOGOPTIONS fos);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetOptions)(
|
|
||||||
IFileDialog* This,
|
|
||||||
FILEOPENDIALOGOPTIONS *pfos);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetDefaultFolder)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IShellItem *psi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFolder)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IShellItem *psi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetFolder)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IShellItem **ppsi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetCurrentSelection)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IShellItem **ppsi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileName)(
|
|
||||||
IFileDialog* This,
|
|
||||||
LPCWSTR pszName);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetFileName)(
|
|
||||||
IFileDialog* This,
|
|
||||||
LPWSTR *pszName);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetTitle)(
|
|
||||||
IFileDialog* This,
|
|
||||||
LPCWSTR pszTitle);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetOkButtonLabel)(
|
|
||||||
IFileDialog* This,
|
|
||||||
LPCWSTR pszText);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileNameLabel)(
|
|
||||||
IFileDialog* This,
|
|
||||||
LPCWSTR pszLabel);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetResult)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IShellItem **ppsi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *AddPlace)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IShellItem *psi,
|
|
||||||
FDAP fdap);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetDefaultExtension)(
|
|
||||||
IFileDialog* This,
|
|
||||||
LPCWSTR pszDefaultExtension);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Close)(
|
|
||||||
IFileDialog* This,
|
|
||||||
HRESULT hr);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetClientGuid)(
|
|
||||||
IFileDialog* This,
|
|
||||||
REFGUID guid);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *ClearClientData)(
|
|
||||||
IFileDialog* This);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFilter)(
|
|
||||||
IFileDialog* This,
|
|
||||||
IShellItemFilter *pFilter);
|
|
||||||
|
|
||||||
END_INTERFACE
|
|
||||||
} IFileDialogVtbl;
|
|
||||||
interface IFileDialog {
|
|
||||||
CONST_VTBL IFileDialogVtbl* lpVtbl;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __IFileOpenDialog_INTERFACE_DEFINED__
|
|
||||||
#define __IFileOpenDialog_INTERFACE_DEFINED__
|
|
||||||
|
|
||||||
DEFINE_GUID(IID_IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe, 0x02, 0x9d, 0x96, 0x95, 0x32, 0xd9, 0x60);
|
|
||||||
|
|
||||||
typedef struct IFileOpenDialogVtbl {
|
|
||||||
BEGIN_INTERFACE
|
|
||||||
|
|
||||||
/*** IUnknown methods ***/
|
|
||||||
HRESULT(STDMETHODCALLTYPE *QueryInterface)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
REFIID riid,
|
|
||||||
void **ppvObject);
|
|
||||||
|
|
||||||
ULONG(STDMETHODCALLTYPE *AddRef)(
|
|
||||||
IFileOpenDialog* This);
|
|
||||||
|
|
||||||
ULONG(STDMETHODCALLTYPE *Release)(
|
|
||||||
IFileOpenDialog* This);
|
|
||||||
|
|
||||||
/*** IModalWindow methods ***/
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Show)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
HWND hwndOwner);
|
|
||||||
|
|
||||||
/*** IFileDialog methods ***/
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileTypes)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
UINT cFileTypes,
|
|
||||||
const COMDLG_FILTERSPEC *rgFilterSpec);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileTypeIndex)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
UINT iFileType);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetFileTypeIndex)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
UINT *piFileType);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Advise)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IFileDialogEvents *pfde,
|
|
||||||
DWORD *pdwCookie);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Unadvise)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
DWORD dwCookie);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetOptions)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
FILEOPENDIALOGOPTIONS fos);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetOptions)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
FILEOPENDIALOGOPTIONS *pfos);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetDefaultFolder)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItem *psi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFolder)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItem *psi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetFolder)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItem **ppsi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetCurrentSelection)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItem **ppsi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileName)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
LPCWSTR pszName);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetFileName)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
LPWSTR *pszName);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetTitle)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
LPCWSTR pszTitle);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetOkButtonLabel)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
LPCWSTR pszText);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFileNameLabel)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
LPCWSTR pszLabel);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetResult)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItem **ppsi);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *AddPlace)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItem *psi,
|
|
||||||
FDAP fdap);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetDefaultExtension)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
LPCWSTR pszDefaultExtension);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *Close)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
HRESULT hr);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetClientGuid)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
REFGUID guid);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *ClearClientData)(
|
|
||||||
IFileOpenDialog* This);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *SetFilter)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItemFilter *pFilter);
|
|
||||||
|
|
||||||
/*** IFileOpenDialog methods ***/
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetResults)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItemArray **ppenum);
|
|
||||||
|
|
||||||
HRESULT(STDMETHODCALLTYPE *GetSelectedItems)(
|
|
||||||
IFileOpenDialog* This,
|
|
||||||
IShellItemArray **ppsai);
|
|
||||||
|
|
||||||
END_INTERFACE
|
|
||||||
} IFileOpenDialogVtbl;
|
|
||||||
interface IFileOpenDialog {
|
|
||||||
CONST_VTBL IFileOpenDialogVtbl* lpVtbl;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
|
||||||
|
|
@ -1,237 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\inc\br.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat12_0x0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat12_0x3e.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat16fd_0x3e.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x3e.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat16_0x0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat16_0x3e.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x3f0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x52.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32kos_0x52.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x1800.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x3f0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x52.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x1800.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x3f0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x52.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x1c00.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x3f0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x52.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32_0x0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32_0x3f0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_fat32_0x52.h" />
|
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x0.h" />
|
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x54.h" />
|
|
||||||
<ClInclude Include="..\inc\fat12.h" />
|
|
||||||
<ClInclude Include="..\inc\fat16.h" />
|
|
||||||
<ClInclude Include="..\inc\fat32.h" />
|
|
||||||
<ClInclude Include="..\inc\file.h" />
|
|
||||||
<ClInclude Include="..\inc\label_11_char.h" />
|
|
||||||
<ClInclude Include="..\inc\libintl.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_2000.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_95b.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_dos.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_dos_f2.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_grub.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_grub2.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_kolibri.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_reactos.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_rufus.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_syslinux.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_vista.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_win7.h" />
|
|
||||||
<ClInclude Include="..\inc\mbr_zero.h" />
|
|
||||||
<ClInclude Include="..\inc\nls.h" />
|
|
||||||
<ClInclude Include="..\inc\ntfs.h" />
|
|
||||||
<ClInclude Include="..\inc\partition_info.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\br.c" />
|
|
||||||
<ClCompile Include="..\fat12.c" />
|
|
||||||
<ClCompile Include="..\fat16.c" />
|
|
||||||
<ClCompile Include="..\fat32.c" />
|
|
||||||
<ClCompile Include="..\file.c" />
|
|
||||||
<ClCompile Include="..\ntfs.c" />
|
|
||||||
<ClCompile Include="..\partition_info.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{2B1D078D-8EB4-4398-9CA4-23457265A7F6}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>mssys</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
<PlatformToolset>v141_clang_c2</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86_32\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\</OutDir>
|
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x86_64\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
|
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<UseMultiToolTask>true</UseMultiToolTask>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>../inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
|
|
||||||
<CompileAs>CompileAsC</CompileAs>
|
|
||||||
<MSCompatibility>true</MSCompatibility>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<TargetMachine>MachineX64</TargetMachine>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,179 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\inc\br.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\partition_info.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat12_0x0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat12_0x3e.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat16_0x0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat16_0x3e.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat16fd_0x3e.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32_0x0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32_0x3f0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32_0x52.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x3f0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32fd_0x52.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x1800.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x3f0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32nt_0x52.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\fat12.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\fat16.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\fat32.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\file.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\label_11_char.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_2000.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_95b.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_dos.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_dos_f2.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_syslinux.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_vista.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_win7.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_zero.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\ntfs.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_ntfs_0x54.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_reactos.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x1c00.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x3f0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32ros_0x52.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x3e.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat16ros_0x0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_rufus.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32kos_0x52.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_kolibri.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_grub.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\mbr_grub2.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\nls.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\libintl.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x3f0.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x52.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\inc\br_fat32pe_0x1800.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\br.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\file.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\fat12.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\fat16.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\fat32.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\partition_info.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\ntfs.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
TARGETNAME=ms-sys
|
|
||||||
TARGETTYPE=LIBRARY
|
|
||||||
|
|
||||||
INCLUDES=$(DDK_INC_PATH);.\inc;..\msvc-missing
|
|
||||||
C_DEFINES=$(C_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DISOLATION_AWARE_ENABLED
|
|
||||||
|
|
||||||
!IFNDEF MSC_WARNING_LEVEL
|
|
||||||
MSC_WARNING_LEVEL=/W3
|
|
||||||
!ENDIF
|
|
||||||
USE_MSVCRT=1
|
|
||||||
|
|
||||||
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
|
|
||||||
$(SDK_LIB_PATH)\user32.lib
|
|
||||||
|
|
||||||
SOURCES=file.c \
|
|
||||||
br.c \
|
|
||||||
fat12.c \
|
|
||||||
fat16.c \
|
|
||||||
fat32.c \
|
|
||||||
ntfs.c \
|
|
||||||
partition_info.c
|
|
||||||
|
|
@ -2,40 +2,40 @@
|
||||||
* First 423 bytes of MBR from Grub4DOS (Converted from res/grub/grldr.mbr)
|
* First 423 bytes of MBR from Grub4DOS (Converted from res/grub/grldr.mbr)
|
||||||
*/
|
*/
|
||||||
unsigned char mbr_grub_0x0[] = {
|
unsigned char mbr_grub_0x0[] = {
|
||||||
0xEB, 0x5E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xEB, 0x5E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x20, 0x39, 0xFF, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x20, 0x39, 0xFF, 0xFF,
|
||||||
0x31, 0xDB, 0x8E, 0xD3, 0xBC, 0x80, 0x05, 0xE8, 0x00, 0x00, 0x5B, 0x81,
|
0x31, 0xDB, 0x8E, 0xD3, 0xBC, 0x80, 0x05, 0xE8, 0x00, 0x00, 0x5B, 0x81,
|
||||||
0xEB, 0x6A, 0x00, 0xC1, 0xEB, 0x04, 0x8C, 0xC8, 0x01, 0xC3, 0x53, 0x68,
|
0xEB, 0x6A, 0x00, 0xC1, 0xEB, 0x04, 0x8C, 0xC8, 0x01, 0xC3, 0x53, 0x68,
|
||||||
0x7B, 0x00, 0xCB, 0x68, 0x00, 0x20, 0x17, 0xBC, 0x00, 0x90, 0x80, 0xFA,
|
0x7B, 0x00, 0xCB, 0x68, 0x00, 0x20, 0x17, 0xBC, 0x00, 0x90, 0x80, 0xFA,
|
||||||
0x00, 0x74, 0x02, 0xB2, 0x80, 0x16, 0x07, 0xB0, 0x10, 0x30, 0xF6, 0x31,
|
0x00, 0x74, 0x02, 0xB2, 0x80, 0x16, 0x07, 0xB0, 0x10, 0x30, 0xF6, 0x31,
|
||||||
0xDB, 0xE8, 0xC2, 0x00, 0x72, 0x29, 0x0E, 0x1F, 0x31, 0xF6, 0x31, 0xFF,
|
0xDB, 0xE8, 0xC2, 0x00, 0x72, 0x29, 0x0E, 0x1F, 0x31, 0xF6, 0x31, 0xFF,
|
||||||
0xB9, 0xDF, 0x00, 0xFC, 0xF3, 0xA5, 0xBB, 0xFC, 0x1F, 0x66, 0xB8, 0x47,
|
0xB9, 0xDF, 0x00, 0xFC, 0xF3, 0xA5, 0xBB, 0xFC, 0x1F, 0x66, 0xB8, 0x47,
|
||||||
0x52, 0x55, 0xAA, 0x66, 0x39, 0x07, 0x75, 0x03, 0xE8, 0xA8, 0x19, 0xEA,
|
0x52, 0x55, 0xAA, 0x66, 0x39, 0x07, 0x75, 0x03, 0xE8, 0xB6, 0x19, 0xEA,
|
||||||
0xB8, 0x00, 0x00, 0x20, 0x16, 0x1F, 0x66, 0x39, 0x07, 0x74, 0x1F, 0x80,
|
0xB8, 0x00, 0x00, 0x20, 0x16, 0x1F, 0x66, 0x39, 0x07, 0x74, 0x1F, 0x80,
|
||||||
0xF2, 0x80, 0x68, 0xC0, 0x07, 0x07, 0xB0, 0x10, 0x30, 0xF6, 0x31, 0xDB,
|
0xF2, 0x80, 0x68, 0xC0, 0x07, 0x07, 0xB0, 0x10, 0x30, 0xF6, 0x31, 0xDB,
|
||||||
0xE8, 0x87, 0x00, 0x72, 0x05, 0xEA, 0x00, 0x00, 0xC0, 0x07, 0xBE, 0x92,
|
0xE8, 0x87, 0x00, 0x72, 0x05, 0xEA, 0x00, 0x00, 0xC0, 0x07, 0xBE, 0x92,
|
||||||
0x01, 0xE8, 0xAF, 0x00, 0xEB, 0xFE, 0xBE, 0xBE, 0x01, 0xE8, 0x14, 0x10,
|
0x01, 0xE8, 0xAF, 0x00, 0xEB, 0xFE, 0xBE, 0xBE, 0x01, 0xE8, 0x14, 0x10,
|
||||||
0xF6, 0x06, 0xA4, 0x01, 0x80, 0x0F, 0x84, 0x7C, 0x19, 0x83, 0xC6, 0x0C,
|
0xF6, 0x06, 0xA4, 0x01, 0x80, 0x0F, 0x84, 0x8A, 0x19, 0x83, 0xC6, 0x0C,
|
||||||
0x81, 0xFE, 0xFE, 0x01, 0x72, 0xEB, 0x77, 0x2D, 0xF6, 0x06, 0xA7, 0x01,
|
0x81, 0xFE, 0xFE, 0x01, 0x72, 0xEB, 0x77, 0x2D, 0xF6, 0x06, 0xA7, 0x01,
|
||||||
0x01, 0x0F, 0x85, 0x2E, 0x17, 0x80, 0x0E, 0xA7, 0x01, 0x01, 0xF6, 0x06,
|
0x01, 0x0F, 0x85, 0x3C, 0x17, 0x80, 0x0E, 0xA7, 0x01, 0x01, 0xF6, 0x06,
|
||||||
0xA7, 0x01, 0x02, 0x75, 0xD4, 0x68, 0x00, 0x0D, 0x07, 0xB0, 0x04, 0x31,
|
0xA7, 0x01, 0x02, 0x75, 0xD4, 0x68, 0x00, 0x0D, 0x07, 0xB0, 0x04, 0x31,
|
||||||
0xD2, 0x31, 0xDB, 0xE8, 0x3C, 0x00, 0x73, 0xC2, 0xBE, 0xBD, 0x1C, 0xE8,
|
0xD2, 0x31, 0xDB, 0xE8, 0x3C, 0x00, 0x73, 0xC2, 0xBE, 0xCB, 0x1C, 0xE8,
|
||||||
0x69, 0x00, 0xE9, 0x0A, 0x17, 0xF6, 0x06, 0xA7, 0x01, 0x01, 0x0F, 0x85,
|
0x69, 0x00, 0xE9, 0x18, 0x17, 0xF6, 0x06, 0xA7, 0x01, 0x01, 0x0F, 0x85,
|
||||||
0x01, 0x17, 0x80, 0x0E, 0xA7, 0x01, 0x01, 0xE9, 0xE2, 0x16, 0x1E, 0x06,
|
0x0F, 0x17, 0x80, 0x0E, 0xA7, 0x01, 0x01, 0xE9, 0xF0, 0x16, 0x1E, 0x06,
|
||||||
0x52, 0x56, 0x57, 0x55, 0xF9, 0xCD, 0x13, 0x5D, 0x5F, 0x5E, 0x5A, 0x07,
|
0x52, 0x56, 0x57, 0x55, 0xF9, 0xCD, 0x13, 0x5D, 0x5F, 0x5E, 0x5A, 0x07,
|
||||||
0x1F, 0xC3, 0xFA, 0xB8, 0x00, 0x20, 0x8E, 0xD0, 0xBC, 0xDC, 0x8F, 0xFB,
|
0x1F, 0xC3, 0xFA, 0xB8, 0x00, 0x20, 0x8E, 0xD0, 0xBC, 0xDC, 0x8F, 0xFB,
|
||||||
0x66, 0x61, 0x07, 0x1F, 0xEB, 0x97, 0xB4, 0x02, 0xBF, 0x03, 0x00, 0xB9,
|
0x66, 0x61, 0x07, 0x1F, 0xEB, 0x97, 0xB4, 0x02, 0xBF, 0x03, 0x00, 0xB9,
|
||||||
0x01, 0x00, 0x60, 0x50, 0x53, 0x51, 0xFE, 0xC8, 0x00, 0xC1, 0xD0, 0xE0,
|
0x01, 0x00, 0x60, 0x50, 0x53, 0x51, 0xFE, 0xC8, 0x00, 0xC1, 0xD0, 0xE0,
|
||||||
0x00, 0xC7, 0xB0, 0x01, 0xE8, 0xC7, 0xFF, 0x59, 0x5B, 0x58, 0x72, 0x04,
|
0x00, 0xC7, 0xB0, 0x01, 0xE8, 0xC7, 0xFF, 0x59, 0x5B, 0x58, 0x72, 0x04,
|
||||||
0xFE, 0xC8, 0x75, 0xE7, 0x61, 0x73, 0x0B, 0x60, 0x31, 0xC0, 0xE8, 0xB5,
|
0xFE, 0xC8, 0x75, 0xE7, 0x61, 0x73, 0x0B, 0x60, 0x31, 0xC0, 0xE8, 0xB5,
|
||||||
0xFF, 0x61, 0x4F, 0x75, 0xD9, 0xF9, 0xC3, 0xB4, 0x0E, 0xCD, 0x10, 0x2E,
|
0xFF, 0x61, 0x4F, 0x75, 0xD9, 0xF9, 0xC3, 0xB4, 0x0E, 0xCD, 0x10, 0x2E,
|
||||||
0xAC, 0x3C, 0x00, 0x75, 0xF6, 0xC3, 0x0D, 0x0A, 0x4D, 0x69, 0x73, 0x73,
|
0xAC, 0x3C, 0x00, 0x75, 0xF6, 0xC3, 0x0D, 0x0A, 0x4D, 0x69, 0x73, 0x73,
|
||||||
0x69, 0x6E, 0x67, 0x20, 0x68, 0x65, 0x6C, 0x70, 0x65, 0x72, 0x2E, 0x00,
|
0x69, 0x6E, 0x67, 0x20, 0x68, 0x65, 0x6C, 0x70, 0x65, 0x72, 0x2E, 0x00,
|
||||||
0x00, 0x3F, 0xFF
|
0x00, 0x3F, 0xFF
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,7 @@
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#if !defined(DDKBUILD)
|
|
||||||
#include <psapi.h>
|
#include <psapi.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
|
|
@ -278,6 +276,11 @@ static __inline int LoadStringU(HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, i
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
DWORD err = ERROR_INVALID_DATA;
|
DWORD err = ERROR_INVALID_DATA;
|
||||||
|
if (nBufferMax == 0) {
|
||||||
|
// read-only pointer to resource mode is not supported
|
||||||
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
// coverity[returned_null]
|
// coverity[returned_null]
|
||||||
walloc(lpBuffer, nBufferMax);
|
walloc(lpBuffer, nBufferMax);
|
||||||
ret = LoadStringW(hInstance, uID, wlpBuffer, nBufferMax);
|
ret = LoadStringW(hInstance, uID, wlpBuffer, nBufferMax);
|
||||||
|
|
@ -290,6 +293,18 @@ static __inline int LoadStringU(HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, i
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static __inline HMODULE LoadLibraryU(LPCSTR lpFileName)
|
||||||
|
{
|
||||||
|
HMODULE ret;
|
||||||
|
DWORD err = ERROR_INVALID_DATA;
|
||||||
|
wconvert(lpFileName);
|
||||||
|
ret = LoadLibraryW(wlpFileName);
|
||||||
|
err = GetLastError();
|
||||||
|
wfree(lpFileName);
|
||||||
|
SetLastError(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static __inline int DrawTextU(HDC hDC, LPCSTR lpText, int nCount, LPRECT lpRect, UINT uFormat)
|
static __inline int DrawTextU(HDC hDC, LPCSTR lpText, int nCount, LPRECT lpRect, UINT uFormat)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -463,6 +478,15 @@ static __inline BOOL DeleteFileU(const char* lpFileName)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static __inline BOOL PathFileExistsU(char* szPath)
|
||||||
|
{
|
||||||
|
BOOL ret;
|
||||||
|
wconvert(szPath);
|
||||||
|
ret = PathFileExistsW(wszPath);
|
||||||
|
wfree(szPath);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static __inline int PathGetDriveNumberU(char* lpPath)
|
static __inline int PathGetDriveNumberU(char* lpPath)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
@ -584,7 +608,6 @@ static __inline DWORD GetModuleFileNameU(HMODULE hModule, char* lpFilename, DWOR
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(DDKBUILD)
|
|
||||||
static __inline DWORD GetModuleFileNameExU(HANDLE hProcess, HMODULE hModule, char* lpFilename, DWORD nSize)
|
static __inline DWORD GetModuleFileNameExU(HANDLE hProcess, HMODULE hModule, char* lpFilename, DWORD nSize)
|
||||||
{
|
{
|
||||||
DWORD ret = 0, err = ERROR_INVALID_DATA;
|
DWORD ret = 0, err = ERROR_INVALID_DATA;
|
||||||
|
|
@ -600,7 +623,6 @@ static __inline DWORD GetModuleFileNameExU(HANDLE hProcess, HMODULE hModule, cha
|
||||||
SetLastError(err);
|
SetLastError(err);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static __inline DWORD GetFullPathNameU(const char* lpFileName, DWORD nBufferLength, char* lpBuffer, char** lpFilePart)
|
static __inline DWORD GetFullPathNameU(const char* lpFileName, DWORD nBufferLength, char* lpBuffer, char** lpFilePart)
|
||||||
{
|
{
|
||||||
|
|
@ -926,6 +948,15 @@ static __inline int _openU(const char *filename, int oflag , int pmode)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static __inline int _unlinkU(const char *path)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
wconvert(path);
|
||||||
|
ret = _wunlink(wpath);
|
||||||
|
wfree(path);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static __inline int _stat64U(const char *path, struct __stat64 *buffer)
|
static __inline int _stat64U(const char *path, struct __stat64 *buffer)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -1017,15 +1048,6 @@ static __inline BOOL GetVolumeInformationU(LPCSTR lpRootPathName, LPSTR lpVolume
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline HMODULE LoadLibraryU(LPCSTR lpFileName)
|
|
||||||
{
|
|
||||||
HMODULE h;
|
|
||||||
wconvert(lpFileName);
|
|
||||||
h = LoadLibraryW(wlpFileName);
|
|
||||||
wfree(lpFileName);
|
|
||||||
return h;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
20
src/net.c
20
src/net.c
|
|
@ -175,6 +175,8 @@ const char* WinInetErrorString(void)
|
||||||
return "The header could not be added because it already exists.";
|
return "The header could not be added because it already exists.";
|
||||||
case ERROR_HTTP_REDIRECT_FAILED:
|
case ERROR_HTTP_REDIRECT_FAILED:
|
||||||
return "The redirection failed because either the scheme changed or all attempts made to redirect failed.";
|
return "The redirection failed because either the scheme changed or all attempts made to redirect failed.";
|
||||||
|
case ERROR_INTERNET_SECURITY_CHANNEL_ERROR:
|
||||||
|
return "This system's SSL library is too old to be able to access this website.";
|
||||||
case ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED:
|
case ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED:
|
||||||
return "Client Authentication certificate needed";
|
return "Client Authentication certificate needed";
|
||||||
case ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT:
|
case ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT:
|
||||||
|
|
@ -203,7 +205,7 @@ const char* WinInetErrorString(void)
|
||||||
InternetGetLastResponseInfoA(&error_code, error_string, &size);
|
InternetGetLastResponseInfoA(&error_code, error_string, &size);
|
||||||
return error_string;
|
return error_string;
|
||||||
default:
|
default:
|
||||||
safe_sprintf(error_string, sizeof(error_string), "Unknown internet error 0x%08lX", error_code);
|
static_sprintf(error_string, "Unknown internet error 0x%08lX", error_code);
|
||||||
return error_string;
|
return error_string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -253,7 +255,7 @@ DWORD DownloadFile(const char* url, const char* file, HWND hProgressDialog)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintInfo(0, MSG_240, &file[last_slash]);
|
PrintInfo(0, MSG_085, &file[last_slash]);
|
||||||
uprintf("Downloading '%s' from %s\n", &file[last_slash], url);
|
uprintf("Downloading '%s' from %s\n", &file[last_slash], url);
|
||||||
|
|
||||||
if ( (!InternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts))
|
if ( (!InternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts))
|
||||||
|
|
@ -273,7 +275,7 @@ DWORD DownloadFile(const char* url, const char* file, HWND hProgressDialog)
|
||||||
uprintf("Network is unavailable: %s\n", WinInetErrorString());
|
uprintf("Network is unavailable: %s\n", WinInetErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
safe_sprintf(agent, ARRAYSIZE(agent), APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
|
static_sprintf(agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
|
||||||
rufus_version[0], rufus_version[1], rufus_version[2],
|
rufus_version[0], rufus_version[1], rufus_version[2],
|
||||||
nWindowsVersion>>4, nWindowsVersion&0x0F, is_x64()?"; WOW64":"");
|
nWindowsVersion>>4, nWindowsVersion&0x0F, is_x64()?"; WOW64":"");
|
||||||
hSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
|
hSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
|
||||||
|
|
@ -356,7 +358,7 @@ out:
|
||||||
if (fd != NULL) fclose(fd);
|
if (fd != NULL) fclose(fd);
|
||||||
if (!r) {
|
if (!r) {
|
||||||
if (file != NULL)
|
if (file != NULL)
|
||||||
_unlink(file);
|
_unlinkU(file);
|
||||||
if (PromptOnError) {
|
if (PromptOnError) {
|
||||||
PrintInfo(0, MSG_242);
|
PrintInfo(0, MSG_242);
|
||||||
SetLastError(error_code);
|
SetLastError(error_code);
|
||||||
|
|
@ -402,7 +404,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
{
|
{
|
||||||
BOOL releases_only, found_new_version = FALSE;
|
BOOL releases_only, found_new_version = FALSE;
|
||||||
int status = 0;
|
int status = 0;
|
||||||
const char* server_url = RUFUS_URL "/";
|
const char* server_url = RUFUS_NO_SSL_URL "/";
|
||||||
int i, j, k, max_channel, verbose = 0, verpos[4];
|
int i, j, k, max_channel, verbose = 0, verpos[4];
|
||||||
static const char* archname[] = {"win_x86", "win_x64"};
|
static const char* archname[] = {"win_x86", "win_x64"};
|
||||||
static const char* channel[] = {"release", "beta", "test"}; // release channel
|
static const char* channel[] = {"release", "beta", "test"}; // release channel
|
||||||
|
|
@ -465,7 +467,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
goto out;
|
goto out;
|
||||||
hostname[sizeof(hostname)-1] = 0;
|
hostname[sizeof(hostname)-1] = 0;
|
||||||
|
|
||||||
safe_sprintf(agent, ARRAYSIZE(agent), APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
|
static_sprintf(agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
|
||||||
rufus_version[0], rufus_version[1], rufus_version[2],
|
rufus_version[0], rufus_version[1], rufus_version[2],
|
||||||
nWindowsVersion >> 4, nWindowsVersion & 0x0F, is_x64() ? "; WOW64" : "");
|
nWindowsVersion >> 4, nWindowsVersion & 0x0F, is_x64() ? "; WOW64" : "");
|
||||||
hSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
|
hSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
|
||||||
|
|
@ -491,7 +493,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
// and then remove each each of the <os_> components until we find our match. For instance, we may first
|
// and then remove each each of the <os_> components until we find our match. For instance, we may first
|
||||||
// look for rufus_win_x64_6.2.ver (Win8 x64) but only get a match for rufus_win_x64_6.ver (Vista x64 or later)
|
// look for rufus_win_x64_6.2.ver (Win8 x64) but only get a match for rufus_win_x64_6.ver (Vista x64 or later)
|
||||||
// This allows sunsetting OS versions (eg XP) or providing different downloads for different archs/groups.
|
// This allows sunsetting OS versions (eg XP) or providing different downloads for different archs/groups.
|
||||||
safe_sprintf(urlpath, sizeof(urlpath), "%s%s%s_%s_%lu.%lu.ver", APPLICATION_NAME, (k==0)?"":"_",
|
static_sprintf(urlpath, "%s%s%s_%s_%lu.%lu.ver", APPLICATION_NAME, (k==0)?"":"_",
|
||||||
(k==0)?"":channel[k], archname[is_x64()?1:0], os_version.dwMajorVersion, os_version.dwMinorVersion);
|
(k==0)?"":channel[k], archname[is_x64()?1:0], os_version.dwMajorVersion, os_version.dwMinorVersion);
|
||||||
vuprintf("Base update check: %s\n", urlpath);
|
vuprintf("Base update check: %s\n", urlpath);
|
||||||
for (i=0, j=(int)safe_strlen(urlpath)-5; (j>0)&&(i<ARRAYSIZE(verpos)); j--) {
|
for (i=0, j=(int)safe_strlen(urlpath)-5; (j>0)&&(i<ARRAYSIZE(verpos)); j--) {
|
||||||
|
|
@ -512,8 +514,10 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
|
||||||
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|
|
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|
|
||||||
INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK|
|
INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK|
|
||||||
((UrlParts.nScheme == INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL);
|
((UrlParts.nScheme == INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL);
|
||||||
if ((hRequest == NULL) || (!HttpSendRequestA(hRequest, NULL, 0, NULL, 0)))
|
if ((hRequest == NULL) || (!HttpSendRequestA(hRequest, NULL, 0, NULL, 0))) {
|
||||||
|
uprintf("Unable to send request: %s", WinInetErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure that we get a text file
|
// Ensure that we get a text file
|
||||||
dwSize = sizeof(dwStatus);
|
dwSize = sizeof(dwStatus);
|
||||||
|
|
|
||||||
184
src/parser.c
184
src/parser.c
|
|
@ -1131,7 +1131,8 @@ char* replace_in_token_data(const char* filename, const char* token, const char*
|
||||||
}
|
}
|
||||||
// Check the input file's BOM and create an output file with the same
|
// Check the input file's BOM and create an output file with the same
|
||||||
if (fread(&bom, sizeof(bom), 1, fd_in) != 1) {
|
if (fread(&bom, sizeof(bom), 1, fd_in) != 1) {
|
||||||
uprintf("Could not read file '%s'\n", filename);
|
if (!feof(fd_in))
|
||||||
|
uprintf("Could not read file '%s'\n", filename);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
switch(bom) {
|
switch(bom) {
|
||||||
|
|
@ -1265,3 +1266,184 @@ char* replace_char(const char* src, const char c, const char* rep)
|
||||||
res[j] = 0;
|
res[j] = 0;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Internal recursive call for get_data_from_asn1(). Returns FALSE on error, TRUE otherwise.
|
||||||
|
*/
|
||||||
|
static BOOL get_data_from_asn1_internal(const uint8_t* buf, size_t buf_len, const void* oid,
|
||||||
|
size_t oid_len, uint8_t asn1_type, void** data, size_t* data_len, BOOL* matched)
|
||||||
|
{
|
||||||
|
size_t pos = 0, len, len_len, i;
|
||||||
|
uint8_t tag;
|
||||||
|
BOOL is_sequence, is_universal_tag;
|
||||||
|
|
||||||
|
while (pos < buf_len) {
|
||||||
|
is_sequence = buf[pos] & 0x20;
|
||||||
|
is_universal_tag = ((buf[pos] & 0xC0) == 0x00);
|
||||||
|
tag = buf[pos++] & 0x1F;
|
||||||
|
if (tag == 0x1F) {
|
||||||
|
uprintf("get_data_from_asn1: Long form tags are unsupported");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute the length
|
||||||
|
len = 0;
|
||||||
|
len_len = 1;
|
||||||
|
if ((is_universal_tag) && (tag == 0x05)) { // ignore "NULL" tag
|
||||||
|
pos++;
|
||||||
|
} else {
|
||||||
|
if (buf[pos] & 0x80) {
|
||||||
|
len_len = buf[pos++] & 0x7F;
|
||||||
|
// The data we're dealing with is not expected to ever be larger than 64K
|
||||||
|
if (len_len > 2) {
|
||||||
|
uprintf("get_data_from_asn1: Length fields larger than 2 bytes are unsupported");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
for (i = 0; i < len_len; i++) {
|
||||||
|
len <<= 8;
|
||||||
|
len += buf[pos++];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
len = buf[pos++];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (len > buf_len - pos) {
|
||||||
|
uprintf("get_data_from_asn1: Overflow error (computed length %d is larger than remaining data)", len);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (len != 0) {
|
||||||
|
if (is_sequence) {
|
||||||
|
if (!get_data_from_asn1_internal(&buf[pos], len, oid, oid_len, asn1_type, data, data_len, matched))
|
||||||
|
return FALSE; // error
|
||||||
|
if (*data != NULL)
|
||||||
|
return TRUE;
|
||||||
|
} else if (is_universal_tag) { // Only process tags that belong to the UNIVERSAL class
|
||||||
|
// NB: 0x06 = "OID" tag
|
||||||
|
if ((!*matched) && (tag == 0x06) && (len == oid_len) && (memcmp(&buf[pos], oid, oid_len) == 0)) {
|
||||||
|
*matched = TRUE;
|
||||||
|
} else if ((*matched) && (tag == asn1_type)) {
|
||||||
|
*data_len = len;
|
||||||
|
*data = (void*)&buf[pos];
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pos += len;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Helper functions to convert an OID string to an OID byte array
|
||||||
|
* Taken from from openpgp-oid.c
|
||||||
|
*/
|
||||||
|
static size_t make_flagged_int(unsigned long value, uint8_t *buf, size_t buf_len)
|
||||||
|
{
|
||||||
|
BOOL more = FALSE;
|
||||||
|
int shift;
|
||||||
|
|
||||||
|
for (shift = 28; shift > 0; shift -= 7) {
|
||||||
|
if (more || value >= ((unsigned long)1 << shift)) {
|
||||||
|
buf[buf_len++] = (uint8_t) (0x80 | (value >> shift));
|
||||||
|
value -= (value >> shift) << shift;
|
||||||
|
more = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buf[buf_len++] = (uint8_t) value;
|
||||||
|
return buf_len;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Convert OID string 'oid_str' to an OID byte array of size 'ret_len'
|
||||||
|
* The returned array must be freed by the caller.
|
||||||
|
*/
|
||||||
|
static uint8_t* oid_from_str(const char* oid_str, size_t* ret_len)
|
||||||
|
{
|
||||||
|
uint8_t* oid = NULL;
|
||||||
|
unsigned long val1 = 0, val;
|
||||||
|
const char *endp;
|
||||||
|
int arcno = 0;
|
||||||
|
size_t oid_len = 0;
|
||||||
|
|
||||||
|
if ((oid_str == NULL) || (oid_str[0] == 0))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// We can safely assume that the encoded OID is shorter than the string.
|
||||||
|
oid = malloc(1 + strlen(oid_str) + 2);
|
||||||
|
if (oid == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
do {
|
||||||
|
arcno++;
|
||||||
|
val = strtoul(oid_str, (char**)&endp, 10);
|
||||||
|
if (!isdigit(*oid_str) || !(*endp == '.' || !*endp))
|
||||||
|
goto err;
|
||||||
|
if (*endp == '.')
|
||||||
|
oid_str = endp + 1;
|
||||||
|
|
||||||
|
if (arcno == 1) {
|
||||||
|
if (val > 2)
|
||||||
|
break; // Not allowed, error caught below.
|
||||||
|
val1 = val;
|
||||||
|
} else if (arcno == 2) {
|
||||||
|
// Need to combine the first two arcs in one byte.
|
||||||
|
if (val1 < 2) {
|
||||||
|
if (val > 39)
|
||||||
|
goto err;
|
||||||
|
oid[oid_len++] = (uint8_t)(val1 * 40 + val);
|
||||||
|
} else {
|
||||||
|
val += 80;
|
||||||
|
oid_len = make_flagged_int(val, oid, oid_len);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
oid_len = make_flagged_int(val, oid, oid_len);
|
||||||
|
}
|
||||||
|
} while (*endp == '.');
|
||||||
|
|
||||||
|
// It is not possible to encode only the first arc.
|
||||||
|
if (arcno == 1 || oid_len < 2 || oid_len > 254)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
*ret_len = oid_len;
|
||||||
|
return oid;
|
||||||
|
|
||||||
|
err:
|
||||||
|
free(oid);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Parse an ASN.1 binary buffer and return a pointer to the first instance of OID data of type 'asn1_type',
|
||||||
|
* matching the OID 'oid_str' (expressed as an OID string). If successful, the length or the returned data
|
||||||
|
* is placed in 'data_len'. Note: Only the UNIVERSAL class is supported for 'asn1_type' (other classes are
|
||||||
|
* ignored). If 'oid_str' is NULL or empty, the first data element of type 'asn1_type' is returned.
|
||||||
|
*/
|
||||||
|
void* get_data_from_asn1(const uint8_t* buf, size_t buf_len, const char* oid_str, uint8_t asn1_type, size_t* data_len)
|
||||||
|
{
|
||||||
|
void* data = NULL;
|
||||||
|
uint8_t* oid = NULL;
|
||||||
|
size_t oid_len = 0;
|
||||||
|
BOOL matched = ((oid_str == NULL) || (oid_str[0] == 0));
|
||||||
|
|
||||||
|
if (buf_len >= 65536) {
|
||||||
|
uprintf("get_data_from_asn1: Buffers larger than 64KB are not supported");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!matched) {
|
||||||
|
// We have an OID string to convert
|
||||||
|
oid = oid_from_str(oid_str, &oid_len);
|
||||||
|
if (oid == NULL) {
|
||||||
|
uprintf("get_data_from_asn1: Could not convert OID string '%s'", oid_str);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// No need to check for the return value as data is always NULL on error
|
||||||
|
get_data_from_asn1_internal(buf, buf_len, oid, oid_len, asn1_type, &data, data_len, &matched);
|
||||||
|
free(oid);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
|
||||||
430
src/pki.c
430
src/pki.c
|
|
@ -35,8 +35,16 @@
|
||||||
|
|
||||||
#define ENCODING (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)
|
#define ENCODING (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)
|
||||||
|
|
||||||
// Signatures names we accept (may be suffixed, but the signature should start with one of those)
|
// MinGW doesn't seem to have this one
|
||||||
|
#if !defined(szOID_NESTED_SIGNATURE)
|
||||||
|
#define szOID_NESTED_SIGNATURE "1.3.6.1.4.1.311.2.4.1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Signatures names we accept. Must be the the exact name, including capitalization,
|
||||||
|
// that CertGetNameStringA(CERT_NAME_ATTR_TYPE, szOID_COMMON_NAME) returns.
|
||||||
const char* cert_name[3] = { "Akeo Consulting", "Akeo Systems", "Pete Batard" };
|
const char* cert_name[3] = { "Akeo Consulting", "Akeo Systems", "Pete Batard" };
|
||||||
|
// For added security, we also validate the country code of the certificate recipient.
|
||||||
|
const char* cert_country = "IE";
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
LPWSTR lpszProgramName;
|
LPWSTR lpszProgramName;
|
||||||
|
|
@ -44,29 +52,125 @@ typedef struct {
|
||||||
LPWSTR lpszMoreInfoLink;
|
LPWSTR lpszMoreInfoLink;
|
||||||
} SPROG_PUBLISHERINFO, *PSPROG_PUBLISHERINFO;
|
} SPROG_PUBLISHERINFO, *PSPROG_PUBLISHERINFO;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FormatMessage does not handle PKI errors
|
||||||
|
*/
|
||||||
|
const char* WinPKIErrorString(void)
|
||||||
|
{
|
||||||
|
static char error_string[64];
|
||||||
|
DWORD error_code = GetLastError();
|
||||||
|
|
||||||
|
if (((error_code >> 16) != 0x8009) && ((error_code >> 16) != 0x800B))
|
||||||
|
return WindowsErrorString();
|
||||||
|
|
||||||
|
switch (error_code) {
|
||||||
|
case NTE_BAD_UID:
|
||||||
|
return "Bad UID.";
|
||||||
|
case CRYPT_E_MSG_ERROR:
|
||||||
|
return "An error occurred while performing an operation on a cryptographic message.";
|
||||||
|
case CRYPT_E_UNKNOWN_ALGO:
|
||||||
|
return "Unknown cryptographic algorithm.";
|
||||||
|
case CRYPT_E_INVALID_MSG_TYPE:
|
||||||
|
return "Invalid cryptographic message type.";
|
||||||
|
case CRYPT_E_HASH_VALUE:
|
||||||
|
return "The hash value is not correct";
|
||||||
|
case CRYPT_E_ISSUER_SERIALNUMBER:
|
||||||
|
return "Invalid issuer and/or serial number.";
|
||||||
|
case CRYPT_E_BAD_LEN:
|
||||||
|
return "The length specified for the output data was insufficient.";
|
||||||
|
case CRYPT_E_BAD_ENCODE:
|
||||||
|
return "An error occurred during encode or decode operation.";
|
||||||
|
case CRYPT_E_FILE_ERROR:
|
||||||
|
return "An error occurred while reading or writing to a file.";
|
||||||
|
case CRYPT_E_NOT_FOUND:
|
||||||
|
return "Cannot find object or property.";
|
||||||
|
case CRYPT_E_EXISTS:
|
||||||
|
return "The object or property already exists.";
|
||||||
|
case CRYPT_E_NO_PROVIDER:
|
||||||
|
return "No provider was specified for the store or object.";
|
||||||
|
case CRYPT_E_DELETED_PREV:
|
||||||
|
return "The previous certificate or CRL context was deleted.";
|
||||||
|
case CRYPT_E_NO_MATCH:
|
||||||
|
return "Cannot find the requested object.";
|
||||||
|
case CRYPT_E_UNEXPECTED_MSG_TYPE:
|
||||||
|
case CRYPT_E_NO_KEY_PROPERTY:
|
||||||
|
case CRYPT_E_NO_DECRYPT_CERT:
|
||||||
|
return "Private key or certificate issue";
|
||||||
|
case CRYPT_E_BAD_MSG:
|
||||||
|
return "Not a cryptographic message.";
|
||||||
|
case CRYPT_E_NO_SIGNER:
|
||||||
|
return "The signed cryptographic message does not have a signer for the specified signer index.";
|
||||||
|
case CRYPT_E_REVOKED:
|
||||||
|
return "The certificate is revoked.";
|
||||||
|
case CRYPT_E_NO_REVOCATION_DLL:
|
||||||
|
case CRYPT_E_NO_REVOCATION_CHECK:
|
||||||
|
case CRYPT_E_REVOCATION_OFFLINE:
|
||||||
|
case CRYPT_E_NOT_IN_REVOCATION_DATABASE:
|
||||||
|
return "Cannot check certificate revocation.";
|
||||||
|
case CRYPT_E_INVALID_NUMERIC_STRING:
|
||||||
|
case CRYPT_E_INVALID_PRINTABLE_STRING:
|
||||||
|
case CRYPT_E_INVALID_IA5_STRING:
|
||||||
|
case CRYPT_E_INVALID_X500_STRING:
|
||||||
|
case CRYPT_E_NOT_CHAR_STRING:
|
||||||
|
return "Invalid string.";
|
||||||
|
case CRYPT_E_SECURITY_SETTINGS:
|
||||||
|
return "The cryptographic operation failed due to a local security option setting.";
|
||||||
|
case CRYPT_E_NO_VERIFY_USAGE_CHECK:
|
||||||
|
case CRYPT_E_VERIFY_USAGE_OFFLINE:
|
||||||
|
return "Cannot complete usage check.";
|
||||||
|
case CRYPT_E_NO_TRUSTED_SIGNER:
|
||||||
|
return "None of the signers of the cryptographic message or certificate trust list is trusted.";
|
||||||
|
case CERT_E_UNTRUSTEDROOT:
|
||||||
|
return "The root certificate is not trusted.";
|
||||||
|
case TRUST_E_NOSIGNATURE:
|
||||||
|
return "Not digitally signed.";
|
||||||
|
case TRUST_E_EXPLICIT_DISTRUST:
|
||||||
|
return "One of the certificates used was marked as untrusted by the user.";
|
||||||
|
case TRUST_E_TIME_STAMP:
|
||||||
|
return "The timestamp could not be verified.";
|
||||||
|
default:
|
||||||
|
static_sprintf(error_string, "Unknown PKI error 0x%08lX", error_code);
|
||||||
|
return error_string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Mostly from https://support.microsoft.com/en-us/kb/323809
|
// Mostly from https://support.microsoft.com/en-us/kb/323809
|
||||||
char* GetSignatureName(const char* path)
|
char* GetSignatureName(const char* path, const char* country_code)
|
||||||
{
|
{
|
||||||
static char szSubjectName[128];
|
static char szSubjectName[128];
|
||||||
char* p = NULL;
|
char szCountry[3] = "__";
|
||||||
|
char *p = NULL, *mpath = NULL;
|
||||||
BOOL r;
|
BOOL r;
|
||||||
|
HMODULE hm;
|
||||||
HCERTSTORE hStore = NULL;
|
HCERTSTORE hStore = NULL;
|
||||||
HCRYPTMSG hMsg = NULL;
|
HCRYPTMSG hMsg = NULL;
|
||||||
PCCERT_CONTEXT pCertContext = NULL;
|
PCCERT_CONTEXT pCertContext = NULL;
|
||||||
DWORD dwEncoding, dwContentType, dwFormatType, dwSubjectSize;
|
DWORD dwSize, dwEncoding, dwContentType, dwFormatType;
|
||||||
PCMSG_SIGNER_INFO pSignerInfo = NULL;
|
PCMSG_SIGNER_INFO pSignerInfo = NULL;
|
||||||
PCMSG_SIGNER_INFO pCounterSignerInfo = NULL;
|
|
||||||
DWORD dwSignerInfo = 0;
|
DWORD dwSignerInfo = 0;
|
||||||
CERT_INFO CertInfo = { 0 };
|
CERT_INFO CertInfo = { 0 };
|
||||||
SPROG_PUBLISHERINFO ProgPubInfo = { 0 };
|
SPROG_PUBLISHERINFO ProgPubInfo = { 0 };
|
||||||
wchar_t *szFileName = utf8_to_wchar(path);
|
wchar_t *szFileName;
|
||||||
|
|
||||||
// If the path is NULL, get the signature of the current runtime
|
// If the path is NULL, get the signature of the current runtime
|
||||||
if (path == NULL) {
|
if (path == NULL) {
|
||||||
szFileName = calloc(MAX_PATH, sizeof(wchar_t));
|
szFileName = calloc(MAX_PATH, sizeof(wchar_t));
|
||||||
if (szFileName == NULL)
|
if (szFileName == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
GetModuleFileNameW(GetModuleHandle(NULL), szFileName, MAX_PATH);
|
hm = GetModuleHandle(NULL);
|
||||||
|
if (hm == NULL) {
|
||||||
|
uprintf("PKI: Could not get current executable handle: %s", WinPKIErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
dwSize = GetModuleFileNameW(hm, szFileName, MAX_PATH);
|
||||||
|
if ((dwSize == 0) || ((dwSize == MAX_PATH) && (GetLastError() == ERROR_INSUFFICIENT_BUFFER))) {
|
||||||
|
uprintf("PKI: Could not get module filename: %s", WinPKIErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
mpath = wchar_to_utf8(szFileName);
|
||||||
|
} else {
|
||||||
|
szFileName = utf8_to_wchar(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get message handle and store handle from the signed file.
|
// Get message handle and store handle from the signed file.
|
||||||
|
|
@ -74,14 +178,14 @@ char* GetSignatureName(const char* path)
|
||||||
CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED, CERT_QUERY_FORMAT_FLAG_BINARY,
|
CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED, CERT_QUERY_FORMAT_FLAG_BINARY,
|
||||||
0, &dwEncoding, &dwContentType, &dwFormatType, &hStore, &hMsg, NULL);
|
0, &dwEncoding, &dwContentType, &dwFormatType, &hStore, &hMsg, NULL);
|
||||||
if (!r) {
|
if (!r) {
|
||||||
uprintf("PKI: Failed to get store handle for '%s': %s", path, WindowsErrorString());
|
uprintf("PKI: Failed to get signature for '%s': %s", (path==NULL)?mpath:path, WinPKIErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get signer information size.
|
// Get signer information size.
|
||||||
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, NULL, &dwSignerInfo);
|
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, NULL, &dwSignerInfo);
|
||||||
if (!r) {
|
if (!r) {
|
||||||
uprintf("PKI: Failed to get signer size: %s", WindowsErrorString);
|
uprintf("PKI: Failed to get signer size: %s", WinPKIErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,7 +199,7 @@ char* GetSignatureName(const char* path)
|
||||||
// Get Signer Information.
|
// Get Signer Information.
|
||||||
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, (PVOID)pSignerInfo, &dwSignerInfo);
|
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, (PVOID)pSignerInfo, &dwSignerInfo);
|
||||||
if (!r) {
|
if (!r) {
|
||||||
uprintf("PKI: Failed to get signer information: %s", WindowsErrorString());
|
uprintf("PKI: Failed to get signer information: %s", WinPKIErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -105,28 +209,45 @@ char* GetSignatureName(const char* path)
|
||||||
|
|
||||||
pCertContext = CertFindCertificateInStore(hStore, ENCODING, 0, CERT_FIND_SUBJECT_CERT, (PVOID)&CertInfo, NULL);
|
pCertContext = CertFindCertificateInStore(hStore, ENCODING, 0, CERT_FIND_SUBJECT_CERT, (PVOID)&CertInfo, NULL);
|
||||||
if (!pCertContext) {
|
if (!pCertContext) {
|
||||||
uprintf("PKI: Failed to locate signer certificate in temporary store: %s", WindowsErrorString());
|
uprintf("PKI: Failed to locate signer certificate in temporary store: %s", WinPKIErrorString());
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If a country code is provided, validate that the certificate we have is for the same country
|
||||||
|
if (country_code != NULL) {
|
||||||
|
dwSize = CertGetNameStringA(pCertContext, CERT_NAME_ATTR_TYPE, 0, szOID_COUNTRY_NAME,
|
||||||
|
szCountry, sizeof(szCountry));
|
||||||
|
if (dwSize < 2) {
|
||||||
|
uprintf("PKI: Failed to get Country Code");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
if (strcmpi(country_code, szCountry) != 0) {
|
||||||
|
uprintf("PKI: Unexpected Country Code (Found '%s', expected '%s')", szCountry, country_code);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Isolate the signing certificate subject name
|
// Isolate the signing certificate subject name
|
||||||
dwSubjectSize = CertGetNameStringA(pCertContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, NULL,
|
dwSize = CertGetNameStringA(pCertContext, CERT_NAME_ATTR_TYPE, 0, szOID_COMMON_NAME,
|
||||||
szSubjectName, sizeof(szSubjectName));
|
szSubjectName, sizeof(szSubjectName));
|
||||||
if (dwSubjectSize <= 1) {
|
if (dwSize <= 1) {
|
||||||
uprintf("PKI: Failed to get Subject Name");
|
uprintf("PKI: Failed to get Subject Name");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
uprintf("Downloaded executable is signed by '%s'", szSubjectName);
|
if (szCountry[0] == '_')
|
||||||
|
uprintf("Binary executable is signed by '%s'", szSubjectName);
|
||||||
|
else
|
||||||
|
uprintf("Binary executable is signed by '%s' (%s)", szSubjectName, szCountry);
|
||||||
p = szSubjectName;
|
p = szSubjectName;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
safe_free(mpath);
|
||||||
safe_free(szFileName);
|
safe_free(szFileName);
|
||||||
safe_free(ProgPubInfo.lpszProgramName);
|
safe_free(ProgPubInfo.lpszProgramName);
|
||||||
safe_free(ProgPubInfo.lpszPublisherLink);
|
safe_free(ProgPubInfo.lpszPublisherLink);
|
||||||
safe_free(ProgPubInfo.lpszMoreInfoLink);
|
safe_free(ProgPubInfo.lpszMoreInfoLink);
|
||||||
safe_free(pSignerInfo);
|
safe_free(pSignerInfo);
|
||||||
safe_free(pCounterSignerInfo);
|
|
||||||
if (pCertContext != NULL)
|
if (pCertContext != NULL)
|
||||||
CertFreeCertificateContext(pCertContext);
|
CertFreeCertificateContext(pCertContext);
|
||||||
if (hStore != NULL)
|
if (hStore != NULL)
|
||||||
|
|
@ -136,6 +257,234 @@ out:
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The timestamping authorities we use are RFC 3161 compliant
|
||||||
|
static uint64_t GetRFC3161TimeStamp(PCMSG_SIGNER_INFO pSignerInfo)
|
||||||
|
{
|
||||||
|
BOOL r, found = FALSE;
|
||||||
|
DWORD n, dwSize = 0;
|
||||||
|
PCRYPT_CONTENT_INFO pCounterSignerInfo = NULL;
|
||||||
|
uint64_t ts = 0ULL;
|
||||||
|
uint8_t *timestamp_token;
|
||||||
|
size_t timestamp_token_size;
|
||||||
|
char* timestamp_str;
|
||||||
|
size_t timestamp_str_size;
|
||||||
|
|
||||||
|
// Loop through unauthenticated attributes for szOID_RFC3161_counterSign OID
|
||||||
|
for (n = 0; n < pSignerInfo->UnauthAttrs.cAttr; n++) {
|
||||||
|
if (lstrcmpA(pSignerInfo->UnauthAttrs.rgAttr[n].pszObjId, szOID_RFC3161_counterSign) == 0) {
|
||||||
|
// Depending on how Microsoft implemented their timestamp checks, and the fact that we are dealing
|
||||||
|
// with UnauthAttrs, there's a possibility that an attacker may add a "fake" RFC 3161 countersigner
|
||||||
|
// to try to trick us into using their timestamp data. Detect that.
|
||||||
|
if (found) {
|
||||||
|
uprintf("PKI: Multiple RFC 3161 countersigners found. This could indicate something very nasty...");
|
||||||
|
return 0ULL;
|
||||||
|
}
|
||||||
|
found = TRUE;
|
||||||
|
|
||||||
|
// Read the countersigner message data
|
||||||
|
r = CryptDecodeObjectEx(PKCS_7_ASN_ENCODING, PKCS_CONTENT_INFO,
|
||||||
|
pSignerInfo->UnauthAttrs.rgAttr[n].rgValue[0].pbData,
|
||||||
|
pSignerInfo->UnauthAttrs.rgAttr[n].rgValue[0].cbData,
|
||||||
|
CRYPT_DECODE_ALLOC_FLAG, NULL, (PVOID)&pCounterSignerInfo, &dwSize);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Could not retrieve RFC 3161 countersigner data: %s", WinPKIErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the RFC 3161 timestamp message
|
||||||
|
timestamp_token = get_data_from_asn1(pCounterSignerInfo->Content.pbData,
|
||||||
|
pCounterSignerInfo->Content.cbData, szOID_TIMESTAMP_TOKEN,
|
||||||
|
// 0x04 = "Octet String" ASN.1 tag
|
||||||
|
0x04, ×tamp_token_size);
|
||||||
|
if (timestamp_token) {
|
||||||
|
timestamp_str = get_data_from_asn1(timestamp_token, timestamp_token_size, NULL,
|
||||||
|
// 0x18 = "Generalized Time" ASN.1 tag
|
||||||
|
0x18, ×tamp_str_size);
|
||||||
|
if (timestamp_str) {
|
||||||
|
// As per RFC 3161 The syntax is: YYYYMMDDhhmmss[.s...]Z
|
||||||
|
if ((timestamp_str_size < 14) || (timestamp_str[timestamp_str_size - 1] != 'Z')) {
|
||||||
|
// Sanity checks
|
||||||
|
uprintf("PKI: Not an RFC 3161 timestamp");
|
||||||
|
DumpBufferHex(timestamp_str, timestamp_str_size);
|
||||||
|
} else {
|
||||||
|
ts = strtoull(timestamp_str, NULL, 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LocalFree(pCounterSignerInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The following is used to get the RFP 3161 timestamp of a nested signature
|
||||||
|
static uint64_t GetNestedRFC3161TimeStamp(PCMSG_SIGNER_INFO pSignerInfo)
|
||||||
|
{
|
||||||
|
BOOL r, found = FALSE;
|
||||||
|
DWORD n, dwSize = 0;
|
||||||
|
PCRYPT_CONTENT_INFO pNestedSignature = NULL;
|
||||||
|
PCMSG_SIGNER_INFO pNestedSignerInfo = NULL;
|
||||||
|
HCRYPTMSG hMsg = NULL;
|
||||||
|
uint64_t ts = 0ULL;
|
||||||
|
|
||||||
|
// Loop through unauthenticated attributes for szOID_NESTED_SIGNATURE OID
|
||||||
|
for (n = 0; ; n++) {
|
||||||
|
if (pNestedSignature != NULL) {
|
||||||
|
LocalFree(pNestedSignature);
|
||||||
|
pNestedSignature = NULL;
|
||||||
|
}
|
||||||
|
if (hMsg != NULL) {
|
||||||
|
CryptMsgClose(hMsg);
|
||||||
|
hMsg = NULL;
|
||||||
|
}
|
||||||
|
safe_free(pNestedSignerInfo);
|
||||||
|
if (n >= pSignerInfo->UnauthAttrs.cAttr)
|
||||||
|
break;
|
||||||
|
if (lstrcmpA(pSignerInfo->UnauthAttrs.rgAttr[n].pszObjId, szOID_NESTED_SIGNATURE) == 0) {
|
||||||
|
if (found) {
|
||||||
|
uprintf("PKI: Multiple nested signatures found. This could indicate something very nasty...");
|
||||||
|
return 0ULL;
|
||||||
|
}
|
||||||
|
found = TRUE;
|
||||||
|
r = CryptDecodeObjectEx(PKCS_7_ASN_ENCODING, PKCS_CONTENT_INFO,
|
||||||
|
pSignerInfo->UnauthAttrs.rgAttr[n].rgValue[0].pbData,
|
||||||
|
pSignerInfo->UnauthAttrs.rgAttr[n].rgValue[0].cbData,
|
||||||
|
CRYPT_DECODE_ALLOC_FLAG, NULL, (PVOID)&pNestedSignature, &dwSize);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Could not retrieve nested signature data: %s", WinPKIErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
hMsg = CryptMsgOpenToDecode(ENCODING, CMSG_DETACHED_FLAG, CMSG_SIGNED, (HCRYPTPROV)NULL, NULL, NULL);
|
||||||
|
if (hMsg == NULL) {
|
||||||
|
uprintf("PKI: Could not create nested signature message: %s", WinPKIErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
r = CryptMsgUpdate(hMsg, pNestedSignature->Content.pbData, pNestedSignature->Content.cbData, TRUE);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Could not update message: %s", WinPKIErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// Get nested signer
|
||||||
|
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, NULL, &dwSize);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Failed to get nested signer size: %s", WinPKIErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
pNestedSignerInfo = (PCMSG_SIGNER_INFO)calloc(dwSize, 1);
|
||||||
|
if (!pNestedSignerInfo) {
|
||||||
|
uprintf("PKI: Could not allocate memory for nested signer");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, (PVOID)pNestedSignerInfo, &dwSize);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Failed to get nested signer information: %s", WinPKIErrorString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ts = GetRFC3161TimeStamp(pNestedSignerInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the signature timestamp (as a YYYYMMDDHHMMSS value) or 0 on error
|
||||||
|
uint64_t GetSignatureTimeStamp(const char* path)
|
||||||
|
{
|
||||||
|
char *mpath = NULL;
|
||||||
|
BOOL r;
|
||||||
|
HMODULE hm;
|
||||||
|
HCERTSTORE hStore = NULL;
|
||||||
|
HCRYPTMSG hMsg = NULL;
|
||||||
|
DWORD dwSize, dwEncoding, dwContentType, dwFormatType;
|
||||||
|
PCMSG_SIGNER_INFO pSignerInfo = NULL;
|
||||||
|
DWORD dwSignerInfo = 0;
|
||||||
|
wchar_t *szFileName;
|
||||||
|
uint64_t timestamp = 0ULL, nested_timestamp;
|
||||||
|
|
||||||
|
// If the path is NULL, get the signature of the current runtime
|
||||||
|
if (path == NULL) {
|
||||||
|
szFileName = calloc(MAX_PATH, sizeof(wchar_t));
|
||||||
|
if (szFileName == NULL)
|
||||||
|
goto out;
|
||||||
|
hm = GetModuleHandle(NULL);
|
||||||
|
if (hm == NULL) {
|
||||||
|
uprintf("PKI: Could not get current executable handle: %s", WinPKIErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
dwSize = GetModuleFileNameW(hm, szFileName, MAX_PATH);
|
||||||
|
if ((dwSize == 0) || ((dwSize == MAX_PATH) && (GetLastError() == ERROR_INSUFFICIENT_BUFFER))) {
|
||||||
|
uprintf("PKI: Could not get module filename: %s", WinPKIErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
mpath = wchar_to_utf8(szFileName);
|
||||||
|
} else {
|
||||||
|
szFileName = utf8_to_wchar(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get message handle and store handle from the signed file.
|
||||||
|
r = CryptQueryObject(CERT_QUERY_OBJECT_FILE, szFileName,
|
||||||
|
CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED, CERT_QUERY_FORMAT_FLAG_BINARY,
|
||||||
|
0, &dwEncoding, &dwContentType, &dwFormatType, &hStore, &hMsg, NULL);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Failed to get signature for '%s': %s", (path==NULL)?mpath:path, WinPKIErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get signer information size.
|
||||||
|
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, NULL, &dwSignerInfo);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Failed to get signer size: %s", WinPKIErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allocate memory for signer information.
|
||||||
|
pSignerInfo = (PCMSG_SIGNER_INFO)calloc(dwSignerInfo, 1);
|
||||||
|
if (!pSignerInfo) {
|
||||||
|
uprintf("PKI: Could not allocate memory for signer information");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get Signer Information.
|
||||||
|
r = CryptMsgGetParam(hMsg, CMSG_SIGNER_INFO_PARAM, 0, (PVOID)pSignerInfo, &dwSignerInfo);
|
||||||
|
if (!r) {
|
||||||
|
uprintf("PKI: Failed to get signer information: %s", WinPKIErrorString());
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the RFC 3161 timestamp
|
||||||
|
timestamp = GetRFC3161TimeStamp(pSignerInfo);
|
||||||
|
if (timestamp)
|
||||||
|
uprintf("Note: '%s' has timestamp %s", (path==NULL)?mpath:path, TimestampToHumanReadable(timestamp));
|
||||||
|
// Because we are currently using both SHA-1 and SHA-256 signatures, we are in the very specific
|
||||||
|
// situation that Windows may say our executable passes Authenticode validation on Windows 7 or
|
||||||
|
// later (which includes timestamp validation) even if the SHA-1 signature or timestamps have
|
||||||
|
// been altered.
|
||||||
|
// This means that, if we don't also check the nested SHA-256 signature timestamp, an attacker
|
||||||
|
// could alter the SHA-1 one (which is the one we use by default for chronology validation) and
|
||||||
|
// trick us into using an invalid timestamp value. To prevent this, we validate that, if we have
|
||||||
|
// both a regular and nested timestamp, they are within 60 seconds of each other.
|
||||||
|
nested_timestamp = GetNestedRFC3161TimeStamp(pSignerInfo);
|
||||||
|
if (nested_timestamp)
|
||||||
|
uprintf("Note: '%s' has nested timestamp %s", (path==NULL)?mpath:path, TimestampToHumanReadable(nested_timestamp));
|
||||||
|
if ((timestamp != 0ULL) && (nested_timestamp != 0ULL)) {
|
||||||
|
if (_abs64(nested_timestamp - timestamp) > 100) {
|
||||||
|
uprintf("PKI: Signature timestamp and nested timestamp differ by more than a minute. "
|
||||||
|
"This could indicate something very nasty...", timestamp, nested_timestamp);
|
||||||
|
timestamp = 0ULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
|
safe_free(mpath);
|
||||||
|
safe_free(szFileName);
|
||||||
|
safe_free(pSignerInfo);
|
||||||
|
if (hStore != NULL)
|
||||||
|
CertCloseStore(hStore, 0);
|
||||||
|
if (hMsg != NULL)
|
||||||
|
CryptMsgClose(hMsg);
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
// From https://msdn.microsoft.com/en-us/library/windows/desktop/aa382384.aspx
|
// From https://msdn.microsoft.com/en-us/library/windows/desktop/aa382384.aspx
|
||||||
LONG ValidateSignature(HWND hDlg, const char* path)
|
LONG ValidateSignature(HWND hDlg, const char* path)
|
||||||
{
|
{
|
||||||
|
|
@ -145,24 +494,21 @@ LONG ValidateSignature(HWND hDlg, const char* path)
|
||||||
GUID guid_generic_verify = // WINTRUST_ACTION_GENERIC_VERIFY_V2
|
GUID guid_generic_verify = // WINTRUST_ACTION_GENERIC_VERIFY_V2
|
||||||
{ 0xaac56b, 0xcd44, 0x11d0,{ 0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } };
|
{ 0xaac56b, 0xcd44, 0x11d0,{ 0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } };
|
||||||
char *signature_name;
|
char *signature_name;
|
||||||
size_t i, len;
|
size_t i;
|
||||||
|
uint64_t current_ts, update_ts;
|
||||||
|
|
||||||
// Check the signature name. Make it specific enough (i.e. don't simply check for "Akeo")
|
// Check the signature name. Make it specific enough (i.e. don't simply check for "Akeo")
|
||||||
// so that, besides hacking our server, it'll place an extra hurdle on any malicious entity
|
// so that, besides hacking our server, it'll place an extra hurdle on any malicious entity
|
||||||
// into also fooling a C.A. to issue a certificate that passes our test.
|
// into also fooling a C.A. to issue a certificate that passes our test.
|
||||||
signature_name = GetSignatureName(path);
|
signature_name = GetSignatureName(path, cert_country);
|
||||||
if (signature_name == NULL) {
|
if (signature_name == NULL) {
|
||||||
uprintf("PKI: Could not get signature name");
|
uprintf("PKI: Could not get signature name");
|
||||||
MessageBoxExU(hDlg, lmprintf(MSG_284), lmprintf(MSG_283), MB_OK | MB_ICONERROR | MB_IS_RTL, selected_langid);
|
MessageBoxExU(hDlg, lmprintf(MSG_284), lmprintf(MSG_283), MB_OK | MB_ICONERROR | MB_IS_RTL, selected_langid);
|
||||||
return TRUST_E_NOSIGNATURE;
|
return TRUST_E_NOSIGNATURE;
|
||||||
}
|
}
|
||||||
for (i = 0; i < ARRAYSIZE(cert_name); i++) {
|
for (i = 0; i < ARRAYSIZE(cert_name); i++) {
|
||||||
len = strlen(cert_name[i]);
|
if (strcmp(signature_name, cert_name[i]) == 0)
|
||||||
if (strncmp(signature_name, cert_name[i], len) == 0) {
|
break;
|
||||||
// Test for whitespace after the part we match, for added safety
|
|
||||||
if ((len >= strlen(signature_name)) || isspace(signature_name[len]))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (i >= ARRAYSIZE(cert_name)) {
|
if (i >= ARRAYSIZE(cert_name)) {
|
||||||
uprintf("PKI: Signature '%s' is unexpected...", signature_name);
|
uprintf("PKI: Signature '%s' is unexpected...", signature_name);
|
||||||
|
|
@ -179,7 +525,13 @@ LONG ValidateSignature(HWND hDlg, const char* path)
|
||||||
}
|
}
|
||||||
|
|
||||||
trust_data.cbStruct = sizeof(trust_data);
|
trust_data.cbStruct = sizeof(trust_data);
|
||||||
trust_data.dwUIChoice = WTD_UI_ALL;
|
// NB: WTD_UI_ALL can result in ERROR_SUCCESS even if the signature validation fails,
|
||||||
|
// because it still prompts the user to run untrusted software, even after explicitly
|
||||||
|
// notifying them that the signature invalid (and of course Microsoft had to make
|
||||||
|
// that UI prompt a bit too similar to the other benign prompt you get when running
|
||||||
|
// trusted software, which, as per cert.org's assessment, may confuse non-security
|
||||||
|
// conscious-users who decide to gloss over these kind of notifications).
|
||||||
|
trust_data.dwUIChoice = WTD_UI_NONE;
|
||||||
// We just downloaded from the Internet, so we should be able to check revocation
|
// We just downloaded from the Internet, so we should be able to check revocation
|
||||||
trust_data.fdwRevocationChecks = WTD_REVOKE_WHOLECHAIN;
|
trust_data.fdwRevocationChecks = WTD_REVOKE_WHOLECHAIN;
|
||||||
// 0x400 = WTD_MOTW for Windows 8.1 or later
|
// 0x400 = WTD_MOTW for Windows 8.1 or later
|
||||||
|
|
@ -187,8 +539,36 @@ LONG ValidateSignature(HWND hDlg, const char* path)
|
||||||
trust_data.dwUnionChoice = WTD_CHOICE_FILE;
|
trust_data.dwUnionChoice = WTD_CHOICE_FILE;
|
||||||
trust_data.pFile = &trust_file;
|
trust_data.pFile = &trust_file;
|
||||||
|
|
||||||
r = WinVerifyTrust(NULL, &guid_generic_verify, &trust_data);
|
r = WinVerifyTrustEx(INVALID_HANDLE_VALUE, &guid_generic_verify, &trust_data);
|
||||||
safe_free(trust_file.pcwszFilePath);
|
safe_free(trust_file.pcwszFilePath);
|
||||||
|
switch (r) {
|
||||||
|
case ERROR_SUCCESS:
|
||||||
|
// Verify that the timestamp of the downloaded update is in the future of our current one.
|
||||||
|
// This is done to prevent the use of an officially signed, but older binary, as potential attack vector.
|
||||||
|
current_ts = GetSignatureTimeStamp(NULL);
|
||||||
|
if (current_ts == 0ULL) {
|
||||||
|
uprintf("PKI: Cannot retreive the current binary's timestamp - Aborting update");
|
||||||
|
r = TRUST_E_TIME_STAMP;
|
||||||
|
} else {
|
||||||
|
update_ts = GetSignatureTimeStamp(path);
|
||||||
|
if (update_ts < current_ts) {
|
||||||
|
uprintf("PKI: Update timestamp (%" PRIi64 ") is younger than ours (%" PRIi64 ") - Aborting update", update_ts, current_ts);
|
||||||
|
r = TRUST_E_TIME_STAMP;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (r != ERROR_SUCCESS)
|
||||||
|
MessageBoxExU(hDlg, lmprintf(MSG_300), lmprintf(MSG_299), MB_OK | MB_ICONERROR | MB_IS_RTL, selected_langid);
|
||||||
|
break;
|
||||||
|
case TRUST_E_NOSIGNATURE:
|
||||||
|
// Should already have been reported, but since we have a custom message for it...
|
||||||
|
uprintf("PKI: File does not appear to be signed: %s", WinPKIErrorString());
|
||||||
|
MessageBoxExU(hDlg, lmprintf(MSG_284), lmprintf(MSG_283), MB_OK | MB_ICONERROR | MB_IS_RTL, selected_langid);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
uprintf("PKI: Failed to validate signature: %s", WinPKIErrorString());
|
||||||
|
MessageBoxExU(hDlg, lmprintf(MSG_240), lmprintf(MSG_283), MB_OK | MB_ICONERROR | MB_IS_RTL, selected_langid);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
226
src/process.c
226
src/process.c
|
|
@ -34,29 +34,28 @@
|
||||||
#include "missing.h"
|
#include "missing.h"
|
||||||
#include "msapi_utf8.h"
|
#include "msapi_utf8.h"
|
||||||
|
|
||||||
// Process Hacker does some filtering using Object Types, but this doesn't help us.
|
|
||||||
// Keep this option, just in case.
|
|
||||||
// #define USE_OBJECT_TYPES
|
|
||||||
|
|
||||||
PF_TYPE_DECL(NTAPI, PVOID, RtlCreateHeap, (ULONG, PVOID, SIZE_T, SIZE_T, PVOID, PRTL_HEAP_PARAMETERS));
|
PF_TYPE_DECL(NTAPI, PVOID, RtlCreateHeap, (ULONG, PVOID, SIZE_T, SIZE_T, PVOID, PRTL_HEAP_PARAMETERS));
|
||||||
PF_TYPE_DECL(NTAPI, PVOID, RtlDestroyHeap, (PVOID));
|
PF_TYPE_DECL(NTAPI, PVOID, RtlDestroyHeap, (PVOID));
|
||||||
PF_TYPE_DECL(NTAPI, PVOID, RtlAllocateHeap, (PVOID, ULONG, SIZE_T));
|
PF_TYPE_DECL(NTAPI, PVOID, RtlAllocateHeap, (PVOID, ULONG, SIZE_T));
|
||||||
PF_TYPE_DECL(NTAPI, BOOLEAN, RtlFreeHeap, (PVOID, ULONG, PVOID));
|
PF_TYPE_DECL(NTAPI, BOOLEAN, RtlFreeHeap, (PVOID, ULONG, PVOID));
|
||||||
#ifdef USE_OBJECT_TYPES
|
|
||||||
PF_TYPE_DECL(NTAPI, VOID, RtlInitUnicodeString, (PUNICODE_STRING, PCWSTR));
|
|
||||||
PF_TYPE_DECL(NTAPI, BOOLEAN, RtlEqualUnicodeString, (PCUNICODE_STRING, PCUNICODE_STRING, BOOLEAN));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtQuerySystemInformation, (SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtQuerySystemInformation, (SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG));
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtQueryInformationFile, (HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FILE_INFORMATION_CLASS));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtQueryInformationFile, (HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, FILE_INFORMATION_CLASS));
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtQueryObject, (HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG, PULONG));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtQueryObject, (HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG, PULONG));
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtDuplicateObject, (HANDLE, HANDLE, HANDLE, PHANDLE, ACCESS_MASK, ULONG, ULONG));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtDuplicateObject, (HANDLE, HANDLE, HANDLE, PHANDLE, ACCESS_MASK, ULONG, ULONG));
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtOpenProcess, (PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtOpenProcess, (PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, CLIENT_ID*));
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtOpenProcessToken, (HANDLE, ACCESS_MASK, PHANDLE));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtOpenProcessToken, (HANDLE, ACCESS_MASK, PHANDLE));
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtAdjustPrivilegesToken, (HANDLE, BOOLEAN, PTOKEN_PRIVILEGES, ULONG, PTOKEN_PRIVILEGES, PULONG));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtAdjustPrivilegesToken, (HANDLE, BOOLEAN, PTOKEN_PRIVILEGES, ULONG, PTOKEN_PRIVILEGES, PULONG));
|
||||||
PF_TYPE_DECL(NTAPI, NTSTATUS, NtClose, (HANDLE));
|
PF_TYPE_DECL(NTAPI, NTSTATUS, NtClose, (HANDLE));
|
||||||
|
|
||||||
|
// This one is only available on Vista or later...
|
||||||
|
PF_TYPE_DECL(WINAPI, BOOL, QueryFullProcessImageNameW, (HANDLE, DWORD, LPWSTR, PDWORD));
|
||||||
|
|
||||||
static PVOID PhHeapHandle = NULL;
|
static PVOID PhHeapHandle = NULL;
|
||||||
|
static char* _HandleName;
|
||||||
|
static BOOL _bPartialMatch, _bIgnoreSelf, _bQuiet;
|
||||||
|
static BYTE access_mask;
|
||||||
|
extern StrArray BlockingProcess;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert an NT Status to an error message
|
* Convert an NT Status to an error message
|
||||||
|
|
@ -105,7 +104,7 @@ static char* NtStatusError(NTSTATUS Status) {
|
||||||
case STATUS_NOT_SUPPORTED:
|
case STATUS_NOT_SUPPORTED:
|
||||||
return "Operation is not supported";
|
return "Operation is not supported";
|
||||||
default:
|
default:
|
||||||
safe_sprintf(unknown, sizeof(unknown), "Unknown error 0x%08lx", Status);
|
static_sprintf(unknown, "Unknown error 0x%08lx", Status);
|
||||||
return unknown;
|
return unknown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -263,82 +262,6 @@ NTSTATUS PhOpenProcess(PHANDLE ProcessHandle, ACCESS_MASK DesiredAccess, HANDLE
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_OBJECT_TYPES
|
|
||||||
NTSTATUS PhEnumObjectTypes(POBJECT_TYPES_INFORMATION *ObjectTypes)
|
|
||||||
{
|
|
||||||
NTSTATUS status = STATUS_SUCCESS;
|
|
||||||
PVOID buffer;
|
|
||||||
ULONG bufferSize;
|
|
||||||
ULONG returnLength;
|
|
||||||
|
|
||||||
PF_INIT_OR_SET_STATUS(NtQueryObject, Ntdll);
|
|
||||||
if (!NT_SUCCESS(status))
|
|
||||||
return status;
|
|
||||||
|
|
||||||
bufferSize = 0x1000;
|
|
||||||
buffer = PhAllocate(bufferSize);
|
|
||||||
|
|
||||||
while ((status = pfNtQueryObject(NULL, ObjectTypesInformation, buffer, bufferSize, &returnLength)) == STATUS_INFO_LENGTH_MISMATCH) {
|
|
||||||
PhFree(buffer);
|
|
||||||
bufferSize *= 2;
|
|
||||||
|
|
||||||
// Fail if we're resizing the buffer to something very large.
|
|
||||||
if (bufferSize > PH_LARGE_BUFFER_SIZE)
|
|
||||||
return STATUS_INSUFFICIENT_RESOURCES;
|
|
||||||
|
|
||||||
buffer = PhAllocate(bufferSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!NT_SUCCESS(status)) {
|
|
||||||
PhFree(buffer);
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
*ObjectTypes = (POBJECT_TYPES_INFORMATION)buffer;
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG PhGetObjectTypeNumber(PUNICODE_STRING TypeName)
|
|
||||||
{
|
|
||||||
NTSTATUS status = STATUS_SUCCESS;
|
|
||||||
POBJECT_TYPES_INFORMATION objectTypes;
|
|
||||||
POBJECT_TYPE_INFORMATION objectType;
|
|
||||||
ULONG objectIndex = -1;
|
|
||||||
ULONG i;
|
|
||||||
|
|
||||||
PF_INIT_OR_SET_STATUS(RtlEqualUnicodeString, NtDll);
|
|
||||||
if (!NT_SUCCESS(status))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
status = PhEnumObjectTypes(&objectTypes);
|
|
||||||
if (NT_SUCCESS(status)) {
|
|
||||||
objectType = PH_FIRST_OBJECT_TYPE(objectTypes);
|
|
||||||
|
|
||||||
for (i = 0; i < objectTypes->NumberOfTypes; i++) {
|
|
||||||
if (pfRtlEqualUnicodeString(&objectType->TypeName, TypeName, TRUE)) {
|
|
||||||
if (nWindowsVersion >= WINDOWS_8_1) {
|
|
||||||
objectIndex = objectType->TypeIndex;
|
|
||||||
break;
|
|
||||||
} else if (nWindowsVersion >= WINDOWS_7) {
|
|
||||||
objectIndex = i + 2;
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
objectIndex = i + 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
objectType = PH_NEXT_OBJECT_TYPE(objectType);
|
|
||||||
}
|
|
||||||
|
|
||||||
PhFree(objectTypes);
|
|
||||||
}
|
|
||||||
|
|
||||||
return objectIndex;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Query processes with open handles to a file, volume or disk.
|
* Query processes with open handles to a file, volume or disk.
|
||||||
*
|
*
|
||||||
|
|
@ -387,25 +310,14 @@ NTSTATUS PhQueryProcessesUsingVolumeOrFile(HANDLE VolumeOrFileHandle,
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Search all the processes and list the ones that have a specific handle open.
|
static DWORD WINAPI SearchProcessThread(LPVOID param)
|
||||||
*
|
|
||||||
* \param HandleName The name of the handle to look for.
|
|
||||||
* \param bPartialMatch Whether partial matches should be allowed.
|
|
||||||
* \param bIgnoreSelf Whether the current process should be listed.
|
|
||||||
*
|
|
||||||
* \return TRUE if matching processes were found, FALSE otherwise.
|
|
||||||
*/
|
|
||||||
BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
|
||||||
{
|
{
|
||||||
const char *access_rights_str[8] = { "n", "r", "w", "rw", "x", "rx", "wx", "rwx" };
|
const char *access_rights_str[8] = { "n", "r", "w", "rw", "x", "rx", "wx", "rwx" };
|
||||||
|
char tmp[MAX_PATH];
|
||||||
NTSTATUS status = STATUS_SUCCESS;
|
NTSTATUS status = STATUS_SUCCESS;
|
||||||
PSYSTEM_HANDLE_INFORMATION_EX handles = NULL;
|
PSYSTEM_HANDLE_INFORMATION_EX handles = NULL;
|
||||||
POBJECT_NAME_INFORMATION buffer = NULL;
|
POBJECT_NAME_INFORMATION buffer = NULL;
|
||||||
#ifdef USE_OBJECT_TYPES
|
|
||||||
UNICODE_STRING fileTypeName;
|
|
||||||
ULONG fileObjectTypeIndex = -1;
|
|
||||||
#endif
|
|
||||||
ULONG_PTR i;
|
ULONG_PTR i;
|
||||||
ULONG_PTR pid[2];
|
ULONG_PTR pid[2];
|
||||||
ULONG_PTR last_access_denied_pid = 0;
|
ULONG_PTR last_access_denied_pid = 0;
|
||||||
|
|
@ -414,17 +326,18 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
WCHAR *wHandleName = NULL;
|
WCHAR *wHandleName = NULL;
|
||||||
HANDLE dupHandle = NULL;
|
HANDLE dupHandle = NULL;
|
||||||
HANDLE processHandle = NULL;
|
HANDLE processHandle = NULL;
|
||||||
BOOLEAN bFound = FALSE;
|
BOOLEAN bFound = FALSE, bGotExePath, verbose = !_bQuiet;
|
||||||
ULONG access_rights = 0;
|
ULONG access_rights = 0;
|
||||||
|
DWORD size;
|
||||||
char exe_path[MAX_PATH] = { 0 };
|
char exe_path[MAX_PATH] = { 0 };
|
||||||
|
wchar_t wexe_path[MAX_PATH];
|
||||||
int cur_pid;
|
int cur_pid;
|
||||||
|
|
||||||
PF_INIT_OR_SET_STATUS(NtQueryObject, Ntdll);
|
PF_INIT_OR_SET_STATUS(NtQueryObject, Ntdll);
|
||||||
PF_INIT_OR_SET_STATUS(NtDuplicateObject, NtDll);
|
PF_INIT_OR_SET_STATUS(NtDuplicateObject, NtDll);
|
||||||
PF_INIT_OR_SET_STATUS(NtClose, NtDll);
|
PF_INIT_OR_SET_STATUS(NtClose, NtDll);
|
||||||
#ifdef USE_OBJECT_TYPES
|
|
||||||
PF_INIT_OR_SET_STATUS(RtlInitUnicodeString, NtDll);
|
StrArrayClear(&BlockingProcess);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (NT_SUCCESS(status))
|
if (NT_SUCCESS(status))
|
||||||
status = PhCreateHeap();
|
status = PhCreateHeap();
|
||||||
|
|
@ -440,7 +353,7 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
pid[0] = (ULONG_PTR)0;
|
pid[0] = (ULONG_PTR)0;
|
||||||
cur_pid = 1;
|
cur_pid = 1;
|
||||||
|
|
||||||
wHandleName = utf8_to_wchar(HandleName);
|
wHandleName = utf8_to_wchar(_HandleName);
|
||||||
wHandleNameLen = (USHORT)wcslen(wHandleName);
|
wHandleNameLen = (USHORT)wcslen(wHandleName);
|
||||||
|
|
||||||
bufferSize = 0x200;
|
bufferSize = 0x200;
|
||||||
|
|
@ -448,13 +361,6 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
#ifdef USE_OBJECT_TYPES
|
|
||||||
pfRtlInitUnicodeString(&fileTypeName, L"File");
|
|
||||||
fileObjectTypeIndex = PhGetObjectTypeNumber(&fileTypeName);
|
|
||||||
if (fileObjectTypeIndex < 0)
|
|
||||||
uprintf("Warning: Could not get Object Index for file types");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (i = 0; ; i++) {
|
for (i = 0; ; i++) {
|
||||||
ULONG attempts = 8;
|
ULONG attempts = 8;
|
||||||
PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX handleInfo =
|
PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX handleInfo =
|
||||||
|
|
@ -465,13 +371,6 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
dupHandle = NULL;
|
dupHandle = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_OBJECT_TYPES
|
|
||||||
// Only look for File objects type
|
|
||||||
if ((fileObjectTypeIndex >= 0 ) && (handleInfo != NULL) &&
|
|
||||||
(handleInfo->ObjectTypeIndex != (USHORT)fileObjectTypeIndex))
|
|
||||||
continue;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Update the current handle's process PID and compare against last
|
// Update the current handle's process PID and compare against last
|
||||||
// Note: Be careful about not trying to overflow our list!
|
// Note: Be careful about not trying to overflow our list!
|
||||||
pid[cur_pid] = (handleInfo != NULL) ? handleInfo->UniqueProcessId : -1;
|
pid[cur_pid] = (handleInfo != NULL) ? handleInfo->UniqueProcessId : -1;
|
||||||
|
|
@ -481,7 +380,9 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
|
|
||||||
// If we're switching process and found a match, print it
|
// If we're switching process and found a match, print it
|
||||||
if (bFound) {
|
if (bFound) {
|
||||||
uprintf("o '%s' (pid: %ld, access: %s)", exe_path, pid[cur_pid], access_rights_str[access_rights & 0x7]);
|
vuprintf("● '%s' (pid: %ld, access: %s)", exe_path, pid[cur_pid], access_rights_str[access_rights & 0x7]);
|
||||||
|
static_sprintf(tmp, "● %s (%s)", exe_path, access_rights_str[access_rights & 0x7]);
|
||||||
|
StrArrayAdd(&BlockingProcess, tmp, TRUE);
|
||||||
bFound = FALSE;
|
bFound = FALSE;
|
||||||
access_rights = 0;
|
access_rights = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -526,7 +427,7 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
|
|
||||||
// Now duplicate this handle onto our own process, so that we can access its properties
|
// Now duplicate this handle onto our own process, so that we can access its properties
|
||||||
if (processHandle == NtCurrentProcess()) {
|
if (processHandle == NtCurrentProcess()) {
|
||||||
if (bIgnoreSelf)
|
if (_bIgnoreSelf)
|
||||||
continue;
|
continue;
|
||||||
dupHandle = (HANDLE)handleInfo->HandleValue;
|
dupHandle = (HANDLE)handleInfo->HandleValue;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -562,11 +463,11 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't bother comparing if we are looking for full match and the length is different
|
// Don't bother comparing if we are looking for full match and the length is different
|
||||||
if ((!bPartialMatch) && (wHandleNameLen != buffer->Name.Length))
|
if ((!_bPartialMatch) && (wHandleNameLen != buffer->Name.Length))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Likewise, if we are looking for a partial match and the current length is smaller
|
// Likewise, if we are looking for a partial match and the current length is smaller
|
||||||
if ((bPartialMatch) && (wHandleNameLen > buffer->Name.Length))
|
if ((_bPartialMatch) && (wHandleNameLen > buffer->Name.Length))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Match against our target string
|
// Match against our target string
|
||||||
|
|
@ -580,28 +481,91 @@ BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf)
|
||||||
access_rights |= handleInfo->GrantedAccess;
|
access_rights |= handleInfo->GrantedAccess;
|
||||||
// The Executable bit is in a place we don't like => reposition it
|
// The Executable bit is in a place we don't like => reposition it
|
||||||
if (access_rights & 0x20)
|
if (access_rights & 0x20)
|
||||||
access_rights = (access_rights & 0x3) | 0x4;
|
access_rights = (access_rights & 0x03) | 0x04;
|
||||||
|
access_mask |= (BYTE) (access_rights & 0x7) + 0x80; // Bit 7 is always set if a process was found
|
||||||
|
|
||||||
// If this is the very first process we find, print a header
|
// If this is the very first process we find, print a header
|
||||||
if (exe_path[0] == 0)
|
if (exe_path[0] == 0)
|
||||||
uprintf("WARNING: The following process(es) or service(s) are accessing %s:", HandleName);
|
vuprintf("WARNING: The following process(es) or service(s) are accessing %s:", _HandleName);
|
||||||
|
|
||||||
if (!GetModuleFileNameExU(processHandle, 0, exe_path, MAX_PATH - 1))
|
// First, we try to get the executable path using GetModuleFileNameEx
|
||||||
safe_sprintf(exe_path, MAX_PATH, "Unknown_Process_%" PRIu64,
|
bGotExePath = (GetModuleFileNameExU(processHandle, 0, exe_path, MAX_PATH - 1) != 0);
|
||||||
(ULONGLONG) handleInfo->UniqueProcessId);
|
|
||||||
|
// The above may not work on Windows 7, so try QueryFullProcessImageName (Vista or later)
|
||||||
|
if (!bGotExePath) {
|
||||||
|
size = MAX_PATH;
|
||||||
|
PF_INIT(QueryFullProcessImageNameW, kernel32);
|
||||||
|
if ( (pfQueryFullProcessImageNameW != NULL) &&
|
||||||
|
(bGotExePath = pfQueryFullProcessImageNameW(processHandle, 0, wexe_path, &size)) )
|
||||||
|
wchar_to_utf8_no_alloc(wexe_path, exe_path, sizeof(exe_path));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Still nothing? Try GetProcessImageFileName. Note that GetProcessImageFileName uses
|
||||||
|
// '\Device\Harddisk#\Partition#\' instead drive letters
|
||||||
|
if (!bGotExePath) {
|
||||||
|
bGotExePath = (GetProcessImageFileNameW(processHandle, wexe_path, MAX_PATH) != 0);
|
||||||
|
if (bGotExePath)
|
||||||
|
wchar_to_utf8_no_alloc(wexe_path, exe_path, sizeof(exe_path));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Complete failure => Just craft a default process name that includes the PID
|
||||||
|
if (!bGotExePath) {
|
||||||
|
static_sprintf(exe_path, "Unknown_Process_%" PRIu64,
|
||||||
|
(ULONGLONG)handleInfo->UniqueProcessId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (exe_path[0] != 0)
|
if (exe_path[0] != 0)
|
||||||
uprintf("You should try to close these applications before attempting to reformat the drive.");
|
vuprintf("You should close these applications before attempting to reformat the drive.");
|
||||||
else
|
else
|
||||||
uprintf("NOTE: Could not identify the process(es) or service(s) accessing %s", HandleName);
|
vuprintf("NOTE: Could not identify the process(es) or service(s) accessing %s", _HandleName);
|
||||||
|
|
||||||
free(wHandleName);
|
free(wHandleName);
|
||||||
PhFree(buffer);
|
PhFree(buffer);
|
||||||
PhFree(handles);
|
PhFree(handles);
|
||||||
PhDestroyHeap();
|
PhDestroyHeap();
|
||||||
return bFound;
|
ExitThread(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search all the processes and list the ones that have a specific handle open.
|
||||||
|
*
|
||||||
|
* \param HandleName The name of the handle to look for.
|
||||||
|
* \param dwTimeOut The maximum amounf of time (ms) that may be spent searching
|
||||||
|
* \param bPartialMatch Whether partial matches should be allowed.
|
||||||
|
* \param bIgnoreSelf Whether the current process should be listed.
|
||||||
|
* \param bQuiet Prints minimal output.
|
||||||
|
*
|
||||||
|
* \return a byte containing the cummulated access rights (f----xwr) from all the handles found
|
||||||
|
* with bit 7 ('f') also set if at least one process was found.
|
||||||
|
*/
|
||||||
|
BYTE SearchProcess(char* HandleName, DWORD dwTimeOut, BOOL bPartialMatch, BOOL bIgnoreSelf, BOOL bQuiet)
|
||||||
|
{
|
||||||
|
HANDLE handle;
|
||||||
|
DWORD res = 0;
|
||||||
|
|
||||||
|
_HandleName = HandleName;
|
||||||
|
_bPartialMatch = bPartialMatch;
|
||||||
|
_bIgnoreSelf = bIgnoreSelf;
|
||||||
|
_bQuiet = bQuiet;
|
||||||
|
access_mask = 0;
|
||||||
|
|
||||||
|
handle = CreateThread(NULL, 0, SearchProcessThread, NULL, 0, NULL);
|
||||||
|
if (handle == NULL) {
|
||||||
|
uprintf("Warning: Unable to create conflicting process search thread");
|
||||||
|
return 0x00;
|
||||||
|
}
|
||||||
|
res = WaitForSingleObjectWithMessages(handle, dwTimeOut);
|
||||||
|
if (res == WAIT_TIMEOUT) {
|
||||||
|
// Timeout - kill the thread
|
||||||
|
TerminateThread(handle, 0);
|
||||||
|
uprintf("Warning: Conflicting process search failed to complete due to timeout");
|
||||||
|
} else if (res != WAIT_OBJECT_0) {
|
||||||
|
TerminateThread(handle, 0);
|
||||||
|
uprintf("Warning: Failed to wait for conflicting process search thread: %s", WindowsErrorString());
|
||||||
|
}
|
||||||
|
return access_mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -77,12 +77,6 @@ typedef struct _OBJECT_NAME_INFORMATION
|
||||||
UNICODE_STRING Name;
|
UNICODE_STRING Name;
|
||||||
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
|
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
|
||||||
|
|
||||||
typedef struct _CLIENT_ID
|
|
||||||
{
|
|
||||||
HANDLE UniqueProcess;
|
|
||||||
HANDLE UniqueThread;
|
|
||||||
} CLIENT_ID, *PCLIENT_ID;
|
|
||||||
|
|
||||||
typedef struct _OBJECT_TYPE_INFORMATION
|
typedef struct _OBJECT_TYPE_INFORMATION
|
||||||
{
|
{
|
||||||
UNICODE_STRING TypeName;
|
UNICODE_STRING TypeName;
|
||||||
|
|
|
||||||
|
|
@ -83,18 +83,18 @@ static __inline BOOL _GetRegistryKey(HKEY key_root, const char* key_name, DWORD
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i != 0) {
|
if (i > 0) {
|
||||||
// Prefix with "SOFTWARE" if needed
|
// Prefix with "SOFTWARE" if needed
|
||||||
if (_strnicmp(key_name, software_prefix, sizeof(software_prefix) - 1) != 0) {
|
if (_strnicmp(key_name, software_prefix, sizeof(software_prefix) - 1) != 0) {
|
||||||
if (i + sizeof(software_prefix) >= sizeof(long_key_name))
|
if (i + sizeof(software_prefix) >= sizeof(long_key_name))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
strcpy(long_key_name, software_prefix);
|
strcpy(long_key_name, software_prefix);
|
||||||
safe_strcat(long_key_name, sizeof(long_key_name), key_name);
|
static_strcat(long_key_name, key_name);
|
||||||
long_key_name[sizeof(software_prefix) + i - 1] = 0;
|
long_key_name[sizeof(software_prefix) + i - 1] = 0;
|
||||||
} else {
|
} else {
|
||||||
if (i >= sizeof(long_key_name))
|
if (i >= sizeof(long_key_name))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
safe_strcpy(long_key_name, sizeof(long_key_name), key_name);
|
static_strcpy(long_key_name, key_name);
|
||||||
long_key_name[i] = 0;
|
long_key_name[i] = 0;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
|
|
@ -146,30 +146,23 @@ static __inline BOOL _SetRegistryKey(HKEY key_root, const char* key_name, DWORD
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find if we're dealing with a short key
|
// Find if we're dealing with a short key
|
||||||
for (i = safe_strlen(key_name); i>0; i--) {
|
for (i = safe_strlen(key_name); i > 0; i--) {
|
||||||
if (key_name[i] == '\\')
|
if (key_name[i] == '\\')
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == 0) {
|
if (i > 0) {
|
||||||
// If this is a short key name, store the value under our app sub-hive
|
|
||||||
if (RegCreateKeyExA(hRoot, "SOFTWARE\\" COMPANY_NAME "\\" APPLICATION_NAME, 0, NULL, 0,
|
|
||||||
KEY_SET_VALUE | KEY_QUERY_VALUE | KEY_CREATE_SUB_KEY, NULL, &hApp, &dwDisp) != ERROR_SUCCESS) {
|
|
||||||
hApp = NULL;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Prefix with "SOFTWARE" if needed
|
// Prefix with "SOFTWARE" if needed
|
||||||
if (_strnicmp(key_name, software_prefix, sizeof(software_prefix) - 1) != 0) {
|
if (_strnicmp(key_name, software_prefix, sizeof(software_prefix) - 1) != 0) {
|
||||||
if (i + sizeof(software_prefix) >= sizeof(long_key_name))
|
if (i + sizeof(software_prefix) >= sizeof(long_key_name))
|
||||||
goto out;
|
goto out;
|
||||||
strcpy(long_key_name, software_prefix);
|
strcpy(long_key_name, software_prefix);
|
||||||
safe_strcat(long_key_name, sizeof(long_key_name), key_name);
|
static_strcat(long_key_name, key_name);
|
||||||
long_key_name[sizeof(software_prefix) + i - 1] = 0;
|
long_key_name[sizeof(software_prefix) + i - 1] = 0;
|
||||||
} else {
|
} else {
|
||||||
if (i >= sizeof(long_key_name))
|
if (i >= sizeof(long_key_name))
|
||||||
goto out;
|
goto out;
|
||||||
safe_strcpy(long_key_name, sizeof(long_key_name), key_name);
|
static_strcpy(long_key_name, key_name);
|
||||||
long_key_name[i] = 0;
|
long_key_name[i] = 0;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
|
|
@ -178,6 +171,13 @@ static __inline BOOL _SetRegistryKey(HKEY key_root, const char* key_name, DWORD
|
||||||
hApp = NULL;
|
hApp = NULL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// This is a short key name, store the value under our app sub-hive
|
||||||
|
if (RegCreateKeyExA(hRoot, "SOFTWARE\\" COMPANY_NAME "\\" APPLICATION_NAME, 0, NULL, 0,
|
||||||
|
KEY_SET_VALUE | KEY_QUERY_VALUE | KEY_CREATE_SUB_KEY, NULL, &hApp, &dwDisp) != ERROR_SUCCESS) {
|
||||||
|
hApp = NULL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
r = (RegSetValueExA(hApp, &key_name[i], 0, dwType, src, src_size) == ERROR_SUCCESS);
|
r = (RegSetValueExA(hApp, &key_name[i], 0, dwType, src, src_size) == ERROR_SUCCESS);
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,8 @@
|
||||||
#define IDD_UPDATE_POLICY 107
|
#define IDD_UPDATE_POLICY 107
|
||||||
#define IDD_NEW_VERSION 108
|
#define IDD_NEW_VERSION 108
|
||||||
#define IDD_CHECKSUM 109
|
#define IDD_CHECKSUM 109
|
||||||
|
#define IDD_LIST 110
|
||||||
#define IDI_ICON 120
|
#define IDI_ICON 120
|
||||||
#define IDI_UP 121
|
|
||||||
#define IDI_DOWN 122
|
|
||||||
#define IDD_DIALOG_XP 151
|
#define IDD_DIALOG_XP 151
|
||||||
#define IDD_ABOUTBOX_XP 152
|
#define IDD_ABOUTBOX_XP 152
|
||||||
#define IDD_NOTIFICATION_XP 153
|
#define IDD_NOTIFICATION_XP 153
|
||||||
|
|
@ -148,6 +147,25 @@
|
||||||
#define IDC_SELECTION_CHOICE14 1090
|
#define IDC_SELECTION_CHOICE14 1090
|
||||||
#define IDC_SELECTION_CHOICE15 1091
|
#define IDC_SELECTION_CHOICE15 1091
|
||||||
#define IDC_SELECTION_CHOICEMAX 1092
|
#define IDC_SELECTION_CHOICEMAX 1092
|
||||||
|
#define IDC_LIST_ICON 1093
|
||||||
|
#define IDC_LIST_TEXT 1094
|
||||||
|
#define IDC_LIST_LINE 1095
|
||||||
|
#define IDC_LIST_ITEM1 1096
|
||||||
|
#define IDC_LIST_ITEM2 1097
|
||||||
|
#define IDC_LIST_ITEM3 1098
|
||||||
|
#define IDC_LIST_ITEM4 1099
|
||||||
|
#define IDC_LIST_ITEM5 1100
|
||||||
|
#define IDC_LIST_ITEM6 1101
|
||||||
|
#define IDC_LIST_ITEM7 1102
|
||||||
|
#define IDC_LIST_ITEM8 1103
|
||||||
|
#define IDC_LIST_ITEM9 1104
|
||||||
|
#define IDC_LIST_ITEM10 1105
|
||||||
|
#define IDC_LIST_ITEM11 1106
|
||||||
|
#define IDC_LIST_ITEM12 1107
|
||||||
|
#define IDC_LIST_ITEM13 1108
|
||||||
|
#define IDC_LIST_ITEM14 1109
|
||||||
|
#define IDC_LIST_ITEM15 1110
|
||||||
|
#define IDC_LIST_ITEMMAX 1111
|
||||||
#define IDS_DEVICE_TXT 2000
|
#define IDS_DEVICE_TXT 2000
|
||||||
#define IDS_PARTITION_TYPE_TXT 2001
|
#define IDS_PARTITION_TYPE_TXT 2001
|
||||||
#define IDS_FILESYSTEM_TXT 2002
|
#define IDS_FILESYSTEM_TXT 2002
|
||||||
|
|
@ -461,7 +479,8 @@
|
||||||
#define MSG_297 3297
|
#define MSG_297 3297
|
||||||
#define MSG_298 3298
|
#define MSG_298 3298
|
||||||
#define MSG_299 3299
|
#define MSG_299 3299
|
||||||
#define MSG_MAX 3300
|
#define MSG_300 3300
|
||||||
|
#define MSG_MAX 3301
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
|
|
|
||||||
542
src/rufus.c
542
src/rufus.c
File diff suppressed because it is too large
Load diff
65
src/rufus.h
65
src/rufus.h
|
|
@ -21,15 +21,9 @@
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
// Disable some VS Code Analysis warnings
|
// Disable some VS Code Analysis warnings
|
||||||
#pragma warning(disable: 4996) // Ignore deprecated (eg. GetVersionEx()), as we have to contend with XP
|
#pragma warning(disable: 4996) // Ignore deprecated
|
||||||
#pragma warning(disable: 28159) // We use GetTickCount64() where possible, but it's not available on XP
|
#pragma warning(disable: 28159) // I'll keep using GetVersionEx(), thank you very much!
|
||||||
#pragma warning(disable: 6258) // I know what I'm using TerminateThread for
|
#pragma warning(disable: 6258) // I know what I'm using TerminateThread for
|
||||||
// Burn in HELL Windows XP!!!
|
|
||||||
#ifdef DDKBUILD
|
|
||||||
#if (_WIN32_WINNT < _WIN32_WINNT_VISTA)
|
|
||||||
#error The Windows XP target is no longer supported for WDK compilation.
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
@ -37,7 +31,7 @@
|
||||||
/* Program options */
|
/* Program options */
|
||||||
#define RUFUS_LOGGING // print info to logging facility
|
#define RUFUS_LOGGING // print info to logging facility
|
||||||
/* Features not ready for prime time and that may *DESTROY* your data - USE AT YOUR OWN RISKS! */
|
/* Features not ready for prime time and that may *DESTROY* your data - USE AT YOUR OWN RISKS! */
|
||||||
// #define RUFUS_TEST
|
//#define RUFUS_TEST
|
||||||
|
|
||||||
#define APPLICATION_NAME "Rufus"
|
#define APPLICATION_NAME "Rufus"
|
||||||
#define COMPANY_NAME "Akeo Consulting"
|
#define COMPANY_NAME "Akeo Consulting"
|
||||||
|
|
@ -79,8 +73,9 @@
|
||||||
#define DD_BUFFER_SIZE 65536 // Minimum size of the buffer we use for DD operations
|
#define DD_BUFFER_SIZE 65536 // Minimum size of the buffer we use for DD operations
|
||||||
#define UBUFFER_SIZE 2048
|
#define UBUFFER_SIZE 2048
|
||||||
#define RUFUS_URL "https://rufus.akeo.ie"
|
#define RUFUS_URL "https://rufus.akeo.ie"
|
||||||
#define DOWNLOAD_URL RUFUS_URL "/downloads"
|
#define RUFUS_NO_SSL_URL "http://rufus.akeo.ie" // Stupid XP can't handle a recent SSL implementation...
|
||||||
#define FILES_URL RUFUS_URL "/files"
|
#define DOWNLOAD_URL RUFUS_NO_SSL_URL "/downloads"
|
||||||
|
#define FILES_URL RUFUS_NO_SSL_URL "/files"
|
||||||
#define SEVENZIP_URL "http://www.7-zip.org"
|
#define SEVENZIP_URL "http://www.7-zip.org"
|
||||||
#define FILES_DIR "rufus_files"
|
#define FILES_DIR "rufus_files"
|
||||||
#define IGNORE_RETVAL(expr) do { (void)(expr); } while(0)
|
#define IGNORE_RETVAL(expr) do { (void)(expr); } while(0)
|
||||||
|
|
@ -100,8 +95,10 @@
|
||||||
#define safe_strcp(dst, dst_max, src, count) do {memcpy(dst, src, safe_min(count, dst_max)); \
|
#define safe_strcp(dst, dst_max, src, count) do {memcpy(dst, src, safe_min(count, dst_max)); \
|
||||||
((char*)dst)[safe_min(count, dst_max)-1] = 0;} while(0)
|
((char*)dst)[safe_min(count, dst_max)-1] = 0;} while(0)
|
||||||
#define safe_strcpy(dst, dst_max, src) safe_strcp(dst, dst_max, src, safe_strlen(src)+1)
|
#define safe_strcpy(dst, dst_max, src) safe_strcp(dst, dst_max, src, safe_strlen(src)+1)
|
||||||
|
#define static_strcpy(dst, src) safe_strcpy(dst, sizeof(dst), src)
|
||||||
#define safe_strncat(dst, dst_max, src, count) strncat(dst, src, safe_min(count, dst_max - safe_strlen(dst) - 1))
|
#define safe_strncat(dst, dst_max, src, count) strncat(dst, src, safe_min(count, dst_max - safe_strlen(dst) - 1))
|
||||||
#define safe_strcat(dst, dst_max, src) safe_strncat(dst, dst_max, src, safe_strlen(src)+1)
|
#define safe_strcat(dst, dst_max, src) safe_strncat(dst, dst_max, src, safe_strlen(src)+1)
|
||||||
|
#define static_strcat(dst, src) safe_strcat(dst, sizeof(dst), src)
|
||||||
#define safe_strcmp(str1, str2) strcmp(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2))
|
#define safe_strcmp(str1, str2) strcmp(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2))
|
||||||
#define safe_strstr(str1, str2) strstr(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2))
|
#define safe_strstr(str1, str2) strstr(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2))
|
||||||
#define safe_stricmp(str1, str2) _stricmp(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2))
|
#define safe_stricmp(str1, str2) _stricmp(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2))
|
||||||
|
|
@ -122,10 +119,10 @@
|
||||||
#ifdef RUFUS_LOGGING
|
#ifdef RUFUS_LOGGING
|
||||||
extern void _uprintf(const char *format, ...);
|
extern void _uprintf(const char *format, ...);
|
||||||
#define uprintf(...) _uprintf(__VA_ARGS__)
|
#define uprintf(...) _uprintf(__VA_ARGS__)
|
||||||
#define vuprintf(...) if (verbose) _uprintf(__VA_ARGS__)
|
#define vuprintf(...) do { if (verbose) _uprintf(__VA_ARGS__); } while(0)
|
||||||
#define vvuprintf(...) if (verbose > 1) _uprintf(__VA_ARGS__)
|
#define vvuprintf(...) do { if (verbose > 1) _uprintf(__VA_ARGS__); } while(0)
|
||||||
#define suprintf(...) if (!bSilent) _uprintf(__VA_ARGS__)
|
#define suprintf(...) do { if (!bSilent) _uprintf(__VA_ARGS__); } while(0)
|
||||||
#define uuprintf(...) if (usb_debug) _uprintf(__VA_ARGS__)
|
#define uuprintf(...) do { if (usb_debug) _uprintf(__VA_ARGS__); } while(0)
|
||||||
#define ubprintf(...) do { safe_sprintf(&ubuffer[ubuffer_pos], UBUFFER_SIZE - ubuffer_pos - 2, __VA_ARGS__); \
|
#define ubprintf(...) do { safe_sprintf(&ubuffer[ubuffer_pos], UBUFFER_SIZE - ubuffer_pos - 2, __VA_ARGS__); \
|
||||||
ubuffer_pos = strlen(ubuffer); ubuffer[ubuffer_pos++] = '\r'; ubuffer[ubuffer_pos++] = '\n'; \
|
ubuffer_pos = strlen(ubuffer); ubuffer[ubuffer_pos++] = '\r'; ubuffer[ubuffer_pos++] = '\n'; \
|
||||||
ubuffer[ubuffer_pos] = 0; } while(0)
|
ubuffer[ubuffer_pos] = 0; } while(0)
|
||||||
|
|
@ -166,6 +163,7 @@ enum notification_type {
|
||||||
MSG_WARNING,
|
MSG_WARNING,
|
||||||
MSG_ERROR,
|
MSG_ERROR,
|
||||||
MSG_QUESTION,
|
MSG_QUESTION,
|
||||||
|
MSG_WARNING_QUESTION
|
||||||
};
|
};
|
||||||
typedef INT_PTR (CALLBACK *Callback_t)(HWND, UINT, WPARAM, LPARAM);
|
typedef INT_PTR (CALLBACK *Callback_t)(HWND, UINT, WPARAM, LPARAM);
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
@ -237,6 +235,7 @@ enum target_type {
|
||||||
TT_MAX
|
TT_MAX
|
||||||
};
|
};
|
||||||
// For the partition types we'll use Microsoft's PARTITION_STYLE_### constants
|
// For the partition types we'll use Microsoft's PARTITION_STYLE_### constants
|
||||||
|
#define PARTITION_STYLE_SFD PARTITION_STYLE_RAW
|
||||||
#define GETTARGETTYPE(x) (((x)>0)?(((x) >> 16) & 0xFFFF):0)
|
#define GETTARGETTYPE(x) (((x)>0)?(((x) >> 16) & 0xFFFF):0)
|
||||||
#define GETPARTTYPE(x) (((x)>0)?((x) & 0xFFFF):0);
|
#define GETPARTTYPE(x) (((x)>0)?((x) & 0xFFFF):0);
|
||||||
|
|
||||||
|
|
@ -265,8 +264,9 @@ enum checksum_type {
|
||||||
#define HAS_WINPE(r) (((r.winpe & WINPE_MININT) == WINPE_MININT)||((r.winpe & WINPE_I386) == WINPE_I386))
|
#define HAS_WINPE(r) (((r.winpe & WINPE_MININT) == WINPE_MININT)||((r.winpe & WINPE_I386) == WINPE_I386))
|
||||||
#define HAS_WINDOWS(r) (HAS_BOOTMGR(r) || (r.uses_minint) || HAS_WINPE(r))
|
#define HAS_WINDOWS(r) (HAS_BOOTMGR(r) || (r.uses_minint) || HAS_WINPE(r))
|
||||||
#define HAS_WIN7_EFI(r) ((r.has_efi == 1) && HAS_INSTALL_WIM(r))
|
#define HAS_WIN7_EFI(r) ((r.has_efi == 1) && HAS_INSTALL_WIM(r))
|
||||||
|
#define HAS_EFI_IMG(r) (r.efi_img_path[0] != 0)
|
||||||
#define IS_DD_BOOTABLE(r) (r.is_bootable_img)
|
#define IS_DD_BOOTABLE(r) (r.is_bootable_img)
|
||||||
#define IS_EFI_BOOTABLE(r) (r.has_efi)
|
#define IS_EFI_BOOTABLE(r) (r.has_efi != 0)
|
||||||
#define IS_BIOS_BOOTABLE(r) (HAS_BOOTMGR(r) || HAS_SYSLINUX(r) || HAS_WINPE(r) || HAS_GRUB(r) || HAS_REACTOS(r) || HAS_KOLIBRIOS(r))
|
#define IS_BIOS_BOOTABLE(r) (HAS_BOOTMGR(r) || HAS_SYSLINUX(r) || HAS_WINPE(r) || HAS_GRUB(r) || HAS_REACTOS(r) || HAS_KOLIBRIOS(r))
|
||||||
#define HAS_WINTOGO(r) (HAS_BOOTMGR(r) && IS_EFI_BOOTABLE(r) && HAS_INSTALL_WIM(r) && (r.install_wim_version < MAX_WIM_VERSION))
|
#define HAS_WINTOGO(r) (HAS_BOOTMGR(r) && IS_EFI_BOOTABLE(r) && HAS_INSTALL_WIM(r) && (r.install_wim_version < MAX_WIM_VERSION))
|
||||||
#define IS_FAT(fs) ((fs == FS_FAT16) || (fs == FS_FAT32))
|
#define IS_FAT(fs) ((fs == FS_FAT16) || (fs == FS_FAT32))
|
||||||
|
|
@ -277,6 +277,7 @@ typedef struct {
|
||||||
char cfg_path[128]; /* path to the ISO's isolinux.cfg */
|
char cfg_path[128]; /* path to the ISO's isolinux.cfg */
|
||||||
char reactos_path[128]; /* path to the ISO's freeldr.sys or setupldr.sys */
|
char reactos_path[128]; /* path to the ISO's freeldr.sys or setupldr.sys */
|
||||||
char install_wim_path[64]; /* path to install.wim or install.swm */
|
char install_wim_path[64]; /* path to install.wim or install.swm */
|
||||||
|
char efi_img_path[128]; /* path to an efi.img file */
|
||||||
uint64_t image_size;
|
uint64_t image_size;
|
||||||
uint64_t projected_size;
|
uint64_t projected_size;
|
||||||
int64_t mismatch_size;
|
int64_t mismatch_size;
|
||||||
|
|
@ -368,11 +369,11 @@ enum WindowsVersion {
|
||||||
WINDOWS_UNDEFINED = -1,
|
WINDOWS_UNDEFINED = -1,
|
||||||
WINDOWS_UNSUPPORTED = 0,
|
WINDOWS_UNSUPPORTED = 0,
|
||||||
WINDOWS_XP = 0x51,
|
WINDOWS_XP = 0x51,
|
||||||
WINDOWS_2003 = 0x52, // Also XP x64
|
WINDOWS_2003 = 0x52, // Also XP_64
|
||||||
WINDOWS_VISTA = 0x60,
|
WINDOWS_VISTA = 0x60, // Also 2008
|
||||||
WINDOWS_7 = 0x61,
|
WINDOWS_7 = 0x61, // Also 2008_R2
|
||||||
WINDOWS_8 = 0x62,
|
WINDOWS_8 = 0x62, // Also 2012
|
||||||
WINDOWS_8_1 = 0x63,
|
WINDOWS_8_1 = 0x63, // Also 2012_R2
|
||||||
WINDOWS_10_PREVIEW1 = 0x64,
|
WINDOWS_10_PREVIEW1 = 0x64,
|
||||||
WINDOWS_10 = 0xA0,
|
WINDOWS_10 = 0xA0,
|
||||||
WINDOWS_MAX
|
WINDOWS_MAX
|
||||||
|
|
@ -387,7 +388,7 @@ extern HWND hMainDialog, hLogDlg, hStatus, hDeviceList, hCapacity;
|
||||||
extern HWND hPartitionScheme, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog;
|
extern HWND hPartitionScheme, hFileSystem, hClusterSize, hLabel, hBootType, hNBPasses, hLog;
|
||||||
extern HWND hInfo, hProgress, hDiskID, hStatusToolbar;
|
extern HWND hInfo, hProgress, hDiskID, hStatusToolbar;
|
||||||
extern float fScale;
|
extern float fScale;
|
||||||
extern char szFolderPath[MAX_PATH], app_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH];
|
extern char szFolderPath[MAX_PATH], app_dir[MAX_PATH], temp_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH];
|
||||||
extern char* image_path;
|
extern char* image_path;
|
||||||
extern DWORD FormatStatus, DownloadStatus, MainThreadId;
|
extern DWORD FormatStatus, DownloadStatus, MainThreadId;
|
||||||
extern BOOL PromptOnError;
|
extern BOOL PromptOnError;
|
||||||
|
|
@ -424,6 +425,7 @@ extern void UpdateProgress(int op, float percent);
|
||||||
extern const char* StrError(DWORD error_code, BOOL use_default_locale);
|
extern const char* StrError(DWORD error_code, BOOL use_default_locale);
|
||||||
extern char* GuidToString(const GUID* guid);
|
extern char* GuidToString(const GUID* guid);
|
||||||
extern char* SizeToHumanReadable(uint64_t size, BOOL copy_to_log, BOOL fake_units);
|
extern char* SizeToHumanReadable(uint64_t size, BOOL copy_to_log, BOOL fake_units);
|
||||||
|
extern char* TimestampToHumanReadable(uint64_t ts);
|
||||||
extern HWND MyCreateDialog(HINSTANCE hInstance, int Dialog_ID, HWND hWndParent, DLGPROC lpDialogFunc);
|
extern HWND MyCreateDialog(HINSTANCE hInstance, int Dialog_ID, HWND hWndParent, DLGPROC lpDialogFunc);
|
||||||
extern INT_PTR MyDialogBox(HINSTANCE hInstance, int Dialog_ID, HWND hWndParent, DLGPROC lpDialogFunc);
|
extern INT_PTR MyDialogBox(HINSTANCE hInstance, int Dialog_ID, HWND hWndParent, DLGPROC lpDialogFunc);
|
||||||
extern void CenterDialog(HWND hDlg);
|
extern void CenterDialog(HWND hDlg);
|
||||||
|
|
@ -438,11 +440,13 @@ extern BOOL CreateTooltip(HWND hControl, const char* message, int duration);
|
||||||
extern void DestroyTooltip(HWND hWnd);
|
extern void DestroyTooltip(HWND hWnd);
|
||||||
extern void DestroyAllTooltips(void);
|
extern void DestroyAllTooltips(void);
|
||||||
extern BOOL Notification(int type, const notification_info* more_info, char* title, char* format, ...);
|
extern BOOL Notification(int type, const notification_info* more_info, char* title, char* format, ...);
|
||||||
extern int Selection(char* title, char* message, char** choices, int size);
|
extern int SelectionDialog(char* title, char* message, char** choices, int size);
|
||||||
|
extern void ListDialog(char* title, char* message, char** items, int size);
|
||||||
extern SIZE GetTextSize(HWND hCtrl);
|
extern SIZE GetTextSize(HWND hCtrl);
|
||||||
extern BOOL ExtractDOS(const char* path);
|
extern BOOL ExtractDOS(const char* path);
|
||||||
extern BOOL ExtractISO(const char* src_iso, const char* dest_dir, BOOL scan);
|
extern BOOL ExtractISO(const char* src_iso, const char* dest_dir, BOOL scan);
|
||||||
extern int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_file, DWORD attributes);
|
extern int64_t ExtractISOFile(const char* iso, const char* iso_file, const char* dest_file, DWORD attributes);
|
||||||
|
extern BOOL ExtractEfiImgFiles(const char* dir);
|
||||||
extern char* MountISO(const char* path);
|
extern char* MountISO(const char* path);
|
||||||
extern void UnMountISO(void);
|
extern void UnMountISO(void);
|
||||||
extern BOOL InstallSyslinux(DWORD drive_index, char drive_letter, int fs);
|
extern BOOL InstallSyslinux(DWORD drive_index, char drive_letter, int fs);
|
||||||
|
|
@ -456,6 +460,7 @@ extern DWORD GetResourceSize(HMODULE module, char* name, char* type, const char*
|
||||||
extern DWORD RunCommand(const char* cmdline, const char* dir, BOOL log);
|
extern DWORD RunCommand(const char* cmdline, const char* dir, BOOL log);
|
||||||
extern BOOL CompareGUID(const GUID *guid1, const GUID *guid2);
|
extern BOOL CompareGUID(const GUID *guid1, const GUID *guid2);
|
||||||
extern BOOL GetDevices(DWORD devnum);
|
extern BOOL GetDevices(DWORD devnum);
|
||||||
|
extern BOOL ResetDevice(int index);
|
||||||
extern BOOL GetOpticalMedia(IMG_SAVE* img_save);
|
extern BOOL GetOpticalMedia(IMG_SAVE* img_save);
|
||||||
extern BOOL SetLGP(BOOL bRestore, BOOL* bExistingKey, const char* szPath, const char* szPolicy, DWORD dwValue);
|
extern BOOL SetLGP(BOOL bRestore, BOOL* bExistingKey, const char* szPath, const char* szPolicy, DWORD dwValue);
|
||||||
extern LONG GetEntryWidth(HWND hDropDown, const char* entry);
|
extern LONG GetEntryWidth(HWND hDropDown, const char* entry);
|
||||||
|
|
@ -474,6 +479,7 @@ extern char* insert_section_data(const char* filename, const char* section, cons
|
||||||
extern char* replace_in_token_data(const char* filename, const char* token, const char* src, const char* rep, BOOL dos2unix);
|
extern char* replace_in_token_data(const char* filename, const char* token, const char* src, const char* rep, BOOL dos2unix);
|
||||||
extern char* replace_char(const char* src, const char c, const char* rep);
|
extern char* replace_char(const char* src, const char c, const char* rep);
|
||||||
extern void parse_update(char* buf, size_t len);
|
extern void parse_update(char* buf, size_t len);
|
||||||
|
extern void* get_data_from_asn1(const uint8_t* buf, size_t buf_len, const char* oid_str, uint8_t asn1_type, size_t* data_len);
|
||||||
extern uint8_t WimExtractCheck(void);
|
extern uint8_t WimExtractCheck(void);
|
||||||
extern BOOL WimExtractFile(const char* wim_image, int index, const char* src, const char* dst);
|
extern BOOL WimExtractFile(const char* wim_image, int index, const char* src, const char* dst);
|
||||||
extern BOOL WimExtractFile_API(const char* image, int index, const char* src, const char* dst);
|
extern BOOL WimExtractFile_API(const char* image, int index, const char* src, const char* dst);
|
||||||
|
|
@ -483,7 +489,8 @@ extern BOOL IsBootableImage(const char* path);
|
||||||
extern BOOL AppendVHDFooter(const char* vhd_path);
|
extern BOOL AppendVHDFooter(const char* vhd_path);
|
||||||
extern int SetWinToGoIndex(void);
|
extern int SetWinToGoIndex(void);
|
||||||
extern int IsHDD(DWORD DriveIndex, uint16_t vid, uint16_t pid, const char* strid);
|
extern int IsHDD(DWORD DriveIndex, uint16_t vid, uint16_t pid, const char* strid);
|
||||||
extern char* GetSignatureName(const char* path);
|
extern char* GetSignatureName(const char* path, const char* country_code);
|
||||||
|
extern uint64_t GetSignatureTimeStamp(const char* path);
|
||||||
extern LONG ValidateSignature(HWND hDlg, const char* path);
|
extern LONG ValidateSignature(HWND hDlg, const char* path);
|
||||||
extern BOOL IsFontAvailable(const char* font_name);
|
extern BOOL IsFontAvailable(const char* font_name);
|
||||||
extern BOOL WriteFileWithRetry(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite,
|
extern BOOL WriteFileWithRetry(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite,
|
||||||
|
|
@ -498,10 +505,13 @@ extern BOOL IsBufferInDB(const unsigned char* buf, const size_t len);
|
||||||
extern char* _printbits(size_t const size, void const * const ptr, int leading_zeroes);
|
extern char* _printbits(size_t const size, void const * const ptr, int leading_zeroes);
|
||||||
extern BOOL IsCurrentProcessElevated(void);
|
extern BOOL IsCurrentProcessElevated(void);
|
||||||
extern char* GetCurrentMUI(void);
|
extern char* GetCurrentMUI(void);
|
||||||
|
extern char* GetMuiString(char* szModuleName, UINT uID);
|
||||||
extern BOOL SetFormatPromptHook(void);
|
extern BOOL SetFormatPromptHook(void);
|
||||||
extern void ClrFormatPromptHook(void);
|
extern void ClrFormatPromptHook(void);
|
||||||
extern BOOL SearchProcess(char* HandleName, BOOL bPartialMatch, BOOL bIgnoreSelf);
|
extern BYTE SearchProcess(char* HandleName, DWORD dwTimeout, BOOL bPartialMatch, BOOL bIgnoreSelf, BOOL bQuiet);
|
||||||
extern BOOL EnablePrivileges(void);
|
extern BOOL EnablePrivileges(void);
|
||||||
|
extern void FlashTaskbar(HANDLE handle);
|
||||||
|
extern DWORD WaitForSingleObjectWithMessages(HANDLE hHandle, DWORD dwMilliseconds);
|
||||||
|
|
||||||
DWORD WINAPI FormatThread(void* param);
|
DWORD WINAPI FormatThread(void* param);
|
||||||
DWORD WINAPI SaveImageThread(void* param);
|
DWORD WINAPI SaveImageThread(void* param);
|
||||||
|
|
@ -588,8 +598,3 @@ static __inline HMODULE GetLibraryHandle(char* szLibraryName) {
|
||||||
#define ERROR_CANT_PATCH 0x120A
|
#define ERROR_CANT_PATCH 0x120A
|
||||||
#define ERROR_CANT_ASSIGN_LETTER 0x120B
|
#define ERROR_CANT_ASSIGN_LETTER 0x120B
|
||||||
#define ERROR_CANT_MOUNT_VOLUME 0x120C
|
#define ERROR_CANT_MOUNT_VOLUME 0x120C
|
||||||
|
|
||||||
/* GetTickCount64 not being available on XP is a massive bother */
|
|
||||||
PF_TYPE(WINAPI, ULONGLONG, GetTickCount64, (void));
|
|
||||||
extern GetTickCount64_t pfGetTickCount64;
|
|
||||||
#define _GetTickCount64() ((pfGetTickCount64 != NULL)?(uint64_t)pfGetTickCount64():(uint64_t)GetTickCount())
|
|
||||||
|
|
|
||||||
88
src/rufus.rc
88
src/rufus.rc
|
|
@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 242, 376
|
IDD_DIALOG DIALOGEX 12, 12, 242, 376
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_ACCEPTFILES
|
EXSTYLE WS_EX_ACCEPTFILES
|
||||||
CAPTION "Rufus 2.15.1120"
|
CAPTION "Rufus 2.18.1217"
|
||||||
FONT 8, "Segoe UI Symbol", 400, 0, 0x0
|
FONT 8, "Segoe UI Symbol", 400, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
||||||
|
|
@ -164,6 +164,34 @@ BEGIN
|
||||||
CONTROL "Choice 16",IDC_SELECTION_CHOICEMAX,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,35,213,269,10,WS_EX_TRANSPARENT
|
CONTROL "Choice 16",IDC_SELECTION_CHOICEMAX,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,35,213,269,10,WS_EX_TRANSPARENT
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_LIST DIALOGEX 0, 0, 312, 59
|
||||||
|
STYLE DS_SETFONT | DS_NOFAILCREATE | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
|
||||||
|
CAPTION "Rufus"
|
||||||
|
FONT 8, "Segoe UI Symbol", 400, 0, 0x0
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_LIST_LINE,0,0,312,32
|
||||||
|
LTEXT "",IDC_STATIC,0,0,312,31
|
||||||
|
ICON IDI_ICON,IDC_LIST_ICON,6,6,20,20,0,WS_EX_TRANSPARENT
|
||||||
|
LTEXT "Message",IDC_LIST_TEXT,35,5,269,8
|
||||||
|
PUSHBUTTON "OK",IDOK,254,39,50,14
|
||||||
|
LTEXT "List 1",IDC_LIST_ITEM1,35,17,269,10,SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 2",IDC_LIST_ITEM2,35,28,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 3",IDC_LIST_ITEM3,35,39,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 4",IDC_LIST_ITEM4,35,50,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 5",IDC_LIST_ITEM5,35,61,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 6",IDC_LIST_ITEM6,35,72,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 7",IDC_LIST_ITEM7,35,73,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 8",IDC_LIST_ITEM8,35,84,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 9",IDC_LIST_ITEM9,35,95,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 10",IDC_LIST_ITEM10,35,106,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 11",IDC_LIST_ITEM11,35,117,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 12",IDC_LIST_ITEM12,35,128,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 13",IDC_LIST_ITEM13,35,139,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 14",IDC_LIST_ITEM14,35,150,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 15",IDC_LIST_ITEM15,35,161,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
LTEXT "List 16",IDC_LIST_ITEMMAX,35,172,269,10,NOT WS_VISIBLE|SS_PATHELLIPSIS
|
||||||
|
END
|
||||||
|
|
||||||
IDD_UPDATE_POLICY DIALOGEX 0, 0, 287, 198
|
IDD_UPDATE_POLICY DIALOGEX 0, 0, 287, 198
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Update policy and settings"
|
CAPTION "Update policy and settings"
|
||||||
|
|
@ -206,12 +234,12 @@ END
|
||||||
// TEXTINCLUDE
|
// TEXTINCLUDE
|
||||||
//
|
//
|
||||||
|
|
||||||
1 TEXTINCLUDE
|
1 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"resource.h\0"
|
"resource.h\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
2 TEXTINCLUDE
|
2 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"#ifndef _USING_V110_SDK71_\r\n"
|
"#ifndef _USING_V110_SDK71_\r\n"
|
||||||
"#define _USING_V110_SDK71_\r\n"
|
"#define _USING_V110_SDK71_\r\n"
|
||||||
|
|
@ -223,7 +251,7 @@ BEGIN
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
3 TEXTINCLUDE
|
3 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"\r\n"
|
"\r\n"
|
||||||
"#ifdef RUFUS_LOC\r\n"
|
"#ifdef RUFUS_LOC\r\n"
|
||||||
|
|
@ -317,6 +345,10 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_LIST, DIALOG
|
||||||
|
BEGIN
|
||||||
|
END
|
||||||
|
|
||||||
IDD_UPDATE_POLICY, DIALOG
|
IDD_UPDATE_POLICY, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
END
|
END
|
||||||
|
|
@ -334,8 +366,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 2,15,1120,0
|
FILEVERSION 2,18,1217,0
|
||||||
PRODUCTVERSION 2,15,1120,0
|
PRODUCTVERSION 2,18,1217,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
|
@ -352,13 +384,13 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "2.15.1120"
|
VALUE "FileVersion", "2.18.1217"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011-2017 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011-2017 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
||||||
VALUE "OriginalFilename", "rufus.exe"
|
VALUE "OriginalFilename", "rufus.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "2.15.1120"
|
VALUE "ProductVersion", "2.18.1217"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
@ -377,10 +409,6 @@ END
|
||||||
// remains consistent on all systems.
|
// remains consistent on all systems.
|
||||||
IDI_ICON ICON "../res/rufus.ico"
|
IDI_ICON ICON "../res/rufus.ico"
|
||||||
|
|
||||||
IDI_UP ICON "../res/up.ico"
|
|
||||||
|
|
||||||
IDI_DOWN ICON "../res/down.ico"
|
|
||||||
|
|
||||||
#endif // Neutral resources
|
#endif // Neutral resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
@ -413,24 +441,24 @@ IDR_FD_KB1_SYS RCDATA "../res/freedos/KEYBOARD.SYS"
|
||||||
IDR_FD_KB2_SYS RCDATA "../res/freedos/KEYBRD2.SYS"
|
IDR_FD_KB2_SYS RCDATA "../res/freedos/KEYBRD2.SYS"
|
||||||
IDR_FD_KB3_SYS RCDATA "../res/freedos/KEYBRD3.SYS"
|
IDR_FD_KB3_SYS RCDATA "../res/freedos/KEYBRD3.SYS"
|
||||||
IDR_FD_KB4_SYS RCDATA "../res/freedos/KEYBRD4.SYS"
|
IDR_FD_KB4_SYS RCDATA "../res/freedos/KEYBRD4.SYS"
|
||||||
IDR_FD_EGA1_CPX RCDATA "../res/freedos/ega.cpx"
|
IDR_FD_EGA1_CPX RCDATA "../res/freedos/EGA.CPX"
|
||||||
IDR_FD_EGA2_CPX RCDATA "../res/freedos/ega2.cpx"
|
IDR_FD_EGA2_CPX RCDATA "../res/freedos/EGA2.CPX"
|
||||||
IDR_FD_EGA3_CPX RCDATA "../res/freedos/ega3.cpx"
|
IDR_FD_EGA3_CPX RCDATA "../res/freedos/EGA3.CPX"
|
||||||
IDR_FD_EGA4_CPX RCDATA "../res/freedos/ega4.cpx"
|
IDR_FD_EGA4_CPX RCDATA "../res/freedos/EGA4.CPX"
|
||||||
IDR_FD_EGA5_CPX RCDATA "../res/freedos/ega5.cpx"
|
IDR_FD_EGA5_CPX RCDATA "../res/freedos/EGA5.CPX"
|
||||||
IDR_FD_EGA6_CPX RCDATA "../res/freedos/ega6.cpx"
|
IDR_FD_EGA6_CPX RCDATA "../res/freedos/EGA6.CPX"
|
||||||
IDR_FD_EGA7_CPX RCDATA "../res/freedos/ega7.cpx"
|
IDR_FD_EGA7_CPX RCDATA "../res/freedos/EGA7.CPX"
|
||||||
IDR_FD_EGA8_CPX RCDATA "../res/freedos/ega8.cpx"
|
IDR_FD_EGA8_CPX RCDATA "../res/freedos/EGA8.CPX"
|
||||||
IDR_FD_EGA9_CPX RCDATA "../res/freedos/ega9.cpx"
|
IDR_FD_EGA9_CPX RCDATA "../res/freedos/EGA9.CPX"
|
||||||
IDR_FD_EGA10_CPX RCDATA "../res/freedos/ega10.cpx"
|
IDR_FD_EGA10_CPX RCDATA "../res/freedos/EGA10.CPX"
|
||||||
IDR_FD_EGA11_CPX RCDATA "../res/freedos/ega11.cpx"
|
IDR_FD_EGA11_CPX RCDATA "../res/freedos/EGA11.CPX"
|
||||||
IDR_FD_EGA12_CPX RCDATA "../res/freedos/ega12.cpx"
|
IDR_FD_EGA12_CPX RCDATA "../res/freedos/EGA12.CPX"
|
||||||
IDR_FD_EGA13_CPX RCDATA "../res/freedos/ega13.cpx"
|
IDR_FD_EGA13_CPX RCDATA "../res/freedos/EGA13.CPX"
|
||||||
IDR_FD_EGA14_CPX RCDATA "../res/freedos/ega14.cpx"
|
IDR_FD_EGA14_CPX RCDATA "../res/freedos/EGA14.CPX"
|
||||||
IDR_FD_EGA15_CPX RCDATA "../res/freedos/ega15.cpx"
|
IDR_FD_EGA15_CPX RCDATA "../res/freedos/EGA15.CPX"
|
||||||
IDR_FD_EGA16_CPX RCDATA "../res/freedos/ega16.cpx"
|
IDR_FD_EGA16_CPX RCDATA "../res/freedos/EGA16.CPX"
|
||||||
IDR_FD_EGA17_CPX RCDATA "../res/freedos/ega17.cpx"
|
IDR_FD_EGA17_CPX RCDATA "../res/freedos/EGA17.CPX"
|
||||||
IDR_FD_EGA18_CPX RCDATA "../res/freedos/ega18.cpx"
|
IDR_FD_EGA18_CPX RCDATA "../res/freedos/EGA18.CPX"
|
||||||
IDR_XT_HOGGER RCDATA "../res/hogger/hogger.exe"
|
IDR_XT_HOGGER RCDATA "../res/hogger/hogger.exe"
|
||||||
IDR_UEFI_NTFS RCDATA "../res/uefi/uefi-ntfs.img"
|
IDR_UEFI_NTFS RCDATA "../res/uefi/uefi-ntfs.img"
|
||||||
IDR_TOGO_SAN_POLICY_XML RCDATA "../res/togo/san_policy.xml"
|
IDR_TOGO_SAN_POLICY_XML RCDATA "../res/togo/san_policy.xml"
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ static __inline char* ReadIniKeyStr(const char* key) {
|
||||||
str[0] = 0;
|
str[0] = 0;
|
||||||
val = get_token_data_file(key, ini_file);
|
val = get_token_data_file(key, ini_file);
|
||||||
if (val != NULL) {
|
if (val != NULL) {
|
||||||
safe_strcpy(str, sizeof(str), val);
|
static_strcpy(str, val);
|
||||||
free(val);
|
free(val);
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ const char* SptStrerr(int errcode)
|
||||||
static char scsi_err[64];
|
static char scsi_err[64];
|
||||||
|
|
||||||
if ((errcode > 0) && (errcode <= 0xff)) {
|
if ((errcode > 0) && (errcode <= 0xff)) {
|
||||||
safe_sprintf(scsi_err, sizeof(scsi_err), "SCSI status: 0x%02X", (uint8_t)errcode);
|
static_sprintf(scsi_err, "SCSI status: 0x%02X", (uint8_t)errcode);
|
||||||
return (const char*)scsi_err;
|
return (const char*)scsi_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
66
src/stdfn.c
66
src/stdfn.c
|
|
@ -36,8 +36,6 @@ int nWindowsVersion = WINDOWS_UNDEFINED;
|
||||||
int nWindowsBuildNumber = -1;
|
int nWindowsBuildNumber = -1;
|
||||||
char WindowsVersionStr[128] = "Windows ";
|
char WindowsVersionStr[128] = "Windows ";
|
||||||
|
|
||||||
PF_TYPE_DECL(WINAPI, int, LCIDToLocaleName, (LCID, LPWSTR, int, DWORD));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hash table functions - modified From glibc 2.3.2:
|
* Hash table functions - modified From glibc 2.3.2:
|
||||||
* [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986
|
* [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986
|
||||||
|
|
@ -235,7 +233,7 @@ void GetWindowsVersion(void)
|
||||||
BOOL ws;
|
BOOL ws;
|
||||||
|
|
||||||
nWindowsVersion = WINDOWS_UNDEFINED;
|
nWindowsVersion = WINDOWS_UNDEFINED;
|
||||||
safe_strcpy(WindowsVersionStr, sizeof(WindowsVersionStr), "Windows Undefined");
|
static_strcpy(WindowsVersionStr, "Windows Undefined");
|
||||||
|
|
||||||
memset(&vi, 0, sizeof(vi));
|
memset(&vi, 0, sizeof(vi));
|
||||||
vi.dwOSVersionInfoSize = sizeof(vi);
|
vi.dwOSVersionInfoSize = sizeof(vi);
|
||||||
|
|
@ -284,20 +282,20 @@ void GetWindowsVersion(void)
|
||||||
switch (nWindowsVersion) {
|
switch (nWindowsVersion) {
|
||||||
case 0x51: w = "XP";
|
case 0x51: w = "XP";
|
||||||
break;
|
break;
|
||||||
case 0x52: w = (!GetSystemMetrics(89)?"2003":"2003_R2");
|
case 0x52: w = (!GetSystemMetrics(89)?"Server 2003":"Server 2003_R2");
|
||||||
break;
|
break;
|
||||||
case 0x60: w = (ws?"Vista":"2008");
|
case 0x60: w = (ws?"Vista":"Server 2008");
|
||||||
break;
|
break;
|
||||||
case 0x61: w = (ws?"7":"2008_R2");
|
case 0x61: w = (ws?"7":"Server 2008_R2");
|
||||||
break;
|
break;
|
||||||
case 0x62: w = (ws?"8":"2012");
|
case 0x62: w = (ws?"8":"Server 2012");
|
||||||
break;
|
break;
|
||||||
case 0x63: w = (ws?"8.1":"2012_R2");
|
case 0x63: w = (ws?"8.1":"Server 2012_R2");
|
||||||
break;
|
break;
|
||||||
case 0x64: w = (ws?"10 (Preview 1)":"Server 10 (Preview 1)");
|
case 0x64: w = (ws?"10 (Preview 1)":"Server 10 (Preview 1)");
|
||||||
break;
|
break;
|
||||||
// Starting with Windows 10 Preview 2, the major is the same as the public-facing version
|
// Starting with Windows 10 Preview 2, the major is the same as the public-facing version
|
||||||
case 0xA0: w = (ws?"10":"Server 10");
|
case 0xA0: w = (ws?"10":"Server 2016");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (nWindowsVersion < 0x51)
|
if (nWindowsVersion < 0x51)
|
||||||
|
|
@ -329,9 +327,9 @@ void GetWindowsVersion(void)
|
||||||
GetRegistryKeyStr(REGKEY_HKLM, "Microsoft\\Windows NT\\CurrentVersion\\CurrentBuildNumber", build_number, sizeof(build_number));
|
GetRegistryKeyStr(REGKEY_HKLM, "Microsoft\\Windows NT\\CurrentVersion\\CurrentBuildNumber", build_number, sizeof(build_number));
|
||||||
if (build_number[0] != 0) {
|
if (build_number[0] != 0) {
|
||||||
nWindowsBuildNumber = atoi(build_number); // Keep a global copy
|
nWindowsBuildNumber = atoi(build_number); // Keep a global copy
|
||||||
safe_strcat(WindowsVersionStr, sizeof(WindowsVersionStr), " (Build ");
|
static_strcat(WindowsVersionStr, " (Build ");
|
||||||
safe_strcat(WindowsVersionStr, sizeof(WindowsVersionStr), build_number);
|
static_strcat(WindowsVersionStr, build_number);
|
||||||
safe_strcat(WindowsVersionStr, sizeof(WindowsVersionStr), ")");
|
static_strcat(WindowsVersionStr, ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -634,8 +632,10 @@ BOOL IsFontAvailable(const char* font_name) {
|
||||||
LOGFONTA lf = { 0 };
|
LOGFONTA lf = { 0 };
|
||||||
HDC hDC = GetDC(hMainDialog);
|
HDC hDC = GetDC(hMainDialog);
|
||||||
|
|
||||||
if (font_name == NULL)
|
if (font_name == NULL) {
|
||||||
|
ReleaseDC(hMainDialog, hDC);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
lf.lfCharSet = DEFAULT_CHARSET;
|
lf.lfCharSet = DEFAULT_CHARSET;
|
||||||
safe_strcpy(lf.lfFaceName, LF_FACESIZE, font_name);
|
safe_strcpy(lf.lfFaceName, LF_FACESIZE, font_name);
|
||||||
|
|
@ -898,14 +898,42 @@ char* GetCurrentMUI(void)
|
||||||
static char mui_str[LOCALE_NAME_MAX_LENGTH];
|
static char mui_str[LOCALE_NAME_MAX_LENGTH];
|
||||||
wchar_t wmui_str[LOCALE_NAME_MAX_LENGTH];
|
wchar_t wmui_str[LOCALE_NAME_MAX_LENGTH];
|
||||||
|
|
||||||
// Of course LCIDToLocaleName() is not available on XP... grrrr!
|
if (LCIDToLocaleName(GetUserDefaultUILanguage(), wmui_str, LOCALE_NAME_MAX_LENGTH, 0) > 0) {
|
||||||
PF_INIT(LCIDToLocaleName, kernel32);
|
|
||||||
|
|
||||||
if ( (pfLCIDToLocaleName != NULL) &&
|
|
||||||
(pfLCIDToLocaleName(GetUserDefaultUILanguage(), wmui_str, LOCALE_NAME_MAX_LENGTH, 0) > 0) ) {
|
|
||||||
wchar_to_utf8_no_alloc(wmui_str, mui_str, LOCALE_NAME_MAX_LENGTH);
|
wchar_to_utf8_no_alloc(wmui_str, mui_str, LOCALE_NAME_MAX_LENGTH);
|
||||||
} else {
|
} else {
|
||||||
safe_strcpy(mui_str, LOCALE_NAME_MAX_LENGTH, "en-US");
|
static_strcpy(mui_str, "en-US");
|
||||||
}
|
}
|
||||||
return mui_str;
|
return mui_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* GetMuiString(char* szModuleName, UINT uID)
|
||||||
|
{
|
||||||
|
HMODULE hModule;
|
||||||
|
char path[MAX_PATH], *str;
|
||||||
|
wchar_t* wstr;
|
||||||
|
void* ptr;
|
||||||
|
int len;
|
||||||
|
static_sprintf(path, "%s\\%s\\%s.mui", system_dir, GetCurrentMUI(), szModuleName);
|
||||||
|
// If the file doesn't exist, fall back to en-US
|
||||||
|
if (!PathFileExistsU(path))
|
||||||
|
static_sprintf(path, "%s\\en-US\\%s.mui", system_dir, szModuleName);
|
||||||
|
hModule = LoadLibraryExA(path, NULL, LOAD_LIBRARY_AS_IMAGE_RESOURCE | LOAD_LIBRARY_AS_DATAFILE);
|
||||||
|
if (hModule == NULL) {
|
||||||
|
uprintf("Could not load '%s': %s", path, WindowsErrorString());
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
// Calling LoadStringW with last parameter 0 returns the length of the string (without NUL terminator)
|
||||||
|
len = LoadStringW(hModule, uID, (LPWSTR)(&ptr), 0);
|
||||||
|
if (len <= 0) {
|
||||||
|
if (GetLastError() == ERROR_SUCCESS)
|
||||||
|
SetLastError(ERROR_RESOURCE_NAME_NOT_FOUND);
|
||||||
|
uprintf("Could not find string ID %d in '%s': %s", uID, path, WindowsErrorString());
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
len += 1;
|
||||||
|
wstr = calloc(len, sizeof(wchar_t));
|
||||||
|
len = LoadStringW(hModule, uID, wstr, len);
|
||||||
|
str = wchar_to_utf8(wstr);
|
||||||
|
free(wstr);
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
|
||||||
71
src/stdio.c
71
src/stdio.c
|
|
@ -46,6 +46,7 @@ void _uprintf(const char *format, ...)
|
||||||
{
|
{
|
||||||
static char buf[4096];
|
static char buf[4096];
|
||||||
char* p = buf;
|
char* p = buf;
|
||||||
|
wchar_t* wbuf;
|
||||||
va_list args;
|
va_list args;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
|
@ -62,16 +63,19 @@ void _uprintf(const char *format, ...)
|
||||||
*p++ = '\n';
|
*p++ = '\n';
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
|
// Yay, Windows 10 *FINALLY* added actual Unicode support for OutputDebugStringW()!
|
||||||
|
wbuf = utf8_to_wchar(buf);
|
||||||
// Send output to Windows debug facility
|
// Send output to Windows debug facility
|
||||||
OutputDebugStringA(buf);
|
OutputDebugStringW(wbuf);
|
||||||
if ((hLog != NULL) && (hLog != INVALID_HANDLE_VALUE)) {
|
if ((hLog != NULL) && (hLog != INVALID_HANDLE_VALUE)) {
|
||||||
// Send output to our log Window
|
// Send output to our log Window
|
||||||
Edit_SetSel(hLog, MAX_LOG_SIZE, MAX_LOG_SIZE);
|
Edit_SetSel(hLog, MAX_LOG_SIZE, MAX_LOG_SIZE);
|
||||||
Edit_ReplaceSelU(hLog, buf);
|
Edit_ReplaceSel(hLog, wbuf);
|
||||||
// Make sure the message scrolls into view
|
// Make sure the message scrolls into view
|
||||||
// (Or see code commented in LogProc:WM_SHOWWINDOW for a less forceful scroll)
|
// (Or see code commented in LogProc:WM_SHOWWINDOW for a less forceful scroll)
|
||||||
SendMessage(hLog, EM_LINESCROLL, 0, SendMessage(hLog, EM_GETLINECOUNT, 0, 0));
|
Edit_Scroll(hLog, Edit_GetLineCount(hLog), 0);
|
||||||
}
|
}
|
||||||
|
free(wbuf);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -147,7 +151,7 @@ static char err_string[256] = {0};
|
||||||
|
|
||||||
error_code = GetLastError();
|
error_code = GetLastError();
|
||||||
|
|
||||||
safe_sprintf(err_string, sizeof(err_string), "[0x%08lX] ", error_code);
|
static_sprintf(err_string, "[0x%08lX] ", error_code);
|
||||||
|
|
||||||
size = FormatMessageU(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, HRESULT_CODE(error_code),
|
size = FormatMessageU(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, HRESULT_CODE(error_code),
|
||||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), &err_string[strlen(err_string)],
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), &err_string[strlen(err_string)],
|
||||||
|
|
@ -155,10 +159,10 @@ static char err_string[256] = {0};
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
format_error = GetLastError();
|
format_error = GetLastError();
|
||||||
if ((format_error) && (format_error != 0x13D)) // 0x13D, decode error, is returned for unknown codes
|
if ((format_error) && (format_error != 0x13D)) // 0x13D, decode error, is returned for unknown codes
|
||||||
safe_sprintf(err_string, sizeof(err_string),
|
static_sprintf(err_string, "Windows error code 0x%08lX (FormatMessage error code 0x%08lX)",
|
||||||
"Windows error code 0x%08lX (FormatMessage error code 0x%08lX)", error_code, format_error);
|
error_code, format_error);
|
||||||
else
|
else
|
||||||
safe_sprintf(err_string, sizeof(err_string), "Unknown error 0x%08lX", error_code);
|
static_sprintf(err_string, "Unknown error 0x%08lX", error_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetLastError(error_code); // Make sure we don't change the errorcode on exit
|
SetLastError(error_code); // Make sure we don't change the errorcode on exit
|
||||||
|
|
@ -224,6 +228,23 @@ char* SizeToHumanReadable(uint64_t size, BOOL copy_to_log, BOOL fake_units)
|
||||||
return str_size;
|
return str_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert a YYYYMMDDHHMMSS UTC timestamp to a more human readable version
|
||||||
|
char* TimestampToHumanReadable(uint64_t ts)
|
||||||
|
{
|
||||||
|
uint64_t rem = ts, divisor = 10000000000ULL;
|
||||||
|
uint16_t data[6];
|
||||||
|
int i;
|
||||||
|
static char str[64];
|
||||||
|
|
||||||
|
for (i = 0; i < 6; i++) {
|
||||||
|
data[i] = (uint16_t) ((divisor == 0)?rem:(rem / divisor));
|
||||||
|
rem %= divisor;
|
||||||
|
divisor /= 100ULL;
|
||||||
|
}
|
||||||
|
static_sprintf(str, "%04d.%02d.%02d %02d:%02d:%02d (UTC)", data[0], data[1], data[2], data[3], data[4], data[5]);
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
// Convert custom error code to messages
|
// Convert custom error code to messages
|
||||||
const char* _StrError(DWORD error_code)
|
const char* _StrError(DWORD error_code)
|
||||||
{
|
{
|
||||||
|
|
@ -355,3 +376,39 @@ BOOL WriteFileWithRetry(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWr
|
||||||
SetLastError(ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_WRITE_FAULT);
|
SetLastError(ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_WRITE_FAULT);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A WaitForSingleObject() equivalent that doesn't block Windows messages
|
||||||
|
// This is needed, for instance, if you are waiting for a thread that may issue uprintf's
|
||||||
|
DWORD WaitForSingleObjectWithMessages(HANDLE hHandle, DWORD dwMilliseconds)
|
||||||
|
{
|
||||||
|
uint64_t CurTime, EndTime = GetTickCount64() + dwMilliseconds;
|
||||||
|
DWORD res;
|
||||||
|
MSG msg;
|
||||||
|
|
||||||
|
do {
|
||||||
|
// Read all of the messages in this next loop, removing each message as we read it.
|
||||||
|
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
|
||||||
|
if ((msg.message == WM_QUIT) || (msg.message == WM_CLOSE)) {
|
||||||
|
SetLastError(ERROR_CANCELLED);
|
||||||
|
return WAIT_FAILED;
|
||||||
|
} else {
|
||||||
|
DispatchMessage(&msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wait for any message sent or posted to this queue or for the handle to signaled.
|
||||||
|
res = MsgWaitForMultipleObjects(1, &hHandle, FALSE, dwMilliseconds, QS_ALLINPUT);
|
||||||
|
|
||||||
|
if (dwMilliseconds != INFINITE) {
|
||||||
|
CurTime = GetTickCount64();
|
||||||
|
// Account for the case where we may reach the timeout condition while
|
||||||
|
// processing timestamps
|
||||||
|
if (CurTime < EndTime)
|
||||||
|
dwMilliseconds = (DWORD) (EndTime - CurTime);
|
||||||
|
else
|
||||||
|
res = WAIT_TIMEOUT;
|
||||||
|
}
|
||||||
|
} while (res == (WAIT_OBJECT_0 + 1));
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
|
||||||
625
src/stdlg.c
625
src/stdlg.c
|
|
@ -42,18 +42,12 @@
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "license.h"
|
#include "license.h"
|
||||||
|
|
||||||
PF_TYPE_DECL(WINAPI, HRESULT, SHCreateItemFromParsingName, (PCWSTR, IBindCtx*, REFIID, void **));
|
|
||||||
PF_TYPE_DECL(WINAPI, LPITEMIDLIST, SHSimpleIDListFromPath, (PCWSTR pszPath));
|
|
||||||
#define INIT_VISTA_SHELL32 PF_INIT(SHCreateItemFromParsingName, Shell32)
|
|
||||||
#define INIT_XP_SHELL32 PF_INIT(SHSimpleIDListFromPath, Shell32)
|
|
||||||
#define IS_VISTA_SHELL32_AVAILABLE (pfSHCreateItemFromParsingName != NULL)
|
|
||||||
|
|
||||||
/* Globals */
|
/* Globals */
|
||||||
static HICON hMessageIcon = (HICON)INVALID_HANDLE_VALUE;
|
static HICON hMessageIcon = (HICON)INVALID_HANDLE_VALUE;
|
||||||
static char* szMessageText = NULL;
|
static char* szMessageText = NULL;
|
||||||
static char* szMessageTitle = NULL;
|
static char* szMessageTitle = NULL;
|
||||||
static char **szSelectionChoice;
|
static char **szDialogItem;
|
||||||
static int nSelectionChoices;
|
static int nDialogItems;
|
||||||
static HWND hBrowseEdit;
|
static HWND hBrowseEdit;
|
||||||
extern HWND hUpdatesDlg;
|
extern HWND hUpdatesDlg;
|
||||||
static WNDPROC pOrgBrowseWndproc;
|
static WNDPROC pOrgBrowseWndproc;
|
||||||
|
|
@ -107,21 +101,15 @@ INT CALLBACK BrowseInfoCallback(HWND hDlg, UINT message, LPARAM lParam, LPARAM p
|
||||||
hBrowseEdit = FindWindowExA(hDlg, NULL, "Edit", NULL);
|
hBrowseEdit = FindWindowExA(hDlg, NULL, "Edit", NULL);
|
||||||
SetWindowTextU(hBrowseEdit, szFolderPath);
|
SetWindowTextU(hBrowseEdit, szFolderPath);
|
||||||
SetDialogFocus(hDlg, hBrowseEdit);
|
SetDialogFocus(hDlg, hBrowseEdit);
|
||||||
// On XP, BFFM_SETSELECTION can't be used with a Unicode Path in SendMessageW
|
// On Windows 7, MinGW only properly selects the specified folder when using a pidl
|
||||||
// or a pidl (at least with MinGW) => must use SendMessageA
|
wpath = utf8_to_wchar(szFolderPath);
|
||||||
if (nWindowsVersion <= WINDOWS_XP) {
|
pidl = SHSimpleIDListFromPath(wpath);
|
||||||
SendMessageLU(hDlg, BFFM_SETSELECTION, (WPARAM)TRUE, szFolderPath);
|
safe_free(wpath);
|
||||||
} else {
|
// NB: see http://connect.microsoft.com/VisualStudio/feedback/details/518103/bffm-setselection-does-not-work-with-shbrowseforfolder-on-windows-7
|
||||||
// On Windows 7, MinGW only properly selects the specified folder when using a pidl
|
// for details as to why we send BFFM_SETSELECTION twice.
|
||||||
wpath = utf8_to_wchar(szFolderPath);
|
SendMessageW(hDlg, BFFM_SETSELECTION, (WPARAM)FALSE, (LPARAM)pidl);
|
||||||
pidl = (*pfSHSimpleIDListFromPath)(wpath);
|
Sleep(100);
|
||||||
safe_free(wpath);
|
PostMessageW(hDlg, BFFM_SETSELECTION, (WPARAM)FALSE, (LPARAM)pidl);
|
||||||
// NB: see http://connect.microsoft.com/VisualStudio/feedback/details/518103/bffm-setselection-does-not-work-with-shbrowseforfolder-on-windows-7
|
|
||||||
// for details as to why we send BFFM_SETSELECTION twice.
|
|
||||||
SendMessageW(hDlg, BFFM_SETSELECTION, (WPARAM)FALSE, (LPARAM)pidl);
|
|
||||||
Sleep(100);
|
|
||||||
PostMessageW(hDlg, BFFM_SETSELECTION, (WPARAM)FALSE, (LPARAM)pidl);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case BFFM_SELCHANGED:
|
case BFFM_SELCHANGED:
|
||||||
// Update the status
|
// Update the status
|
||||||
|
|
@ -136,7 +124,6 @@ INT CALLBACK BrowseInfoCallback(HWND hDlg, UINT message, LPARAM lParam, LPARAM p
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Browse for a folder and update the folder edit box
|
* Browse for a folder and update the folder edit box
|
||||||
* Will use the newer IFileOpenDialog if *compiled* for Vista or later
|
|
||||||
*/
|
*/
|
||||||
void BrowseForFolder(void) {
|
void BrowseForFolder(void) {
|
||||||
|
|
||||||
|
|
@ -152,78 +139,72 @@ void BrowseForFolder(void) {
|
||||||
char* tmp_path = NULL;
|
char* tmp_path = NULL;
|
||||||
|
|
||||||
dialog_showing++;
|
dialog_showing++;
|
||||||
if (nWindowsVersion >= WINDOWS_VISTA) {
|
hr = CoCreateInstance(&CLSID_FileOpenDialog, NULL, CLSCTX_INPROC,
|
||||||
INIT_VISTA_SHELL32;
|
&IID_IFileOpenDialog, (LPVOID)&pfod);
|
||||||
if (IS_VISTA_SHELL32_AVAILABLE) {
|
if (FAILED(hr)) {
|
||||||
hr = CoCreateInstance(&CLSID_FileOpenDialog, NULL, CLSCTX_INPROC,
|
uprintf("CoCreateInstance for FileOpenDialog failed: error %X\n", hr);
|
||||||
&IID_IFileOpenDialog, (LPVOID)&pfod);
|
pfod = NULL; // Just in case
|
||||||
if (FAILED(hr)) {
|
goto fallback;
|
||||||
uprintf("CoCreateInstance for FileOpenDialog failed: error %X\n", hr);
|
}
|
||||||
pfod = NULL; // Just in case
|
hr = pfod->lpVtbl->SetOptions(pfod, FOS_PICKFOLDERS);
|
||||||
goto fallback;
|
if (FAILED(hr)) {
|
||||||
|
uprintf("Failed to set folder option for FileOpenDialog: error %X\n", hr);
|
||||||
|
goto fallback;
|
||||||
|
}
|
||||||
|
// Set the initial folder (if the path is invalid, will simply use last)
|
||||||
|
wpath = utf8_to_wchar(szFolderPath);
|
||||||
|
// The new IFileOpenDialog makes us split the path
|
||||||
|
fname = NULL;
|
||||||
|
if ((wpath != NULL) && (wcslen(wpath) >= 1)) {
|
||||||
|
for (i = wcslen(wpath) - 1; i != 0; i--) {
|
||||||
|
if (wpath[i] == L'\\') {
|
||||||
|
wpath[i] = 0;
|
||||||
|
fname = &wpath[i + 1];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
hr = pfod->lpVtbl->SetOptions(pfod, FOS_PICKFOLDERS);
|
|
||||||
if (FAILED(hr)) {
|
|
||||||
uprintf("Failed to set folder option for FileOpenDialog: error %X\n", hr);
|
|
||||||
goto fallback;
|
|
||||||
}
|
|
||||||
// Set the initial folder (if the path is invalid, will simply use last)
|
|
||||||
wpath = utf8_to_wchar(szFolderPath);
|
|
||||||
// The new IFileOpenDialog makes us split the path
|
|
||||||
fname = NULL;
|
|
||||||
if ((wpath != NULL) && (wcslen(wpath) >= 1)) {
|
|
||||||
for (i = wcslen(wpath) - 1; i != 0; i--) {
|
|
||||||
if (wpath[i] == L'\\') {
|
|
||||||
wpath[i] = 0;
|
|
||||||
fname = &wpath[i + 1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hr = (*pfSHCreateItemFromParsingName)(wpath, NULL, &IID_IShellItem, (LPVOID)&si_path);
|
|
||||||
if (SUCCEEDED(hr)) {
|
|
||||||
if (wpath != NULL) {
|
|
||||||
pfod->lpVtbl->SetFolder(pfod, si_path);
|
|
||||||
}
|
|
||||||
if (fname != NULL) {
|
|
||||||
pfod->lpVtbl->SetFileName(pfod, fname);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
safe_free(wpath);
|
|
||||||
|
|
||||||
hr = pfod->lpVtbl->Show(pfod, hMainDialog);
|
|
||||||
if (SUCCEEDED(hr)) {
|
|
||||||
hr = pfod->lpVtbl->GetResult(pfod, &psi);
|
|
||||||
if (SUCCEEDED(hr)) {
|
|
||||||
psi->lpVtbl->GetDisplayName(psi, SIGDN_FILESYSPATH, &wpath);
|
|
||||||
tmp_path = wchar_to_utf8(wpath);
|
|
||||||
CoTaskMemFree(wpath);
|
|
||||||
if (tmp_path == NULL) {
|
|
||||||
uprintf("Could not convert path\n");
|
|
||||||
} else {
|
|
||||||
safe_strcpy(szFolderPath, MAX_PATH, tmp_path);
|
|
||||||
safe_free(tmp_path);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
uprintf("Failed to set folder option for FileOpenDialog: error %X\n", hr);
|
|
||||||
}
|
|
||||||
} else if ((hr & 0xFFFF) != ERROR_CANCELLED) {
|
|
||||||
// If it's not a user cancel, assume the dialog didn't show and fallback
|
|
||||||
uprintf("Could not show FileOpenDialog: error %X\n", hr);
|
|
||||||
goto fallback;
|
|
||||||
}
|
|
||||||
pfod->lpVtbl->Release(pfod);
|
|
||||||
dialog_showing--;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
fallback:
|
|
||||||
if (pfod != NULL) {
|
|
||||||
pfod->lpVtbl->Release(pfod);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
INIT_XP_SHELL32;
|
hr = SHCreateItemFromParsingName(wpath, NULL, &IID_IShellItem, (LPVOID)&si_path);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
if (wpath != NULL) {
|
||||||
|
pfod->lpVtbl->SetFolder(pfod, si_path);
|
||||||
|
}
|
||||||
|
if (fname != NULL) {
|
||||||
|
pfod->lpVtbl->SetFileName(pfod, fname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
safe_free(wpath);
|
||||||
|
|
||||||
|
hr = pfod->lpVtbl->Show(pfod, hMainDialog);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
hr = pfod->lpVtbl->GetResult(pfod, &psi);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
psi->lpVtbl->GetDisplayName(psi, SIGDN_FILESYSPATH, &wpath);
|
||||||
|
tmp_path = wchar_to_utf8(wpath);
|
||||||
|
CoTaskMemFree(wpath);
|
||||||
|
if (tmp_path == NULL) {
|
||||||
|
uprintf("Could not convert path\n");
|
||||||
|
} else {
|
||||||
|
static_strcpy(szFolderPath, tmp_path);
|
||||||
|
safe_free(tmp_path);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
uprintf("Failed to set folder option for FileOpenDialog: error %X\n", hr);
|
||||||
|
}
|
||||||
|
} else if ((hr & 0xFFFF) != ERROR_CANCELLED) {
|
||||||
|
// If it's not a user cancel, assume the dialog didn't show and fallback
|
||||||
|
uprintf("Could not show FileOpenDialog: error %X\n", hr);
|
||||||
|
goto fallback;
|
||||||
|
}
|
||||||
|
pfod->lpVtbl->Release(pfod);
|
||||||
|
dialog_showing--;
|
||||||
|
return;
|
||||||
|
fallback:
|
||||||
|
if (pfod != NULL) {
|
||||||
|
pfod->lpVtbl->Release(pfod);
|
||||||
|
}
|
||||||
|
|
||||||
memset(&bi, 0, sizeof(BROWSEINFOW));
|
memset(&bi, 0, sizeof(BROWSEINFOW));
|
||||||
bi.hwndOwner = hMainDialog;
|
bi.hwndOwner = hMainDialog;
|
||||||
bi.lpszTitle = utf8_to_wchar(lmprintf(MSG_106));
|
bi.lpszTitle = utf8_to_wchar(lmprintf(MSG_106));
|
||||||
|
|
@ -241,11 +222,10 @@ fallback:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the UTF8 path of a file selected through a load or save dialog
|
* Return the UTF8 path of a file selected through a load or save dialog
|
||||||
* Will use the newer IFileOpenDialog if *compiled* for Vista or later
|
|
||||||
* All string parameters are UTF-8
|
* All string parameters are UTF-8
|
||||||
* IMPORTANT NOTE: On Vista and later, remember that you need to call
|
* IMPORTANT NOTE: Remember that you need to call CoInitializeEx() for
|
||||||
* CoInitializeEx() for *EACH* thread you invoke FileDialog from, as
|
* *EACH* thread you invoke FileDialog from, as GetDisplayName() will
|
||||||
* GetDisplayName() will return error 0x8001010E otherwise.
|
* return error 0x8001010E otherwise.
|
||||||
*/
|
*/
|
||||||
char* FileDialog(BOOL save, char* path, const ext_t* ext, DWORD options)
|
char* FileDialog(BOOL save, char* path, const ext_t* ext, DWORD options)
|
||||||
{
|
{
|
||||||
|
|
@ -267,86 +247,84 @@ char* FileDialog(BOOL save, char* path, const ext_t* ext, DWORD options)
|
||||||
return NULL;
|
return NULL;
|
||||||
dialog_showing++;
|
dialog_showing++;
|
||||||
|
|
||||||
if (nWindowsVersion >= WINDOWS_VISTA) {
|
filter_spec = (COMDLG_FILTERSPEC*)calloc(ext->count + 1, sizeof(COMDLG_FILTERSPEC));
|
||||||
INIT_VISTA_SHELL32;
|
if (filter_spec != NULL) {
|
||||||
filter_spec = (COMDLG_FILTERSPEC*)calloc(ext->count + 1, sizeof(COMDLG_FILTERSPEC));
|
// Setup the file extension filter table
|
||||||
if ((IS_VISTA_SHELL32_AVAILABLE) && (filter_spec != NULL)) {
|
for (i = 0; i < ext->count; i++) {
|
||||||
// Setup the file extension filter table
|
filter_spec[i].pszSpec = utf8_to_wchar(ext->extension[i]);
|
||||||
for (i = 0; i < ext->count; i++) {
|
filter_spec[i].pszName = utf8_to_wchar(ext->description[i]);
|
||||||
filter_spec[i].pszSpec = utf8_to_wchar(ext->extension[i]);
|
}
|
||||||
filter_spec[i].pszName = utf8_to_wchar(ext->description[i]);
|
filter_spec[i].pszSpec = L"*.*";
|
||||||
}
|
filter_spec[i].pszName = utf8_to_wchar(lmprintf(MSG_107));
|
||||||
filter_spec[i].pszSpec = L"*.*";
|
|
||||||
filter_spec[i].pszName = utf8_to_wchar(lmprintf(MSG_107));
|
|
||||||
|
|
||||||
hr = CoCreateInstance(save ? &CLSID_FileSaveDialog : &CLSID_FileOpenDialog, NULL, CLSCTX_INPROC,
|
hr = CoCreateInstance(save ? &CLSID_FileSaveDialog : &CLSID_FileOpenDialog, NULL, CLSCTX_INPROC,
|
||||||
&IID_IFileDialog, (LPVOID)&pfd);
|
&IID_IFileDialog, (LPVOID)&pfd);
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
SetLastError(hr);
|
SetLastError(hr);
|
||||||
uprintf("CoCreateInstance for FileOpenDialog failed: %s\n", WindowsErrorString());
|
uprintf("CoCreateInstance for FileOpenDialog failed: %s\n", WindowsErrorString());
|
||||||
pfd = NULL; // Just in case
|
pfd = NULL; // Just in case
|
||||||
goto fallback;
|
goto fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the file extension filters
|
// Set the file extension filters
|
||||||
pfd->lpVtbl->SetFileTypes(pfd, (UINT)ext->count + 1, filter_spec);
|
pfd->lpVtbl->SetFileTypes(pfd, (UINT)ext->count + 1, filter_spec);
|
||||||
|
|
||||||
// Set the default directory
|
// Set the default directory
|
||||||
wpath = utf8_to_wchar(path);
|
wpath = utf8_to_wchar(path);
|
||||||
hr = (*pfSHCreateItemFromParsingName)(wpath, NULL, &IID_IShellItem, (LPVOID)&si_path);
|
hr = SHCreateItemFromParsingName(wpath, NULL, &IID_IShellItem, (LPVOID)&si_path);
|
||||||
if (SUCCEEDED(hr)) {
|
if (SUCCEEDED(hr)) {
|
||||||
pfd->lpVtbl->SetFolder(pfd, si_path);
|
pfd->lpVtbl->SetFolder(pfd, si_path);
|
||||||
}
|
}
|
||||||
safe_free(wpath);
|
safe_free(wpath);
|
||||||
|
|
||||||
// Set the default filename
|
// Set the default filename
|
||||||
wfilename = utf8_to_wchar((ext->filename == NULL) ? "" : ext->filename);
|
wfilename = utf8_to_wchar((ext->filename == NULL) ? "" : ext->filename);
|
||||||
if (wfilename != NULL) {
|
if (wfilename != NULL) {
|
||||||
pfd->lpVtbl->SetFileName(pfd, wfilename);
|
pfd->lpVtbl->SetFileName(pfd, wfilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Display the dialog
|
// Display the dialog
|
||||||
hr = pfd->lpVtbl->Show(pfd, hMainDialog);
|
hr = pfd->lpVtbl->Show(pfd, hMainDialog);
|
||||||
|
|
||||||
// Cleanup
|
// Cleanup
|
||||||
safe_free(wfilename);
|
safe_free(wfilename);
|
||||||
for (i = 0; i < ext->count; i++) {
|
for (i = 0; i < ext->count; i++) {
|
||||||
safe_free(filter_spec[i].pszSpec);
|
safe_free(filter_spec[i].pszSpec);
|
||||||
safe_free(filter_spec[i].pszName);
|
|
||||||
}
|
|
||||||
safe_free(filter_spec[i].pszName);
|
safe_free(filter_spec[i].pszName);
|
||||||
safe_free(filter_spec);
|
|
||||||
|
|
||||||
if (SUCCEEDED(hr)) {
|
|
||||||
// Obtain the result of the user's interaction with the dialog.
|
|
||||||
hr = pfd->lpVtbl->GetResult(pfd, &psiResult);
|
|
||||||
if (SUCCEEDED(hr)) {
|
|
||||||
hr = psiResult->lpVtbl->GetDisplayName(psiResult, SIGDN_FILESYSPATH, &wpath);
|
|
||||||
if (SUCCEEDED(hr)) {
|
|
||||||
filepath = wchar_to_utf8(wpath);
|
|
||||||
CoTaskMemFree(wpath);
|
|
||||||
} else {
|
|
||||||
SetLastError(hr);
|
|
||||||
uprintf("Unable to access file path: %s\n", WindowsErrorString());
|
|
||||||
}
|
|
||||||
psiResult->lpVtbl->Release(psiResult);
|
|
||||||
}
|
|
||||||
} else if ((hr & 0xFFFF) != ERROR_CANCELLED) {
|
|
||||||
// If it's not a user cancel, assume the dialog didn't show and fallback
|
|
||||||
SetLastError(hr);
|
|
||||||
uprintf("Could not show FileOpenDialog: %s\n", WindowsErrorString());
|
|
||||||
goto fallback;
|
|
||||||
}
|
|
||||||
pfd->lpVtbl->Release(pfd);
|
|
||||||
dialog_showing--;
|
|
||||||
return filepath;
|
|
||||||
}
|
}
|
||||||
fallback:
|
safe_free(filter_spec[i].pszName);
|
||||||
safe_free(filter_spec);
|
safe_free(filter_spec);
|
||||||
if (pfd != NULL) {
|
|
||||||
pfd->lpVtbl->Release(pfd);
|
if (SUCCEEDED(hr)) {
|
||||||
|
// Obtain the result of the user's interaction with the dialog.
|
||||||
|
hr = pfd->lpVtbl->GetResult(pfd, &psiResult);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
hr = psiResult->lpVtbl->GetDisplayName(psiResult, SIGDN_FILESYSPATH, &wpath);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
filepath = wchar_to_utf8(wpath);
|
||||||
|
CoTaskMemFree(wpath);
|
||||||
|
} else {
|
||||||
|
SetLastError(hr);
|
||||||
|
uprintf("Unable to access file path: %s\n", WindowsErrorString());
|
||||||
|
}
|
||||||
|
psiResult->lpVtbl->Release(psiResult);
|
||||||
|
}
|
||||||
|
} else if ((hr & 0xFFFF) != ERROR_CANCELLED) {
|
||||||
|
// If it's not a user cancel, assume the dialog didn't show and fallback
|
||||||
|
SetLastError(hr);
|
||||||
|
uprintf("Could not show FileOpenDialog: %s\n", WindowsErrorString());
|
||||||
|
goto fallback;
|
||||||
}
|
}
|
||||||
|
pfd->lpVtbl->Release(pfd);
|
||||||
|
dialog_showing--;
|
||||||
|
return filepath;
|
||||||
|
}
|
||||||
|
|
||||||
|
fallback:
|
||||||
|
safe_free(filter_spec);
|
||||||
|
if (pfd != NULL) {
|
||||||
|
pfd->lpVtbl->Release(pfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&ofn, 0, sizeof(ofn));
|
memset(&ofn, 0, sizeof(ofn));
|
||||||
|
|
@ -433,7 +411,7 @@ void CreateStatusBar(void)
|
||||||
// Set the font we'll use to display the '#' sign in the toolbar button
|
// Set the font we'll use to display the '#' sign in the toolbar button
|
||||||
hFont = CreateFontA(-MulDiv(10, GetDeviceCaps(GetDC(hMainDialog), LOGPIXELSY), 72),
|
hFont = CreateFontA(-MulDiv(10, GetDeviceCaps(GetDC(hMainDialog), LOGPIXELSY), 72),
|
||||||
0, 0, 0, FW_MEDIUM, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
|
0, 0, 0, FW_MEDIUM, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
|
||||||
0, 0, PROOF_QUALITY, 0, (nWindowsVersion >= WINDOWS_VISTA)?"Segoe UI":"Arial Unicode MS");
|
0, 0, PROOF_QUALITY, 0, "Segoe UI");
|
||||||
|
|
||||||
// Find the width of our hash sign
|
// Find the width of our hash sign
|
||||||
hDC = GetDC(hMainDialog);
|
hDC = GetDC(hMainDialog);
|
||||||
|
|
@ -458,10 +436,6 @@ void CreateStatusBar(void)
|
||||||
|
|
||||||
// Compute the dimensions for the hash button
|
// Compute the dimensions for the hash button
|
||||||
x = edge[0];
|
x = edge[0];
|
||||||
if (nWindowsVersion <= WINDOWS_XP) {
|
|
||||||
x -= 1;
|
|
||||||
height -= 2;
|
|
||||||
}
|
|
||||||
y = rect.bottom - height + 1;
|
y = rect.bottom - height + 1;
|
||||||
width = edge[1] - edge[0] - 1;
|
width = edge[1] - edge[0] - 1;
|
||||||
// How I wish there was a way to figure out how to make Windows controls look good
|
// How I wish there was a way to figure out how to make Windows controls look good
|
||||||
|
|
@ -630,7 +604,7 @@ INT_PTR CALLBACK AboutCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lP
|
||||||
CenterDialog(hDlg);
|
CenterDialog(hDlg);
|
||||||
if (settings_commcheck)
|
if (settings_commcheck)
|
||||||
ShowWindow(GetDlgItem(hDlg, IDC_ABOUT_UPDATES), SW_SHOW);
|
ShowWindow(GetDlgItem(hDlg, IDC_ABOUT_UPDATES), SW_SHOW);
|
||||||
safe_sprintf(about_blurb, sizeof(about_blurb), about_blurb_format, lmprintf(MSG_174|MSG_RTF),
|
static_sprintf(about_blurb, about_blurb_format, lmprintf(MSG_174|MSG_RTF),
|
||||||
lmprintf(MSG_175|MSG_RTF, rufus_version[0], rufus_version[1], rufus_version[2]),
|
lmprintf(MSG_175|MSG_RTF, rufus_version[0], rufus_version[1], rufus_version[2]),
|
||||||
right_to_left_mode?"Akeo \\\\ Pete Batard 2011-2017 © Copyright":"Copyright © 2011-2017 Pete Batard / Akeo",
|
right_to_left_mode?"Akeo \\\\ Pete Batard 2011-2017 © Copyright":"Copyright © 2011-2017 Pete Batard / Akeo",
|
||||||
lmprintf(MSG_176|MSG_RTF), lmprintf(MSG_177|MSG_RTF), lmprintf(MSG_178|MSG_RTF));
|
lmprintf(MSG_176|MSG_RTF), lmprintf(MSG_177|MSG_RTF), lmprintf(MSG_178|MSG_RTF));
|
||||||
|
|
@ -726,11 +700,7 @@ INT_PTR CALLBACK NotificationCallback(HWND hDlg, UINT message, WPARAM wParam, LP
|
||||||
// If we're compiling with the Vista SDK or later, the NONCLIENTMETRICS struct
|
// If we're compiling with the Vista SDK or later, the NONCLIENTMETRICS struct
|
||||||
// will be the wrong size for previous versions, so we need to adjust it.
|
// will be the wrong size for previous versions, so we need to adjust it.
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
|
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
|
||||||
if (nWindowsVersion >= WINDOWS_VISTA) {
|
ncm.cbSize -= sizeof(ncm.iPaddedBorderWidth);
|
||||||
// In versions of Windows prior to Vista, the iPaddedBorderWidth member
|
|
||||||
// is not present, so we need to subtract its size from cbSize.
|
|
||||||
ncm.cbSize -= sizeof(ncm.iPaddedBorderWidth);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0);
|
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0);
|
||||||
hDlgFont = CreateFontIndirect(&(ncm.lfMessageFont));
|
hDlgFont = CreateFontIndirect(&(ncm.lfMessageFont));
|
||||||
|
|
@ -823,6 +793,9 @@ BOOL Notification(int type, const notification_info* more_info, char* title, cha
|
||||||
notification_is_question = FALSE;
|
notification_is_question = FALSE;
|
||||||
|
|
||||||
switch(type) {
|
switch(type) {
|
||||||
|
case MSG_WARNING_QUESTION:
|
||||||
|
notification_is_question = TRUE;
|
||||||
|
// Fall through
|
||||||
case MSG_WARNING:
|
case MSG_WARNING:
|
||||||
hMessageIcon = LoadIcon(NULL, IDI_WARNING);
|
hMessageIcon = LoadIcon(NULL, IDI_WARNING);
|
||||||
break;
|
break;
|
||||||
|
|
@ -846,8 +819,8 @@ BOOL Notification(int type, const notification_info* more_info, char* title, cha
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Custom dialog for radio button selection dialog
|
* Custom dialog for radio button selection dialog
|
||||||
*/
|
*/
|
||||||
INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
LRESULT loc;
|
LRESULT loc;
|
||||||
|
|
@ -866,10 +839,10 @@ INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARA
|
||||||
switch (message) {
|
switch (message) {
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
// Don't overflow our max radio button
|
// Don't overflow our max radio button
|
||||||
if (nSelectionChoices > (IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1 + 1)) {
|
if (nDialogItems > (IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1 + 1)) {
|
||||||
uprintf("Warning: Too many options requested for Selection (%d vs %d)",
|
uprintf("Warning: Too many options requested for Selection (%d vs %d)",
|
||||||
nSelectionChoices, IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1);
|
nDialogItems, IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1);
|
||||||
nSelectionChoices = IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1;
|
nDialogItems = IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1;
|
||||||
}
|
}
|
||||||
// TODO: This shouldn't be needed when using DS_SHELLFONT
|
// TODO: This shouldn't be needed when using DS_SHELLFONT
|
||||||
// Get the system message box font. See http://stackoverflow.com/a/6057761
|
// Get the system message box font. See http://stackoverflow.com/a/6057761
|
||||||
|
|
@ -877,18 +850,16 @@ INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARA
|
||||||
// If we're compiling with the Vista SDK or later, the NONCLIENTMETRICS struct
|
// If we're compiling with the Vista SDK or later, the NONCLIENTMETRICS struct
|
||||||
// will be the wrong size for previous versions, so we need to adjust it.
|
// will be the wrong size for previous versions, so we need to adjust it.
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
|
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
|
||||||
if (nWindowsVersion >= WINDOWS_VISTA) {
|
// In versions of Windows prior to Vista, the iPaddedBorderWidth member
|
||||||
// In versions of Windows prior to Vista, the iPaddedBorderWidth member
|
// is not present, so we need to subtract its size from cbSize.
|
||||||
// is not present, so we need to subtract its size from cbSize.
|
ncm.cbSize -= sizeof(ncm.iPaddedBorderWidth);
|
||||||
ncm.cbSize -= sizeof(ncm.iPaddedBorderWidth);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0);
|
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0);
|
||||||
hDlgFont = CreateFontIndirect(&(ncm.lfMessageFont));
|
hDlgFont = CreateFontIndirect(&(ncm.lfMessageFont));
|
||||||
// Set the dialog to use the system message box font
|
// Set the dialog to use the system message box font
|
||||||
SendMessage(hDlg, WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
SendMessage(hDlg, WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
SendMessage(GetDlgItem(hDlg, IDC_SELECTION_TEXT), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
SendMessage(GetDlgItem(hDlg, IDC_SELECTION_TEXT), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
for (i = 0; i < nSelectionChoices; i++)
|
for (i = 0; i < nDialogItems; i++)
|
||||||
SendMessage(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
SendMessage(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
SendMessage(GetDlgItem(hDlg, IDYES), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
SendMessage(GetDlgItem(hDlg, IDYES), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
SendMessage(GetDlgItem(hDlg, IDNO), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
SendMessage(GetDlgItem(hDlg, IDNO), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
|
|
@ -903,8 +874,8 @@ INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARA
|
||||||
SetWindowTextU(hDlg, szMessageTitle);
|
SetWindowTextU(hDlg, szMessageTitle);
|
||||||
SetWindowTextU(GetDlgItem(hDlg, IDCANCEL), lmprintf(MSG_007));
|
SetWindowTextU(GetDlgItem(hDlg, IDCANCEL), lmprintf(MSG_007));
|
||||||
SetWindowTextU(GetDlgItem(hDlg, IDC_SELECTION_TEXT), szMessageText);
|
SetWindowTextU(GetDlgItem(hDlg, IDC_SELECTION_TEXT), szMessageText);
|
||||||
for (i = 0; i < nSelectionChoices; i++) {
|
for (i = 0; i < nDialogItems; i++) {
|
||||||
SetWindowTextU(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), szSelectionChoice[i]);
|
SetWindowTextU(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), szDialogItem[i]);
|
||||||
ShowWindow(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), SW_SHOW);
|
ShowWindow(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), SW_SHOW);
|
||||||
}
|
}
|
||||||
// Move/Resize the controls as needed to fit our text
|
// Move/Resize the controls as needed to fit our text
|
||||||
|
|
@ -918,12 +889,12 @@ INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARA
|
||||||
if (hDC != NULL)
|
if (hDC != NULL)
|
||||||
ReleaseDC(hCtrl, hDC);
|
ReleaseDC(hCtrl, hDC);
|
||||||
ResizeMoveCtrl(hDlg, hCtrl, 0, 0, 0, dh, 1.0f);
|
ResizeMoveCtrl(hDlg, hCtrl, 0, 0, 0, dh, 1.0f);
|
||||||
for (i = 0; i < nSelectionChoices; i++)
|
for (i = 0; i < nDialogItems; i++)
|
||||||
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), 0, dh, 0, 0, 1.0f);
|
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), 0, dh, 0, 0, 1.0f);
|
||||||
if (nSelectionChoices > 2) {
|
if (nDialogItems > 2) {
|
||||||
GetWindowRect(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1), &rect);
|
GetWindowRect(GetDlgItem(hDlg, IDC_SELECTION_CHOICE2), &rect);
|
||||||
GetWindowRect(GetDlgItem(hDlg, IDC_SELECTION_CHOICE2), &rect2);
|
GetWindowRect(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + nDialogItems - 1), &rect2);
|
||||||
dh += (nSelectionChoices - 2) * (rect2.top - rect.top) + 5;
|
dh += rect2.top - rect.top;
|
||||||
}
|
}
|
||||||
ResizeMoveCtrl(hDlg, hDlg, 0, 0, 0, dh, 1.0f);
|
ResizeMoveCtrl(hDlg, hDlg, 0, 0, 0, dh, 1.0f);
|
||||||
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, -1), 0, 0, 0, dh, 1.0f); // IDC_STATIC = -1
|
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, -1), 0, 0, 0, dh, 1.0f); // IDC_STATIC = -1
|
||||||
|
|
@ -954,9 +925,9 @@ INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARA
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
switch (LOWORD(wParam)) {
|
switch (LOWORD(wParam)) {
|
||||||
case IDOK:
|
case IDOK:
|
||||||
for (i = 0; (i < nSelectionChoices) &&
|
for (i = 0; (i < nDialogItems) &&
|
||||||
(Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i)) != BST_CHECKED); i++);
|
(Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i)) != BST_CHECKED); i++);
|
||||||
if (i < nSelectionChoices)
|
if (i < nDialogItems)
|
||||||
r = i + 1;
|
r = i + 1;
|
||||||
// Fall through
|
// Fall through
|
||||||
case IDNO:
|
case IDNO:
|
||||||
|
|
@ -970,23 +941,150 @@ INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARA
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Display a selection question
|
* Display an item selection dialog
|
||||||
*/
|
*/
|
||||||
int Selection(char* title, char* message, char** choices, int size)
|
int SelectionDialog(char* title, char* message, char** choices, int size)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
dialog_showing++;
|
dialog_showing++;
|
||||||
szMessageTitle = title;
|
szMessageTitle = title;
|
||||||
szMessageText = message;
|
szMessageText = message;
|
||||||
szSelectionChoice = choices;
|
szDialogItem = choices;
|
||||||
nSelectionChoices = size;
|
nDialogItems = size;
|
||||||
ret = (int)MyDialogBox(hMainInstance, IDD_SELECTION, hMainDialog, SelectionCallback);
|
ret = (int)MyDialogBox(hMainInstance, IDD_SELECTION, hMainDialog, SelectionCallback);
|
||||||
dialog_showing--;
|
dialog_showing--;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Custom dialog for list dialog
|
||||||
|
*/
|
||||||
|
INT_PTR CALLBACK ListCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
LRESULT loc;
|
||||||
|
int i, dh, r = -1;
|
||||||
|
// Prevent resizing
|
||||||
|
static LRESULT disabled[9] = { HTLEFT, HTRIGHT, HTTOP, HTBOTTOM, HTSIZE,
|
||||||
|
HTTOPLEFT, HTTOPRIGHT, HTBOTTOMLEFT, HTBOTTOMRIGHT };
|
||||||
|
static HBRUSH background_brush, separator_brush;
|
||||||
|
// To use the system message font
|
||||||
|
NONCLIENTMETRICS ncm;
|
||||||
|
RECT rect, rect2;
|
||||||
|
HFONT hDlgFont;
|
||||||
|
HWND hCtrl;
|
||||||
|
HDC hDC;
|
||||||
|
|
||||||
|
switch (message) {
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
// Don't overflow our max radio button
|
||||||
|
if (nDialogItems > (IDC_LIST_ITEMMAX - IDC_LIST_ITEM1 + 1)) {
|
||||||
|
uprintf("Warning: Too many items requested for List (%d vs %d)",
|
||||||
|
nDialogItems, IDC_LIST_ITEMMAX - IDC_LIST_ITEM1);
|
||||||
|
nDialogItems = IDC_LIST_ITEMMAX - IDC_LIST_ITEM1;
|
||||||
|
}
|
||||||
|
// TODO: This shouldn't be needed when using DS_SHELLFONT
|
||||||
|
// Get the system message box font. See http://stackoverflow.com/a/6057761
|
||||||
|
ncm.cbSize = sizeof(ncm);
|
||||||
|
// If we're compiling with the Vista SDK or later, the NONCLIENTMETRICS struct
|
||||||
|
// will be the wrong size for previous versions, so we need to adjust it.
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
|
||||||
|
// In versions of Windows prior to Vista, the iPaddedBorderWidth member
|
||||||
|
// is not present, so we need to subtract its size from cbSize.
|
||||||
|
ncm.cbSize -= sizeof(ncm.iPaddedBorderWidth);
|
||||||
|
#endif
|
||||||
|
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0);
|
||||||
|
hDlgFont = CreateFontIndirect(&(ncm.lfMessageFont));
|
||||||
|
// Set the dialog to use the system message box font
|
||||||
|
SendMessage(hDlg, WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
|
SendMessage(GetDlgItem(hDlg, IDC_LIST_TEXT), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
|
for (i = 0; i < nDialogItems; i++)
|
||||||
|
SendMessage(GetDlgItem(hDlg, IDC_LIST_ITEM1 + i), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
|
SendMessage(GetDlgItem(hDlg, IDYES), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
|
SendMessage(GetDlgItem(hDlg, IDNO), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
|
||||||
|
|
||||||
|
apply_localization(IDD_LIST, hDlg);
|
||||||
|
background_brush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
|
||||||
|
separator_brush = CreateSolidBrush(GetSysColor(COLOR_3DLIGHT));
|
||||||
|
SetTitleBarIcon(hDlg);
|
||||||
|
CenterDialog(hDlg);
|
||||||
|
// Change the default icon and set the text
|
||||||
|
Static_SetIcon(GetDlgItem(hDlg, IDC_LIST_ICON), LoadIcon(NULL, IDI_EXCLAMATION));
|
||||||
|
SetWindowTextU(hDlg, szMessageTitle);
|
||||||
|
SetWindowTextU(GetDlgItem(hDlg, IDCANCEL), lmprintf(MSG_007));
|
||||||
|
SetWindowTextU(GetDlgItem(hDlg, IDC_LIST_TEXT), szMessageText);
|
||||||
|
for (i = 0; i < nDialogItems; i++) {
|
||||||
|
SetWindowTextU(GetDlgItem(hDlg, IDC_LIST_ITEM1 + i), szDialogItem[i]);
|
||||||
|
ShowWindow(GetDlgItem(hDlg, IDC_LIST_ITEM1 + i), SW_SHOW);
|
||||||
|
}
|
||||||
|
// Move/Resize the controls as needed to fit our text
|
||||||
|
hCtrl = GetDlgItem(hDlg, IDC_LIST_TEXT);
|
||||||
|
hDC = GetDC(hCtrl);
|
||||||
|
SelectFont(hDC, hDlgFont); // Yes, you *MUST* reapply the font to the DC, even after SetWindowText!
|
||||||
|
GetWindowRect(hCtrl, &rect);
|
||||||
|
dh = rect.bottom - rect.top;
|
||||||
|
DrawTextU(hDC, szMessageText, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
|
||||||
|
dh = rect.bottom - rect.top - dh;
|
||||||
|
if (hDC != NULL)
|
||||||
|
ReleaseDC(hCtrl, hDC);
|
||||||
|
ResizeMoveCtrl(hDlg, hCtrl, 0, 0, 0, dh, 1.0f);
|
||||||
|
for (i = 0; i < nDialogItems; i++)
|
||||||
|
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_LIST_ITEM1 + i), 0, dh, 0, 0, 1.0f);
|
||||||
|
if (nDialogItems > 1) {
|
||||||
|
GetWindowRect(GetDlgItem(hDlg, IDC_LIST_ITEM1), &rect);
|
||||||
|
GetWindowRect(GetDlgItem(hDlg, IDC_LIST_ITEM1 + nDialogItems - 1), &rect2);
|
||||||
|
dh += rect2.top - rect.top;
|
||||||
|
}
|
||||||
|
ResizeMoveCtrl(hDlg, hDlg, 0, 0, 0, dh, 1.0f);
|
||||||
|
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, -1), 0, 0, 0, dh, 1.0f); // IDC_STATIC = -1
|
||||||
|
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_LIST_LINE), 0, dh, 0, 0, 1.0f);
|
||||||
|
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDOK), 0, dh, 0, 0, 1.0f);
|
||||||
|
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDCANCEL), 0, dh, 0, 0, 1.0f);
|
||||||
|
return (INT_PTR)TRUE;
|
||||||
|
case WM_CTLCOLORSTATIC:
|
||||||
|
// Change the background colour for static text and icon
|
||||||
|
SetBkMode((HDC)wParam, TRANSPARENT);
|
||||||
|
if ((HWND)lParam == GetDlgItem(hDlg, IDC_NOTIFICATION_LINE)) {
|
||||||
|
return (INT_PTR)separator_brush;
|
||||||
|
}
|
||||||
|
return (INT_PTR)background_brush;
|
||||||
|
case WM_NCHITTEST:
|
||||||
|
// Check coordinates to prevent resize actions
|
||||||
|
loc = DefWindowProc(hDlg, message, wParam, lParam);
|
||||||
|
for (i = 0; i < 9; i++) {
|
||||||
|
if (loc == disabled[i]) {
|
||||||
|
return (INT_PTR)TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (INT_PTR)FALSE;
|
||||||
|
case WM_COMMAND:
|
||||||
|
switch (LOWORD(wParam)) {
|
||||||
|
case IDOK:
|
||||||
|
case IDNO:
|
||||||
|
case IDCANCEL:
|
||||||
|
EndDialog(hDlg, r);
|
||||||
|
return (INT_PTR)TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return (INT_PTR)FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Display a dialog with a list of items
|
||||||
|
*/
|
||||||
|
void ListDialog(char* title, char* message, char** items, int size)
|
||||||
|
{
|
||||||
|
dialog_showing++;
|
||||||
|
szMessageTitle = title;
|
||||||
|
szMessageText = message;
|
||||||
|
szDialogItem = items;
|
||||||
|
nDialogItems = size;
|
||||||
|
MyDialogBox(hMainInstance, IDD_LIST, hMainDialog, ListCallback);
|
||||||
|
dialog_showing--;
|
||||||
|
}
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
HWND hTip; // Tooltip handle
|
HWND hTip; // Tooltip handle
|
||||||
HWND hCtrl; // Handle of the control the tooltip belongs to
|
HWND hCtrl; // Handle of the control the tooltip belongs to
|
||||||
|
|
@ -1160,97 +1258,15 @@ LONG GetEntryWidth(HWND hDropDown, const char *entry)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Windows 7 taskbar icon handling (progress bar overlay, etc)
|
* Windows 7 taskbar icon handling (progress bar overlay, etc)
|
||||||
* Some platforms don't have these, so we redefine
|
|
||||||
*/
|
*/
|
||||||
typedef enum MY_STPFLAG
|
static ITaskbarList3* ptbl = NULL;
|
||||||
{
|
|
||||||
MY_STPF_NONE = 0,
|
|
||||||
MY_STPF_USEAPPTHUMBNAILALWAYS = 0x1,
|
|
||||||
MY_STPF_USEAPPTHUMBNAILWHENACTIVE = 0x2,
|
|
||||||
MY_STPF_USEAPPPEEKALWAYS = 0x4,
|
|
||||||
MY_STPF_USEAPPPEEKWHENACTIVE = 0x8
|
|
||||||
} MY_STPFLAG;
|
|
||||||
|
|
||||||
typedef enum MY_THUMBBUTTONMASK
|
|
||||||
{
|
|
||||||
MY_THB_BITMAP = 0x1,
|
|
||||||
MY_THB_ICON = 0x2,
|
|
||||||
MY_THB_TOOLTIP = 0x4,
|
|
||||||
MY_THB_FLAGS = 0x8
|
|
||||||
} MY_THUMBBUTTONMASK;
|
|
||||||
|
|
||||||
typedef enum MY_THUMBBUTTONFLAGS
|
|
||||||
{
|
|
||||||
MY_THBF_ENABLED = 0,
|
|
||||||
MY_THBF_DISABLED = 0x1,
|
|
||||||
MY_THBF_DISMISSONCLICK = 0x2,
|
|
||||||
MY_THBF_NOBACKGROUND = 0x4,
|
|
||||||
MY_THBF_HIDDEN = 0x8,
|
|
||||||
MY_THBF_NONINTERACTIVE = 0x10
|
|
||||||
} MY_THUMBBUTTONFLAGS;
|
|
||||||
|
|
||||||
typedef struct MY_THUMBBUTTON
|
|
||||||
{
|
|
||||||
MY_THUMBBUTTONMASK dwMask;
|
|
||||||
UINT iId;
|
|
||||||
UINT iBitmap;
|
|
||||||
HICON hIcon;
|
|
||||||
WCHAR szTip[260];
|
|
||||||
MY_THUMBBUTTONFLAGS dwFlags;
|
|
||||||
} MY_THUMBBUTTON;
|
|
||||||
|
|
||||||
/*
|
|
||||||
typedef enum MY_TBPFLAG
|
|
||||||
{
|
|
||||||
TASKBAR_NOPROGRESS = 0,
|
|
||||||
TASKBAR_INDETERMINATE = 0x1,
|
|
||||||
TASKBAR_NORMAL = 0x2,
|
|
||||||
TASKBAR_ERROR = 0x4,
|
|
||||||
TASKBAR_PAUSED = 0x8
|
|
||||||
} MY_TBPFLAG;
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma push_macro("INTERFACE")
|
|
||||||
#undef INTERFACE
|
|
||||||
#define INTERFACE my_ITaskbarList3
|
|
||||||
DECLARE_INTERFACE_(my_ITaskbarList3, IUnknown) {
|
|
||||||
STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
|
||||||
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
|
|
||||||
STDMETHOD_(ULONG, Release) (THIS) PURE;
|
|
||||||
STDMETHOD (HrInit) (THIS) PURE;
|
|
||||||
STDMETHOD (AddTab) (THIS_ HWND hwnd) PURE;
|
|
||||||
STDMETHOD (DeleteTab) (THIS_ HWND hwnd) PURE;
|
|
||||||
STDMETHOD (ActivateTab) (THIS_ HWND hwnd) PURE;
|
|
||||||
STDMETHOD (SetActiveAlt) (THIS_ HWND hwnd) PURE;
|
|
||||||
STDMETHOD (MarkFullscreenWindow) (THIS_ HWND hwnd, int fFullscreen) PURE;
|
|
||||||
STDMETHOD (SetProgressValue) (THIS_ HWND hwnd, ULONGLONG ullCompleted, ULONGLONG ullTotal) PURE;
|
|
||||||
STDMETHOD (SetProgressState) (THIS_ HWND hwnd, TASKBAR_PROGRESS_FLAGS tbpFlags) PURE;
|
|
||||||
STDMETHOD (RegisterTab) (THIS_ HWND hwndTab,HWND hwndMDI) PURE;
|
|
||||||
STDMETHOD (UnregisterTab) (THIS_ HWND hwndTab) PURE;
|
|
||||||
STDMETHOD (SetTabOrder) (THIS_ HWND hwndTab, HWND hwndInsertBefore) PURE;
|
|
||||||
STDMETHOD (SetTabActive) (THIS_ HWND hwndTab, HWND hwndMDI, DWORD dwReserved) PURE;
|
|
||||||
STDMETHOD (ThumbBarAddButtons) (THIS_ HWND hwnd, UINT cButtons, MY_THUMBBUTTON* pButton) PURE;
|
|
||||||
STDMETHOD (ThumbBarUpdateButtons) (THIS_ HWND hwnd, UINT cButtons, MY_THUMBBUTTON* pButton) PURE;
|
|
||||||
STDMETHOD (ThumbBarSetImageList) (THIS_ HWND hwnd, HIMAGELIST himl) PURE;
|
|
||||||
STDMETHOD (SetOverlayIcon) (THIS_ HWND hwnd, HICON hIcon, LPCWSTR pszDescription) PURE;
|
|
||||||
STDMETHOD (SetThumbnailTooltip) (THIS_ HWND hwnd, LPCWSTR pszTip) PURE;
|
|
||||||
STDMETHOD (SetThumbnailClip) (THIS_ HWND hwnd, RECT *prcClip) PURE;
|
|
||||||
};
|
|
||||||
const IID my_IID_ITaskbarList3 =
|
|
||||||
{ 0xea1afb91, 0x9e28, 0x4b86, { 0x90, 0xe9, 0x9e, 0x9f, 0x8a, 0x5e, 0xef, 0xaf } };
|
|
||||||
const IID my_CLSID_TaskbarList =
|
|
||||||
{ 0x56fdf344, 0xfd6d, 0x11d0, { 0x95, 0x8a ,0x0, 0x60, 0x97, 0xc9, 0xa0 ,0x90 } };
|
|
||||||
|
|
||||||
static my_ITaskbarList3* ptbl = NULL;
|
|
||||||
|
|
||||||
// Create a taskbar icon progressbar
|
// Create a taskbar icon progressbar
|
||||||
BOOL CreateTaskbarList(void)
|
BOOL CreateTaskbarList(void)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
if (nWindowsVersion < WINDOWS_7)
|
|
||||||
// Only valid for Windows 7 or later
|
hr = CoCreateInstance(&CLSID_TaskbarList, NULL, CLSCTX_ALL, &IID_ITaskbarList3, (LPVOID)&ptbl);
|
||||||
return FALSE;
|
|
||||||
hr = CoCreateInstance(&my_CLSID_TaskbarList, NULL, CLSCTX_ALL, &my_IID_ITaskbarList3, (LPVOID)&ptbl);
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
uprintf("CoCreateInstance for TaskbarList failed: error %X\n", hr);
|
uprintf("CoCreateInstance for TaskbarList failed: error %X\n", hr);
|
||||||
ptbl = NULL;
|
ptbl = NULL;
|
||||||
|
|
@ -1272,8 +1288,6 @@ BOOL SetTaskbarProgressValue(ULONGLONG ullCompleted, ULONGLONG ullTotal)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return !FAILED(ptbl->lpVtbl->SetProgressValue(ptbl, hMainDialog, ullCompleted, ullTotal));
|
return !FAILED(ptbl->lpVtbl->SetProgressValue(ptbl, hMainDialog, ullCompleted, ullTotal));
|
||||||
}
|
}
|
||||||
#pragma pop_macro("INTERFACE")
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update policy and settings dialog callback
|
* Update policy and settings dialog callback
|
||||||
|
|
@ -1329,7 +1343,7 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l
|
||||||
IGNORE_RETVAL(ComboBox_SetCurSel(hBeta, ReadSettingBool(SETTING_INCLUDE_BETAS)?0:1));
|
IGNORE_RETVAL(ComboBox_SetCurSel(hBeta, ReadSettingBool(SETTING_INCLUDE_BETAS)?0:1));
|
||||||
hPolicy = GetDlgItem(hDlg, IDC_POLICY);
|
hPolicy = GetDlgItem(hDlg, IDC_POLICY);
|
||||||
SendMessage(hPolicy, EM_AUTOURLDETECT, 1, 0);
|
SendMessage(hPolicy, EM_AUTOURLDETECT, 1, 0);
|
||||||
safe_sprintf(update_policy_text, sizeof(update_policy_text), update_policy, lmprintf(MSG_179|MSG_RTF),
|
static_sprintf(update_policy_text, update_policy, lmprintf(MSG_179|MSG_RTF),
|
||||||
lmprintf(MSG_180|MSG_RTF), lmprintf(MSG_181|MSG_RTF), lmprintf(MSG_182|MSG_RTF), lmprintf(MSG_183|MSG_RTF),
|
lmprintf(MSG_180|MSG_RTF), lmprintf(MSG_181|MSG_RTF), lmprintf(MSG_182|MSG_RTF), lmprintf(MSG_183|MSG_RTF),
|
||||||
lmprintf(MSG_184|MSG_RTF), lmprintf(MSG_185|MSG_RTF), lmprintf(MSG_186|MSG_RTF));
|
lmprintf(MSG_184|MSG_RTF), lmprintf(MSG_185|MSG_RTF), lmprintf(MSG_186|MSG_RTF));
|
||||||
SendMessageA(hPolicy, EM_SETTEXTEX, (WPARAM)&friggin_microsoft_unicode_amateurs, (LPARAM)update_policy_text);
|
SendMessageA(hPolicy, EM_SETTEXTEX, (WPARAM)&friggin_microsoft_unicode_amateurs, (LPARAM)update_policy_text);
|
||||||
|
|
@ -1393,7 +1407,7 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l
|
||||||
BOOL SetUpdateCheck(void)
|
BOOL SetUpdateCheck(void)
|
||||||
{
|
{
|
||||||
BOOL enable_updates;
|
BOOL enable_updates;
|
||||||
uint64_t commcheck = _GetTickCount64();
|
uint64_t commcheck = GetTickCount64();
|
||||||
notification_info more_info = { IDD_UPDATE_POLICY, UpdateCallback };
|
notification_info more_info = { IDD_UPDATE_POLICY, UpdateCallback };
|
||||||
char filename[MAX_PATH] = "", exename[] = APPLICATION_NAME ".exe";
|
char filename[MAX_PATH] = "", exename[] = APPLICATION_NAME ".exe";
|
||||||
size_t fn_len, exe_len;
|
size_t fn_len, exe_len;
|
||||||
|
|
@ -1544,8 +1558,12 @@ INT_PTR CALLBACK NewVersionCallback(HWND hDlg, UINT message, WPARAM wParam, LPAR
|
||||||
case 2: // Launch newer version and close this one
|
case 2: // Launch newer version and close this one
|
||||||
Sleep(1000); // Add a delay on account of antivirus scanners
|
Sleep(1000); // Add a delay on account of antivirus scanners
|
||||||
|
|
||||||
if (ValidateSignature(hDlg, filepath) != NO_ERROR)
|
if (ValidateSignature(hDlg, filepath) != NO_ERROR) {
|
||||||
|
// Unconditionally delete the download and disable the "Launch" control
|
||||||
|
_unlinkU(filepath);
|
||||||
|
EnableWindow(GetDlgItem(hDlg, IDC_DOWNLOAD), FALSE);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
memset(&si, 0, sizeof(si));
|
memset(&si, 0, sizeof(si));
|
||||||
memset(&pi, 0, sizeof(pi));
|
memset(&pi, 0, sizeof(pi));
|
||||||
|
|
@ -1703,7 +1721,7 @@ LPCDLGTEMPLATE GetDialogTemplate(int Dialog_ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// All our dialogs are set to use 'Segoe UI Symbol' by default:
|
// All our dialogs are set to use 'Segoe UI Symbol' by default:
|
||||||
// 1. So that we can replace the font name with 'MS Shell Dlg' (XP) or 'Segoe UI'
|
// 1. So that we can replace the font name with 'Segoe UI'
|
||||||
// 2. So that Thai displays properly on RTF controls as it won't work with regular
|
// 2. So that Thai displays properly on RTF controls as it won't work with regular
|
||||||
// 'Segoe UI'... but Cyrillic won't work with 'Segoe UI Symbol'
|
// 'Segoe UI'... but Cyrillic won't work with 'Segoe UI Symbol'
|
||||||
|
|
||||||
|
|
@ -1731,12 +1749,8 @@ LPCDLGTEMPLATE GetDialogTemplate(int Dialog_ID)
|
||||||
// We can't simply zero the characters we don't want, as the size of the font
|
// We can't simply zero the characters we don't want, as the size of the font
|
||||||
// string determines the next item lookup. So we must memmove the remaining of
|
// string determines the next item lookup. So we must memmove the remaining of
|
||||||
// our buffer. Oh, and those items are DWORD aligned.
|
// our buffer. Oh, and those items are DWORD aligned.
|
||||||
if ((nWindowsVersion > WINDOWS_XP) && IsFontAvailable("Segoe UI")) {
|
// 'Segoe UI Symbol' -> 'Segoe UI'
|
||||||
// 'Segoe UI Symbol' -> 'Segoe UI'
|
wBuf[8] = 0;
|
||||||
wBuf[8] = 0;
|
|
||||||
} else {
|
|
||||||
wcscpy(wBuf, L"MS Shell Dlg");
|
|
||||||
}
|
|
||||||
len = wcslen(wBuf);
|
len = wcslen(wBuf);
|
||||||
wBuf[len + 1] = 0;
|
wBuf[len + 1] = 0;
|
||||||
dst = (uintptr_t)&wBuf[len + 2];
|
dst = (uintptr_t)&wBuf[len + 2];
|
||||||
|
|
@ -1856,6 +1870,21 @@ void ClrFormatPromptHook(void) {
|
||||||
fp_weh = NULL;
|
fp_weh = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FlashTaskbar(HANDLE handle)
|
||||||
|
{
|
||||||
|
FLASHWINFO pf;
|
||||||
|
|
||||||
|
if (handle == NULL)
|
||||||
|
return;
|
||||||
|
pf.cbSize = sizeof(FLASHWINFO);
|
||||||
|
pf.hwnd = handle;
|
||||||
|
// Could also use FLASHW_ALL to flash the main dialog)
|
||||||
|
pf.dwFlags = FLASHW_TIMER | FLASHW_TRAY;
|
||||||
|
pf.uCount = 5;
|
||||||
|
pf.dwTimeout = 75;
|
||||||
|
FlashWindowEx(&pf);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef RUFUS_TEST
|
#ifdef RUFUS_TEST
|
||||||
static __inline LPWORD lpwAlign(LPWORD addr)
|
static __inline LPWORD lpwAlign(LPWORD addr)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue