1
1
Fork 0
mirror of https://github.com/pbatard/rufus.git synced 2026-07-09 06:55:39 +00:00

Compare commits

..

No commits in common. "master" and "v4.14" have entirely different histories.

67 changed files with 3178 additions and 3653 deletions

View file

@ -41,7 +41,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v7
uses: actions/checkout@v6
- name: Initialize CodeQL
uses: github/codeql-action/init@v4

View file

@ -28,7 +28,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v7
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

View file

@ -54,7 +54,7 @@ jobs:
upx
- name: Checkout repository
uses: actions/checkout@v7
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive

View file

@ -10,7 +10,7 @@ env:
BUILD_CONFIGURATION: Release
jobs:
VS2026-Build:
VS2022-Build:
runs-on: windows-latest
strategy:
@ -19,7 +19,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v7
uses: actions/checkout@v6
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v3
@ -43,7 +43,7 @@ jobs:
Extra-Step-To-Merge-Artifacts-Thanks-To-Upload-Artifact-v4-Breaking-Backwards-Compatibility:
runs-on: windows-latest
needs: VS2026-Build
needs: VS2022-Build
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v7

View file

@ -1,4 +1,4 @@
name: VS2026
name: VS2022
on:
push:
@ -31,7 +31,7 @@ env:
BUILD_CONFIGURATION: Release
jobs:
VS2026-Build:
VS2022-Build:
runs-on: windows-latest
strategy:
@ -40,7 +40,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v7
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive
@ -136,11 +136,11 @@ jobs:
Extra-Step-To-Merge-Artifacts-Thanks-To-Upload-Artifact-v4-Breaking-Backwards-Compatibility:
runs-on: windows-latest
needs: VS2026-Build
needs: VS2022-Build
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v7
if: ${{ github.event_name == 'push' }}
with:
name: VS2026
name: VS2022
delete-merged: true

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -13,6 +17,10 @@
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -28,7 +36,6 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\bled\bled.c" />
<ClCompile Include="..\src\bled\bled_size.c" />
<ClCompile Include="..\src\bled\crc32.c" />
<ClCompile Include="..\src\bled\data_align.c" />
<ClCompile Include="..\src\bled\data_extract_all.c" />
@ -103,41 +110,58 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -150,6 +174,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -162,7 +188,7 @@
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_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>
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
@ -176,12 +202,30 @@
<AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<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>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</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>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_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>
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
@ -200,7 +244,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_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>
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
@ -217,7 +261,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_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>
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
@ -234,11 +278,31 @@
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</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>BLED_EXPECT_DISK_IMAGE;_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>
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
@ -257,7 +321,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>BLED_EXPECT_DISK_IMAGE;_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>
<AdditionalIncludeDirectories>..\src</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>

View file

@ -117,9 +117,6 @@
<ClCompile Include="..\src\bled\zstd_ddict.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\bled\bled_size.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\bled\bb_archive.h">

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -13,6 +17,10 @@
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -114,41 +122,58 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -161,6 +186,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -187,6 +214,24 @@
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4018;4146;4244;4267;4996</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<LinkDLL>true</LinkDLL>
<GenerateDebugInformation>true</GenerateDebugInformation>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -246,6 +291,26 @@
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4018;4146;4244;4267;4996</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
<LinkDLL>true</LinkDLL>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
<Lib>
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -13,6 +17,10 @@
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -36,25 +44,39 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
@ -62,17 +84,21 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -85,6 +111,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -107,6 +135,19 @@
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -153,6 +194,20 @@
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>HAVE_STRING_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -68,43 +76,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -117,6 +143,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -143,6 +171,24 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>
@ -176,6 +222,22 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -61,43 +69,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -110,6 +136,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -136,6 +164,24 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>
@ -169,6 +215,22 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -54,43 +62,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -103,6 +129,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -129,6 +157,24 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>
@ -162,6 +208,22 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -98,43 +106,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -147,6 +173,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -174,6 +202,25 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/analyze:stacksize32850 /utf-8 %(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>
@ -209,6 +256,23 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/analyze:stacksize32850 /utf-8 %(AdditionalOptions)</AdditionalOptions>
<DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -13,6 +17,10 @@
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -31,30 +39,46 @@
<ProjectGuid>{731858A7-0303-4988-877B-9C0DD6471864}</ProjectGuid>
<RootNamespace>rufus</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</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>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v145</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
@ -62,17 +86,21 @@
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v145</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -85,11 +113,9 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">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)'=='Release|x64'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@ -123,6 +149,38 @@
<Message>Generating 'embedded.loc' file</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<BuildLog />
<ClCompile>
<PreprocessorDefinitions>_RUFUS;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;COBJMACROS;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;..\src\wimlib;..\res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ExceptionHandling>Async</ExceptionHandling>
<DisableSpecificWarnings>4091;5255;28251;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 /std:clatest $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;ntdll.lib;shlwapi.lib;uxtheme.lib;version.lib;virtdisk.lib;wininet.lib;wintrust.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.15063.0\um\arm</AdditionalLibraryDirectories>
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;uxtheme.dll;version.dll;virtdisk.dll;wininet.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalOptions>/BREPRO /DEPENDENTLOADFLAG:0x800 %(AdditionalOptions)</AdditionalOptions>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>
</Culture>
</ResourceCompile>
<PreBuildEvent>
<Command>type $(SolutionDir)res\loc\rufus.loc | findstr /v MSG_9 &gt; $(SolutionDir)res\loc\embedded.loc</Command>
<Message>Generating 'embedded.loc' file</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<BuildLog />
<ClCompile>
@ -222,6 +280,40 @@
<Message>Generating 'embedded.loc' file</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<BuildLog />
<ClCompile>
<PreprocessorDefinitions>_RUFUS;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;COBJMACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\src;..\src\msvc-missing;..\src\ms-sys\inc;..\src\syslinux\libinstaller;..\src\syslinux\libfat;..\src\syslinux\win;..\src\libcdio;..\src\getopt;..\src\wimlib;..\res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ExceptionHandling>Async</ExceptionHandling>
<DisableSpecificWarnings>4091;5255;28251;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<UndefinePreprocessorDefinitions>NDEBUG</UndefinePreprocessorDefinitions>
<AdditionalOptions>/utf-8 /std:clatest $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Link>
<AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;ntdll.lib;shlwapi.lib;uxtheme.lib;version.lib;virtdisk.lib;wininet.lib;wintrust.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.15063.0\um\arm</AdditionalLibraryDirectories>
<AdditionalOptions>/BREPRO /DEPENDENTLOADFLAG:0x800 %(AdditionalOptions)</AdditionalOptions>
<DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;uxtheme.dll;version.dll;virtdisk.dll;wininet.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>
</Culture>
</ResourceCompile>
<PreBuildEvent>
<Command>type $(SolutionDir)res\loc\rufus.loc | findstr /v MSG_9 &gt; $(SolutionDir)res\loc\embedded.loc</Command>
<Message>Generating 'embedded.loc' file</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<BuildLog />
<ClCompile>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -51,43 +59,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -100,6 +126,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -127,6 +155,25 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>
@ -162,6 +209,23 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4018;4244</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -50,43 +58,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -99,6 +125,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -126,6 +154,25 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>
@ -161,6 +208,23 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -44,43 +52,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -93,6 +119,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -120,6 +148,25 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>
@ -155,6 +202,23 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<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>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4244;4267;4996</DisableSpecificWarnings>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<StringPooling>true</StringPooling>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,6 +1,10 @@
<?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|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
@ -9,6 +13,10 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
@ -176,43 +184,61 @@
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup>
<_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>
@ -225,6 +251,8 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|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>
@ -252,6 +280,25 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src;..\src\wimlib;..\src\msvc-missing;..\src\libcdio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/std:clatest</AdditionalOptions>
<DisableSpecificWarnings>4018;4146;4267;4244;4334;4789;4996;6201;6239;6246;6255;6262;6297;6326;28252;28253</DisableSpecificWarnings>
<PreprocessorDefinitions>_RUFUS;HAVE_CONFIG_H;UNICODE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>
@ -287,6 +334,23 @@
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\src;..\src\wimlib;..\src\msvc-missing;..\src\libcdio;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/std:clatest</AdditionalOptions>
<DisableSpecificWarnings>4018;4146;4267;4244;4334;4789;4996;6201;6239;6246;6255;6262;6297;6326;28252;28253</DisableSpecificWarnings>
<StringPooling>true</StringPooling>
<PreprocessorDefinitions>_RUFUS;HAVE_CONFIG_H;UNICODE;_OFF_T_DEFINED;_off_t=__int64;off_t=_off_t;_FILE_OFFSET_BITS=64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib />
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

View file

@ -1,16 +1,3 @@
o Version 4.15 (2026.06.30)
Add RISC-V 64 support to UEFI:NTFS
Improve the guards for using the "silent" Windows installation option
Improve the ability to cancel during write retries
Improve progress reporting for compressed image extraction
Fix unrestricted XML entity expansion and integer overflow in ezxml parser (courtesy of Eric Sadowski)
Fix "silent" Windows installation failing at 75% in most cases
Fix a crash during boot when using UEFI:NTFS on Snapdragon X based ARM64 platforms
Fix first WUE option always being checked by default
Fix an infinite loop when using Windows ISOs that contain multiple WIMs
Fix "Enable runtime UEFI media validation" checkbox not always being properly enabled
Other WUE improvements/fixes for OneDrive removal and username validation (with thanks to @christian8641)
o Version 4.14 (2026.04.30)
Windows User Experience improvements:
- Add a "Quality of Life" option, to disable Teams, Outlook, Copilot and other Microsoft forced nuisances

View file

@ -1,7 +1,7 @@
Rufus: The Reliable USB Formatting Utility
==========================================
[![VS2022 Build Status](https://img.shields.io/github/actions/workflow/status/pbatard/rufus/vs2026.yml?branch=master&style=flat-square&label=VS2026%20Build)](https://github.com/pbatard/rufus/actions/workflows/vs2026.yml)
[![VS2022 Build Status](https://img.shields.io/github/actions/workflow/status/pbatard/rufus/vs2022.yml?branch=master&style=flat-square&label=VS2022%20Build)](https://github.com/pbatard/rufus/actions/workflows/vs2022.yml)
[![MinGW Build Status](https://img.shields.io/github/actions/workflow/status/pbatard/rufus/mingw.yml?branch=master&style=flat-square&label=MinGW%20Build)](https://github.com/pbatard/rufus/actions/workflows/mingw.yml)
[![Coverity Scan Status](https://img.shields.io/coverity/scan/2172.svg?style=flat-square&label=Coverity%20Analysis)](https://scan.coverity.com/projects/pbatard-rufus)
[![Latest Release](https://img.shields.io/github/release-pre/pbatard/rufus.svg?style=flat-square&label=Latest%20Release)](https://github.com/pbatard/rufus/releases)
@ -39,7 +39,7 @@ Features
Compilation
-----------
Use either Visual Studio 2026 or MinGW and then invoke the `.sln` or `configure`/`make` respectively.
Use either Visual Studio 2022 or MinGW and then invoke the `.sln` or `configure`/`make` respectively.
#### Visual Studio

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for rufus 4.15.
# Generated by GNU Autoconf 2.71 for rufus 4.14.
#
# Report bugs to <https://github.com/pbatard/rufus/issues>.
#
@ -611,8 +611,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='rufus'
PACKAGE_TARNAME='rufus'
PACKAGE_VERSION='4.15'
PACKAGE_STRING='rufus 4.15'
PACKAGE_VERSION='4.14'
PACKAGE_STRING='rufus 4.14'
PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues'
PACKAGE_URL='https://rufus.ie'
@ -1269,7 +1269,7 @@ if test "$ac_init_help" = "long"; then
# 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.
cat <<_ACEOF
\`configure' configures rufus 4.15 to adapt to many kinds of systems.
\`configure' configures rufus 4.14 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1336,7 +1336,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of rufus 4.15:";;
short | recursive ) echo "Configuration of rufus 4.14:";;
esac
cat <<\_ACEOF
@ -1428,7 +1428,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
rufus configure 4.15
rufus configure 4.14
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@ -1504,7 +1504,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by rufus $as_me 4.15, which was
It was created by rufus $as_me 4.14, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@ -2767,7 +2767,7 @@ fi
# Define the identity of the package.
PACKAGE='rufus'
VERSION='4.15'
VERSION='4.14'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -5313,7 +5313,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by rufus $as_me 4.15, which was
This file was extended by rufus $as_me 4.14, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -5369,7 +5369,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
rufus config.status 4.15
rufus config.status 4.14
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([rufus], [4.15], [https://github.com/pbatard/rufus/issues], [rufus], [https://rufus.ie])
AC_INIT([rufus], [4.14], [https://github.com/pbatard/rufus/issues], [rufus], [https://rufus.ie])
AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies])
AC_CONFIG_SRCDIR([src/rufus.c])
AC_CONFIG_MACRO_DIR([m4])

View file

@ -65,7 +65,7 @@
• Pakeitimų žurnalas: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus adalah utiliti yang membantu memformat dan mencipta pemacu kilat USB boot, seperti pemacu pen/kekunci USB, kayu memori, dan lain-lain.
• Laman rasmi: https://rufus.ie
• Kod Sumber: https://github.com/pbatard/rufus
Log Perubahan: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus er et verktøy som hjelper til med å formatere og lage oppstartbare USB-stasjoner, for eksempel USB-minnepinner, USB-harddisker, og lignende.
ChangeLog: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus er et verktøy som hjelper til med å formatere og lage oppstartbare USB-stasjoner, for eksempel USB-minnepinner, USB-harddisker, og lignende.
• Offisiell webside: https://rufus.ie
• Kildekode: https://github.com/pbatard/rufus
• Endringslogg: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt","Rufus ابزاری است که به فرمت و ایجاد درایوهای فلش USB قابل بوت، مانند کلیدهای USB/pendrives، مموری استیک ها و غیره به شما کمک می کند.
@ -114,17 +114,19 @@
• Trang web chính thức: https://rufus.ie
• Mã nguồn: https://github.com/pbatard/rufus
• Nhật ký thay đổi: https://github.com/pbatard/rufus/blob/master/ChangeLog.txt"
"ReleaseNotes","3","Text","• Add RISC-V 64 support to UEFI:NTFS
• Improve the guards for using the ""silent"" Windows installation option
• Improve the ability to cancel during write retries
• Improve progress reporting for compressed image extraction
• Fix unrestricted XML entity expansion and integer overflow in ezxml parser (courtesy of Eric Sadowski)
• Fix ""silent"" Windows installation failing at 75% in most cases
• Fix a crash during boot when using UEFI:NTFS on Snapdragon X based ARM64 platforms
• Fix first WUE option always being checked by default
• Fix an infinite loop when using Windows ISOs that contain multiple WIMs
• Fix ""Enable runtime UEFI media validation"" checkbox not always being properly enabled
• Other WUE improvements/fixes for OneDrive removal and username validation (with thanks to @christian8641)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"ReleaseNotes","3","Text","• Windows User Experience improvements:
• - Add a ""Quality of Life"" option, to disable Teams, Outlook, Copilot and other Microsoft forced nuisances
• - Add a Silent installation option, that automatically, and WITHOUT PROMPT, installs Windows on the first detected disk
• - Add an option to copy 'SkuSiPolicy.p7b' to the ESP on installation (please refer to KB5042562 for more info)
• - Add tooltips for all the dialog options
• Add limited support for El-Torito UEFI image extraction (Mostly for Dell BIOS update ISOs)
• Improve error report when the user tries to use an image that resides on the target drive
• Improve the UEFI:NTFS partition label to make the install media more explicit during Windows Setup disk partitioning
• Improve support for Bazzite and other Fedora derivatives that don't follow EFI conventions
• Improve detection and exclusion of the new Bitdefender hidden VHDs
• Improve reporting of GRUB and Isolinux MBRs
• Fix potential errors during creation of Windows To Go media, due to the use of new versions of bcdboot
• Fix errors with local accounts that start or end with whitespaces",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"Title","4","Text","Rufus",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"ShortTitle","5","Text","",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"SortTitle","6","Text","",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

1 Field ID Type (Type) default en-us ar-sa bg-bg zh-cn zh-tw hr-hr cs-cz da-dk nl-nl fi-fi fr-fr de-de el-gr he-il hu-hu id-id it-it ja-jp ko-kr lv-lv lt-lt ms-my nb-no fa-ir pl-pl pt-br pt-pt ro-ro ru-ru sr-latn-rs sk-sk sl-si es-es sv-se th-th tr-tr uk-ua vi-vn
65 XboxScreenshotCaption4 353 Text
66 XboxScreenshotCaption5 354 Text
67 XboxScreenshotCaption6 355 Text
68 XboxScreenshotCaption7 356 Text
69 XboxScreenshotCaption8 357 Text
70 XboxScreenshotCaption9 358 Text
71 XboxScreenshotCaption10 359 Text
114 Feature9 708 Text Create VHD/DD images of the selected drive إنشاء صور VHD / DD لمحرك الأقراص المحدد Създаване на VHD/DD образи на избраното устройство 为选择的驱动器创建 VHD/DD 镜像 為選取的磁碟機建立 VHD/DD 映像檔 Stvaranje VHD/DD slika odabranog pogona Vytvoření obrazů VHD/DD z vybrané jednotky Lav VHD/DD billeder af det valgte drev VHD/DD-images van de geselecteerde schijf aanmaken Luo VHD/DD-kuvia valitusta asemasta Créez des images VHD/DD du périphérique sélectionné VHD/DD-Images des ausgewählten Laufwerks erstellen Δημιουργήστε εικόνες VHD/DD της επιλεγμένης μονάδας δίσκου יצירת קובצי תמונה מסוג VHD/DD של הכונן שנבחר VHD/DD képfájl készítése a kiválasztott meghajtóról Buat image VHD/DD dari penyimpanan yang dipilih Crea immagini VHD/DD dell'unità selezionata 選択されたドライブのVHD/DDイメージを作成します。 선택한 드라이브의 VHD/DD 이미지 만들기 Izveido izvēlētā diska VHD/DD virtuālos attēlus Sukurkite pasirinkto disko VHD / DD vaizdus Buat imej VHD/DD bagi pemacu yang dipilih Lag VHD/DD speilinger av valgt disk تصاویر VHD/DD از درایو انتخاب شده ایجاد کنید Stwórz obraz VHD/DD z wybranego dysku Criar imagens VHD/DD do dispositivo selecionado Criar imagens VHD/DD do dispositivo selecionado Crează imagini VHD/DD de pe drive-ul selectat Создание образов VHD/DD выбранного диска Kreiranje VHD/DD slika izabrane disk jedinice Vytvorte obrazy VHD/DD z vybratej jednotky Ustvarjanje VHD/DD slik izbranega pogona Cree imágenes VHD/DD de la unidad seleccionada Skapa VHD/DD-avbilder av den valda enheten สร้างอิมเมจไฟล์แบบ VHD/DD จากไดรฟ์ที่เลือก Seçilen sürücünün VHD/DD yansılarını oluşturun Створення образів VHD/DD з вибраних дисків Tạo tệp VHD/DD từ ổ đĩa đã chọn
115 Feature10 709 Text Compute MD5, SHA-1, SHA-256 and SHA-512 checksums of the selected image حساب المجاميع الإختبارية MD5 و SHA-1 و SHA-256 و SHA-512 للصورة المحددة Изчисляване на MD5, SHA-1, SHA-256 и SHA-512 чексуми на избраният образ 计算被选择镜像的 MD5、SHA-1、SHA-256 和 SHA-512 校验码 計算被選取映像的 MD5、SHA-1、SHA-256 和 SHA-512 檢查碼 Izračunajte kontrolne zbrojeve odabrane slike MD5, SHA-1, SHA-256 i SHA-512 Výpočet kontrolních součtů MD5, SHA-1, SHA-256 a SHA-512 vybraného obrazu Beregn MD5, SHA-1, SHA-256 og SHA-512 checksums af det valgte billede MD5, SHA-1, SHA-256 en SHA-512 controlesommen berekenen van de geselecteerde image Laske MD5, SHA-1, SHA-256 ja SHA-512 tarkistussummia valitusta levykuvasta Calculez les sommes de contrôle MD5, SHA-1, SHA-256 et SHA-512 de l'image sélectionnée Berechnung von MD5-, SHA-1-, SHA-256- und SHA-512-Prüfsummen für das ausgewählte Image Υπολογίστε τα αθροίσματα ελέγχου MD5, SHA-1, SHA-256 και SHA-512 της επιλεγμένης εικόνας חישוב סיכומי ביקורת מסוג MD5,‏ SHA-1,‏ SHA-256 ו־SHA-512 של קובץ התמונה שנבחרה A kiválasztott képfájl MD5, SHA-1, SHA-256 és SHA-512 ellenőrző összegének kiszámítása Hitung checksum MD5, SHA-1, SHA-256 dan SHA-512 dari image yang dipilih Calcola i checksum MD5, SHA-1, SHA-256 e SHA-512 dell'immagine selezionata 選択されたイメージのMD5、SHA-1、SHA-256及びSHA-512チェックサムを計算します。 선택한 이미지의 MD5, SHA-1, SHA-256 및 SHA-512 체크섬 계산 Izskaitļo izvēlētā virtuālā attēla MD5, SHA-1, SHA-256 un SHA-512 kontrolsummas Apskaičiuokite pasirinkto vaizdo MD5, SHA-1, SHA-256 ir SHA-512 kontrolines sumas Kira MD5, SHA-1, SHA-256 dan SHA-512 checksum imej yang dipilih Kalkuler MD5, SHA-1, SHA-256 og SHA-512 sjekksummer fra valgt speiling MD5، SHA-1، SHA-256 و SHA-512 را برای تصویر انتخابی محاسبه کنید Oblicz sumy kontrolne MD5, SHA-1, SHA-256 i SHA-512 dla wybranego obrazu Calcular somas de verificação MD5, SHA-1, SHA-256 e SHA-512 da imagem selecionada Calcular checksums MD5, SHA-1, SHA-256 e SHA-512 da imagem selecionada Compută MD5, SHA-1, SHA-256 și SHA-512 suma de control ale imaginilor selectate Вычисление контрольных сумм MD5, SHA-1, SHA-256 и SHA-512 выбранного образа Izračunajte MD5, SHA-1, SHA-256 i SHA-512 kontrolne preglede izabrane slike Vypočítajte kontrolné súčty vybratého obrazu (MD5, SHA-1, SHA-256 a SHA-512) Račun MD5, SHA-1, SHA-256 in SHA-512 kontrolni vsoti izbrane slike Calcule las sumas de comprobación MD5, SHA-1, SHA-256 y SHA-512 de la imagen seleccionada Beräkna kontrollsummor MD5, SHA-1, SHA-256 och SHA-512 för den valda avbilden คำนวณรหัส MD5, SHA-1, SHA-256, SHA-512 ของไฟล์อิมเมจที่เลือก Seçilen yansının MD5, SHA-1, SHA-256 ve SHA-512 sağlama toplamlarını hesaplayın Обчислення контрольних сум MD5, SHA-1, SHA-256 та SHA-512 для вибраних образів Tính tổng kiểm MD5, SHA-1, SHA-256 và SHA-512 của tệp đã chọn
116 Feature11 710 Text Perform bad blocks checks, including detection of "fake" flash drives إجراء فحوصات كتل تالفة ، بما في ذلك الكشف عن محركات أقراص فلاش "زائفة\ Проверяване за лоши блокове, включително засичане на "фалшиви" устройства 执行坏块检查,包括对”假“U盘的检测 執行壞軌檢查,包括對 ”假“ USB 快閃磁碟 的偵測 Izvršite provjere loših blokova, uključujući otkrivanje "lažnih" flash pogona Provést kontrolu vadných bloků, včetně detekce "falešných" bloků. flash disky Udøv dårlige blokke tjeks, inklusiv opdagelse af "falske" flashdrev Controles uitvoeren op slechte blokken, inclusief detectie van "valse" flashdrives Suorita viallisten lohkojen tarkistuksia, sisältäen "valheellisten" muistitikkujen tunnistamisen Executez un test de mauvais secteurs avec detection des "fake drives\ Durchführung von Prüfungen auf fehlerhafte Blöcke, einschließlich der Erkennung von "gefälschten" Flash-Laufwerken Εκτελέστε ελέγχους εσφαλμένων block, συμπεριλαμβανομένου του εντοπισμού "ψευδών" μονάδων flash ביצוע בדיקות אחר בלוקים (אזורים) פגומים, כולל זיהוי של כונני הבזק "מזוייפים\ Hibás blokkok ellenőrzése, beleértve a "hamis" flash meghajtók detektálását Lakukan cek Blok yang buruk, termasuk deteksi USB Flash Disk "PALSU\ Esegui controlli dei blocchi danneggiati, incluso il rilevamento di unità flash "false\ 不良ブロックチェック及び容量詐欺ドライブの検知を行います。 "위조" 플래시 드라이브 감지를 포함하여 불량 블록 검사 수행 Izpilda bojāto bloku pārbaudi ieskaitot "falsificēto" nesēju noteikšanu Atlikite blogų blokų patikrinimus, įskaitant "netikrų" flash diskų aptikimą Melakukan pemeriksaan blok buruk, termasuk pengesanan pemacu kilat "palsu\ Utfør sjekk for dårlige sektorer, inkludert sjekk for forfalskede flash disker بررسی بلوک های بد، از جمله تشخیص درایوهای فلش "جعلی" را انجام دهید Sprawdź dysk pod względem spójności danych lub wykryj "nieoryginalny" pendrive Executar verificações de blocos defeituosos, incluindo detecção de unidades flash "falsificadas\ Executar verificações de blocos inválidos, incluindo a deteção de unidades flash "falsas\ Verifică blocuri rele, incluzând detectarea de drive-uri flash "false\ Проверка на плохие блоки, обнаружение "поддельных" флешек Izvršite provere loših blokova, uključujući otkrivanje "lažnih" fleš diskova Vykonajte kontroly zlých blokov vrátane detekcie „falošných" prenosných diskov Izvajanje preverjanj slabih blokov, vključno z odkrivanjem »lažnih« bliskavic Realice comprobaciones de bloques defectuosos, incluida la detección de unidades flash "falsas\ Utför kontroll av trasiga block, inklusive upptäckt av "falska" USB-minnen ตรวจสอบจุดบกพร่อง รวมไปถึงการทดสอบแฟลชไดรฟ์ว่าเป็น "ของปลอม" หรือไม่ "Sahte" flash sürücülerin tespiti de dahil olmak üzere hatalı blok kontrolleri gerçekleştirin Перевірка дисків (включаючи фальшиві диски) Thực hiện kiểm tra điểm lỗi, bao gồm phát hiện ổ đĩa "giả\
117 Feature12 711 Text Download official Microsoft Windows retail ISOs قم بتنزيل ملفات ISO الرسمية الخاصة بـ Microsoft Windows Изтегляне на официални Microsoft Windows ISO образи 下载微软官方 Windows 镜像 下載微軟官方 Windows 映像檔 Preuzimanje službenih ISO-ova za maloprodaju sustava Microsoft Windows Stažení oficiálních souborů ISO systému Microsoft Windows Hent officielle Microsoft Windows detail ISOer Officiële Microsoft Windows retail ISO's downloaden Lataa virallisia Microsoft Windowsin jälleenmyyntiversion ISO-levykuvia Téléchargez des images ISOs commerciales officielles de Microsoft Windows Offizielle Microsoft Windows-ISOs herunterladen Κατεβάστε τα επίσημα retail ISO των Microsoft Windows הורדת קובצי ה־ISO הקמעונאיים הרשמיים של Microsoft Windows Hivatalos Microsoft Windows kiskereskedelmi ISO képfájlok letöltése Unduh ISO Microsoft Windows resmi Scarica le ISO ufficiali di Microsoft Windows マイクロソフト公式のWindows ISOをダウンロードします。 공식 Microsoft Windows 리테일 ISO 다운로드 Lejupielādē oficiālos Microsoft ISO failus Atsisiųskite oficialius Microsoft Windows mažmeninės prekybos ISO Muat turun rasmi ISO runcit Microsoft Windows Last ned offisielle Windows ISOer ISO های رسمی ماکروسافت را دریافت کنید Pobierz oficjalny obraz ISO systemu Microsoft Windows Baixar ISOs oficiais do Microsoft Windows Descarregar ISOs oficiais do Microsoft Windows Retail Descarcă un Microsoft Windows ISO oficial de vânzare Загрузка официальных ISO-образов Windows Preuzmite zvanične Microsoft Windows maloprodajne ISO-ove Stiahnite si oficiálne ISO pre Microsoft Windows Prenos uradnih Microsoft Windows maloprodaja ISOs Descargue los ISO oficiales de Microsoft Windows Ladda ner officiella Microsoft Windows ISO-filer ดาวน์โหลดไฟล์ ISO ของ Microsoft Windows จากเว็บไซต์ทางการของ Microsoft Resmi Microsoft Windows Retail ISO'larını indirin Завантаження офіційних образів Microsoft Windows Tải xuống các tệp Microsoft Windows ISO bán lẻ chính thức
118 Feature13 712 Text Download UEFI Shell ISOs قم بتنزيل UEFI Shell ISOs Изтегляне на UEFI Shell образи 下载 UEFI Shell 镜像 下載 UEFI Shell 映像檔 Preuzmite ISO-ove UEFI ljuske Stažení souborů UEFI Shell ISO Hent UEFI Shell ISOer UEFI Shell ISO's downloaden Lataa UEFI Shell ISO-levykuvia Téléchargez des images ISOs du Shell UEFI UEFI-Shell-ISOs herunterladen Κατεβάστε τα ISO Shell UEFI הורדת קובצי ISO של מעטפת UEFI UEFI Shell ISO képfájlok letöltése Unduh Shell ISO UEFI Scarica le ISO della shell UEFI UEFIシェルのISOをダウンロードします。 UEFI Shell ISO 다운로드 Lejupielādē UEFI OS ISO failus Atsisiųskite UEFI Shell ISO Muat turun ISO Shell UEFI Last ned UEFI kommandolinje ISOer ISO های پوسته UEFI را دانلود کنید Ściągnij obrazy ISO UEFI Shell Baixar ISOs do Shell UEFI Descarregar ISOs de UEFI Shell Descarcă UEFI Shell ISO-uri Загрузка ISO-образов оболочки UEFI Preuzmite UEFI Shell ISOs Stiahnite UEFI Shell ISO Prenos UEFI Shell ISOs Descargar ISO de UEFI Shell Ladda ner UEFI-skal ISO-filer ดาวน์โหลดไฟล์ ISO ของ UEFI Shell UEFI Shell ISO'larını indirin Завантаження командної оболонки UEFI ISO Tải xuống các tệp UEFI Shell ISO
119 Feature14 713 Text
120 Feature15 714 Text
121 Feature16 715 Text
122 Feature17 716 Text
123 Feature18 717 Text
124 Feature19 718 Text
125 Feature20 719 Text
126 MinimumHardwareReq1 800 Text
127 MinimumHardwareReq2 801 Text
128 MinimumHardwareReq3 802 Text
129 MinimumHardwareReq4 803 Text
130 MinimumHardwareReq3 MinimumHardwareReq5 802 804 Text
131 MinimumHardwareReq4 MinimumHardwareReq6 803 805 Text
132 MinimumHardwareReq5 MinimumHardwareReq7 804 806 Text

View file

@ -5,14 +5,7 @@ To edit a translation, please make sure to follow:
https://github.com/pbatard/rufus/wiki/Localization#Editing_an_existing_translation
Or simply download https://files.akeo.ie/pollock/pollock-1.8.exe and follow its directions.
o v?.??
// NB: AI was used to update/translate the following 4 message, so please check for accuracy!
- *UPDATED* MSG_356 "(...) If this is not what you want, please select 'No' (...)" -> "(...) You MUST read and accept all of the following propositions to proceed:"
- *NEW* MSG_372 "I WILL ensure that all disks, except the one I want to install Windows on, are disconnected."
- *NEW* MSG_373 "I WILL ensure that I don't leave this media plugged on a PC I do not plan to erase."
- *NEW* MSG_374 "I AGREE that any data loss resulting from the use of this option lies entirely with me."
o v4.14 (2026.04.30)
o v4.14 (2026.??.??)
// NB: I used Google translate to update the following message, so please check for accuracy!
- *UPDATED* MSG_337 "An additional file ('diskcopy.dll') must be downloaded from Microsoft to install MS-DOS:" -> "An additional file ('%s') must be downloaded from Microsoft to use this feature:"
// From the WUE dialog with tooltip at MSG_369. Indicates that once installed, Windows will copy a file (SkuSiPolicy.p7b) to the EFI partition. KB5042562 refers to https://support.microsoft.com/kb/5042562.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: 4.14\n"
"Report-Msgid-Bugs-To: pete@akeo.ie\n"
"POT-Creation-Date: 2026-06-15 16:25+0100\n"
"PO-Revision-Date: 2026-06-15 23:57+0100\n"
"POT-Creation-Date: 2026-03-17 22:51+0000\n"
"PO-Revision-Date: 2026-03-17 23:06+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr_FR\n"
@ -1827,7 +1827,7 @@ msgid "Disable data collection (Skip privacy questions)"
msgstr "Désactiver la collecte de données (Supprime les questions de confidentialité)"
#. • MSG_332
msgid "Prevent Windows To Go from accessing internal disks"
msgid "Prevent 'Windows To Go' from accessing internal disks"
msgstr "Empêcher 'Windows To Go' d'accéder aux disques internes"
#. • MSG_333
@ -1954,7 +1954,7 @@ msgstr ""
#. • MSG_355
msgid "⚠SILENTLY⚠ erase disk and install:"
msgstr "Effacer le disque ⚠SILENCIEUSEMENT⚠ et installer:"
msgstr "Effacera le disque ⚠SILENCIEUSEMENT⚠ et installera:"
#. • MSG_356
msgid ""
@ -1962,13 +1962,15 @@ msgid ""
"\n"
"This is an advanced option, reserved for people who want to create media that does not prompt the user during Windows installation and therefore UNCONDITIONALLY ERASES the first detected disk on the target system. If you are not careful, using this option can result in IRREVERSIBLE DATA LOSS!\n"
"\n"
"You MUST read and accept all of the following propositions to proceed:"
"If this is not what you want, please select 'No'to go back and uncheck the option.\n"
"Otherwise, if you select 'Yes, you agree that the whole responsibility for any data loss will be entirely with YOU."
msgstr ""
"Vous avez sélectionné l'option d'installation de Windows dite \"silencieuse\".\n"
"\n"
"Il s'agit d'une option avancée, réservée à ceux qui souhaitent créer un média d'installation qui ne posera aucune question à l'utilisateur pendant l'installation de Windows et qui EFFACERA SANS CONDITION le premier disque détecté sur le système cible. Si vous n'y prenez pas garde, l'utilisation de cette option peut résulter en une PERTE DE DONNÉES IRREVERSIBLE !\n"
"\n"
"VOUS DEVEZ lire et accepter toutes les propositions suivantes afin de procéder :"
"Si cela n'est pas ce que vous souhaitez veuillez sélectionner 'Non' pour revenir en arrière et désélectionner cette option.\n"
"Sinon, si vous sélectionnez 'Oui', vous indiquez que toute perte de donnée en résultant sera entièrement VOTRE responsabilité."
#. • MSG_358
msgid "Unsupported image location"
@ -2032,18 +2034,6 @@ msgstr "Améliorations \"Quality of Life\" : Désactive la plupart des fonctionn
msgid "If you use this option, please make sure to disconnect every disk from the target PC, except the one you want to install Windows on, as well as not leave the media plugged into any PC you don't want to erase."
msgstr "Si vous utilisez cette option, veuillez-vous assurer que tous les disques, sauf celui sur lequel vous voulez installer Windows, est déconnecté du PC cible, et aussi que vous ne laisserez pas le média connecté sur un PC que vous ne voulez pas réinstaller."
#. • MSG_372
msgid "I WILL ensure that all disks, except the one I want to install Windows on, are disconnected."
msgstr "JE VEILLERAI à déconnecter tout les disques, sauf celui où j'installe Windows."
#. • MSG_373
msgid "I WILL ensure that I don't leave this media plugged on a PC I do not plan to erase."
msgstr "JE VEILLERAI de ne pas laisser ce media connecté à un PC que je ne compte pas effacer."
#. • MSG_374
msgid "I AGREE that any data loss resulting from the use of this option lies entirely with me."
msgstr "J'ACCEPTE que toute perte de données liée à cette option m'incombe entièrement."
#. • MSG_900
#.
#. The following messages are for the Windows Store listing only and are not used by the application

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,7 @@
# • v4.14 "ko-KR" "Korean (한국어)"
# • v4.14 "lv-LV" "Latvian (Latviešu)"
# • v4.14 "lt-LT" "Lithuanian (Lietuvių)"
# • v4.14 "ms-MY" "Malay (Bahasa Malaysia)"
# • v3.22 "ms-MY" "Malay (Bahasa Malaysia)"
# • v4.14 "nb-NO" "Norwegian (Norsk)"
# • v4.14 "fa-IR" "Persian (پارسی)"
# • v4.14 "pl-PL" "Polish (Polski)"
@ -621,8 +621,9 @@ t MSG_354 "Rufus has found an updated version of the DBX files used to perform U
"Note: The files will be downloaded in the application's directory and will be reused automatically if present."
t MSG_355 "⚠SILENTLY⚠ erase disk and install:"
t MSG_356 "You have selected to use the \"silent\" Windows installation option.\n\n"
"This is an advanced option, reserved for people who want to create media that does not prompt the user during Windows installation and therefore UNCONDITIONALLY ERASES the first detected disk on "
"the target system. If you are not careful, using this option can result in IRREVERSIBLE DATA LOSS!\n\nYou MUST read and accept all of the following propositions to proceed:"
"This is an advanced option, reserved for people who want to create media that does not prompt the user during Windows installation and therefore UNCONDITIONALLY ERASES the "
"first detected disk on the target system. If you are not careful, using this option can result in IRREVERSIBLE DATA LOSS!\n\nIf this is not what you want, please select 'No' "
"to go back and uncheck the option.\nOtherwise, if you select 'Yes', you agree that the whole responsibility for any data loss will be entirely with YOU."
t MSG_358 "Unsupported image location"
t MSG_359 "You cannot use an image that is located on the target drive, since that drive is going to be completely erased. It's the same thing as trying to saw the branch you are sitting on!\n\n"
"Please move the image to a different location and try again."
@ -638,9 +639,6 @@ t MSG_368 "Use this option if the system you plan to install Windows on is using
t MSG_369 "Use this option if you want to revoke additional potentially unsafe Windows bootloaders, but with the potential of also preventing standard Windows media from booting."
t MSG_370 "\"Quality of Life\" enhancements: Disable most of the unwanted features Microsoft is trying to force onto end users."
t MSG_371 "If you use this option, please make sure to disconnect every disk from the target PC, except the one you want to install Windows on, as well as not leave the media plugged into any PC you don't want to erase."
t MSG_372 "I WILL ensure that all disks, except the one I want to install Windows on, are disconnected."
t MSG_373 "I WILL ensure that I don't leave this media plugged on a PC I do not plan to erase."
t MSG_374 "I AGREE that any data loss resulting from the use of this option lies entirely with me."
# The following messages are for the Windows Store listing only and are not used by the application
t MSG_900 "Rufus is a utility that helps format and create bootable USB flash drives, such as USB keys/pendrives, memory sticks, etc."
@ -1087,7 +1085,7 @@ t MSG_352 "جارٍ التحقق من وجود تحديثات لـ UEFI DBX..."
t MSG_353 "تحديث الـ DBX متوفر"
t MSG_354 "عثر روفوس Rufus على نسخة محدثة من ملفات DBX المستخدمة لإجراء فحوصات إلغاء التمهيد الآمن لـ UEFI. هل ترغب بتنزيل هذا التحديث؟\n- اختر «نعم» للاتصال بالإنترنت وتنزيل هذا المحتوى\n- اختر «لا» لإلغاء العملية\n\nملاحظة: سيتم تنزيل الملفات في مجلد التطبيق، وسيتم إعادة استخدامها تلقائيًا في حال وجودها."
t MSG_355 "⚠بصمت⚠ امسح القرص وقم بالتثبيت:"
t MSG_356 "لقد اخترتَ استخدام خيار التثبيت الصامت لنظام ويندوز.\n\nحذار: هذا خيار متقدم، مخصص لمن يرغبون في إنشاء وسائط تثبيت لا تُطالب المستخدم بأي إجراء أثناء تثبيت ويندوز، وبالتالي ** تمسح القرص الأول المُكتشف على النظام المستهدف مسحًا تامًا **. في حال عدم توخي الحذر، قد يؤدي استخدام هذا الخيار إلى فقدان البيانات بشكل لا رجعة فيه!\n\nيجب عليك قراءة وقبول جميع الاقتراحات التالية للمتابعة:"
t MSG_356 "لقد اخترتَ استخدام خيار التثبيت الصامت لنظام ويندوز.\n\nحذار: هذا خيار متقدم، مخصص لمن يرغبون في إنشاء وسائط تثبيت لا تُطالب المستخدم بأي إجراء أثناء تثبيت ويندوز، وبالتالي ** تمسح القرص الأول المُكتشف على النظام المستهدف مسحًا تامًا **. في حال عدم توخي الحذر، قد يؤدي استخدام هذا الخيار إلى فقدان البيانات بشكل لا رجعة فيه!\n\nإذا لم يكن هذا ما تريده، يُرجى اختيار \"لا\" للعودة وإلغاء تحديد الخيار.\n\nأما إذا اخترتَ \"نعم\"، فأنتَ تُقرّ بأنك تتحمل كامل المسؤولية عن أي فقدان للبيانات."
t MSG_358 "موقع الصورة غير مدعوم"
t MSG_359 "لا يمكنك استخدام صورة موجودة على القرص المستهدف، لأن هذا القرص سيُمسح بالكامل. الأمر أشبه بمحاولة قطع الغصن الذي تجلس عليه!\n\nيرجى نقل الصورة إلى قرص آخر ثم المحاولة مرة أخرى."
t MSG_360 "من الآمن ترك هذا الخيار مفعلاً حتى لو لم يكن لديك وحدة TPM أو المزيد من ذاكرة الوصول العشوائي، لأن هذا الخيار يتجاوز متطلبات الإعداد فقط ولا يمنع نظام التشغيل Windows فعليًا من استخدام جميع الأجهزة المتاحة."
@ -1102,9 +1100,6 @@ t MSG_368 "استخدم هذا الخيار إذا كان النظام الذي
t MSG_369 "استخدم هذا الخيار إذا كنت ترغب في إلغاء برامج اقلاع نظام التشغيل ويندوز الإضافية التي يحتمل أن تكون غير آمنة bootloaders، ولكن هذا يمكن أن يمنع وسائط ويندوز القياسية من الإقلاع أيضًا."
t MSG_370 "تحسينات \"جودة الحياة\": تعطيل معظم الميزات غير المرغوب فيها التي تحاول مايكروسوفت فرضها على المستخدمين."
t MSG_371 "إذا كنت تستخدم هذا الخيار، فيرجى التأكد من فصل كل الأقراص عن جهاز الكمبيوتر المستهدف، باستثناء القرص الذي تريد تثبيت نظام التشغيل ويندوز Windows عليه، وكذلك عدم ترك هذه الفلاشة موصولة بأي جهاز كمبيوتر لا تريد مسحه."
t MSG_372 "سأتأكد من فصل جميع الأقراص، باستثناء القرص الذي أريد تثبيت Windows عليه."
t MSG_373 "سأتأكد من عدم ترك هذا الوسيط متصلاً بجهاز كمبيوتر لا أنوي مسحه."
t MSG_374 "أوافق على أن أي فقدان للبيانات ناتج عن استخدام هذا الخيار يقع على عاتقي بالكامل."
t MSG_900 "برنامج Rufus هو أداة تساعد في تنسيق وإنشاء أقراص الإقلاع USB، مثل مفاتيح USB، بطاقات الذاكرة، وغيرها."
t MSG_901 "الموقع الرسمي: %s"
t MSG_902 "كود المصدر: %s"
@ -1541,7 +1536,7 @@ t MSG_352 "Проверка за актуализации на UEFI DBX..."
t MSG_353 "Налична е актуализация на DBX"
t MSG_354 "Rufus откри актуализирана версия на DBX файловете, използвани за проверка на анулирани UEFI Secure Boot заредители. Желаете ли да изтеглите тази актуализация?\n- Изберете 'Да', за да се свържете с интернет и да изтеглите това съдържание\n- Изберете 'Не', за да отмените операцията\n\nЗабележка: Файловете ще бъдат изтеглени в директорията на приложението и ще бъдат използвани повторно автоматично, ако са налични."
t MSG_355 "⚠ТИХО⚠ изтриване на диска и инсталиране:"
t MSG_356 "Избрахте опцията за \"тиха\" инсталация на Windows.\n\nТова е разширена настройка, предназначена за потребители, които желаят да създадат носител, който не изисква намеса по време на инсталацията и съответно БЕЗУСЛОВНО ИЗТРИВА първия открит диск на целевата система. Ако не бъдете внимателни, използването на тази опция може да доведе до НЕВЪЗВРАТИМА ЗАГУБА НА ДАННИ!\n\nТРЯБВА да прочетете и приемете всички от следните условия, за да продължите:"
t MSG_356 "Избрахте опцията за \"тиха\" инсталация на Windows.\n\nТова е разширена настройка, предназначена за потребители, които желаят да създадат носител, който не изисква намеса по време на инсталацията и съответно БЕЗУСЛОВНО ИЗТРИВА първия открит диск на целевата система. Ако не бъдете внимателни, използването на тази опция може да доведе до НЕВЪЗВРАТИМА ЗАГУБА НА ДАННИ!\n\nАко не желаете това, моля, изберете 'Не', за да се върнете назад и да премахнете отметката от тази опция.\nВ противен случай, избирайки 'Да', вие се съгласявате, че цялата отговорност за всякаква загуба на данни ще бъде ИЗЦЯЛО ВАША."
t MSG_358 "Неподдържано местоположение на образа"
t MSG_359 "Не можете да използвате образ, който се намира върху целевото устройство, тъй като това устройство ще бъде напълно изтрито. Това е същото като да се опитвате да отрежете клона, на който седите!\n\nМоля, преместете образа на друго място и опитайте отново."
t MSG_360 "Безопасно е да оставите тази опция включена, дори ако имате TPM или повече RAM, тъй като тя само заобикаля изискванията на инсталатора и не пречи на Windows да използва целия наличен хардуер."
@ -1556,9 +1551,6 @@ t MSG_368 "Използвайте тази опция, ако системата
t MSG_369 "Използвайте тази опция, ако желаете да анулирате допълнителни потенциално опасни Windows bootloader-и, но с риск това да попречи на зареждането и на стандартни инсталационни носители на Windows."
t MSG_370 "Подобрения за по-лесна работа: Изключване на повечето нежелани функции, които Microsoft се опитва да наложи на потребителите."
t MSG_371 "Ако използвате тази опция, моля, уверете се, че сте изключили всеки диск от целевия компютър, освен този, на който искате да инсталирате Windows, както и че не сте оставили носителя включен в компютър, който не желаете да бъде изтрит."
t MSG_372 "ЩЕ се уверя, че всички дискове, освен този, на който искам да инсталирам Windows, са изключени."
t MSG_373 "ЩЕ се уверя, че не оставям този носител включен в компютър, който не планирам да изтрия."
t MSG_374 "СЪГЛАСЯВАМ СЕ, че всяка загуба на данни от тази опция е изцяло моя отговорност."
t MSG_900 "Rufus е програма, с която можете лесно да форматирате и създавате стартиращи USB устройства, карти с памет и др."
t MSG_901 "Официален сайт: %s"
t MSG_902 "Изходен код: %s"
@ -1988,7 +1980,7 @@ t MSG_352 "正在检查 UEFI DBX 更新…"
t MSG_353 "有可用的 DBX 更新"
t MSG_354 "Rufus 发现了 DBX 文件的更新版本(用于检查 UEFI 安全启动吊销情况)。是否下载此更新?\n- 选择'是'以连接互联网并下载该内容\n- 选择'否'以取消操作\n\n注意该文件将下载到应用程序所在目录若文件已存在则会自动复用。"
t MSG_355 "⚠静默⚠擦除磁盘并安装:"
t MSG_356 "您已选择使用\"静默\"Windows 安装选项。\n\n这是一个高级选项适用于希望创建在 Windows 安装过程中不提示用户、无条件擦除目标系统上首个检测到磁盘的安装介质的用户。如果操作不慎,使用此选项可能导致不可逆的数据丢失!\n\n您必须阅读并接受以下所有条款才能继续:"
t MSG_356 "您已选择使用\"静默\"Windows 安装选项。\n\n这是一个高级选项适用于希望创建在 Windows 安装过程中不提示用户、无条件擦除目标系统上首个检测到磁盘的安装介质的用户。如果操作不慎,使用此选项可能导致不可逆的数据丢失!\n\n如果这不是您想要的,请选择'否'返回并取消勾选该选项。\n否则如果您选择'是',即表示您同意承担数据丢失的全部责任。"
t MSG_358 "不支持的映像位置"
t MSG_359 "您不能使用位于目标驱动器上的映像,因为该驱动器将被完全擦除。这就好比坐在树枝上锯树枝!\n\n请将映像移动到其他位置后重试。"
t MSG_360 "即使您的电脑配备了 TPM 或拥有充足的内存,启用此选项也是安全的,因为该选项仅绕过安装程序的硬件要求检查,并不会阻止 Windows 使用所有可用硬件。"
@ -2003,9 +1995,6 @@ t MSG_368 "如果您计划安装 Windows 的系统已使用完全最新的安全
t MSG_369 "如果您希望吊销更多可能不安全的 Windows 引导加载程序,请使用此选项,但请注意这也可能导致标准 Windows 安装介质无法启动。"
t MSG_370 "优化使用体验:禁用 Microsoft 试图强加给用户的大部分不必要功能。"
t MSG_371 "如果您使用此选项,请务必断开目标电脑上除要安装 Windows 的磁盘以外的所有磁盘,同时不要将该安装介质插在任何您不想被擦除数据的电脑上。"
t MSG_372 "我将确保除要安装 Windows 的磁盘外,所有其他磁盘均已断开连接。"
t MSG_373 "我将确保不会将此介质插在我不打算擦除的电脑上。"
t MSG_374 "我同意因使用此选项而导致的任何数据丢失完全由我自己负责。"
t MSG_900 "Rufus 是一个帮助您格式化并创建可启动 USB 驱动器(如 U 盘和存储卡)的工具。"
t MSG_901 "官方网站: %s"
t MSG_902 "源代码: %s"
@ -2436,7 +2425,7 @@ t MSG_352 "正在檢查 UEFI DBX 更新…"
t MSG_353 "有可用的 DBX 更新"
t MSG_354 "Rufus 發現用於執行 UEFI 安全開機撤銷檢查的 DBX 檔案更新版本,是否下載此更新?\n- 選擇 '是': 將連線到網路並進行下載\n- 選擇 '否': 取消此操作\n\n註: 該檔案將被下載到 Rufus 所在的資料夾中,如果已存在將會自動使用。"
t MSG_355 "以 ⚠靜默模式⚠ 清除磁碟並進行安裝:"
t MSG_356 "你已選擇使用 \"靜默\" Windows 安裝選項。\n\n此為進階選項僅供希望建立在安裝 Windows 過程中不提示使用者的安裝媒體之使用者使用,過程中會直接清除目標系統中偵測到的第一顆磁碟。\n\n您必須閱讀並接受以下所有條款才能繼續:"
t MSG_356 "你已選擇使用 \"靜默\" Windows 安裝選項。\n\n此為進階選項僅供希望建立在安裝 Windows 過程中不提示使用者的安裝媒體之使用者使用,過程中會直接清除目標系統中偵測到的第一顆磁碟。\n\n若操作不慎,此選項可能導致發生無法復原的資料遺失!\n\n如果這不是你想要的結果請選擇 '否' 返回並取消勾選此選項。\n若你選擇 '是',表示你了解且同意承擔所有可能發生的資料遺失風險。"
t MSG_358 "不支援的映像檔位置"
t MSG_359 "你無法使用位於目標磁碟上的映像檔,因為該磁碟將會被完全清除。這就像是試圖鋸斷自己正坐著的樹枝一樣!\n\n請將映像檔移至其它位置後再試一次。"
t MSG_360 "即使支援 TPM 或有更大的記憶體容量,保持啟用此選項也是安全的,因為此選項僅會略過硬體安裝需求,並不會影響 Windows 使用所有可用的硬體資源。"
@ -2451,9 +2440,6 @@ t MSG_368 "若你打算安裝 Windows 的系統已完整更新過安全開機憑
t MSG_369 "如果你希望撤銷更多可能不安全的 Windows 開機引導程式,請使用此選項,但此操作有可能導致標準 Windows 安裝媒體無法開機。"
t MSG_370 "Windows 體驗增強: 停用微軟試圖強制提供給終端使用者的大多數不必要功能。"
t MSG_371 "如果你使用此選項,請確保目標電腦中除了要安裝 Windows 的磁碟以外,其它所有磁碟都已斷開連接,並且不要將安裝媒體插在任何你不想被清除資料的電腦上。"
t MSG_372 "我將確保除要安裝 Windows 的磁碟外,所有其他磁碟均已斷開連接。"
t MSG_373 "我將確保不會將此媒體插在我不打算清除的電腦上。"
t MSG_374 "我同意因使用此選項而導致的任何資料遺失完全由我自行負責。"
t MSG_900 "Rufus 是個能格式化並製作可開機 USB 快閃磁碟 (如 USB 隨身碟等) 的工具。"
t MSG_901 "官方網站: %s"
t MSG_902 "原始碼: %s"
@ -2884,7 +2870,7 @@ t MSG_352 "Provjera ažuriranja za UEFI DBX..."
t MSG_353 "DBX ažuriranje dostupno"
t MSG_354 "Rufus je pronašao ažuriranu verziju DBX datoteka koje se koriste za izvođenje provjera opoziva UEFI Secure Boot-a. Želite li preuzeti ovo ažuriranje?\n- Odaberite 'Da' za povezivanje s internetom i preuzimanje ovog sadržaja\n- Odaberite 'Ne' za otkazivanje operacije\n\nNapomena: Datoteke će se preuzeti u direktorij aplikacije i automatski će se ponovno koristiti ako postoje."
t MSG_355 "⚠TIHO⚠ izbriši disk i instaliraj:"
t MSG_356 "Odabrali ste korištenje \"tihe\" opcije instalacije sustava Windows.\n\nOvo je napredna opcija, rezervirana za ljude koji žele stvoriti medij koji ne obavještava korisnika tijekom instalacije sustava Windows i stoga BEZUVJETNO BRIŠE prvi otkriveni disk na sustavu. Ako niste oprezni, korištenje ove opcije može rezultirati NEPOVRATNIM GUBITKOM PODATAKA!\n\nMORATE pročitati i prihvatiti sve sljedeće izjave da biste nastavili:"
t MSG_356 "Odabrali ste korištenje \"tihe\" opcije instalacije sustava Windows.\n\nOvo je napredna opcija, rezervirana za ljude koji žele stvoriti medij koji ne obavještava korisnika tijekom instalacije sustava Windows i stoga BEZUVJETNO BRIŠE prvi otkriveni disk na sustavu. Ako niste oprezni, korištenje ove opcije može rezultirati NEPOVRATNIM GUBITKOM PODATAKA!\n\nAko to ne želite, molim odaberite 'Ne' za povratak i poništite odabir opcije.\nSuprotno, ako odaberete 'Da', slažete se da će sva odgovornost za bilo kakav gubitak podataka biti isključivo na VAMA."
t MSG_358 "Nepodržana lokacija slike"
t MSG_359 "Ne možete koristiti sliku koja se nalazi na ciljnom disku, jer će taj disk biti potpuno izbrisan. To je isto kao da pokušavate prepiliti granu na kojoj sjedite!\n\nPremjestite sliku na drugu lokaciju i pokušajte ponovno."
t MSG_360 "Sigurno je ostaviti ovu opciju omogućenu čak i ako imate TPM ili više RAM-a, jer ova opcija samo zaobilazi zahtjeve za postavljanje i zapravo ne sprječava Windows da koristi sav dostupan hardver."
@ -2899,9 +2885,6 @@ t MSG_368 "Koristite ovu opciju ako sustav na koji planirate instalirati Windows
t MSG_369 "Koristite ovu opciju ako želite opozvati dodatne potencijalno nesigurne Windows bootloadere, ali s mogućnošću sprječavanja pokretanja standardnih Windows medija."
t MSG_370 "\"kvalitete života\" poboljšanja: Onemogućite većinu neželjenih značajki koje Microsoft pokušava forcirati na korisnicima."
t MSG_371 "Ako koristite ovu opciju, obavezno odspojite svaki disk od ciljnog računala, osim onog na koji želite instalirati Windows, i ne ostavljajte medij priključen u bilo koj računalo koje ne želite izbrisati."
t MSG_372 "POBRINUT ĆU SE da svi diskovi, osim onog na koji želim instalirati Windows, budu odspojeni."
t MSG_373 "POBRINUT ĆU SE da ovaj medij ne ostavim priključen na računalo koje ne planiram izbrisati."
t MSG_374 "SLAŽEM SE da bilo kakav gubitak podataka uzrokovan korištenjem ove opcije pada isključivo na mene."
t MSG_900 "Rufus je aplikacija koja olakšava formatiranje i stvaranje USB pokretačkih jedinica."
t MSG_901 "Službena stranica: %s"
t MSG_902 "Šifra izvora: %s"
@ -3326,7 +3309,7 @@ t MSG_352 "Kontrola aktualizací UEFI DBX..."
t MSG_353 "DBX aktualizace k dispozici"
t MSG_354 "Rufus našel aktualizovanou verzi souborů DBX používaných k provádění kontrol odvolání UEFI Secure Boot. Chcete stáhnout tuto aktualizaci?\n- Chcete-li se připojit k Internetu a stáhnout tento obsah, vyberte možnost \"Ano\".\n- Výběrem možnosti \"Ne\" operaci zrušíte\n\nPoznámka: Soubory budou staženy do adresáře aplikace a budou automaticky znovu použity, pokud jsou k dispozici."
t MSG_355 "⚠TICHÁ⚠ vymazat disk a nainstalovat:"
t MSG_356 "Zvolili jste použití možnosti \"tichá“ instalace systému Windows.\n\nToto je pokročilá možnost vyhrazená pro uživatele, kteří chtějí vytvořit médium, jež během instalace Windows uživatele nevyzve k potvrzení a BEZPODMÍNEČNĚ VYMAŽE první detekovaný disk v cílovém systému. Pokud si nedáte pozor, použití této volby může mít za následek NEVRATNOU ZTRÁTU VŠECH DAT!\n\nPro pokračování MUSÍTE přečíst a přijmout všechna následující prohlášení:"
t MSG_356 "Zvolili jste použití možnosti \"tichá“ instalace systému Windows.\n\nToto je pokročilá možnost vyhrazená pro uživatele, kteří chtějí vytvořit médium, jež během instalace Windows uživatele nevyzve k potvrzení a BEZPODMÍNEČNĚ VYMAŽE první detekovaný disk v cílovém systému. Pokud si nedáte pozor, použití této volby může mít za následek NEVRATNOU ZTRÁTU VŠECH DAT!\n\nPokud to není to, co chcete, vyberte 'Ne' pro návrat zpět a zrušte zaškrtnutí této možnosti.\nV opačném případě, pokud zvolíte \"Ano, souhlasíte s tím, že veškerou odpovědnost za případnou ztrátu dat ponesete VY."
t MSG_358 "Nepodporované umístění obrázku"
t MSG_359 "Nemůžete použít obraz umístěný na cílové jednotce, protože tato jednotka bude zcela vymazána. Je to stejné, jako když se snažíte uříznout větev, na které sedíte!\n\nPřesuňte prosím obrázek na jiné místo a zkuste to znovu."
t MSG_360 "Je bezpečné ponechat tuto možnost povolenou i v případě, že máte TPM nebo více RAM, protože tato možnost pouze obchází požadavky na nastavení a ve skutečnosti nebrání systému Windows používat veškerý dostupný hardware."
@ -3341,9 +3324,6 @@ t MSG_368 "Tuto možnost použijte, pokud systém, do kterého plánujete nainst
t MSG_369 "Tuto možnost použijte, pokud chcete odebrat další potenciálně nebezpečné zavaděče systému Windows, které však mohou zabránit i zavádění standardních médií systému Windows."
t MSG_370 "\"Vylepšení komfortu uživatele\" vylepšení: Zakázat většinu nežádoucích funkcí, které se Microsoft snaží vnucovat koncovým uživatelům."
t MSG_371 "Pokud použijete tuto možnost, ujistěte se, že jste od cílového počítače odpojili všechny disky kromě toho, na který chcete nainstalovat systém Windows, a nenechávejte médium připojené k žádnému počítači, který nechcete vymazat."
t MSG_372 "ZAJISTÍM, že všechny disky, kromě toho, na který chci nainstalovat Windows, budou odpojeny."
t MSG_373 "ZAJISTÍM, že toto médium nezůstane připojené k počítači, který nemám v plánu vymazat."
t MSG_374 "SOUHLASÍM, že jakákoli ztráta dat způsobená použitím této možnosti je zcela mou odpovědností."
t MSG_900 "Rufus je nástroj, který pomáhá formátovat a vytvářet bootovací USB flash disky, jako jsou USB klíče, paměťové karty atd."
t MSG_901 "Oficiální stránky: %s"
t MSG_902 "Zdrojový kód: %s"
@ -3760,7 +3740,7 @@ t MSG_352 "Tjekker for UEFI DBX opdateringer..."
t MSG_353 "DBX opdatering tilgængelig"
t MSG_354 "Rufus har fundet en opdateret version af DBX filerne som bruges til at udføre UEFI Secure Boot tilbagekaldelses tjek. Vil du hente denne opdatering?\n- Vælg 'Ja' for at forbinde til internettet og hente disse filer\n- Vælg 'Nej' for at afbryde operationen\n\nNote: Filerne vil blive hentet i programmets mappe og vil blive genbrugt automatisk hvis tilstede."
t MSG_355 "⚠STILLE⚠ slet disk og installer:"
t MSG_356 "Du har valgt at bruge den \"stille\" Windows installations valgmulighed.\n\nDette er en advanceret valgmulighed, som er reserveret for personer som vil lave et media som ikke prompter brugeren under Windows installationen, og vil derfor UBETINGET SLETTE den første disk som er opdaget på systemet. Hvis du ikke er forsigtig, så kan denne valgmulighed resultere i UOPRETTELIG DATA TAB!\n\nDu SKAL læse og acceptere alle følgende erklæringer for at fortsætte:"
t MSG_356 "Du har valgt at bruge den \"stille\" Windows installations valgmulighed.\n\nDette er en advanceret valgmulighed, som er reserveret for personer som vil lave et media som ikke prompter brugeren under Windows installationen, og vil derfor UBETINGET SLETTE den første disk som er opdaget på systemet. Hvis du ikke er forsigtig, så kan denne valgmulighed resultere i UOPRETTELIG DATA TAB!\n\nHvis dette ikke er noget du vil have, så vælg 'Nej' for at gå tilbage og fravælge denne valgmulighed.\nEllers, hvis du vælger 'Ja', er du enig i at alt ansvaret for enhver data tab ligger på DIG."
t MSG_358 "Billedeplaceringen er ikke understøttet"
t MSG_359 "Du kan ikke bruge et billed som er placeret på det valgte drev, da drevet vil blive fuldstændig slettet. Det er som at save i den græn man sidder på!\n\nVær venlig at flytte billedet til en anden placering og prøv igen."
t MSG_360 "Det er sikkert at have denne indstilling slået til, selv hvis du har en TPM eller mere RAM, da denne valgmulighed kun springer setup kravene over, og forhindre ikke Windows i at bruge alt tilgængelig hardware."
@ -3775,9 +3755,6 @@ t MSG_368 "Brug denne indstilling hvis det system du har planlagt at installere
t MSG_369 "Brug denne instilling hvis du vil tilbagekalde yderligere potentielt usikre Windows bootloaders, men med risiko for at forhindre normale Windows medier fra at boote."
t MSG_370 "\"Livskvalitets\" forbedringer: Deaktiver de fleste uønskede funktioner Microsoft prøver at tvinge slutbrugerne til at bruge."
t MSG_371 "Hvis du burger denne indstilling, sørg for at alle diske, på nær den som du vil installere Windows på er frakoblet, og ikke lade mediet side i en PC du ikke vil slette."
t MSG_372 "JEG VIL sørge for, at alle diske, undtagen den jeg vil installere Windows på, er frakoblet."
t MSG_373 "JEG VIL sørge for, at dette medie ikke er tilsluttet en pc, jeg ikke planlægger at slette."
t MSG_374 "JEG ACCEPTERER, at ethvert datatab som følge af brugen af denne mulighed er helt mit eget ansvar."
t MSG_900 "Rufus er et værktøj, der hjælper med at formatere og skabe startbare USB-flashdrev, såsom USB-nøgler/USB-pinde, USB-stik, osv."
t MSG_901 "Officiel side: %s"
t MSG_902 "Kildekode: %s"
@ -4205,7 +4182,7 @@ t MSG_352 "Controleren op updates voor UEFI DBX..."
t MSG_353 "Update voor DBX beschikbaar"
t MSG_354 "Rufus heeft een bijgewerkte versie gevonden van de DBX-bestanden die worden gebruikt voor het controleren van de intrekking van UEFI Secure Boot. Wilt u deze update downloaden?\n- Selecteer Ja om verbinding te maken met internet en deze inhoud te downloaden\n- Selecteer Nee om de bewerking te annuleren\n\nOpmerking: de bestanden worden gedownload naar de map van de toepassing en worden automatisch opnieuw gebruikt als ze daar al aanwezig zijn.\n\nVertaald met DeepL.com (gratis versie)"
t MSG_355 "⚠STIL⚠ schijf wissen en installeren:"
t MSG_356 "U hebt ervoor gekozen om de “stille” Windows-installatieoptie te gebruiken.\n\nDit is een geavanceerde optie, bedoeld voor gebruikers die installatiemedia willen maken waarbij de gebruiker tijdens de Windows-installatie niet om bevestiging wordt gevraagd en waarbij de eerste gedetecteerde schijf op het doelsysteem daarom ONVOORWAARDELIJK WORDT GEWIST. Als u niet voorzichtig bent, kan het gebruik van deze optie leiden tot ONOMKEERBAAR GEGEVENSVERLIES!\n\nU MOET alle volgende verklaringen lezen en accepteren om door te gaan:"
t MSG_356 "U hebt ervoor gekozen om de “stille” Windows-installatieoptie te gebruiken.\n\nDit is een geavanceerde optie, bedoeld voor gebruikers die installatiemedia willen maken waarbij de gebruiker tijdens de Windows-installatie niet om bevestiging wordt gevraagd en waarbij de eerste gedetecteerde schijf op het doelsysteem daarom ONVOORWAARDELIJK WORDT GEWIST. Als u niet voorzichtig bent, kan het gebruik van deze optie leiden tot ONOMKEERBAAR GEGEVENSVERLIES!\n\nAls dit niet is wat u wilt, selecteer dan Nee om terug te gaan en vink de optie uit.\nAnders, als u Ja selecteert, gaat u ermee akkoord dat de volledige verantwoordelijkheid voor eventueel gegevensverlies volledig bij uzelf ligt."
t MSG_358 "Locatie van image niet ondersteund"
t MSG_359 "U kunt geen image gebruiken die op de doelschijf staat, aangezien die schijf volledig zal worden gewist. Dat is hetzelfde als proberen de tak door te zagen waarop u zit!\n\nVerplaats de image naar een andere locatie en probeer het opnieuw."
t MSG_360 "U kunt deze optie gerust ingeschakeld laten, zelfs als u een TPM of meer RAM-geheugen hebt, aangezien deze optie alleen de installatievereisten omzeilt en niet daadwerkelijk verhindert dat Windows alle beschikbare hardware gebruikt."
@ -4220,9 +4197,6 @@ t MSG_368 "Gebruik deze optie als het systeem waarop u Windows wilt installeren,
t MSG_369 "Gebruik deze optie als u extra, mogelijk onveilige Windows-bootloaders wilt uitschakelen, maar houd er rekening mee dat hierdoor mogelijk ook standaard Windows-media niet meer kunnen opstarten."
t MSG_370 "Verbeteringen op het gebied van levenskwaliteit: schakel de meeste ongewenste functies uit die Microsoft eindgebruikers probeert op te dringen."
t MSG_371 "Als u deze optie gebruikt, zorg er dan voor dat u alle schijven van de doelcomputer loskoppelt, behalve de schijf waarop u Windows wilt installeren, en laat het installatiemedium niet aangesloten op een computer die u niet wilt wissen."
t MSG_372 "IK ZAL ervoor zorgen dat alle schijven, behalve de Windows-schijf, zijn losgekoppeld."
t MSG_373 "IK ZAL ervoor zorgen dat ik dit medium niet aangesloten laat op een pc die ik niet wil wissen."
t MSG_374 "IK GA ERMEE AKKOORD dat gegevensverlies door deze optie volledig mijn verantwoordelijkheid is."
t MSG_900 "Rufus is een programma dat helpt bij het formatteren en aanmaken van opstartbare USB-flash-drives, zoals USB-sticks, geheugensticks, enz."
t MSG_901 "Officiële site: %s"
t MSG_902 "Broncode: %s"
@ -4652,7 +4626,7 @@ t MSG_352 "Tarkistetaan UEFI DBX-tietokannan päivityksiä..."
t MSG_353 "DBX-päivitys saatavilla"
t MSG_354 "Rufus on havainnut päivitetyn version DBX-tiedostoista, joita käytetään UEFI Secure Boot -mitätöintitarkistuksissa. Haluatko ladata päivityksen?\n- Valitse 'Kyllä' yhdistääksesi internetiin ja ladataksesi sisällön\n- Valitse 'Ei' peruuttaaksesi toiminnon\n\nHuomio: Tiedostot ladataan sovelluskansioon ja niitä voidaan uudelleenkäyttää automaattisesti."
t MSG_355 "Tyhjennä levy ja suorita asennus ⚠VALVOMATTA⚠:"
t MSG_356 "Olet valinnut Windows-asennustavan, joka tapahtuu \"valvomatta\".\n\nTämä on edistyneille käyttäjille suunnattu toiminto luoden tietovälineen, joka ei vaadi mitään käyttäjän syötettä asennuksen aikana ja täten TYHJENTÄÄ VAROITUKSETTA ensimmäisen havaitun levyn kohdejärjestelmässä. Jos et ole tarkkana, voi tämä valinta johtaa PERUUTTAMATTOMAAN TIEDON MENETYKSEEN!\n\nSinun ON luettava ja hyväksyttävä kaikki seuraavat ehdot jatkaaksesi:"
t MSG_356 "Olet valinnut Windows-asennustavan, joka tapahtuu \"valvomatta\".\n\nTämä on edistyneille käyttäjille suunnattu toiminto luoden tietovälineen, joka ei vaadi mitään käyttäjän syötettä asennuksen aikana ja täten TYHJENTÄÄ VAROITUKSETTA ensimmäisen havaitun levyn kohdejärjestelmässä. Jos et ole tarkkana, voi tämä valinta johtaa PERUUTTAMATTOMAAN TIEDON MENETYKSEEN!\n\nJos et halua käyttää tätä ominaisuutta, valitse 'Ei' palataksesi ja poista valintaruudun valinta.\nValitsemalla 'Kyllä' hyväksyt, että mahdollinen tietojen menetys on täysin SINUN vastuullasi."
t MSG_358 "Levykuvan sijaintia ei tueta"
t MSG_359 "Et voi käyttää kohdeasemalle tallennettua levykuvaa, sillä tämä asema tyhjennetään kokonaisuudessaan. Se on vähän kuin omaa oksaansa sahaisi!\n\nSiirrä levykuva eri sijaintiin ja yritä uudelleen."
t MSG_360 "Voit turvallisesti käyttää tätä valintaa, vaikka sinulta löytyisi TPM tai enemmän keskusmuistia, sillä se sivuuttaa ainoastaan asennusvaatimuksen eikä rajoita Windowsia käyttämästä saatavilla olevaa laitteistoa."
@ -4667,9 +4641,6 @@ t MSG_368 "Käytä tätä valintaa, jos Windows-asennuksen kohdetietokoneesta l
t MSG_369 "Käytä tätä valintaa, jos haluat mitätöidä useampia mahdollisesti vaarallisia Windows-käynnistyslataajia, mutta samalla mahdollisesti estäen myös joidenkin normaalien Windows-tietovälineiden käynnistymisen."
t MSG_370 "\"Quality of Life\" -parannukset: Poista käytöstä useimmat ei-halutut ominaisuudet, joita Microsoft yrittää pakottaa käyttäjiä väkisin käyttämään."
t MSG_371 "Jos käytät tätä valintaa, varmistathan, että kaikki levyt on irroitettu kohdetietokoneesta lukuunottamatta haluttua Windows-asennuksen kohdelevyä. Älä myöskään jätä tietovälinettä yhdistetyksi sellaiseen tietokoneeseen, jonka levyjä et halua tyhjennettävän."
t MSG_372 "VARMISTAN, että kaikki levyt, paitsi se, jolle haluan asentaa Windowsin, on irrotettu."
t MSG_373 "VARMISTAN, että en jätä tätä tallennusvälinettä kiinni tietokoneeseen, jota en aio tyhjentää."
t MSG_374 "HYVÄKSYN, että kaikki tästä vaihtoehdosta aiheutuvat tietojen menetykset ovat vastuullani."
t MSG_900 "Rufus on ohjelma, joka auttaa alustamaan ja luomaan boottaavia USB-laitteita, kuten esimerkiksi USB-avaimia, muistitikkuja jne."
t MSG_901 "Virallinen sivusto: %s"
t MSG_902 "Lähdekoodi: %s"
@ -5095,8 +5066,8 @@ t MSG_351 "Vérification de la revocation des bootloaders UEFI..."
t MSG_352 "Vérification des mises à jour de DBX UEFI..."
t MSG_353 "Mise à jour DBX disponible"
t MSG_354 "Rufus a trouvé une mise à jour des fichiers DBX utilisés pour effectuer la validation des revocations Secure Boot sous UEFI. Voulez-vous télécharger cette mise à jour ?\n- Sélectionnez 'Oui' pour vous connecter à Internet et le télécharger ce contenu\n- Sélectionnez 'Non' pour annuler lopération\n\nNote : Ces fichiers seront téléchargés dans le répertoire de l'application et réutilisés automatiquement si ils sont présent."
t MSG_355 "Effacer le disque ⚠SILENCIEUSEMENT⚠ et installer:"
t MSG_356 "Vous avez sélectionné l'option d'installation de Windows dite \"silencieuse\".\n\nIl s'agit d'une option avancée, réservée à ceux qui souhaitent créer un média d'installation qui ne posera aucune question à l'utilisateur pendant l'installation de Windows et qui EFFACERA SANS CONDITION le premier disque détecté sur le système cible. Si vous n'y prenez pas garde, l'utilisation de cette option peut résulter en une PERTE DE DONNÉES IRREVERSIBLE !\n\nVOUS DEVEZ lire et accepter toutes les propositions suivantes afin de procéder :"
t MSG_355 "Effacera le disque ⚠SILENCIEUSEMENT⚠ et installera:"
t MSG_356 "Vous avez sélectionné l'option d'installation de Windows dite \"silencieuse\".\n\nIl s'agit d'une option avancée, réservée à ceux qui souhaitent créer un média d'installation qui ne posera aucune question à l'utilisateur pendant l'installation de Windows et qui EFFACERA SANS CONDITION le premier disque détecté sur le système cible. Si vous n'y prenez pas garde, l'utilisation de cette option peut résulter en une PERTE DE DONNÉES IRREVERSIBLE !\n\nSi cela n'est pas ce que vous souhaitez veuillez sélectionner 'Non' pour revenir en arrière et désélectionner cette option.\nSinon, si vous sélectionnez 'Oui', vous indiquez que toute perte de donnée en résultant sera entièrement VOTRE responsabilité."
t MSG_358 "Placement d'image non supporté"
t MSG_359 "Vous ne pouvez pas utiliser une image située sur le périphérique cible, puisque ce dernier va être complètement effacé. Cela revient au même qu'essayer de scier la branche sur laquelle vous êtes assis !\n\nVeuillez déplacer l'image sur un autre disque et réessayez."
t MSG_360 "Vous pouvez laisser cette option activée même si vous avez une puce TPM ou plus de RAM, car l'option contourne simplement les prérequis du programme d'installation et n'empêche absolument pas Windows d'utiliser toutes ces ressources si disponibles."
@ -5111,9 +5082,6 @@ t MSG_368 "Activez cette option si le système que vous installez utilise des ce
t MSG_369 "Activez cette option pour révoquer des bootloaders supplémentaires de Windows, mais avec le risque de ne plus pouvoir démarrer depuis des media Windows standard."
t MSG_370 "Améliorations \"Quality of Life\" : Désactive la plupart des fonctionnalités que Microsoft essaie de pousser, contre leur gré, aux utilisateurs."
t MSG_371 "Si vous utilisez cette option, veuillez-vous assurer que tous les disques, sauf celui sur lequel vous voulez installer Windows, est déconnecté du PC cible, et aussi que vous ne laisserez pas le média connecté sur un PC que vous ne voulez pas réinstaller."
t MSG_372 "JE VEILLERAI à déconnecter tout les disques, sauf celui où j'installe Windows."
t MSG_373 "JE VEILLERAI de ne pas laisser ce media connecté à un PC que je ne compte pas effacer."
t MSG_374 "J'ACCEPTE que toute perte de données liée à cette option m'incombe entièrement."
t MSG_900 "Rufus est un utilitaire permettant de formater et de créer des média USB amorçables, tels que clés USB, mémoire flash, etc."
t MSG_901 "Site officiel : %s"
t MSG_902 "Code source: %s"
@ -5529,7 +5497,7 @@ t MSG_352 "Prüfe auf UEFI DBX-Aktualisierungen..."
t MSG_353 "DBX-Update verfügbar"
t MSG_354 "Rufus hat eine aktualisierte Version der DBX-Dateien gefunden, die für die Überprüfung der UEFI-Secure-Boot-Widerrufsstatus verwendet werden. Möchten Sie dieses Update herunterladen?\n- Wählen Sie „Ja“, um eine Verbindung zum Internet herzustellen und diesen Inhalt herunterzuladen.\n- Wählen Sie „Nein“, um den Vorgang abzubrechen.\n\nHinweis: Die Dateien werden in das Verzeichnis der Anwendung heruntergeladen und bei Vorhandensein automatisch wiederverwendet.\n\nÜbersetzt mit DeepL.com (kostenlose Version)"
t MSG_355 "⚠AUTOMATISCH⚠ Laufwerk löschen und installieren:"
t MSG_356 "Sie haben die „automatische“ Windows-Installationsoption ausgewählt.\n\nDies ist eine Option für Fortgeschrittene, die für Benutzer gedacht ist, die ein Installationsmedium erstellen möchten, das den Benutzer während der Windows-Installation nicht auffordert, Eingaben vorzunehmen, und daher die erste erkannte Festplatte auf dem Zielsystem AUTOMATISCH LÖSCHT. Wenn Sie nicht vorsichtig sind, kann die Verwendung dieser Option zu UNWIDERRUFLICHEM DATENVERLUST führen!\n\nSie MÜSSEN alle folgenden Aussagen lesen und akzeptieren, um fortzufahren:"
t MSG_356 "Sie haben die „automatische“ Windows-Installationsoption ausgewählt.\n\nDies ist eine Option für Fortgeschrittene, die für Benutzer gedacht ist, die ein Installationsmedium erstellen möchten, das den Benutzer während der Windows-Installation nicht auffordert, Eingaben vorzunehmen, und daher die erste erkannte Festplatte auf dem Zielsystem AUTOMATISCH LÖSCHT. Wenn Sie nicht vorsichtig sind, kann die Verwendung dieser Option zu UNWIDERRUFLICHEM DATENVERLUST führen!\n\nWenn Sie dies nicht wollen, wählen Sie bitte „Nein“, um zurückzugehen und die Option zu deaktivieren.\nAndernfalls erklären Sie sich mit der Auswahl von „Ja“ damit einverstanden, dass die gesamte Verantwortung für etwaige Datenverluste ausschließlich bei IHNEN liegt."
t MSG_358 "Nicht unterstützter Abbild-Standort"
t MSG_359 "Sie können kein Image verwenden, das sich auf dem Ziellaufwerk befindet, da dieses Laufwerk vollständig gelöscht wird. Das ist so, als würde man versuchen, den Ast abzusägen, auf dem man sitzt!\n\nBitte verschieben Sie das Image an einen anderen Speicherort und versuchen Sie es erneut."
t MSG_360 "Sie können diese Option aktiviert lassen, auch wenn Sie über ein TPM oder mehr Arbeitsspeicher verfügen, da diese Option lediglich die Installationsanforderungen umgeht und Windows nicht daran hindert, die gesamte verfügbare Hardware zu nutzen."
@ -5544,9 +5512,6 @@ t MSG_368 "Verwenden Sie diese Option, wenn das System, auf dem Sie Windows inst
t MSG_369 "Verwenden Sie diese Option, wenn Sie weitere potenziell unsichere Windows-Bootloader deaktivieren möchten, wobei jedoch die Möglichkeit besteht, dass auch Standard-Windows-Datenträger nicht mehr booten."
t MSG_370 "Komfort-Funktion: Deaktiviert die meisten unerwünschten Funktionen, die Microsoft den Endnutzern aufzuzwingen versucht."
t MSG_371 "Wenn Sie diese Option verwenden, stellen Sie bitte sicher, dass Sie alle Festplatten vom Ziel-PC trennen, mit Ausnahme derjenigen, auf der Sie Windows installieren möchten, und dass Sie den Datenträger nicht in einem PC stecken lassen, den Sie nicht löschen möchten."
t MSG_372 "ICH WERDE sicherstellen, dass alle Festplatten außer der Windows-Zieldisk getrennt sind."
t MSG_373 "ICH WERDE diesen Datenträger nicht an einem PC angeschlossen lassen, den ich nicht löschen will."
t MSG_374 "ICH STIMME ZU, dass Datenverlust durch diese Option ausschließlich meine Verantwortung ist."
t MSG_900 "Rufus ist ein Werkzeug, das beim Formatieren und Erstellen bootfähiger USB-Flash-Laufwerke wie USB-Sticks, Speichersticks usw. hilft."
t MSG_901 "Offizielle Website: %s"
t MSG_902 "Quellcode: %s"
@ -5971,7 +5936,7 @@ t MSG_352 "Έλεγχος για ενημερώσεις UEFI DBX..."
t MSG_353 "Διαθέσιμη ενημέρωση DBX"
t MSG_354 "Το Rufus εντόπισε μια ενημερωμένη έκδοση των αρχείων DBX που χρησιμοποιούνται για την εκτέλεση ελέγχων ανάκλησης UEFI Secure Boot. Θέλετε να κάνετε λήψη αυτής της ενημέρωσης;\n- Επιλέξτε 'Ναι' για να συνδεθείτε στο Διαδίκτυο και να κατεβάσετε αυτό το περιεχόμενο\n- Επιλέξτε 'Όχι' για να ακυρώσετε τη λειτουργία\n\nΣημείωση: Τα αρχεία θα ληφθούν στον κατάλογο της εφαρμογής και θα επαναχρησιμοποιηθούν αυτόματα, εάν υπάρχουν."
t MSG_355 "⚠ΣΙΩΠΗΛΑ⚠ διαγραφή δίσκου και εγκατάσταση:"
t MSG_356 "Έχετε επιλέξει να χρησιμοποιήσετε την επιλογή \"αθόρυβης\" εγκατάστασης των Windows.\n\nΑυτή είναι μια προηγμένη επιλογή, που προορίζεται για άτομα που θέλουν να δημιουργήσουν μέσα που δεν ενημερώνουν τον χρήστη κατά την εγκατάσταση των Windows και επομένως ΔΙΑΓΡΑΦΟΥΝ ΑΝΕΥ ΟΡΩΝ τον πρώτο δίσκο που ανιχνεύεται στο σύστημα-στόχο. Εάν δεν είστε προσεκτικοί, η χρήση αυτής της επιλογής μπορεί να οδηγήσει σε ΜΗ ΑΝΑΣΤΡΕΨΙΜΗ ΑΠΩΛΕΙΑ ΔΕΔΟΜΕΝΩΝ!\n\nΠΡΕΠΕΙ να διαβάσετε και να αποδεχτείτε όλες τις ακόλουθες προτάσεις για να συνεχίσετε:"
t MSG_356 "Έχετε επιλέξει να χρησιμοποιήσετε την επιλογή \"αθόρυβης\" εγκατάστασης των Windows.\n\nΑυτή είναι μια προηγμένη επιλογή, που προορίζεται για άτομα που θέλουν να δημιουργήσουν μέσα που δεν ενημερώνουν τον χρήστη κατά την εγκατάσταση των Windows και επομένως ΔΙΑΓΡΑΦΟΥΝ ΑΝΕΥ ΟΡΩΝ τον πρώτο δίσκο που ανιχνεύεται στο σύστημα-στόχο. Εάν δεν είστε προσεκτικοί, η χρήση αυτής της επιλογής μπορεί να οδηγήσει σε ΜΗ ΑΝΑΣΤΡΕΨΙΜΗ ΑΠΩΛΕΙΑ ΔΕΔΟΜΕΝΩΝ!\n\nΕάν αυτό δεν είναι αυτό που θέλετε, επιλέξτε \"Όχι\" για να επιστρέψετε και καταργήστε την επιλογή της επιλογής.\nΔιαφορετικά, εάν επιλέξετε \"Ναι\", συμφωνείτε ότι ολόκληρη η ευθύνη για οποιαδήποτε απώλεια δεδομένων θα βαρύνει αποκλειστικά ΕΣΑΣ."
t MSG_358 "Μη υποστηριζόμενη τοποθεσία εικόνας"
t MSG_359 "Δεν μπορείτε να χρησιμοποιήσετε μια εικόνα που βρίσκεται στη μονάδα δίσκου προορισμού, καθώς αυτή η μονάδα δίσκου θα διαγραφεί εντελώς. Είναι το ίδιο με το να προσπαθείτε να κόψετε το κλαδί στο οποίο βρίσκεστε!\n\nΜετακινήστε την εικόνα σε διαφορετική θέση και προσπαθήστε ξανά."
t MSG_360 "Είναι ασφαλές να αφήσετε αυτήν την επιλογή ενεργοποιημένη ακόμα κι αν έχετε TPM ή περισσότερη μνήμη RAM, καθώς αυτή η επιλογή παρακάμπτει μόνο τις απαιτήσεις εγκατάστασης και δεν εμποδίζει στην πραγματικότητα τα Windows να χρησιμοποιούν όλο το διαθέσιμο υλικό."
@ -5986,9 +5951,6 @@ t MSG_368 "Χρησιμοποιήστε αυτήν την επιλογή εάν
t MSG_369 "Χρησιμοποιήστε αυτήν την επιλογή εάν θέλετε να ανακαλέσετε επιπλέον ενδεχομένως μη ασφαλή προγράμματα εκκίνησης των Windows, αλλά με την πιθανότητα να αποτρέψετε και την εκκίνηση τυπικών μέσων των Windows."
t MSG_370 "Βελτιώσεις «ποιότητας ζωής»: Απενεργοποιήστε τις περισσότερες ανεπιθύμητες λειτουργίες που η Microsoft προσπαθεί να επιβάλλει στους χρήστες."
t MSG_371 "Εάν χρησιμοποιήσετε αυτήν την επιλογή, βεβαιωθείτε ότι έχετε αποσυνδέσει κάθε δίσκο από τον υπολογιστή, εκτός από αυτόν στον οποίο θέλετε να εγκαταστήσετε τα Windows, και μην αφήνετε το μέσο συνδεδεμένο σε κάποιο υπολογιστή που δεν θέλετε να διαγράψετε."
t MSG_372 "ΘΑ διασφαλίσω ότι όλοι οι δίσκοι εκτός του δίσκου Windows είναι αποσυνδεδεμένοι."
t MSG_373 "ΘΑ διασφαλίσω ότι δεν θα αφήσω αυτό το μέσο συνδεδεμένο σε υπολογιστή που δεν σκοπεύω να διαγράψω."
t MSG_374 "ΣΥΜΦΩΝΩ ότι οποιαδήποτε απώλεια δεδομένων από αυτή την επιλογή βαρύνει αποκλειστικά εμένα."
t MSG_900 "Το Rufus είναι ένα βοηθητικό πρόγραμμα που βοηθά στη διαμόρφωση και τη δημιουργία μονάδων flash USB με δυνατότητα εκκίνησης, όπως κλειδιά USB/pendrives,κάρτες μνήμης κ.λπ."
t MSG_901 "Επίσημος ιστότοπος: %s"
t MSG_902 "Πηγαίος κώδικας: %s"
@ -6429,7 +6391,7 @@ t MSG_352 "בודק אחר עדכונים ל־UEFI DBX..."
t MSG_353 "עדכון DBX זמין"
t MSG_354 "Rufus איתר גרסה מעודכנת של קובצי DBX המשמשים לבצע בדיקות ביטול תוקף של UEFI Secure Boot. האם ברצונך להוריד את העדכון הזה?\n- יש לבחור 'כן' כדי להתחבר לאינטרנט ולהוריד את התוכן הזה\n- יש לבחור 'לא' כדי לבטל פעולה זו\n\nהערה: הקבצים יורדו לספרייה בה ממוקם היישום וכל עוד הקבצים יהיו שם, Rufus ישתמש בהם באופן אוטומטי במידת הצורך."
t MSG_355 "איפוס הדיסק והתקנה ⚠באופן שקט⚠:"
t MSG_356 "בחרת להשתמש באפשרות התקנת Windows באופן \"שקט\".\n\nזוהי אפשרות מתקדמת, המיועדת לאנשים שרוצים ליצור מדיה שלא מציגה שום בקשות או שאלות מהמשתמש במהלך התקנת Windows, ולכן *מוחקת ומאפסת ללא התראה מוקדמת* את הדיסק הראשון שמזוהה במערכת היעד. אם לא נזהרים, שימוש באפשרות זו עלול לגרום *לאובדן נתונים בלתי הפיך*!\n\nעליך לקרוא ולאשר את כל ההצהרות הבאות כדי להמשיך:"
t MSG_356 "בחרת להשתמש באפשרות התקנת Windows באופן \"שקט\".\n\nזוהי אפשרות מתקדמת, המיועדת לאנשים שרוצים ליצור מדיה שלא מציגה שום בקשות או שאלות מהמשתמש במהלך התקנת Windows, ולכן *מוחקת ומאפסת ללא התראה מוקדמת* את הדיסק הראשון שמזוהה במערכת היעד. אם לא נזהרים, שימוש באפשרות זו עלול לגרום *לאובדן נתונים בלתי הפיך*!\n\nאם זה לא מה שרצית, נא לבחור 'לא' כדי לחזור אחורה ולבטל הסימון של האפשרות הזאת.\nאחרת, אם האפשרות 'כן' תיבחר, מקובל עליך שכל האחריות לכל אובדן הנתונים יהיה *עליך בלבד*."
t MSG_358 "מיקום קובץ תמונה לא נתמך"
t MSG_359 "לא ניתן לבחור בקובץ תמונה הממוקם בכונן היעד, מכיוון שכונן זה עומד להימחק ולהתאפס לחלוטין. זה אותו הדבר כמו לנסות לנסר את הענף שעליו יושבים!\n\nנא להעביר את קובץ התמונה למיקום שונה ולנסות שוב."
t MSG_360 "אפשר להשאיר את האפשרות הזו מופעלת בבטחה גם אם יש לך TPM או יותר זיכרון RAM, מכיוון שהיא רק עוקפת את דרישות ההתקנה ואינה מונעת מ־Windows להשתמש בכל החומרה הזמינה."
@ -6444,9 +6406,6 @@ t MSG_368 "יש להשתמש באפשרות זו אם המערכת שבה מתו
t MSG_369 "יש להשתמש באפשרות זו אם ברצונך לאסור את השימוש במנהלי אתחול נוספים של Windows שעשויים להיות לא בטוחים, בידיעה שיש בכך גם סיכון שמדיות סטנדרטיות של Windows לא ייטענו."
t MSG_370 "שיפורי \"Quality of Life\": השבתת רוב התכונות הבלתי רצויות ש־Microsoft מנסה לכפות על משתמשי קצה."
t MSG_371 "אם משתמשים באפשרות זו, יש לוודא שכל הכוננים במחשב היעד מנותקים, מלבד הכונן שבו רוצים להתקין את Windows, וכן לא להשאיר את המדיה מחוברת למחשב שאותו לא רוצים למחוק."
t MSG_372 "אני אדאג שכל הדיסקים, מלבד הדיסק שעליו אני רוצה להתקין את Windows, יהיו מנותקים."
t MSG_373 "אני אדאג לא להשאיר את אמצעי האחסון הזה מחובר למחשב שאינני מתכוון למחוק."
t MSG_374 "אני מסכים/ה שכל אובדן מידע הנובע משימוש באפשרות זו הוא באחריותי הבלעדית."
t MSG_900 "Rufus הוא כלי המסייע באתחול ויצירת כונני הבזק מסוג USB הניתנים לאתחול, כמו דיסק און קי, כרטיסי זיכרון וכו׳."
t MSG_901 "האתר הרשמי: %s"
t MSG_902 "קוד מקור: %s"
@ -6877,7 +6836,7 @@ t MSG_352 "UEFI DBX frissítések keresése..."
t MSG_353 "DBX frissítés elérhető"
t MSG_354 "A Rufus talált frissített verziót az UEFI Secure Boot visszavonási ellenőrzéséhez használt DBX fájlokból. Szeretnéd letölteni ezt a frissítést?\n- Válaszd az 'Igen' gombot az internethez történő kapcsolódáshoz, és a fájlok letöltéséhez\n- Válaszd a 'Nem' gombot a művelet megszakításához\n\nMegjegyzés: A fájlok az alkalmazás mappájába lesznek letöltve, és automatikusan újra lesznek használva, ha léteznek."
t MSG_355 "⚠CSENDESEN⚠ törölje a lemezt és telepítse ezt:"
t MSG_356 "A \"csendes\" Windows telepítési beállítást választottad.\n\nEz egy haladó szintű beállítás azok számára, akik olyan adathordozót szeretnének készíteni, ami nem tesz fel kérdéseket a Windows telepítése során, ezért FELTÉTEL NÉLKÜL TÖRLI az elsőként észlelt lemezt a célrendszeren. Ha nem vagy elővigyázatos, ennek a beállításnak a használata VISSZAFORDÍTHATATLAN ADATVESZTÉST okozhat!\n\nA folytatáshoz EL KELL OLVASNIA és EL KELL FOGADNIA az alábbi állításokat:"
t MSG_356 "A \"csendes\" Windows telepítési beállítást választottad.\n\nEz egy haladó szintű beállítás azok számára, akik olyan adathordozót szeretnének készíteni, ami nem tesz fel kérdéseket a Windows telepítése során, ezért FELTÉTEL NÉLKÜL TÖRLI az elsőként észlelt lemezt a célrendszeren. Ha nem vagy elővigyázatos, ennek a beállításnak a használata VISSZAFORDÍTHATATLAN ADATVESZTÉST okozhat!\n\nHa nem ezt szeretnéd, akkor válaszd a 'Nem' gombot a visszalépéshez, és töröld ezt a beállítást.\nEgyébként, ha az 'Igen' gombot választod, akkor beleegyezel abba, hogy bármilyen adatvesztésért teljes mértékben TÉGED fog terhelni a felelősség."
t MSG_358 "Nem támogatott kép hely"
t MSG_359 "Nem használhatsz célmeghajtón lévő képet, mivel az a meghajtó teljesen törölve lesz. Ez ugyanaz, mint magad alatt vágni a fát!\n\nKérlek, helyezd át a képet egy másik helyre, és próbáld újra."
t MSG_360 "Ezt a beállítást biztonságosan engedélyezve hagyhatod akkor is, ha rendelkezel TPM-mel vagy több RAM-mal, mivel ez a beállítás csak a telepítési követelményeket kerüli meg, és valójában nem akadályozza meg, hogy a Windows az összes elérhető hardvert használja."
@ -6892,9 +6851,6 @@ t MSG_368 "Használd ezt a beállítást, ha olyan rendszerre szeretnéd telepí
t MSG_369 "Használd ezt a beállítást, ha szeretnél visszavonni további, potenciálisan nem biztonságos Windows rendszerbetöltőket. Emiatt előfordulhat, hogy a sztenderd Windows adathordozó sem fog elindulni."
t MSG_370 "\"Quality of Life\" fejlesztések: Letiltja a legtöbb nem kívánt funkciót, amit a Microsoft próbál ráerőltetni a végfelhasználókra."
t MSG_371 "Ha ezt a beállítást használod, győződj meg arról, hogy minden lemezt leválasztottál a célszámítógépről, kivéve azt az egyet, amelyikre a Windows telepítését szeretnéd, és ne hagyd az adathordozót csatlakoztatva olyan számítógéphez, amit nem akarsz törölni."
t MSG_372 "GONDOSKODOK arról, hogy minden meghajtó le legyen csatlakoztatva a Windows célmeghajtón kívül."
t MSG_373 "GONDOSKODOK arról, hogy ezt az adathordozót ne hagyjam csatlakoztatva nem kívánt törlésű géphez."
t MSG_374 "ELFOGADOM, hogy az ezen opcióból eredő adatvesztés teljes mértékben az én felelősségem."
t MSG_900 "A Rufus egy segédprogram, amellyel bootolható USB flash meghajtókat formázhat és készíthet, például USB kulcsokat/pendrive-okat, memóriakártyákat, stb."
t MSG_901 "Hivatalos oldal: %s"
t MSG_902 "Forráskód: %s"
@ -7314,7 +7270,7 @@ t MSG_352 "Sedang cek pembaruan UEFI DBX..."
t MSG_353 "Pembaruan DBX tersedia"
t MSG_354 "Rufus menemukan pembaruan berkas DBX yang digunakan untuk mengecek pembatalan UEFI Secure Boot. Apakah anda ingin mengunduhnya?\n- Pilih 'Ya' untuk menyambungkan ke Internet dan mencoba untuk mengunduhnya\n- Pilih 'Tidak' untuk membatalkan operasi"
t MSG_355 "Hapus disk secara ⚠SILENT⚠ dan instal:"
t MSG_356 "Anda memilih untuk menggunakan opsi instalasi Windows secara \"silent\".\n\nIni adalah pilihan lanjutan, yang diperuntukkan untuk membuat media yang tidak memberikan pilihan ketika instalasi Windows dan akan MENGHAPUS TANPA TERKECUALI disk yang terdeteksi pertama kali pada system. Kalau tidak berhati-hati, menggunakan pilihan ini akan menyebabkan KEHILANGAN DATA PERMANEN!\n\nAnda HARUS membaca dan menyetujui semua pernyataan berikut untuk melanjutkan:"
t MSG_356 "Anda memilih untuk menggunakan opsi instalasi Windows secara \"silent\".\n\nIni adalah pilihan lanjutan, yang diperuntukkan untuk membuat media yang tidak memberikan pilihan ketika instalasi Windows dan akan MENGHAPUS TANPA TERKECUALI disk yang terdeteksi pertama kali pada system. Kalau tidak berhati-hati, menggunakan pilihan ini akan menyebabkan KEHILANGAN DATA PERMANEN!\n\nKalau Anda tidak menginginkan ini, pilih 'Tidak' untuk kembali dan membatalkan pilihan tersebut.\nKalau Anda memilih 'Ya', Anda yakin dan bertanggungjawab untuk kehilangan data yang terjadi."
t MSG_359 "Anda tidak dapat menggunakan berkas image yang terletak pada penyimpanan tujuan, karena penyimpanan tersebut akan dihapus seluruhnya.\n\nTolong pindahkan berkas image tersebut ke lokasi yang lain dan coba lagi."
t MSG_360 "Pilihan ini aman untuk digunakan walaupun terdapat TPM atau RAM berlebih, karena pilihan ini hanya melewati persyaratan awal dan tidak menghentikan Windows untuk menggunakan seluruh hardware yang tersedia."
t MSG_361 "Supaya pilihan ini dapat digunakan, Anda HARUS memutuskan Internet ketika instalasi~"
@ -7328,9 +7284,6 @@ t MSG_368 "Gunakan pilihan ini jika Anda ingin menginstal Windows menggunakan se
t MSG_369 "Gunakan pilihan ini jika Anda ingin membatalkan penggunaan bootloader Windows yang tidak aman, tapi dengan potensi mencegah media Windows standar untuk booting."
t MSG_370 "Peningkatan \"Quality of Life\": menonaktifkan fitur Microsoft yang tidak diinginkan."
t MSG_371 "Jika Anda menggunakan pilihan ini, mohon untuk mencabut semua disk dari PC tujuan agar tidak terjadi kehilangan data, kecuali disk yang digunakan untuk menginstal Windows."
t MSG_372 "SAYA AKAN memastikan semua disk, kecuali disk untuk Windows, dalam keadaan terputus."
t MSG_373 "SAYA AKAN memastikan media ini tidak terpasang pada PC yang tidak saya rencanakan untuk dihapus."
t MSG_374 "SAYA SETUJU bahwa kehilangan data akibat opsi ini menjadi tanggung jawab saya sepenuhnya."
t MSG_900 "Rufus adalah alat yang membantu untuk memformat dan membuat perangkat USB flash menjadi bootable, seperti USB flashdisk, kartu memori, dll."
t MSG_901 "Situs resmi: %s"
t MSG_902 "Kode Sumber: %s"
@ -7757,7 +7710,7 @@ t MSG_352 "Verifica degli aggiornamenti UEFI DBX..."
t MSG_353 "Aggiornamento DBX disponibile"
t MSG_354 "Rufus ha trovato una verzione aggiornamentato dei fili DBX usati per eseguire la verifica di revoca per UEFI Secure Boot. Vuoi scaricare questo aggiornamento?\n- Seleziona \"Sì\" per connettere all'Internet e scaricare questo contenuto\n- Seleziona \"No\" per cancellare l'operazione\n\nNota: "
t MSG_355 "Cancella disco e installa ⚠SILENZIOSA⚠:"
t MSG_356 "Hai scelto di utilizzare l'opzione di installazione “silenziosa” di Windows.\n\nSi tratta di un'opzione avanzata, riservata a chi desidera creare un supporto che non richieda l'intervento dell'utente durante l'installazione di Windows e che, di conseguenza, CANCELLI INCONDIZIONATAMENTE il primo disco rilevato sul sistema di destinazione. Se non presti la dovuta attenzione, l'utilizzo di questa opzione può causare una PERDITA IRREVERSIBILE DI DATI!\n\nDEVI leggere e accettare tutte le seguenti dichiarazioni per continuare:"
t MSG_356 "Hai scelto di utilizzare l'opzione di installazione “silenziosa” di Windows.\n\nSi tratta di un'opzione avanzata, riservata a chi desidera creare un supporto che non richieda l'intervento dell'utente durante l'installazione di Windows e che, di conseguenza, CANCELLI INCONDIZIONATAMENTE il primo disco rilevato sul sistema di destinazione. Se non presti la dovuta attenzione, l'utilizzo di questa opzione può causare una PERDITA IRREVERSIBILE DI DATI!\n\nSe non è questo ciò che desideri, seleziona “No” per tornare indietro e deselezionare l'opzione.\nAltrimenti, selezionando “Sì”, accetti che l'intera responsabilità per qualsiasi perdita di dati ricada interamente su di TE."
t MSG_358 "Percorso immagine non sopportato."
t MSG_359 "Non puoi usare un'immagine che si trova nell'unità di destinazione, poiché tale unità verrà completamente formattata. È come cercare di segare il ramo su cui sei seduto!\n\nSposta l'immagine in una posizione diversa e riprova."
t MSG_360 "È consigliabile lasciare questa opzione attivata anche se si dispone di un TPM o di più RAM, poiché essa si limita a ignorare i requisiti di configurazione e non impedisce effettivamente a Windows di utilizzare tutto l'hardware disponibile."
@ -7771,9 +7724,6 @@ t MSG_368 "Utilizza questa opzione se il sistema su cui intendi installare Windo
t MSG_369 "Utilizza questa opzione se desideri revocare ulteriori bootloader di Windows potenzialmente non sicuri, tenendo presente che ciò potrebbe impedire l'avvio anche dei supporti standard di Windows."
t MSG_370 "Miglioramenti alla “QoL”: disattiva la maggior parte delle funzionalità indesiderate che Microsoft sta cercando di imporre agli utenti finali."
t MSG_371 "Se si utilizza questa opzione, assicurarsi di scollegare tutti i dischi dal PC di destinazione, tranne quello su cui si desidera installare Windows, e di non lasciare il supporto collegato a nessun PC che non si desidera cancellare."
t MSG_372 "MI ASSICURERÒ che tutti i dischi, tranne quello per Windows, siano scollegati."
t MSG_373 "MI ASSICURERÒ di non lasciare questo supporto collegato a un PC che non intendo cancellare."
t MSG_374 "ACCETTO che qualsiasi perdita di dati derivante da questa opzione sia a mio esclusivo carico."
t MSG_900 "Rufus è un programma che ti aiuta a formattare e creare una unità flash USB avviabile, come una unità USB, memory stick, ecc."
t MSG_901 "Sito ufficiale: %s"
t MSG_902 "Codice sorgente: %s"
@ -8203,7 +8153,7 @@ t MSG_352 "UEFI DBXのアップデートをチェック中..."
t MSG_353 "DBXのアップデートが利用可能です。"
t MSG_354 "UEFIセキュアブートの有効性チェックに使用するDBXファイルの新しいバージョンを発見しました。ダウンロードしますか?\n- はいを選択すると、インターネットに接続しダウンロードします。\n- いいえを選択すると、キャンセルします\n\n注意:ファイルはアプリケーションのディレクトリへダウンロードされ、今後自動的に再利用されます。"
t MSG_355 "⚠サイレント⚠ ディスクの削除とインストール:"
t MSG_356 "Windowsのサイレントインストールオプションを選択しました。\n\nこれはWindowsのインストールを完全自動化するための高度なオプションであり、システムが最初に検知したディスクを無条件に削除します。操作を誤ると予期せぬデータ喪失を引き起こす可能性があります!\n\n続行するには、以下のすべての項目を読み、同意する必要があります:"
t MSG_356 "Windowsのサイレントインストールオプションを選択しました。\n\nこれはWindowsのインストールを完全自動化するための高度なオプションであり、システムが最初に検知したディスクを無条件に削除します。操作を誤ると予期せぬデータ喪失を引き起こす可能性があります!\n\nこのオプションを選択したことによるいかなるデータの喪失も自己責任となることに同意する場合、[はい]を選択してください。\n同意しない場合は[いいえ]を選択し、このオプションのチェックを外してください。"
t MSG_358 "サポートされていないイメージのロケーション"
t MSG_359 "ターゲットドライブに配置されたファイルは書き込み時に完全に削除されるため、このファイルを使用することはできません。\n\nファイルを移動し再試行してください。"
t MSG_360 "このオプションはセットアップの要件のみをスキップし、Windowsの機能には影響を与えないため、TPMや十分なRAMがある場合でも有効化しておくことが推奨されます。"
@ -8218,9 +8168,6 @@ t MSG_368 "最新のセキュアブート証明でWindowsを使用する場合
t MSG_369 "危険な可能性のあるWindowsブートローダーを無効化したい場合このオプションを有効化してください。ただし、通常のWindowsメディアが起動しなくなる可能性があります。"
t MSG_370 "Microsoftが強制する不要な機能の大半を無効化することにより利便性を向上します。"
t MSG_371 "このオプションを使用する場合はWindowsをインストールするディスク以外を全て取り外して、削除しないメディアを残さないでください。"
t MSG_372 "Windows をインストールしたいディスク以外のすべてのディスクが切断されていることを確認します。"
t MSG_373 "このメディアを、消去する予定のないPCに接続したままにしないことを確認します。"
t MSG_374 "このオプションの使用により発生するデータ損失について、全責任を負うことに同意します。"
t MSG_900 "Rufus (ルーファス) とは、起動可能なUSBフラッシュドライブUSBメモリなどを作成したり、フォーマットをするためのソフトウェアです。"
t MSG_901 "公式サイト: %s"
t MSG_902 "ソースコード: %s"
@ -8651,7 +8598,8 @@ t MSG_352 "UEFI DBX 업데이트 확인 중..."
t MSG_353 "DBX 업데이트 사용 가능"
t MSG_354 "Rufus가 UEFI 보안 부팅 취소 확인에 사용되는 최신 버전의 DBX 파일을 찾았습니다. 이 업데이트를 다운로드하시겠습니까?\n- 인터넷에 연결하여 파일을 다운로드하려면 '예'를 선택하세요.\n- 작업을 취소하려면 '아니오'를 선택하세요.\n\n참고: 파일은 프로그램 실행 디렉토리에 다운로드되며, 파일이 존재하면 자동으로 재사용됩니다."
t MSG_355 "⚠경고⚠ 묻지 않고 디스크 삭제 및 설치:"
t MSG_356 "\"무경고(silent)\" Windows 설치 옵션을 선택하셨습니다.\n\n이것은 고급 옵션으로, Windows 설치 중에 사용자에게 확인 과정을 거치지 않고 대상 시스템에서 처음 감지된 디스크를 \"무조건 삭제\"하는 미디어를 만들려는 분들을 위한 기능입니다. 주의하지 않으면 이 옵션 사용으로 인해 \"되돌릴 수 없는 데이터 손실\"이 발생할 수 있습니다!\n\n계속하려면 다음 모든 항목을 읽고 동의해야 합니다:"
t MSG_356 "\"무경고(silent)\" Windows 설치 옵션을 선택하셨습니다.\n\n이것은 고급 옵션으로, Windows 설치 중에 사용자에게 확인 과정을 거치지 않고 대상 시스템에서 처음 감지된 디스크를 \"무조건 삭제\"하는 미디어를 만들려는 분들을 위한 기능입니다. 주의하지 않으면 이 옵션 사용으로 인해 \"되돌릴 수 없는 데이터 손실\"이 발생할 수 있습니다!\n\n이것을 원치 않으시면 '아니오'를 선택하여 돌아가서 해당 옵션의 체크를 해제하십시오.\n반대로 '예'를 선택하신다면, 발생하는 모든 데이터 손실에 대한 전적인 책임은 \"사용자 본인\"에게 있음에 동의하는 것으로 간주합니다."
t MSG_358 "지원되지 않는 이미지 위치"
t MSG_359 "대상 드라이브가 완전히 삭제될 예정이므로, 해당 드라이브에 있는 이미지는 사용할 수 없습니다. 이는 마치 본인이 앉아 있는 나뭇가지를 톱질하는 것과 같습니다!\n\n이미지 파일을 다른 위치로 이동한 후 다시 시도해 주세요."
t MSG_360 "TPM이나 넉넉한 RAM을 보유하고 있더라도 이 옵션을 활성화된 상태로 두는 것이 안전합니다. 이 옵션은 설치 요구 사항을 우회할 뿐이며, Windows가 사용 가능한 모든 하드웨어를 사용하는 것을 실제로 방해하지는 않기 때문입니다."
t MSG_361 "이 옵션이 작동하려면 설치 중에 반드시 네트워크/인터넷 연결을 해제해야 합니다!"
@ -8665,9 +8613,6 @@ t MSG_368 "Windows를 설치하려는 시스템이 최신 보안 부팅 인증
t MSG_369 "잠재적으로 안전하지 않은 추가 Windows 부트로더를 차단하려는 경우 이 옵션을 사용하십시오. 단, 표준 Windows 미디어의 부팅도 차단될 가능성이 있습니다."
t MSG_370 "\"Quality of Life(QoL)\" 개선 사항: Microsoft가 사용자에게 강제하려는 원치 않는 기능 대부분을 비활성화합니다."
t MSG_371 "이 옵션을 사용하는 경우, Windows를 설치할 디스크를 제외한 대상 PC의 모든 디스크를 분해(연결 해제)했는지 확인하십시오. 또한, 데이터 삭제를 원치 않는 PC에는 미디어를 연결된 상태로 두지 마십시오."
t MSG_372 "Windows를 설치하려는 디스크를 제외한 모든 디스크가 연결 해제되었는지 확인하겠습니다."
t MSG_373 "이 미디어를 지울 계획이 없는 PC에 연결된 상태로 두지 않도록 하겠습니다."
t MSG_374 "이 옵션 사용으로 인한 모든 데이터 손실에 대한 책임은 전적으로 본인에게 있음에 동의합니다."
t MSG_900 "Rufus는 USB 메모리 및 플래시 드라이브를 포맷하고 부팅할 수 있도록 만드는 도구입니다."
t MSG_901 "공식 사이트: %s"
t MSG_902 "소스 코드: %s"
@ -9098,7 +9043,7 @@ t MSG_352 "Notiek UEFI DBX atjauninājumu pārbaude..."
t MSG_353 "Pieejams DBX atjauninājums"
t MSG_354 "Rufus ir atradis atjauninātu DBX failu versiju, ko izmanto, lai veiktu UEFI Secure Boot atsaukšanas pārbaudes. Vai vēlaties lejupielādēt šo atjauninājumu?\n- Izvēlieties 'Jā', lai pieslēgties internetam un lejupielādēt šo saturu\n- Izvēlieties 'Nē', lai atceltu darbību\n\nPiezīme. Faili tiks lejupielādēti programmas direktorijā un ja tādi jau ir, tie tiks automātiski izmantoti atkārtoti."
t MSG_355 "⚠KLUSĀ⚠ diska dzēšana un instalācija:"
t MSG_356 "Ir izvēlēta \"klusā\" Windows instalēšanas opcija.\n\nŠī ir uzlabota opcija, kas paredzēta tiem, kuri vēlas izveidot datu nesēju, kas lietotājam Windows instalēšanas laikā neko neprasa un BEZNOSACĪJUMĀ DZĒŠ pirmo atrasto disku. Ja neesat piesardzīgs, šīs opcijas izmantošana var izraisīt NEATGRIEZENISKU DATU ZAUDĒJUMU!\n\nLai turpinātu, jums JĀIZLASA un JĀPIEKRĪT visiem šiem nosacījumiem:"
t MSG_356 "Ir izvēlēta \"klusā\" Windows instalēšanas opcija.\n\nŠī ir uzlabota opcija, kas paredzēta tiem, kuri vēlas izveidot datu nesēju, kas lietotājam Windows instalēšanas laikā neko neprasa un BEZNOSACĪJUMĀ DZĒŠ pirmo atrasto disku. Ja neesat piesardzīgs, šīs opcijas izmantošana var izraisīt NEATGRIEZENISKU DATU ZAUDĒJUMU!\n\nJa tas nav tas, ko vēlaties, izvēlieties 'Nē', lai atgrieztos un noņemiet atzīmi no opcijas.\nPretējā gadījumā, ja izvēlaties 'Jā', tad PIEKRĪTAT atbildībai par iespējamo datu zudumu."
t MSG_358 "Neatbalstīta instalācijas atrašanās vieta"
t MSG_359 "Nevar izmantot instalāciju, kas atrodas mērķa diskā, jo šis disks tiks pilnībā izdzēsts. Tas ir tas pats, kas mēģināt zāģēt zaru, uz kura sēdi!\n\nPārvietojiet instalāciju uz citu vietu un mēģiniet vēlreiz."
t MSG_360 "Šo opciju var atstāt iespējotu pat tad, ja ir TPM vai vairāk RAM, jo šī opcija tikai apiet iestatīšanas prasības un faktiski neliedz OS Windows izmantot visu pieejamo aparatūru."
@ -9113,9 +9058,6 @@ t MSG_368 "Izmantojiet šo opciju, ja sistēma, kurā plānojat instalēt sistē
t MSG_369 "Izmantojiet šo opciju, ja vēlaties atsaukt papildu potenciāli nedrošos Windows ielādētājus, taču var arī novērst standarta Windows multivides palaišanu."
t MSG_370 "\"Quality of Life\" uzlabojumi: Tiks atspējota lielākā daļu nevēlamo funkciju, ko Microsoft mēģina uzspiest lietotājiem."
t MSG_371 "Ja izmantojat šo opciju, atvienojiet visus diskus no mērķa datora, izņemot to, kurā vēlaties instalēt OS Windows, kā arī neatstājiet multividi, kuru nevēlaties dzēst, pievienotu nevienam no datoriem."
t MSG_372 "ES PARŪPĒŠOS, lai visi diski, izņemot to, kurā vēlos instalēt Windows, būtu atvienoti."
t MSG_373 "ES PARŪPĒŠOS, lai šis datu nesējs netiktu atstāts pievienots datoram, kuru neplānoju dzēst."
t MSG_374 "ES PIEKRĪTU, ka jebkādi datu zudumi, kas rodas, izmantojot šo opciju, ir pilnībā mana atbildība."
t MSG_900 "Rufus ir instruments ar kura palīdzību var formatēt un izveidot USB ielādes ierīces uz tādiem nesējiem, kā USB pieslēguma zibatmiņas, atmiņas kartes u.c."
t MSG_901 "Oficiālā mājas lapa: %s"
t MSG_902 "Sākotnējais kods: %s"
@ -9545,7 +9487,7 @@ t MSG_352 "Ieškoma UEFI DBX atnaujinimų..."
t MSG_353 "DBX atnaujinimas pasiekimas"
t MSG_354 "Rufus rado atnaujintą DBX failų versija, naudojamų UEFI saugaus įkrovimo atšaukimo patikrinimams atlikti. Ar norite atsisiųsti šį atnaujinimą?\n- Pasirinkite 'Taip' kad prisijungtumėte prie Interneto ir atsisiųstumėte jį\n- Pasirinkite 'Ne' kad atšaukti operacija\n\nPastaba: Failas bus atsisiųstas į programos katalogą ir, jei ten jau yra, bus automatiškai panaudotas."
t MSG_355 "⚠TYLIAI⚠ ištrinti diską ir įdiegti:"
t MSG_356 "Jūs pasirinkote naudotis \"tylioji\" Windows diegimo parinkti.\n\nTai išplėstinė parinktis, skirta žmonėms, norintiems sukurti laikmeną, kuri neragina vartotojo diegiant „Windows“ ir todėl BE SĄLYGŲ IŠTRINA pirmąjį aptiktą diską tikslinėje sistemoje. Jei nebūsite atsargūs, naudodami šią parinktį galite NEATGRĄŽINAMAI PRARASTI DUOMENIS!\n\nNorėdami tęsti, TURITE perskaityti ir sutikti su visais šiais teiginiais:"
t MSG_356 "Jūs pasirinkote naudotis \"tylioji\" Windows diegimo parinkti.\n\nTai išplėstinė parinktis, skirta žmonėms, norintiems sukurti laikmeną, kuri neragina vartotojo diegiant „Windows“ ir todėl BE SĄLYGŲ IŠTRINA pirmąjį aptiktą diską tikslinėje sistemoje. Jei nebūsite atsargūs, naudodami šią parinktį galite NEATGRĄŽINAMAI PRARASTI DUOMENIS!\n\nJei to nenorite, pasirinkite 'Ne', kad grįžtumėte ir panaikintumėte parinkties žymėjimą.\nPriešingu atveju, jei pasirinksite 'Taip', sutinkate, kad visa atsakomybė už bet kokį duomenų praradimą teks JUMS."
t MSG_358 "Nepalaikoma atvaizdo vieta"
t MSG_359 "Negalite naudoti atvaizdo, esančio paskirties diske, nes tas diskas bus visiškai ištrintas. Tai tas pats, kas bandyti pjauti šaką, ant kurios sėdite!\n\nPerkelkite atvaizdą į kitą vietą ir bandykite dar kartą."
t MSG_360 "Šią parinktį galima palikti įjungtą, net jei turite TPM ar daugiau RAM, nes ši parinktis tik apeina sąrankos reikalavimus ir iš tikrųjų netrukdo „Windows“ naudoti visos turimos aparatinės įrangos."
@ -9560,9 +9502,6 @@ t MSG_368 "Naudokite šią parinktį, jei sistema, kurioje planuojate įdiegti W
t MSG_369 "Naudokite šią parinktį, jei norite atšaukti papildomus potencialiai nesaugius Windows įkrovos tvarkykles, tačiau taip pat galite neleisti paleisti standartinės Windows laikmenos."
t MSG_370 "\"Quality of Life\" patobulinimai: Išjunkite daugumą nepageidaujamų funkcijų, kurias Microsoft bando primesti galutiniams vartotojams."
t MSG_371 "Jei naudojate šią parinktį, būtinai atjunkite visus diskus nuo tikslinio kompiuterio, išskyrus tą, kuriame norite įdiegti Windows, ir nepalikite laikmenos prijungtos prie kompiuterio, kurio nenorite ištrinti."
t MSG_372 "AŠ ĮSITIKINSIU, kad visi diskai, išskyrus tą, į kurį norite įdiegti Windows, yra atjungti."
t MSG_373 "AŠ ĮSITIKINSIU, kad šios laikmenos nepaliksiu prijungtos prie kompiuterio, kurio netrinsiu."
t MSG_374 "AŠ SUTINKU, kad bet koks duomenų praradimas dėl šios parinkties yra visiškai mano atsakomybė."
t MSG_900 "Rufus programa leidžia suženklinti ir sukurti sistemų paleidimo laikmenas, kaip pvz. USB atmintukus, atminties korteles ir pan."
t MSG_901 "Oficiali svetainė: %s"
t MSG_902 "Šaltinio kodas: %s"
@ -9585,7 +9524,7 @@ t MSG_922 "Atsisiųskite UEFI Shell ISO"
#########################################################################
l "ms-MY" "Malay (Bahasa Malaysia)" 0x043e, 0x083e
v 4.14
v 3.22
b "en-US"
g IDD_ABOUTBOX
@ -9770,7 +9709,7 @@ t MSG_129 "Anda telah menghasilkan media yang menggunakan bootloader UEFI:NTFS.
t MSG_130 "Pemilihan imej Windows"
t MSG_131 "ISO ini mengandungi beberapa imej Windows.\nSila pilih imej yang anda ingin gunakan untuk pemasangan:"
t MSG_132 "Terdapat program atau proses lain sedang mencapai pemacu ini. Adakah anda mahu memformatnya juga?"
t MSG_133 "Rufus telah mengesan bahawa anda sedang mencuba untuk mencipta media Windows To Go berasaskan imej ISO 1809.\n\nMemandangkan terdapat pepijat dari MICROSOFT, media ini akan menghadapi masalah (Blue Screen Of Death) semasa memulakan Windows, melainkan anda menukar fail 'WppRecorder.sys' kepada versi 1803.\n\nSila ambil perhatian. Rufus tidak akan membaiki masalah ini kerana 'WppRecorder.sys' adalah hak cipta milik Microsoft dan kami tidak dapat menyertakan salinan fail berkenaan bersama-sama aplikasi ini..."
t MSG_133 "Rufus telah mengesan bahawa anda sedang mencuba untuk mencipta media Windows To Go berasaskan imej ISO 1809.\n\nMemandangkan terdapat pepijat dari MICROSOFT, media ini akan menghadapi masalah (Blue Scree Of Death) semasa memulakan Windows, melainkan anda menukar fail 'WppRecorder.sys' kepada versi 1803.\n\nSila ambil perhatian. Rufus tidak akan membaiki masalah ini kerana 'WppRecorder.sys' adalah hak cipta milik Microsoft dan kami tidak dapat menyertakan salinan fail berkenaan bersama-sama aplikasi ini..."
t MSG_134 "Memandangkan skema pemetakan MBR telah dipilih, Rufus akan menghasilkan petak storan media dengan saiz maksimum 2 TB, di mana %s ruang cakera adalah tidak tersedia.\n\nAdakah anda pasti ingin meneruskan operasi?"
t MSG_135 "Versi"
t MSG_136 "Keluaran"
@ -9803,7 +9742,8 @@ t MSG_163 "Kaedah yang digunakan untuk mencipta partisyen"
t MSG_164 "Kaedah yang digunakan untuk membuat cakera boot"
t MSG_165 "Klik untuk memilih atau memuat turun imej..."
t MSG_166 "Klik kotak ini untuk membenarkan paparan label antarabangsa dan menetapkan ikon cakera (akan membuat fail autorun.inf)"
t MSG_167 "Pasang pemuat but UEFI, yang akan melakukan pengesahan fail MD5Sum terhadap media"
t MSG_167 "Memasang MBR yang membenarkan pilihan boot dan mampu menyamar ID BIOS USB"
t MSG_168 "Cuba menyamarkan cakera USB boot (biasanya 0x80) sebagai cakera lain.\nIni hanya diperlukan jika anda memasang Windows XP dan mempunyai lebih daripada satu cakera."
t MSG_169 "Ciptakan partisyen tambahan tersembunyi dan cuba melaraskan sempadan partisyen.\nIni boleh mempertingkatkan pengesanan boot untuk BIOS lama."
t MSG_170 "Membolehkan penyenaraian pagaran cakera keras USB. GUNAKAN ATAS RISIKO SENDIRI!!!"
t MSG_171 "Mulakan operasi pemformatan.\nIni akan MEMADAMKAN semua data pada sasaran!"
@ -9811,7 +9751,7 @@ t MSG_172 "Tandatangan digital muat turun tidak sah"
t MSG_173 "Klik untuk memilih..."
t MSG_174 "Rufus - Utiliti pemformatan USB yang dipercayai"
t MSG_175 "Versi %d.%d (Build %d)"
t MSG_176 "Terjemahan Bahasa Malaysia:\\line\n• Muhammad Aman <mailto:aman.tifli@gmail.com>\\line\n• VGPlayer <mailto:razman90a@yahoo.com.my>\\line\n• Mohamad Ikhwan bin Kori <mailto:ikhwankori@gmail.com>\\line\n• Ilya Ignatev <mailto:ignatev.ilya.yt@gmail.com>"
t MSG_176 "Terjemahan Bahasa Malaysia:\\line\n• Muhammad Aman <mailto:aman.tifli@gmail.com>\\line\n• VGPlayer <mailto:razman90a@yahoo.com.my>\\line\n• Mohamad Ikhwan bin Kori <mailto:ikhwankori@gmail.com>"
t MSG_177 "Laporkan masalah atau cadangan penambahbaikan di:"
t MSG_178 "Hak cipta tambahan:"
t MSG_179 "Polisi kemaskini:"
@ -9957,8 +9897,6 @@ t MSG_319 "Abaikan penanda but"
t MSG_320 "Tataletak partition yang menyegarkan (%s)..."
t MSG_321 "Imej yang anda pilih ialah ISOHybrid, tetapi penciptanya tidak menjadikannya serasi dengan mod salinan ISO/Fail.\nAkibatnya, mod penulisan imej DD akan dikuatkuasakan."
t MSG_322 "Tidak dapat membuka atau membaca '%s'"
t MSG_323 "Guna SkuSiPolicy.p7b semasa pemasangan (Lihat KB5042562)"
t MSG_324 "Penambahbaikan QoL (Jangan paksa Copilot, OneDrive, Outlook, Fast Startup, dll.)"
t MSG_325 "Menggunakan penyesuaian Windows: %s"
t MSG_326 "Menggunakan pilihan pengguna..."
t MSG_327 "Pengalaman Pengguna Windows"
@ -9971,47 +9909,9 @@ t MSG_333 "Buat akaun tempatan dengan nama pengguna:"
t MSG_334 "Mengesetkan opsyen rantau kepada nilai yang sama seperti pengguna ini"
t MSG_335 "Lumpuhkan penyulitan peranti automatik BitLocker"
t MSG_336 "Log berterusan"
t MSG_337 "Fail tambahan ('%s') mesti dimuat turun dari Microsoft untuk menggunakan ciri ini:\n- Pilih 'Ya' untuk menyambung ke Internet dan memuat turunnya\n- Pilih 'Tidak' untuk membatalkan operasi\n\nNota: Fail akan dimuat turun ke dalam direktori aplikasi dan akan digunakan semula secara automatik jika tersedia."
t MSG_338 "Pemuat but UEFI yang dibatalkan dikesan"
t MSG_339 "Rufus mengesan bahawa ISO yang anda pilih mengandungi pemuat but UEFI yang telah ditarik balik dan akan menghasilkan %s, apabila Secure Boot diaktifkan pada sistem UEFI yang terkini sepenuhnya.\n\n- Jika anda memperoleh imej ISO ini daripada sumber yang tidak dipercayai, anda harus mempertimbangkan kemungkinan ia mengandungi perisian hasad UEFI dan elakkan daripada membuat but daripadanya.\n- Jika anda memperolehnya daripada sumber yang dipercayai, anda harus cuba mencari versi yang lebih terkini, yang tidak akan menghasilkan amaran ini."
t MSG_340 "skrin \"Pelanggaran Keselamatan\""
t MSG_341 "skrin Pemulihan Windows (BSOD) dengan '%s'"
t MSG_342 "Imej VHDX Termampat"
t MSG_343 "Imej VHD Tidak Termampat"
t MSG_344 "Imej Kemas Kini Denyar Penuh"
t MSG_345 "Beberapa data tambahan mesti dimuat turun dari Microsoft untuk menggunakan fungsi ini:\n- Pilih 'Ya' untuk menyambung ke Internet dan memuat turunnya\n- Pilih 'Tidak' untuk membatalkan operasi"
t MSG_346 "Sekat Windows ke S-Mode (TIDAK SERASI dengan pintasan akaun dalam talian)"
t MSG_347 "Mod Pakar"
t MSG_348 "Mengekstrak fail arkib: %s"
t MSG_349 "Guna MBR Rufus"
t MSG_350 "Guna pemuat but bertandatangan 'Windows CA 2023' (Memerlukan PC sasaran yang serasi)"
t MSG_351 "Sedang memeriksa penarikan balik pemuat but UEFI..."
t MSG_352 "Sedang memeriksa kemas kini DBX UEFI..."
t MSG_353 "Kemas kini DBX tersedia"
t MSG_354 "Rufus telah menemui versi kemas kini fail DBX yang digunakan untuk melakukan pemeriksaan penarikan balik Secure Boot UEFI. Adakah anda mahu memuat turun kemas kini ini?\n- Pilih 'Ya' untuk menyambung ke Internet dan memuat turun kandungan ini\n- Pilih 'Tidak' untuk membatalkan operasi\n\nNota: Fail akan dimuat turun ke dalam direktori aplikasi dan akan digunakan semula secara automatik jika tersedia."
t MSG_355 "⚠SECARA SENYAP⚠ padam cakera dan pasang:"
t MSG_356 "Anda telah memilih untuk menggunakan pilihan pemasangan Windows \"senyap\".\n\nIni adalah pilihan lanjutan, dikhaskan untuk mereka yang ingin mencipta media yang tidak meminta pengguna semasa pemasangan Windows dan oleh itu MEMADAM SECARA TANPA SYARAT cakera pertama yang dikesan pada sistem sasaran.\n\nAnda MESTI membaca dan menerima semua pernyataan berikut untuk meneruskan:"
t MSG_358 "Lokasi imej tidak disokong"
t MSG_359 "Anda tidak boleh menggunakan imej yang terletak pada pemacu sasaran, kerana pemacu tersebut akan dipadam sepenuhnya. Ia sama seperti cuba menggergaji dahan yang anda duduki!\n\nSila pindahkan imej ke lokasi lain dan cuba lagi."
t MSG_360 "Adalah selamat untuk membiarkan pilihan ini didayakan walaupun anda mempunyai TPM atau lebih RAM, kerana pilihan ini hanya memintas keperluan persediaan dan tidak benar-benar menghalang Windows daripada menggunakan semua perkakasan yang tersedia."
t MSG_361 "Untuk pilihan ini berfungsi, rangkaian/Internet MESTI diputuskan semasa pemasangan!"
t MSG_362 "Secara automatik jawab 'tidak' kepada soalan persediaan Windows berkaitan perkongsian data dengan Microsoft, dan bukannya meminta pengguna."
t MSG_363 "Anda sepatutnya membiarkan pilihan ini didayakan, melainkan anda okay dengan 'Windows To Go' mengakses cakera dalaman dan secara senyap melakukan peningkatan sistem fail yang tidak boleh diundurkan."
t MSG_364 "Secara automatik mencipta akaun tempatan dengan nama pengguna yang ditentukan, menggunakan kata laluan kosong yang perlu ditukar pada log masuk seterusnya."
t MSG_365 "Salin tetapan rantau dari PC ini (papan kekunci, zon waktu, mata wang), dan bukannya meminta pengguna."
t MSG_366 "Jangan suliikan cakera sistem, melainkan diminta secara jelas oleh pengguna."
t MSG_367 "Guna pilihan ini hanya jika anda tahu apa itu S-Mode dan faham bahawa sistem anda mungkin dikunci ke S-Mode walaupun selepas anda memadam sepenuhnya dan memasang semula Windows."
t MSG_368 "Guna pilihan ini jika sistem yang anda rancang untuk memasang Windows menggunakan sijil Secure Boot yang terkini sepenuhnya. Jika perlu, anda boleh melihat penggunaan 'Mosby' untuk mengemas kini sistem anda."
t MSG_369 "Guna pilihan ini jika anda ingin menarik balik pemuat but Windows tambahan yang mungkin tidak selamat, tetapi dengan potensi juga menghalang media Windows standard daripada membuat but."
t MSG_370 "Penambahbaikan \"Kualiti Hidup\": Lumpuhkan kebanyakan ciri yang tidak diingini yang Microsoft cuba paksa kepada pengguna akhir."
t MSG_371 "Jika anda menggunakan pilihan ini, sila pastikan untuk memutuskan setiap cakera dari PC sasaran, kecuali yang anda ingin pasangkan Windows, serta jangan biarkan media dipasang ke mana-mana PC yang anda tidak mahu padamkan."
t MSG_372 "SAYA AKAN memastikan semua cakera, kecuali cakera Windows, diputuskan sambungannya."
t MSG_373 "SAYA AKAN memastikan media ini tidak disambungkan pada PC yang tidak akan saya padamkan."
t MSG_374 "SAYA BERSETUJU bahawa sebarang kehilangan data akibat pilihan ini adalah tanggungjawab saya."
t MSG_900 "Rufus adalah utiliti yang membantu memformat dan mencipta pemacu kilat USB boot, seperti pemacu pen/kekunci USB, kayu memori, dan lain-lain."
t MSG_901 "Laman rasmi: %s"
t MSG_902 "Kod Sumber: %s"
t MSG_903 "Log Perubahan: %s"
t MSG_904 "Permohonan ini dilesenkan di bawah syarat-syarat Lesen Awam GNU (GPL) versi 3.\nLihat https://www.gnu.org/licenses/gpl-3.0.html untuk butiran."
t MSG_910 "Formatkan USB, kad flash dan pemacu maya kepada FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3"
t MSG_911 "Buat pemacu USB boleh boot FreeDOS"
@ -10428,7 +10328,7 @@ t MSG_352 "Søker etter UEFIDBXoppdateringer..."
t MSG_353 "UEFIDBXoppdatering tilgjengelig"
t MSG_354 "Rufus har funnet en oppdatert versjon av DBXfilene som brukes til å utføre tilbakekallingssjekk for UEFI Secure Boot. Vil du laste ned denne oppdateringen?\n Velg «Ja» for å koble til Internett og laste ned innholdet\n Velg «Nei» for å avbryte operasjonen\n\nMerk: Filene lastes ned til programmets katalog og vil automatisk bli gjenbrukt hvis de allerede finnes."
t MSG_355 "⚠STILLEMODUS⚠ slett disk og installer:"
t MSG_356 "Du har valgt alternativet for «stille» Windowsinstallasjon.\n\nDette er et avansert alternativ, beregnet for brukere som ønsker å opprette installasjonsmedier som ikke viser noen spørsmål under Windowsinstallasjonen, og som derfor UBETINGET SLETTER den første oppdagede disken på målsystemet.\n\nDu MÅ lese og godta alle følgende erklæringer for å fortsette:"
t MSG_356 "Du har valgt alternativet for «stille» Windowsinstallasjon.\n\nDette er et avansert alternativ, beregnet for brukere som ønsker å opprette installasjonsmedier som ikke viser noen spørsmål under Windowsinstallasjonen, og som derfor UBETINGET SLETTER den første oppdagede disken på målsystemet. Uforsiktig bruk av dette alternativet kan føre til UGJENKALLELIG TAP AV DATA!\n\nHvis dette ikke er det du ønsker, velg «Nei» for å gå tilbake og fjerne avmerkingen for dette alternativet.\nHvis du derimot velger «Ja», bekrefter du at alt ansvar for eventuell datatap fullt og helt ligger hos DEG."
t MSG_358 "Ugyldig bildelokasjon"
t MSG_359 "Du kan ikke bruke et bilde som er lagret på måldisken, siden denne disken vil bli fullstendig slettet. Det tilsvarer å sage av grenen du sitter på!\n\nFlytt bildet til en annen plassering og prøv igjen."
t MSG_360 "Det er trygt å la dette alternativet være aktivert selv om systemet har TPM eller mer RAM, siden alternativet kun omgår installasjonskravene og ikke hindrer Windows i å bruke all tilgjengelig maskinvare."
@ -10443,9 +10343,6 @@ t MSG_368 "Bruk dette alternativet dersom systemet du planlegger å installere W
t MSG_369 "Bruk dette alternativet hvis du ønsker å tilbakekalle flere potensielt usikre Windowsbootloaders, men vær oppmerksom på at dette også kan hindre standard Windowsmedier i å starte."
t MSG_370 "«Quality of Life»-forbedringer: Deaktiverer de fleste uønskede funksjonene Microsoft forsøker å påtvinge sluttbrukere."
t MSG_371 "Hvis du bruker dette alternativet, sørg for å koble fra alle disker fra målPCen unntatt den du vil installere Windows på, og pass på at installasjonsmediet ikke er koblet til noen PC du ikke ønsker å slette."
t MSG_372 "JEG VIL sørge for at alle disker, unntatt den jeg vil installere Windows på, er frakoblet."
t MSG_373 "JEG VIL sørge for at dette mediet ikke er tilkoblet en PC jeg ikke planlegger å slette."
t MSG_374 "JEG GODTAR at ethvert datatap fra dette alternativet er helt og fullt mitt ansvar."
t MSG_900 "Rufus er et verktøy som hjelper til med å formatere og lage oppstartbare USB-stasjoner, for eksempel USB-minnepinner, USB-harddisker, og lignende."
t MSG_901 "Offisiell webside: %s"
t MSG_902 "Kildekode: %s"
@ -10885,7 +10782,7 @@ t MSG_352 "درحال بررسی بروزرسانی برای UEFI DBX..."
t MSG_353 "آپدیت DBX موجود است"
t MSG_354 "Rufus یک نسخه بروزرسانی شده از فایل های DBX که در ابطال بررسی های UEFI Secure Boot استفاده میشوند پیدا کرده است, آیا میخواهید این بروزرسانی را بارگیری کنید؟ \n- انتخاب 'بله' برای وصل شدن به اینترنت و دانلود آن\n- انتخاب 'نه' برای کنسل این عملیات\n\nنکته: فایل در مکان نرم افزار دانلود میشود و درصورت نیاز دوباره استفاده خواهد شد."
t MSG_355 "⚠مخفیانه⚠ دیسک را پاک کن و نصب کن:"
t MSG_356 "شما انتخاب کرده‌اید که از گزینه نصب ویندوز «مخفیانه» استفاده کنید.\n\nاین یک گزینه پیشرفته است که برای افرادی در نظر گرفته شده است که می‌خواهند مدیا ایجاد کنند که در حین نصب ویندوز به کاربر اطلاع ندهد و بنابراین بدون قید و شرط اولین دیسک شناسایی شده روی سیستم هدف را پاک کند. اگر مراقب نباشید، استفاده از این گزینه می‌تواند منجر به از دست رفتن غیرقابل برگشت داده‌ ها شود!\n\nاگر این چیزی نیست که می‌خواهید، لطفاً برای بازگشت و برداشتن تیک گزینه، «خیر» را انتخاب کنید.\n\nبرای ادامه، باید تمام موارد زیر را بخوانید و بپذیرید:"
t MSG_356 "شما انتخاب کرده‌اید که از گزینه نصب ویندوز «مخفیانه» استفاده کنید.\n\nاین یک گزینه پیشرفته است که برای افرادی در نظر گرفته شده است که می‌خواهند مدیا ایجاد کنند که در حین نصب ویندوز به کاربر اطلاع ندهد و بنابراین بدون قید و شرط اولین دیسک شناسایی شده روی سیستم هدف را پاک کند. اگر مراقب نباشید، استفاده از این گزینه می‌تواند منجر به از دست رفتن غیرقابل برگشت داده‌ ها شود!\n\nاگر این چیزی نیست که می‌خواهید، لطفاً برای بازگشت و برداشتن تیک گزینه، «خیر» را انتخاب کنید.\n\nدر غیر این صورت، اگر «بله» را انتخاب کنید، موافقید که تمام مسئولیت هرگونه از دست رفتن داده‌ ها کاملاً بر عهده شما خواهد بود."
t MSG_358 "محل پشتیبانی نشده ایمیج (Image)"
t MSG_359 "شما نمیتوانید از این ایمیج که در درایو موردنظر است استفاده کنید. زیرا این درایو قرار است کاملا پاک شود, مثل این میماند که میخواهید شاخه درختی که بر روی آن نشسته اید را ببرید! \n\nلطفا ایمیج را به یه محل دیگه منتقل کنید و دوباره تلاش کنید."
t MSG_360 "روشن گزاشتن این گزینه امن است زیرا حتی اگر TPM و یا RAM بیشتر داشته باشید, زیرا که این گزینه فقط باعث دور زدن الزامات نصب میباشد و باعث جلوگیری ویندوز از استفاده نکردن از تمامی سخت افزار موجود نمیشود."
@ -10900,9 +10797,6 @@ t MSG_368 "از این گزینه درصورتی استفاده کنید که س
t MSG_369 "از این گزینه فقط درصورتی که میخواهید بوتلودر های ناامن ویندوز را لغو کنید, اما با پتانسیل جلوگیری از بوت شدن ویندوز مدیا استاندارد."
t MSG_370 "\"Quality of Life\""
t MSG_371 "اگر میخواهید از این گزینه استفاده کنید, لطفا تمامی دیسک ها از کامپیوتر موردنظر قطع کنید, بجز آنکه میخواهید ویندوز را در آن نصب کنید, و همچنین فلش را به کامپیوتری که نمی‌خواهید اطلاعاتش پاک شود، متصل نگذارید."
t MSG_372 "اطمینان می‌کنم که همه دیسک‌ها، جز دیسک مقصد Windows، قطع شده باشند."
t MSG_373 "اطمینان حاصل می‌کنم که این رسانه را به کامپیوتری که قصد پاک کردن آن را ندارم، متصل نگذارم."
t MSG_374 "می‌پذیرم که هرگونه از دست رفتن داده‌ها ناشی از استفاده از این گزینه، کاملاً بر عهده من است."
t MSG_900 "Rufus ابزاری است که به فرمت و ایجاد درایوهای فلش USB قابل بوت، مانند کلیدهای USB/pendrives، مموری استیک ها و غیره به شما کمک می کند."
t MSG_901 "سایت رسمی: %s"
t MSG_902 "منبع کد: %s"
@ -11329,7 +11223,7 @@ t MSG_352 "Sprawdzanie aktualizacji bazy UEFI DBX…"
t MSG_353 "Dostępna aktualizacja DBX"
t MSG_354 "Rufus wykrył zaktualizowaną wersję plików DBX używanych do sprawdzania unieważnień w UEFI Secure Boot. Czy chcesz pobrać tę aktualizację?\n Wybierz „Tak”, aby połączyć się z Internetem i pobrać tę zawartość\n Wybierz „Nie”, aby anulować operację\n\nUwaga: Pliki zostaną pobrane do katalogu aplikacji i będą automatycznie ponownie wykorzystywane, jeśli już tam się znajdują."
t MSG_355 "⚠AUTOMATYCZNIE I BEZ POTWIERDZENIA⚠ wymaż dysk i zainstaluj:"
t MSG_356 "Wybrałeś opcję „cichej” instalacji systemu Windows.\n\nJest to opcja zaawansowana, przeznaczona dla osób, które chcą utworzyć nośnik instalacyjny niewyświetlający żadnych monitów podczas instalacji systemu Windows, a co za tym idzie BEZWARUNKOWO WYMAZUJĄCY pierwszy wykryty dysk w systemie docelowym. Jeśli nie zachowasz ostrożności, użycie tej opcji może doprowadzić do NIEODWRACALNEJ UTRATY DANYCH!\n\nAby kontynuować, MUSISZ przeczytać i zaakceptować wszystkie poniższe stwierdzenia:"
t MSG_356 "Wybrałeś opcję „cichej” instalacji systemu Windows.\n\nJest to opcja zaawansowana, przeznaczona dla osób, które chcą utworzyć nośnik instalacyjny niewyświetlający żadnych monitów podczas instalacji systemu Windows, a co za tym idzie BEZWARUNKOWO WYMAZUJĄCY pierwszy wykryty dysk w systemie docelowym. Jeśli nie zachowasz ostrożności, użycie tej opcji może doprowadzić do NIEODWRACALNEJ UTRATY DANYCH!\n\nJeśli nie o to ci chodzi, wybierz „Nie”, aby wrócić i odznaczyć tę opcję.\nW przeciwnym razie, wybierając „Tak”, zgadzasz się, że cała odpowiedzialność za ewentualną utratę danych spoczywa WYŁĄCZNIE na TOBIE."
t MSG_358 "Nieobsługiwana lokacja obrazu"
t MSG_359 "Nie możesz użyć obrazu, który znajduje się na dysku docelowym, ponieważ ten dysk zostanie całkowicie wymazany. To dokładnie to samo, co próba piłowania gałęzi, na której się siedzi!\n\nPrzenieś obraz w inne miejsce i spróbuj ponownie."
t MSG_360 "Można bezpiecznie pozostawić tę opcję włączoną, nawet jeśli posiadasz moduł TPM lub większą ilość pamięci RAM, ponieważ opcja ta jedynie omija wymagania instalatora i w rzeczywistości nie uniemożliwia systemowi Windows korzystania z całego dostępnego sprzętu."
@ -11344,9 +11238,6 @@ t MSG_368 "Użyj tej opcji, jeśli system, na którym planujesz zainstalować sy
t MSG_369 "Użyj tej opcji, jeśli chcesz unieważnić dodatkowe, potencjalnie niebezpieczne programy rozruchowe systemu Windows, mając jednak świadomość, że może to również uniemożliwić uruchamianie standardowych nośników instalacyjnych Windows."
t MSG_370 "Usprawnienia jakości życia („Quality of Life”): wyłączenie większości niechcianych funkcji, które Microsoft próbuje narzucać użytkownikom końcowym."
t MSG_371 "Jeśli korzystasz z tej opcji, upewnij się, że odłączyłeś wszystkie dyski od komputera docelowego z wyjątkiem tego, na którym chcesz zainstalować system Windows, oraz że nie pozostawiasz nośnika podłączonego do żadnego komputera, którego nie chcesz wymazać."
t MSG_372 "ZAPEWNIĘ, że wszystkie dyski oprócz dysku z Windows są odłączone."
t MSG_373 "ZAPEWNIĘ, że nie pozostawię tego nośnika podłączonego do komputera, którego nie planuję wymazać."
t MSG_374 "ZGADZAM SIĘ, że wszelka utrata danych wynikająca z użycia tej opcji obciąża wyłącznie mnie."
t MSG_900 "Rufus to narzędzie, które pomaga formatować i tworzyć dyski rozruchowe flash USB, takie jak klucze USB, pendrive-y itp."
t MSG_901 "Oficjalna strona: %s"
t MSG_902 "Kod źródłowy: %s"
@ -11771,7 +11662,7 @@ t MSG_352 "Verificando atualizações do UEFI DBX..."
t MSG_353 "Atualização do DBX disponível"
t MSG_354 "Rufus encontrou uma versão atualizada dos arquivos DBX usados para realizar verificações de revogação do UEFI Secure Boot. Você quer baixar esta atualização?\n- Selecione 'Sim' para se conectar à Internet e baixar este conteúdo\n- Selecione 'Não' para cancelar a operação\n\nNota: Os arquivos serão baixados no diretório da aplicação e serão reutilizados automaticamente caso presentes."
t MSG_355 "⚠SILENCIOSAMENTE⚠ apagar o disco e instalar:"
t MSG_356 "Você selecionou a opção de instalação \"silenciosa\" do Windows.\n\nEsta é uma opção avançada, reservada para quem pretende criar uma mídia que não questiona o usuário durante a instalação do Windows e que, portanto, INCONDICIONALMENTE APAGA o primeiro disco detectado no sistema de destino. Se você não for cuidadoso, usar esta opção pode resultar em PERDA IRREVERSÍVEL DE DADOS!\n\nVocê DEVE ler e aceitar todas as afirmações a seguir para continuar:"
t MSG_356 "Você selecionou a opção de instalação \"silenciosa\" do Windows.\n\nEsta é uma opção avançada, reservada para quem pretende criar uma mídia que não questiona o usuário durante a instalação do Windows e que, portanto, INCONDICIONALMENTE APAGA o primeiro disco detectado no sistema de destino. Se você não for cuidadoso, usar esta opção pode resultar em PERDA IRREVERSÍVEL DE DADOS!\n\nSe não for isso que você deseja, por favor selecione 'Não' para voltar atrás e desmarcar a opção.\nDo contrário, se você selecionar 'Sim', concorda que toda a responsabilidade por qualquer perda de dados será inteiramente SUA."
t MSG_358 "Localização da imagem não suportada"
t MSG_359 "Você não pode usar uma imagem que está localizada na unidade de destino, já que a unidade será completamente apagada. É a mesma coisa que tentar serrar o galho em que você está sentado!\n\nPor favor mova a imagem para um local diferente e tente novamente."
t MSG_360 "É seguro deixar esta opção ativada mesmo que você tenha um TPM ou mais RAM, visto que esta opção apenas ignora os requisitos e não impede, de fato, que o Windows utilize todo o hardware disponível."
@ -11786,9 +11677,6 @@ t MSG_368 "Use esta opção se o sistema onde você pretende instalar o Windows
t MSG_369 "Use esta opção se você quiser revogar carregadores de inicialização do Windows adicionais potencialmente inseguros, mas com o risco de também impedir que mídias padrão do Windows iniciem."
t MSG_370 "Melhorias \"Quality of Life\": Desativa a maioria dos recursos indesejados que a Microsoft está tentando forçar sobre os usuários."
t MSG_371 "Se você usar esta opção, por favor certifique-se de desconectar todos os discos do PC de destino, exceto aquele em que deseja instalar o Windows, bem como não deixar a mídia conectada em qualquer PC que você não queira apagar."
t MSG_372 "EU VOU garantir que todos os discos, exceto o de instalação do Windows, estejam desconectados."
t MSG_373 "EU VOU garantir que não deixarei esta mídia conectada a um PC que não pretendo apagar."
t MSG_374 "EU CONCORDO que qualquer perda de dados pelo uso desta opção é de minha total responsabilidade."
t MSG_900 "Rufus é um utilitário que ajuda a formatar e a criar unidades flash USB inicializáveis, tais como pendrives USB, cartões de memória, etc."
t MSG_901 "Site oficial: %s"
t MSG_902 "Código fonte: %s"
@ -12214,7 +12102,7 @@ t MSG_352 "A verificar se existem atualizações do UEFI DBX..."
t MSG_353 "Atualização do DBX disponível"
t MSG_354 "O Rufus encontrou uma versão atualizada dos ficheiros DBX utilizados para realizar verificações de revogação do Arranque Seguro UEFI. Pretende descarregar esta atualização?\n- Selecionar 'Sim' para se ligar à Internet e descarregar este conteúdo\n- Selecionar 'Não' para cancelar a operação\n\nNota: Os ficheiros serão descarregados para o diretório da aplicação e serão reutilizados automaticamente, caso já existam."
t MSG_355 "⚠SILENCIOSAMENTE⚠ apagar o disco e instalar:"
t MSG_356 "Selecionou a opção de instalação \"silenciosa\" do Windows.\n\nEsta é uma opção avançada, reservada a quem pretende criar um suporte que não apresente mensagens ao utilizador durante a instalação do Windows e que, por conseguinte, APAGA INCONDICIONALMENTE o primeiro disco detetado no sistema de destino. Se não tiver cuidado, a utilização desta opção pode resultar em PERDA IRREVERSÍVEL DE DADOS!\n\nTem de ler e aceitar todas as afirmações seguintes para continuar:"
t MSG_356 "Selecionou a opção de instalação \"silenciosa\" do Windows.\n\nEsta é uma opção avançada, reservada a quem pretende criar um suporte que não apresente mensagens ao utilizador durante a instalação do Windows e que, por conseguinte, APAGA INCONDICIONALMENTE o primeiro disco detetado no sistema de destino. Se não tiver cuidado, a utilização desta opção pode resultar em PERDA IRREVERSÍVEL DE DADOS!\n\nSe não é isso que pretende, selecione 'Não' para voltar atrás e desmarcar a opção.\nCaso contrário, se selecionar 'Sim', concorda que toda a responsabilidade por qualquer perda de dados será inteiramente SUA."
t MSG_358 "Localização da imagem não suportada"
t MSG_359 "Não pode utilizar uma imagem que se encontre na unidade de destino, uma vez que essa unidade vai ser completamente apagada. É o mesmo que tentar serrar o ramo em que está sentado!\n\nMova a imagem para um local diferente e tente novamente."
t MSG_360 "É seguro manter esta opção ativada, mesmo que tenha um TPM ou mais memória RAM, uma vez que esta opção apenas ignora os requisitos de configuração e não impede, de facto, que o Windows utilize todo o hardware disponível."
@ -12229,9 +12117,6 @@ t MSG_368 "Utilizar esta opção se o sistema no qual pretende instalar o Window
t MSG_369 "Utilizar esta opção se pretender revogar carregadores de arranque do Windows adicionais que possam ser inseguros, mas tendo em conta que isso poderá também impedir o arranque a partir de suportes de instalação padrão do Windows."
t MSG_370 "Melhorias na \"Qualidade de Vida\": Desativa a maioria das funcionalidades indesejadas que a Microsoft está a tentar impor aos utilizadores finais."
t MSG_371 "Se utilizar esta opção, certifique-se de que desliga todos os discos do computador de destino, exceto aquele em que pretende instalar o Windows, e não deixe o suporte ligado a nenhum computador que não pretenda apagar."
t MSG_372 "VOU garantir que todos os discos, exceto o de instalação do Windows, estão desligados."
t MSG_373 "VOU garantir que não deixo este suporte ligado a um PC que não pretendo apagar."
t MSG_374 "CONCORDO que qualquer perda de dados desta opção é inteiramente da minha responsabilidade."
t MSG_900 "O Rufus é um utilitário que ajuda a formatar e a criar unidades USB inicializáveis, tais como dispositivos USB/pendrives, cartões de memória, etc."
t MSG_901 "Página oficial: %s"
t MSG_902 "Código fonte: %s"
@ -12660,7 +12545,7 @@ t MSG_352 "Se verifică actualizările DBX UEFI..."
t MSG_353 "Actualizare DBX disponibilă"
t MSG_354 "Rufus a găsit o versiune actualizată a fișierelor DBX folosite pentru verificările de revocare Secure Boot UEFI. Doriți să descărcați această actualizare?\n- Selectați „Da” pentru a vă conecta la internet și a descărca acest conținut\n- Selectați „Nu” pentru a anula operațiunea\n\nNotă: Fișierele vor fi descărcate în directorul aplicației și vor fi reutilizate automat, dacă există."
t MSG_355 "⚠ȘTERGE SILENȚIOS⚠ discul și instalează:"
t MSG_356 "Ați selectat opțiunea de instalare Windows \"silențioasă\".\n\nAceasta este o opțiune avansată, rezervată persoanelor care doresc să creeze suporturi media care nu solicită utilizatorilor informații în timpul instalării Windows și, prin urmare, ȘTERGE NECONDIȚIONAT primul disc detectat pe sistemul țintă. Dacă nu sunteți atenți, utilizarea acestei opțiuni poate duce la PIERDERI IREVERSIBILE DE DATE!\n\nTREBUIE să citiți și să acceptați toate afirmațiile următoare pentru a continua:"
t MSG_356 "Ați selectat opțiunea de instalare Windows \"silențioasă\".\n\nAceasta este o opțiune avansată, rezervată persoanelor care doresc să creeze suporturi media care nu solicită utilizatorilor informații în timpul instalării Windows și, prin urmare, ȘTERGE NECONDIȚIONAT primul disc detectat pe sistemul țintă. Dacă nu sunteți atenți, utilizarea acestei opțiuni poate duce la PIERDERI IREVERSIBILE DE DATE!\n\nDacă acest lucru nu este ceea ce doriți, selectați „Nu” pentru a reveni și a debifa opțiunea.\nÎn caz contrar, dacă selectați „Da”, sunteți de acord că întreaga responsabilitate pentru orice pierdere de date vă va aparține în întregime."
t MSG_358 "Locație imagine neacceptată"
t MSG_359 "Nu puteți folosi o imagine aflată pe unitatea țintă, deoarece acea unitate va fi complet ștearsă. Este același lucru cu încercarea de a tăia creanga pe care stai!\n\nMută imaginea într-o altă locație și încearcă din nou."
t MSG_360 "Este sigur să lăsați această opțiune activată chiar dacă aveți un TPM sau mai multă memorie RAM, deoarece aceasta ocolește doar cerințele de configurare și nu împiedică Windows să utilizeze tot hardware-ul disponibil."
@ -12675,9 +12560,6 @@ t MSG_368 "Folosiți această opțiune dacă sistemul pe care intenționați să
t MSG_369 "Folosiți această opțiune pentru a revoca bootloadere Windows potențial nesigure suplimentare, cu riscul de a împiedica și pornirea suporturilor Windows standard."
t MSG_370 "Îmbunătățiri \"Quality of Life\": Dezactivează majoritatea funcțiilor nedorite pe care Microsoft încearcă să le impună utilizatorilor finali."
t MSG_371 "Dacă folosiți această opțiune, asigurați-vă că deconectați toate discurile de la computerul țintă, cu excepția celui pe care doriți să instalați Windows, și nu lăsați suportul conectat la niciun computer pe care nu doriți să îl ștergeți."
t MSG_372 "MĂ VOI ASIGURA că toate discurile, cu excepția discului Windows, sunt deconectate."
t MSG_373 "MĂ VOI ASIGURA că nu las acest mediu conectat la un PC pe care nu intenționez să îl șterg."
t MSG_374 "SUNT DE ACORD că orice pierdere de date din această opțiune îmi revine în întregime mie."
t MSG_900 "Rufus este un utilitar care ajută la formatarea și crearea de drive-uri USB bootabile, precum cheile sau pendriverele USB, unități de memorie, etc."
t MSG_901 "Site oficial: %s"
t MSG_902 "Cod sursă: %s"
@ -13112,7 +12994,7 @@ t MSG_352 "Проверка обновлений UEFI DBX..."
t MSG_353 "Доступно обновление DBX"
t MSG_354 "Обнаружена обновлённая версия файлов DBX, используемых для проверки отзыва безопасной загрузки UEFI. Загрузить это обновление?\n- 'Да': подключиться к Интернету и загрузить этот контент.\n- 'Нет': отменить операцию\n\n* Файлы будут загружены в папку приложения с автоматической перезаписью имеющихся."
t MSG_355 "⚠ТИХО⚠ стереть диск и установить:"
t MSG_356 "Вы выбрали вариант \"тихой\" установки Windows.\n\nЭто параметр для тех, кто хочет создать носитель, который не запрашивает реакций пользователя при установке Windows и, следовательно, БЕЗУСЛОВНО УДАЛЯЕТ первый обнаруженный диск в целевой системе. Если вы не будете осторожны, использование этой опции может привести к НЕОБРАТИМОЙ ПОТЕРЕ ДАННЫХ!\n\nДля продолжения вы ДОЛЖНЫ прочитать и принять все следующие условия:"
t MSG_356 "Вы выбрали вариант \"тихой\" установки Windows.\n\nЭто параметр для тех, кто хочет создать носитель, который не запрашивает реакций пользователя при установке Windows и, следовательно, БЕЗУСЛОВНО УДАЛЯЕТ первый обнаруженный диск в целевой системе. Если вы не будете осторожны, использование этой опции может привести к НЕОБРАТИМОЙ ПОТЕРЕ ДАННЫХ!\n\nЕсли это не то, что вам нужно, выберите 'Нет', чтобы вернуться назад и снять флажок с этой опции.\nПри выборе 'Да' вы соглашаетесь, что вся ответственность за любую потерю данных будет полностью лежать на ВАС."
t MSG_358 "Неподдерживаемое расположение образа"
t MSG_359 "Нельзя использовать образ, расположенный на целевом диске, поскольку этот диск будет полностью удалён. Это то же самое, как пилить сук, на котором сидишь!\n\nПереместите образ в другое место и повторите попытку."
t MSG_360 "Эту опцию безопасно оставлять включённой, даже если у вас есть модуль TPM или больше ОЗУ, поскольку данная опция только обходит требования установки и фактически не мешает Windows использовать все доступное оборудование."
@ -13127,9 +13009,6 @@ t MSG_368 "Используйте эту опцию, если система, в
t MSG_369 "Используйте эту опцию, чтобы отозвать дополнительные потенциально небезопасные загрузчики Windows, но с возможностью предотвращения загрузки стандартных носителей Windows."
t MSG_370 "Улучшить жизнь: отключить большинство нежелательных функций, которые Microsoft пытается навязать пользователям."
t MSG_371 "Если вы используете эту опцию, обязательно отключите от целевого компьютера все диски, кроме того, на котором вы хотите установить Windows, а также не оставляйте носитель подключённым к любому компьютеру, с которого вы не хотите стирать данные."
t MSG_372 "Я ОБЕСПЕЧУ, чтобы все диски, кроме того, на который я хочу установить Windows, были отключены."
t MSG_373 "Я ОБЕСПЕЧУ, чтобы этот носитель не оставался подключённым к ПК, который я не планирую стирать."
t MSG_374 "Я СОГЛАШАЮСЬ, что любая потеря данных из-за этой опции полностью лежит на мне."
t MSG_900 "Rufus - это утилита для форматирования и создания загрузочных флеш-накопителей USB."
t MSG_901 "Официальный сайт: %s"
t MSG_902 "Исходный код: %s"
@ -13559,7 +13438,7 @@ t MSG_352 "Proverava ažuriranja za UEFI DBX..."
t MSG_353 "Dostupno ažuriranje DBX-a"
t MSG_354 "Rufus je pronašao ažuriranu verziju DBX datoteka koje se koriste za izvođenje proverava opoziva UEFI Secure Boot-a. Želite li preuzeti ovo ažuriranje?\n- Odaberite 'Da' da biste se povezali na internet i preuzeli ovaj sadržaj\n- Odaberite 'Ne' da biste otkazali operaciju\n\nNapomena: Datoteke će biti preuzete u folderu aplikacije i automatski će se ponovo koristiti ako postoje."
t MSG_355 "⚠TIHO⚠ obriši disk i instaliraj:"
t MSG_356 "Izabrali ste opciju „tihe“ instalacije sistema Windows.\n\nOvo je napredna opcija, rezervisana za ljude koji žele da kreiraju medije koji ne obaveštavaju korisnika tokom instalacije sistema Windows i stoga BEZUSLOVNO BRIŠU prvi detektovani disk na ciljnom sistemu. Ako niste pažljivi, korišćenje ove opcije može dovesti do NEPOVRATNOG GUBITKA PODATAKA!\n\nДа бисте наставили, МОРАТЕ да прочитате и прихватите све следеће изјаве:"
t MSG_356 "Izabrali ste opciju „tihe“ instalacije sistema Windows.\n\nOvo je napredna opcija, rezervisana za ljude koji žele da kreiraju medije koji ne obaveštavaju korisnika tokom instalacije sistema Windows i stoga BEZUSLOVNO BRIŠU prvi detektovani disk na ciljnom sistemu. Ako niste pažljivi, korišćenje ove opcije može dovesti do NEPOVRATNOG GUBITKA PODATAKA!\n\nAko ovo nije ono što želite, izaberite „Ne“ da biste se vratili i opozvali izbor opcije.\nU suprotnom, ako izaberete „Da“, slažete se da će sva odgovornost za bilo kakav gubitak podataka biti u potpunosti na VAMA."
t MSG_358 "Nepodržana lokacija slike"
t MSG_359 "Ne možete koristiti sliku koja se nalazi na ciljnom disku, jer će taj disk biti potpuno obrisan. To je isto kao i pokušaj da sečete granu na kojoj sedite!\n\nMolimo vas da premestite sliku na drugu lokaciju i pokušate ponovo."
t MSG_360 "Bezbedno je ostaviti ovu opciju omogućenu čak i ako imate TPM ili više RAM-a, jer ova opcija samo zaobilazi zahteve za podešavanje i zapravo ne sprečava Windows da koristi sav dostupan hardver."
@ -13574,9 +13453,6 @@ t MSG_368 "Koristite ovu opciju ako sistem na koji planirate da instalirate Wind
t MSG_369 "Koristite ovu opciju ako želite da opozovete dodatne potencijalno nebezbedne Windows pokretačke programe, ali sa mogućnošću da sprečite i pokretanje standardnih Windows medija."
t MSG_370 "Poboljšanja „Kvaliteta života“: Onemogućite većinu neželjenih funkcija koje Majkrosoft pokušava da nametne krajnjim korisnicima."
t MSG_371 "Ako koristite ovu opciju, obavezno isključite svaki disk sa ciljnog računara, osim onog na koji želite da instalirate Windows, kao i da ne ostavljate medijum priključen na bilo koji računar koji ne želite da obrišete."
t MSG_372 "ПОБРИНУЋУ СЕ да сви дискови, осим оног на који желим да инсталирам Windows, буду искључени."
t MSG_373 "ПОБРИНУЋУ СЕ да овај медијум не оставим повезан са рачунаром који не планирам да обришем."
t MSG_374 "САГЛАСАН/НА САМ да губитак података услед ове опције пада искључиво на мене."
t MSG_900 "Rufus je uslužni program koji pomaže u formatiranju i kreiranju USB fleš diskova koji se mogu pokretati, kao što su USB ključevi, memorijski štapići itd."
t MSG_901 "Zvaničan sajt: %s"
t MSG_902 "Izvorni kod: %s"
@ -14004,7 +13880,7 @@ t MSG_352 "Prebieha kontrola aktualizácie pre UEFI DBX..."
t MSG_353 "Dostupná aktualizácia DBX"
t MSG_354 "Rufus našiel aktualizovanú verziu DBX súborov používaných na kontrolu odvolávania UEFI Secure Boot. Chcete si stiahnuť túto aktualizáciu?\n- Vyberte „Áno\" ak chcete tieto súbory stiahnuť\n- Vyberte „Nie\" pre zrušenie operácie\n\nPoznámka: Súbory budú stiahnuté do adresára aplikácie a budú automaticky znovu použité, ak budú prítomné."
t MSG_355 "⚠BEZ UPOZORNENIA⚠ vymažte disk a nainštaluje:"
t MSG_356 "Vybrali ste možnosť „tichá\" inštalácia Windows.\n\nIde o pokročilú možnosť, vyhradenú pre ľudí, ktorí chcú vytvárať médiá, ktoré počas inštalácie Windows neupozorňujú používateľa a teda BEZPODMIENEČNE VYMAŽÚ prvý zistený disk na cieľovom systéme. Ak nebudete opatrní, pri tejto možnosti môže dôjsť k NEVRATNEJ STRATE DÁT!\n\nNa pokračovanie MUSÍTE prečítať a prijať všetky nasledujúce vyhlásenia:"
t MSG_356 "Vybrali ste možnosť „tichá\" inštalácia Windows.\n\nIde o pokročilú možnosť, vyhradenú pre ľudí, ktorí chcú vytvárať médiá, ktoré počas inštalácie Windows neupozorňujú používateľa a teda BEZPODMIENEČNE VYMAŽÚ prvý zistený disk na cieľovom systéme. Ak nebudete opatrní, pri tejto možnosti môže dôjsť k NEVRATNEJ STRATE DÁT!\n\nAk to nie je to, čo chcete, vyberte prosím „Nie\", aby ste sa vrátili späť a odškrtli túto možnosť.\nInak, ak zvolíte „Áno\", súhlasíte, že plná zodpovednosť za akúkoľvek stratu dát bude úplne na VÁS."
t MSG_358 "Nepodporované umiestnenie obrazu"
t MSG_359 "Nemôžete použiť obraz, ktorý sa nachádza na cieľovom disku, pretože tento disk bude úplne vymazaný. Je to to isté, ako keby ste sa snažili rezať konár, na ktorom sedíte!\n\nProsím, presuňte tento obraz do iného umiestnenia a skúste to znova."
t MSG_360 "Je bezpečné nechať túto možnosť zapnutú aj v prípade, že máte TPM alebo viac RAM, pretože táto možnosť len obchádza požiadavky na nastavenie a v skutočnosti nebráni Windows v používaní všetkého dostupného hardvéru."
@ -14019,9 +13895,6 @@ t MSG_368 "Použite túto možnosť, ak systém ktorý plánujete nainštalovať
t MSG_369 "Použite túto možnosť, ak chcete zrušiť ďalšie potenciálne nebezpečné bootloadery Windows, ale zároveň potenciálne zabrániť spusteniu štandardných Windows médií."
t MSG_370 "Vylepšenia „kvality života\": Vypne väčšinu nežiaducich funkcií, ktoré sa Microsoft snaží vnútiť koncovým používateľom."
t MSG_371 "Ak použijete túto možnosť, uistite sa, že máte odpojené všetky disky od cieľového PC, okrem toho na ktorý chcete nainštalovať systém Windows. Taktiež nenechávajte médium pripojené k žiadnemu PC, ktorý nechcete vymazať."
t MSG_372 "ZABEZPEČÍM, že všetky disky, okrem toho, na ktorý chcem nainštalovať Windows, budú odpojené."
t MSG_373 "ZABEZPEČÍM, že toto médium nezostane pripojené k počítaču, ktorý neplánujem vymazať."
t MSG_374 "SÚHLASÍM, že akákoľvek strata dát z použitia tejto možnosti je výlučne mojou zodpovednosťou."
t MSG_900 "Rufus je utilita, ktorá vám pomôže naformátovať a vytvoriť bootovacie jednotky USB Flash, ako sú napr. USB kľúče, pamäťové karty, atď."
t MSG_901 "Oficiálna stránka: %s"
t MSG_902 "Zdrojový kód: %s"
@ -14445,10 +14318,7 @@ t MSG_347 "Strokovni način"
t MSG_348 "Ekstrahiranje arhivskih datotek: %s"
t MSG_349 "Uporabite Rufus MBR"
t MSG_355 "⚠TIHO⚠ izbrišite disk in namestite:"
t MSG_356 "Izbrali ste možnost \"tihe\" namestitve sistema Windows.\n\nTo je napredna možnost, namenjena uporabnikom, ki želijo ustvariti namestitveni nosilec, ki med namestitvijo sistema Windows ne prikazuje pozivov in zato BREZ POGOJEV IZBRISE prvi zaznan disk v ciljnem sistemu. Če niste previdni, lahko uporaba te možnosti povzroči NEPOPRAVLJIVO IZGUBO PODATKOV!\n\nZa nadaljevanje MORATE prebrati in sprejeti vse naslednje izjave:"
t MSG_372 "POSKRBEL/A BOM, da bodo vsi diski, razen diska za Windows, izklopljeni."
t MSG_373 "POSKRBEL/A BOM, da tega medija ne pustim na računalniku, ki ga ne nameravam izbrisati."
t MSG_374 "STRINJAM SE, da je vsaka izguba podatkov iz te možnosti izključno moja odgovornost."
t MSG_356 "Izbrali ste možnost \"tihe\" namestitve sistema Windows.\n\nTo je napredna možnost, namenjena uporabnikom, ki želijo ustvariti namestitveni nosilec, ki med namestitvijo sistema Windows ne prikazuje pozivov in zato BREZ POGOJEV IZBRISE prvi zaznan disk v ciljnem sistemu. Če niste previdni, lahko uporaba te možnosti povzroči NEPOPRAVLJIVO IZGUBO PODATKOV!\n\nČe tega ne želite, izberite \"Ne\", da se vrnete nazaj in odkljukate to možnost.\nV nasprotnem primeru, če izberete \"Da\", se strinjate, da boste za morebitno izgubo podatkov v celoti odgovorni VI."
t MSG_900 "Rufus je program za formatiranje in ustvarjanje zagonskih naprav USB."
t MSG_901 "Uradna stran: %s"
t MSG_902 "Šifra vira: %s"
@ -14870,7 +14740,7 @@ t MSG_352 "Comprobando actualizaciones de UEFI DBX..."
t MSG_353 "Actualización de DBX disponible"
t MSG_354 "Rufus ha encontrado una versión actualizada de los archivos DBX utilizados para realizar comprobaciones de revocación de Secure Boot en UEFI. ¿Desea descargar esta actualización?\n- Seleccione 'Sí' para conectarse a Internet y descargar este contenido\n- Seleccione 'No' para cancelar la operación\n\nNota: Los archivos se descargarán en la carpeta de la aplicación y se reutilizarán automáticamente si están presentes."
t MSG_355 "⚠EN SILENCIO⚠ borrar el disco e instalar:"
t MSG_356 "Ha seleccionado usar la opción de instalación \"silenciosa\" de Windows.\n\nEsta es una opción avanzada, reservada para personas que desean crear un medio que no solicite interacción del usuario durante la instalación de Windows y que, por lo tanto, BORRA INCONDICIONALMENTE el primer disco detectado en el sistema de destino. Si no tiene cuidado, usar esta opción puede resultar en UNA PÉRDIDA DE DATOS IRREVERSIBLE.\n\nDEBE leer y aceptar todas las siguientes declaraciones para continuar:"
t MSG_356 "Ha seleccionado usar la opción de instalación \"silenciosa\" de Windows.\n\nEsta es una opción avanzada, reservada para personas que desean crear un medio que no solicite interacción del usuario durante la instalación de Windows y que, por lo tanto, BORRA INCONDICIONALMENTE el primer disco detectado en el sistema de destino. Si no tiene cuidado, usar esta opción puede resultar en UNA PÉRDIDA DE DATOS IRREVERSIBLE.\n\nSi esto no es lo que desea, seleccione 'No' para volver atrás y desmarcar la opción.\nDe lo contrario, si selecciona 'Sí', usted acepta que toda la responsabilidad por cualquier pérdida de datos recaerá únicamente en USTED."
t MSG_358 "Ubicación de imagen no compatible"
t MSG_359 "No puede usar una imagen que esté ubicada en la unidad de destino, ya que esa unidad va a ser completamente borrada. Es lo mismo que intentar serrar la rama en la que está sentado.\n\nPor favor, mueva la imagen a una ubicación diferente e inténtelo de nuevo."
t MSG_360 "Es seguro dejar esta opción habilitada incluso si tiene un TPM o más memoria RAM, ya que esta opción solo omite los requisitos de instalación y no impide que Windows utilice todo el hardware disponible."
@ -14885,9 +14755,6 @@ t MSG_368 "Use esta opción si el sistema en el que planea instalar Windows util
t MSG_369 "Use esta opción si desea revocar cargadores de arranque adicionales de Windows que puedan ser inseguros, pero con la posibilidad de que también se impida que los medios estándar de Windows arranquen."
t MSG_370 "Mejoras de \"Calidad de Vida\": Deshabilitar la mayoría de las funciones no deseadas que Microsoft intenta imponer a los usuarios finales."
t MSG_371 "Si usa esta opción, asegúrese de desconectar todos los discos de la PC de destino, excepto aquel en el que desea instalar Windows, así como de no dejar el medio conectado en ninguna PC que no desee borrar."
t MSG_372 "ME ASEGURARÉ de que todos los discos, excepto el de Windows, estén desconectados."
t MSG_373 "ME ASEGURARÉ de no dejar este medio conectado a una PC que no planeo borrar."
t MSG_374 "ACEPTO que cualquier pérdida de datos por el uso de esta opción es responsabilidad mía."
t MSG_900 "Rufus es una utilidad que le ayuda a formatear y crear dispositivos flash booteables, como «pendrives», tarjetas de memoria, etcétera."
t MSG_901 "Sitio oficial %s"
t MSG_902 "Código fuente %s"
@ -15309,7 +15176,7 @@ t MSG_352 "Söker efter UEFIDBXuppdateringar..."
t MSG_353 "DBXuppdatering tillgänglig"
t MSG_354 "Rufus har hittat en uppdaterad version av de DBXfiler som används för att utföra UEFI Secure Bootåterkallelsekontroller. Vill du ladda ned denna uppdatering?\n- Välj ”Ja” för att ansluta till Internet och ladda ner innehållet\n- Välj ”Nej” för att avbryta åtgärden\n\nObs: Filerna laddas ner till programmets katalog och återanvänds automatiskt om de redan finns."
t MSG_355 "Radera disken i ⚠TYST LÄGE⚠ och installera:"
t MSG_356 "Du har valt alternativet ”tyst läge” för Windowsinstallationen.\n\nDetta är ett avancerat alternativ, avsett för personer som vill skapa installationsmedia som inte visar några dialogrutor under Windowsinstallationen och därför OVILLKORLIGT RADERAR den första upptäckta disken på målsystemet. Om du inte är försiktig kan användning av detta alternativ leda till OÅTERKALLELIG FÖRLUST AV DATA!\n\nDu MÅSTE läsa och godkänna alla följande påståenden för att fortsätta:"
t MSG_356 "Du har valt alternativet ”tyst läge” för Windowsinstallationen.\n\nDetta är ett avancerat alternativ, avsett för personer som vill skapa installationsmedia som inte visar några dialogrutor under Windowsinstallationen och därför OVILLKORLIGT RADERAR den första upptäckta disken på målsystemet. Om du inte är försiktig kan användning av detta alternativ leda till OÅTERKALLELIG FÖRLUST AV DATA!\n\nOm detta inte är vad du vill, välj ”Nej” för att gå tillbaka och avmarkera alternativet.\nAnnars, om du väljer ”Ja”, godkänner du att hela ansvaret för eventuell dataförlust ligger på DIG."
t MSG_358 "Platsen för avbilden stöds inte"
t MSG_359 "Du kan inte använda en avbildning som ligger på målenheten, eftersom den enheten kommer att raderas helt. Det är som att försöka såga av grenen du sitter på!\n\nFlytta avbildningen till en annan plats och försök igen."
t MSG_360 "Det är säkert att lämna det här alternativet aktiverat även om du har en TPM eller mer RAM, eftersom det endast kringgår installationskraven och inte hindrar Windows från att använda all tillgänglig hårdvara."
@ -15324,9 +15191,6 @@ t MSG_368 "Använd det här alternativet om systemet du planerar att installera
t MSG_369 "Använd det här alternativet om du vill återkalla ytterligare potentiellt osäkra Windowsstartprogram, men med risken att även förhindra att standardWindowsmedia kan starta."
t MSG_370 "Förbättringar för bättre användarupplevelse: Inaktivera de flesta av de oönskade funktioner som Microsoft försöker tvinga på slutanvändare."
t MSG_371 "Om du använder det här alternativet måste du se till att koppla bort alla diskar från måldatorn, förutom den du vill installera Windows på, och inte lämna mediet anslutet till någon dator som du inte vill radera."
t MSG_372 "JAG KOMMER ATT se till att alla diskar utom Windows-disken är frånkopplade."
t MSG_373 "JAG KOMMER ATT se till att detta media inte är anslutet till en dator jag inte planerar radera."
t MSG_374 "JAG ACCEPTERAR att all dataförlust från detta alternativ är helt och fullt mitt ansvar."
t MSG_900 "Rufus är ett program som hjälper dig formatera och skapa startbara USB-diskar, så som USB-minnen, minneskort, etc."
t MSG_901 "Officiell webbplats: %s"
t MSG_902 "Källkod: %s"
@ -15753,7 +15617,7 @@ t MSG_352 "กำลังตรวจสอบการอัปเดตรา
t MSG_353 "มีการอัปเดตรายการเพิกถอนสิทธิ์ (DBX) พร้อมใช้งานแล้ว"
t MSG_354 "Rufus ตรวจเจอเวอร์ชั่นอัพเดตที่ใหม่กว่าของไฟล์ DBX ซึ่งใช้สำหรับตรวจสอบการเพิกถอนสิทธิ์ของ UEFI Secure Boot คุณต้องการดาวน์โหลดไฟล์อัพเดตหรือไม่?\n- เลือก 'ใช่ (Yes)' เพื่อดาวน์โหลดไฟล์ผ่านอินเทอร์เน็ต\n- เลือก 'ไม่ใช่ (No)' เพื่อยกเลิกการดำเนินการ\n\nหมายเหตุ: ไฟล์จะถูกดาวน์โหลดลงในไดเรกทอรีของแอปพลิเคชัน และจะถูกนำกลับมาใช้ใหม่โดยอัตโนมัติหากมีไฟล์อยู่แล้ว"
t MSG_355 "⚠จะไม่มีการถามยืนยันซ้ำ⚠ ลบข้อมูลดิสก์ แล้วติดตั้ง:"
t MSG_356 "คุณเลือกที่จะใช้งานตัวเลือก การติดตั้ง Windows \"แบบเงียบ\"\n\nนี่คือตัวเลือกขั้นสูง ซึ่งสงวนไว้สำหรับผู้ที่ต้องการสร้างสื่อติดตั้งที่จะไม่ถามผู้ใช้ในระหว่างการติดตั้ง Windows ดังนั้นมันจะลบข้อมูลในดิสก์ตัวแรกที่ตรวจพบในระบบปลายทาง **โดยไม่มีเงื่อนไข** หากคุณไม่ระมัดระวัง การใช้ตัวเลือกนี้อาจส่งผลให้ **เกิดการสูญเสียข้อมูลอย่างถาวรและไม่สามารถกู้คืนได้!**\n\nคุณต้องอ่านและยอมรับข้อความต่อไปนี้ทั้งหมดเพื่อดำเนินการต่อ:"
t MSG_356 "คุณเลือกที่จะใช้งานตัวเลือก การติดตั้ง Windows \"แบบเงียบ\"\n\nนี่คือตัวเลือกขั้นสูง ซึ่งสงวนไว้สำหรับผู้ที่ต้องการสร้างสื่อติดตั้งที่จะไม่ถามผู้ใช้ในระหว่างการติดตั้ง Windows ดังนั้นมันจะลบข้อมูลในดิสก์ตัวแรกที่ตรวจพบในระบบปลายทาง **โดยไม่มีเงื่อนไข** หากคุณไม่ระมัดระวัง การใช้ตัวเลือกนี้อาจส่งผลให้ **เกิดการสูญเสียข้อมูลอย่างถาวรและไม่สามารถกู้คืนได้!**\n\nหากนี่ไม่ใช่สิ่งที่คุณต้องการ โปรดเลือก 'ไม่ใช่ (No)' เพื่อย้อนกลับและยกเลิกการเลือกตัวเลือกดังกล่าว\nมิฉะนั้น หากคุณเลือก 'ใช่ (Yes)' คุณยอมรับว่าความรับผิดชอบทั้งหมดต่อการสูญหายของข้อมูลใดๆ จะตกอยู่ที่ตัวคุณแต่เพียงผู้เดียว"
t MSG_358 "ไม่รองรับตำแหน่งที่ตั้งของไฟล์อิมเมจ"
t MSG_359 "คุณไม่สามารถใช้ไฟล์อิมเมจที่อยู่ในไดรฟ์เป้าหมายได้ เนื่องจากไดรฟ์นั้นกำลังจะถูกลบข้อมูลทั้งหมด มันก็เหมือนกับการพยายามทำลายที่มั่นตัวเองอยู่นั่นแหละ!\n\nโปรดย้ายอิมเมจไปยังตำแหน่งอื่นแล้วลองใหม่อีกครั้ง"
t MSG_360 "การเปิดตัวเลือกนี้ทิ้งไว้มีความปลอดภัย ถึงแม้ว่าคุณจะมี TPM หรือแรมที่มากกว่าก็ตาม ตัวเลือกนี้มีผลแค่การข้าม ข้อกำหนดในการติดตั้ง เท่านั้น ไม่ได้ลดทอนการทำงานของ Windows ในการดึงประสิทธิภาพฮาร์ดแวร์มาใช้อย่างเต็มที่"
@ -15768,9 +15632,6 @@ t MSG_368 "ใช้ตัวเลือกนี้หากระบบที
t MSG_369 "ใช้ตัวเลือกนี้หากคุณต้องการเพิกถอนสิทธิ์บูตโหลดเดอร์ของ Windows เพิ่มเติมที่อาจจะไม่ปลอดภัย แต่โปรดทราบว่ามีความเสี่ยงที่จะทำให้สื่อติดตั้ง Windows มาตรฐานทั่วไปไม่สามารถบูตได้ด้วยเช่นกัน"
t MSG_370 "\"การปรับปรุงคุณภาพการใช้งาน (Quality of Life)\": ปิดการใช้งานคุณสมบัติส่วนใหญ่ที่ไม่พึงประสงค์ที่ Microsoft พยายามบังคับให้ผู้ใช้งานทั่วไปต้องใช้"
t MSG_371 "ถ้าหากคุณเลือกตัวเลือกนี้ กรุณาเช็คให้มั่นใจว่าคุณถอดดิสก์ที่เชื่อมกับพีซีเป้าหมาย เหลือไว้เฉพาะดิสก์ที่คุณต้องการจะติดตั้ง Windows เท่านั้น และห้ามเสียบตัวติดตั้ง (เช่น แฟลชไดรฟ์) ทิ้งไว้ในคอมพิวเตอร์เครื่องใดก็ตามที่คุณไม่ต้องการให้ข้อมูลถูกลบ\""
t MSG_372 "ฉันจะตรวจสอบให้แน่ใจว่าดิสก์ทั้งหมด ยกเว้นดิสก์ที่ต้องการติดตั้ง Windows ถูกถอดการเชื่อมต่อแล้ว"
t MSG_373 "ฉันจะตรวจสอบให้แน่ใจว่าจะไม่เสียบสื่อนี้ทิ้งไว้กับพีซีที่ไม่ได้วางแผนจะลบข้อมูล"
t MSG_374 "ฉันยอมรับว่าการสูญหายของข้อมูลใดๆ ที่เกิดจากการใช้ตัวเลือกนี้เป็นความรับผิดชอบของฉันเองทั้งหมด"
t MSG_900 "Rufus คือ โปรแกรมที่ช่วยฟอร์แมต และสร้างไดรฟ์บูต USB จาก USB keys, pendrives, memory sticks เป็นต้น"
t MSG_901 "เว็บไซต์ทางการ: %s"
t MSG_902 "ซอร์สโค้ด: %s"
@ -16198,7 +16059,7 @@ t MSG_352 "UEFI DBX güncellemeleri kontrol ediliyor..."
t MSG_353 "DBX güncellemesi mevcut"
t MSG_354 "Rufus, UEFI Güvenli Önyükleme etkinlik durum kontrollerini gerçekleştirmek için kullanılan DBX dosyalarının güncellenmiş bir sürümünü buldu. Bu güncellemeyi indirmek ister misiniz?\n- İnternete bağlanmak ve bu içeriği indirmek için 'Evet'i seçin\n- İşlemden vazgeçmek için 'Hayır'ı seçin\n\nNot: Dosyalar uygulamanın dizinine indirilecek ve mevcutsa otomatik olarak yeniden kullanılacaktır."
t MSG_355 "⚠SESSİZCE⚠ diski silin ve yükleyin:"
t MSG_356 "\"silent\" Katılımsız Windows kurulum seçeneğini kullanmayı seçtiniz.\n\nBu, Windows kurulumu sırasında kullanıcıya sorulmayan ve bu nedenle hedef sistemdeki ilk algılanan diski KOŞULSUZ OLARAK SİLEN bir ortam oluşturmak isteyenler için ayrılmış gelişmiş bir seçenektir. Dikkatli olmazsanız, bu seçeneği kullanmak GERİ DÖNÜŞÜ OLMAYAN VERİ KAYBINA neden olabilir!\n\nDevam etmek için aşağıdaki tüm ifadeleri okumanız ve kabul etmeniz GEREKİR:"
t MSG_356 "\"silent\" Katılımsız Windows kurulum seçeneğini kullanmayı seçtiniz.\n\nBu, Windows kurulumu sırasında kullanıcıya sorulmayan ve bu nedenle hedef sistemdeki ilk algılanan diski KOŞULSUZ OLARAK SİLEN bir ortam oluşturmak isteyenler için ayrılmış gelişmiş bir seçenektir. Dikkatli olmazsanız, bu seçeneği kullanmak GERİ DÖNÜŞÜ OLMAYAN VERİ KAYBINA neden olabilir!\n\nBunu istemiyorsanız, geri dönmek ve seçeneğin işaretini kaldırmak için lütfen 'Hayır'ı seçin.\nAksi takdirde, 'Evet'i seçerseniz, herhangi bir veri kaybından doğacak tüm sorumluluğun tamamen SİZDE olacağınıı kabul etmiş olursunuz."
t MSG_358 "Desteklenmeyen yansı konumu"
t MSG_359 "Hedef sürücüde bulunan bir yansıyı, sürücü tamamen silineceğinden dolayı kullanamazsınız. Bu, oturduğunuz dalı kesmeye çalışmakla aynı şey!\n\nLütfen yansıyı farklı bir konuma taşıyın ve yeniden deneyin."
t MSG_360 "TPM veya daha fazla RAM'iniz olsa bile bu seçeneği etkin bırakmak güvenlidir, çünkü bu seçenek yalnızca kurulum gereksinimlerini atlar ve Windows'un mevcut tüm donanımı kullanmasını fiilen engellemez."
@ -16213,9 +16074,6 @@ t MSG_368 "Windows'u kurmayı planladığınız sistemde tamamen güncel Güvenl
t MSG_369 "Potansiyel olarak güvenli olmayan ek Windows önyükleme yükleyicilerinden vazgeçmek istiyorsanız, ancak bu işlem standart Windows medyalarının önyüklemesini de engelleme olasılığı varsa bu seçeneği kullanın."
t MSG_370 "\"Yaşam Kalitesi\" iyileştirmeleri: Microsoft'un son kullanıcılara zorla dayatmaya çalıştığı istenmeyen özelliklerin çoğunu devre dışı bırakın."
t MSG_371 "Bu seçeneği kullanıyorsanız, lütfen Windows'u kurmak istediğiniz disk dışındaki, hedef bilgisayardaki tüm diskleri çıkarın ve silmek istemediğiniz hiçbir bilgisayara disk takılı bırakmayın."
t MSG_372 "Yüklemek istediğim disk dışındaki tüm disklerin bağlantısının kesildiğinden EMİN OLACAĞIM."
t MSG_373 "Bu ortamı, silmeyi planlamadığım bir bilgisayara bağlı bırakmayacağımdan EMİN OLACAĞIM."
t MSG_374 "Bu seçenekten kaynaklanan herhangi bir veri kaybının tamamen bana ait olduğunu KABUL EDİYORUM."
t MSG_900 "Rufus, USB anahtar/bellekler, hafıza kartları vb. USB sürücüleri, biçimlendirmeye ve önyüklemeli hale getirmeye yardımcı olan bir araçtır."
t MSG_901 "Resmi site: %s"
t MSG_902 "Kaynak Kodu: %s"
@ -16651,7 +16509,7 @@ t MSG_352 "Перевірка оновлень UEFI DBX..."
t MSG_353 "Доступне оновлення DBX"
t MSG_354 "Rufus знайшов оновлену версію файлів DBX, що використовуються для перевірки відкликання завантажувача UEFI. Чи хочете ви їх завантажити?\n- Виберіть 'Так', щоб завантажити файл з інтернету\n- Виберіть 'Ні', щоб скасувати операцію\n\nПримітка: Файли будуть завантажені в поточний каталог додатку і будуть використовуватися повторно за необхідності."
t MSG_355 "⚠ТИХЕ⚠ видалення та встановлення:"
t MSG_356 "Ви вибрали \"тихе\" встановлення Windows.\n\nЦе додаткова опція, призначена для тих, хто хоче створити завантажувальний диск, який не відволікає користувача під час встановлення Windows, тому ПРИМУСОВО СТИРАЄ перший виявлений диск у цільовій системі. Необачне використання цього параметра може привести до БЕЗПОВОРОТНОЇ ВТРАТИ ДАНИХ!\n\nЩоб продовжити, ви ПОВИННІ прочитати та прийняти всі наступні твердження:"
t MSG_356 "Ви вибрали \"тихе\" встановлення Windows.\n\nЦе додаткова опція, призначена для тих, хто хоче створити завантажувальний диск, який не відволікає користувача під час встановлення Windows, тому ПРИМУСОВО СТИРАЄ перший виявлений диск у цільовій системі. Необачне використання цього параметра може привести до БЕЗПОВОРОТНОЇ ВТРАТИ ДАНИХ!\n\nЯкщо це не те, чого ви прагнете, будь ласка, виберіть 'Ні', щоб повернутись назад і деактивувати цю опцію.\nВ іншому випадку, якщо ви виберете 'Так', - ви ПОВНІСТЮ берете на себе відповідальність за можливу втрату інформації."
t MSG_358 "Непідтримуване розташування образа"
t MSG_359 "Ви не можете використовувати образ, що знаходиться на цільовому диску, так як цей диск буде повністю очищено. Як то кажуть \"не розхитуй човна, бо вивернешся\"!\n\nБудь ласка, перемістіть образ в інше місце і спробуйте знову."
t MSG_360 "Безпечно залишати цю опцію ввімкненою, навіть якщо у вас є TPM чи достатня кількість ОЗП, оскільки ця функція лише обходить вимоги до обладнання та не забороняє Windows використовувати всі наявні ресурси."
@ -16666,9 +16524,6 @@ t MSG_368 "Ввімкніть цю опцію, якщо система, на я
t MSG_369 "Ввімкніть цю опцію, якщо хочете відкликати додаткові потенційно небезпечні завантажувачі Windows, але з можливістю також запобігти завантаженню стандартних носіїв Windows."
t MSG_370 "Покращення \"Quality of Life\": Вимкнення більшості небажаних функцій, які Microsoft намагається нав'язати кінцевому користувачу."
t MSG_371 "За використання цієї функції відключіть від ПК будь-які диски за виключенням того, на який ви хочете встановити Windows, а, також, не залишайте носій підключеним до будь-якого ПК, дані з якого ви не хочете стерти."
t MSG_372 "Я ЗАБЕЗПЕЧУ, щоб усі диски, крім того, на який я хочу встановити Windows, були відключені."
t MSG_373 "Я ЗАБЕЗПЕЧУ, що не залишу цей носій підключеним до ПК, який не планую видаляти."
t MSG_374 "Я ПОГОДЖУЮСЬ, що будь-яка втрата даних через цей параметр повністю лежить на мені."
t MSG_900 "Rufus це утиліта, яка допомагає форматувати та створювати завантажувальні флешки, картки пам'яті, тощо."
t MSG_901 "Офіційний сайт: %s"
t MSG_902 "Сирцевий код: %s"
@ -17094,7 +16949,7 @@ t MSG_352 "Đang kiểm tra cập nhật cơ sở dữ liệu chặn (DBX) của
t MSG_353 "Đã phát hiện bản cập nhật DBX của UEFI"
t MSG_354 "Rufus đã phát hiện phiên bản cập nhật của các tệp DBX, được dùng để kiểm tra thu hồi Secure Boot trong UEFI. Bạn có muốn tải bản cập nhật này không?\n- Chọn “Có” để kết nối Internet và tải nội dung này.\n- Chọn “Không” để hủy thao tác.\n\nLưu ý: Các tệp sẽ được tải về thư mục của ứng dụng và sẽ tự động được sử dụng lại nếu đã có sẵn."
t MSG_355 "Xoá sạch ổ cứng và cài đặt ⚠MỘT CÁCH ÂM THẦM⚠:"
t MSG_356 "Bạn đã lựa chọn phương thức cài đặt Windows \"im lặng\".\n\nĐây là một tuỳ chọn nâng cao, dành riêng cho những người muốn tạo một bản cài đặt không thông báo cho người dung xuyên suốt quá trình cài đặt Windows và qua đó XOÁ SẠCH VÔ ĐIỀU KIỆN ổ đĩa được nhận diện đầu tiên. Nếu bạn không cẩn than, sử dụng tuỳ chọn nào có thể gây ra MẤT HOÀN TOÀN DỮ LIỆU\n\nBạn PHẢI đọc và đồng ý với tất cả các điều khoản sau để tiếp tục:"
t MSG_356 "Bạn đã lựa chọn phương thức cài đặt Windows \"im lặng\".\n\nĐây là một tuỳ chọn nâng cao, dành riêng cho những người muốn tạo một bản cài đặt không thông báo cho người dung xuyên suốt quá trình cài đặt Windows và qua đó XOÁ SẠCH VÔ ĐIỀU KIỆN ổ đĩa được nhận diện đầu tiên. Nếu bạn không cẩn than, sử dụng tuỳ chọn nào có thể gây ra MẤT HOÀN TOÀN DỮ LIỆU\n\nNếu đó không phải thứ bạn muốn, vui long chọn 'Không' để quay trở lại và huỷ chọn tuỳ chọn đó.\nThay vào đó, nếu bạn chọn 'Có', bạn chấp thuận rằng mọi trách nhiệm về dữ liệu bị mất hoàn toàn thuộc về BẠN."
t MSG_358 "Vị trí tập tin ảnh đĩa không được hỗ trợ"
t MSG_359 "Bạn không thể sử dụng một ảnh đĩa nằm trên thiết bị mục tiêu, vì thiết bị đó sẽ bị xoá hoàn toàn. Nó giống như việc bạn tự chặt cành cây mà bạn đang đứng lên vậy!\n\nVui lòng di chuyển ảnh đĩa tới một vị trí khác và thử lại."
t MSG_360 "Việc bật tuỳ chọn này là hoàn toàn an toàn kể cả khi bạn có TPM hay nhiều RAM hơn, vì tuỳ chọn này chỉ bỏ qua nhừng yêu cầu cài đặt và không ngăn Windows sử dụng mọi tài nguyên phần cứng có thể."
@ -17109,9 +16964,6 @@ t MSG_368 "Dùng tuỳ chọn này nếu hệ thống bạn muốn cài đặt W
t MSG_369 "Dùng tuỳ chọn này nếu bạn muốn thu hồi những trình khởi động Windows có nguy cơ, nhưng cũng có khả năng ngăn ảnh đĩa Windows cơ bản khởi động."
t MSG_370 "Những nâng cấp \"tiện ích trải nghiệm\": Vô hiệu hoá đa số những tính năng không mong muốn Microsoft đang cố nhồi nhét cho người dùng."
t MSG_371 "Nếu bạn sử dụng tuỳ chọn này, hãy chắc chắn rằng bạn đã ngắt kết nối tất cả các ổ đĩa khỏi PC đích, ngoại trừ ổ bạn muốn cài Windows, cũng như là không cắm ảnh đĩa vào bất kì PC nào bạn không muốn xoá sạch."
t MSG_372 "TÔI SẼ đảm bảo tất cả ổ đĩa, trừ ổ đĩa cài Windows, đều được ngắt kết nối."
t MSG_373 "TÔI SẼ đảm bảo không để thiết bị này kết nối với PC mà tôi không có ý định xóa dữ liệu."
t MSG_374 "TÔI ĐỒNG Ý rằng mọi tổn thất dữ liệu do tùy chọn này hoàn toàn thuộc trách nhiệm của tôi."
t MSG_900 "Rufus là một tiện ích giúp định dạng và tạo khả năng khởi động cho các thiết bị USB, ví dụ như thẻ USB/đĩa di động, thẻ nhớ, v.v..."
t MSG_901 "Trang web chính thức: %s"
t MSG_902 "Mã nguồn: %s"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,4 +1,3 @@
This directory contains the uefi-md5sum bootloaders added by Rufus for media validation.
The aa64, ia32 and x64 versions are signed for Secure Boot. The others are not.
See https://github.com/pbatard/uefi-md5sum for details.

View file

@ -37,40 +37,40 @@
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">

View file

@ -7,22 +7,23 @@ This image, which can be mounted as a FAT file system or opened in 7-zip,
contains the following data:
o Secure Boot signed NTFS UEFI drivers, derived from ntfs-3g [1].
These drivers are the exact same as the read-only binaries from release 1.9,
These drivers are the exact same as the read-only binaries from release 1.7,
except for the addition of Microsoft's Secure Boot signature.
Note that, per Microsoft's current Secure Boot signing policies, the 32-bit
ARM driver (ntfs_arm.efi) is not Secure Boot signed.
o Non Secure Boot signed exFAT (and ARM/RISC NTFS) UEFI drivers from EfiFs [2].
These drivers are the exact same as the binaries from EfiFs release 1.12 but,
o Non Secure Boot signed exFAT UEFI drivers from EfiFs [2].
These drivers are the exact same as the binaries from EfiFs release 1.11 but,
because they are licensed under GPLv3, cannot be Secure Boot signed.
o Secure Boot signed UEFI:NTFS bootloader binaries [3].
These drivers are the exact same as the binaries from release 2.8, except for
These drivers are the exact same as the binaries from release 2.6, except for
the addition of Microsoft's Secure Boot signature.
Note that, per Microsoft's current Secure Boot signing policies, the 32-bit
ARM bootloader (bootarm.efi) is not Secure Boot signed.
The above means that, if booting an NTFS partition on an x86_32, x86_64 or ARM64
system, Secure Boot does not need to be disabled. You may however have to enable
3rd party certificates in your Secure Boot settings, as you would to boot Linux.
system, Secure Boot does not need to be disabled.
The FAT partition was created on Debian GNU/Linux using the following commands:
dd if=/dev/zero of=uefi-ntfs.img bs=512 count=2048

Binary file not shown.

View file

@ -31,152 +31,202 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wimlib", ".vs\wimlib.vcxpro
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|arm = Debug|arm
Debug|arm64 = Debug|arm64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|arm = Release|arm
Release|arm64 = Release|arm64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{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|arm64.ActiveCfg = Debug|ARM64
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|arm64.Build.0 = Debug|ARM64
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x64.ActiveCfg = Debug|x64
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x64.Build.0 = Debug|x64
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86.ActiveCfg = Debug|Win32
{731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{731858A7-0303-4988-877B-9C0DD6471864}.Release|arm64.Build.0 = Release|ARM64
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x64.ActiveCfg = Release|x64
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x64.Build.0 = Release|x64
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86.ActiveCfg = Release|Win32
{731858A7-0303-4988-877B-9C0DD6471864}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|arm64.Build.0 = Debug|ARM64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x64.ActiveCfg = Debug|x64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x64.Build.0 = Debug|x64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86.ActiveCfg = Debug|Win32
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|arm64.Build.0 = Release|ARM64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x64.ActiveCfg = Release|x64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x64.Build.0 = Release|x64
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86.ActiveCfg = Release|Win32
{2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|arm64.Build.0 = Debug|ARM64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x64.ActiveCfg = Debug|x64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x64.Build.0 = Debug|x64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86.ActiveCfg = Debug|Win32
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|arm64.Build.0 = Release|ARM64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x64.ActiveCfg = Release|x64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x64.Build.0 = Release|x64
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86.ActiveCfg = Release|Win32
{8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|arm64.Build.0 = Debug|ARM64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x64.ActiveCfg = Debug|x64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x64.Build.0 = Debug|x64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86.ActiveCfg = Debug|Win32
{266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|arm64.Build.0 = Release|ARM64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x64.ActiveCfg = Release|x64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x64.Build.0 = Release|x64
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86.ActiveCfg = Release|Win32
{266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|arm64.Build.0 = Debug|ARM64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x64.ActiveCfg = Debug|x64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x64.Build.0 = Debug|x64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86.ActiveCfg = Debug|Win32
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|arm64.Build.0 = Release|ARM64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x64.ActiveCfg = Release|x64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x64.Build.0 = Release|x64
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86.ActiveCfg = Release|Win32
{7D2E9784-DDF7-4988-A887-CF099BC3B340}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|arm64.Build.0 = Debug|ARM64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x64.ActiveCfg = Debug|x64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x64.Build.0 = Debug|x64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86.ActiveCfg = Debug|Win32
{D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|arm64.Build.0 = Release|ARM64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x64.ActiveCfg = Release|x64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x64.Build.0 = Release|x64
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86.ActiveCfg = Release|Win32
{D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|arm64.Build.0 = Debug|ARM64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x64.ActiveCfg = Debug|x64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x64.Build.0 = Debug|x64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86.ActiveCfg = Debug|Win32
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|arm64.Build.0 = Release|ARM64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x64.ActiveCfg = Release|x64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x64.Build.0 = Release|x64
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86.ActiveCfg = Release|Win32
{0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|arm64.Build.0 = Debug|ARM64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x64.ActiveCfg = Debug|x64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x64.Build.0 = Debug|x64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86.ActiveCfg = Debug|Win32
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|arm64.Build.0 = Release|ARM64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x64.ActiveCfg = Release|x64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x64.Build.0 = Release|x64
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86.ActiveCfg = Release|Win32
{FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|arm64.Build.0 = Debug|ARM64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x64.ActiveCfg = Debug|x64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x64.Build.0 = Debug|x64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86.ActiveCfg = Debug|Win32
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|arm64.Build.0 = Release|ARM64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x64.ActiveCfg = Release|x64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x64.Build.0 = Release|x64
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86.ActiveCfg = Release|Win32
{AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86.Build.0 = Release|Win32
{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|arm64.ActiveCfg = Debug|ARM64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|arm64.Build.0 = Debug|ARM64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x64.ActiveCfg = Debug|x64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x64.Build.0 = Debug|x64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86.ActiveCfg = Debug|Win32
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86.Build.0 = Debug|Win32
{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|arm64.ActiveCfg = Release|ARM64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|arm64.Build.0 = Release|ARM64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x64.ActiveCfg = Release|x64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x64.Build.0 = Release|x64
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86.ActiveCfg = Release|Win32
{FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86.Build.0 = Release|Win32
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|arm.ActiveCfg = Debug|ARM
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|arm.Build.0 = Debug|ARM
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|arm64.ActiveCfg = Debug|ARM64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|arm64.Build.0 = Debug|ARM64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|x64.ActiveCfg = Debug|x64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|x64.Build.0 = Debug|x64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|x86.ActiveCfg = Debug|Win32
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Debug|x86.Build.0 = Debug|Win32
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|arm.ActiveCfg = Release|ARM
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|arm.Build.0 = Release|ARM
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|arm64.ActiveCfg = Release|ARM64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|arm64.Build.0 = Release|ARM64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|x64.ActiveCfg = Release|x64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|x64.Build.0 = Release|x64
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|x86.ActiveCfg = Release|Win32
{B01F5886-2B39-4B66-B65C-6427135B6A02}.Release|x86.Build.0 = Release|Win32
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|arm.ActiveCfg = Debug|ARM
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|arm.Build.0 = Debug|ARM
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|arm64.ActiveCfg = Debug|ARM64
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|arm64.Build.0 = Debug|ARM64
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|x64.ActiveCfg = Debug|x64
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|x64.Build.0 = Debug|x64
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|x86.ActiveCfg = Debug|Win32
{633CFC82-E01B-4777-BDE4-DC0739804332}.Debug|x86.Build.0 = Debug|Win32
{633CFC82-E01B-4777-BDE4-DC0739804332}.Release|arm.ActiveCfg = Release|ARM
{633CFC82-E01B-4777-BDE4-DC0739804332}.Release|arm.Build.0 = Release|ARM
{633CFC82-E01B-4777-BDE4-DC0739804332}.Release|arm64.ActiveCfg = Release|ARM64
{633CFC82-E01B-4777-BDE4-DC0739804332}.Release|arm64.Build.0 = Release|ARM64
{633CFC82-E01B-4777-BDE4-DC0739804332}.Release|x64.ActiveCfg = Release|x64

View file

@ -1,10 +1,10 @@
noinst_LIBRARIES = libbled.a
libbled_a_SOURCES = bled.c bled_size.c crc32.c data_align.c data_extract_all.c data_skip.c decompress_bunzip2.c \
libbled_a_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 \
decompress_unzstd.c decompress_vtsi.c filter_accept_all.c filter_accept_list.c filter_accept_reject_list.c \
find_list_entry.c fse_decompress.c header_list.c header_skip.c header_verbose_list.c huf_decompress.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 \
xxhash.c zstd_common.c zstd_decompress.c zstd_decompress_block.c zstd_ddict.c zstd_entropy_common.c \
zstd_error_private.c
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -DBLED_EXPECT_DISK_IMAGE -Wno-undef -Wno-strict-aliasing
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -Wno-undef -Wno-strict-aliasing

View file

@ -94,8 +94,7 @@ am__v_AR_1 =
libbled_a_AR = $(AR) $(ARFLAGS)
libbled_a_LIBADD =
am_libbled_a_OBJECTS = libbled_a-bled.$(OBJEXT) \
libbled_a-bled_size.$(OBJEXT) libbled_a-crc32.$(OBJEXT) \
libbled_a-data_align.$(OBJEXT) \
libbled_a-crc32.$(OBJEXT) libbled_a-data_align.$(OBJEXT) \
libbled_a-data_extract_all.$(OBJEXT) \
libbled_a-data_skip.$(OBJEXT) \
libbled_a-decompress_bunzip2.$(OBJEXT) \
@ -277,7 +276,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
noinst_LIBRARIES = libbled.a
libbled_a_SOURCES = bled.c bled_size.c crc32.c data_align.c data_extract_all.c data_skip.c decompress_bunzip2.c \
libbled_a_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 \
decompress_unzstd.c decompress_vtsi.c filter_accept_all.c filter_accept_list.c filter_accept_reject_list.c \
find_list_entry.c fse_decompress.c header_list.c header_skip.c header_verbose_list.c huf_decompress.c \
@ -285,7 +284,7 @@ libbled_a_SOURCES = bled.c bled_size.c crc32.c data_align.c data_extract_all.c d
xxhash.c zstd_common.c zstd_decompress.c zstd_decompress_block.c zstd_ddict.c zstd_entropy_common.c \
zstd_error_private.c
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -DBLED_EXPECT_DISK_IMAGE -Wno-undef -Wno-strict-aliasing
libbled_a_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/.. -Wno-undef -Wno-strict-aliasing
all: all-am
.SUFFIXES:
@ -347,12 +346,6 @@ libbled_a-bled.o: bled.c
libbled_a-bled.obj: bled.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbled_a_CFLAGS) $(CFLAGS) -c -o libbled_a-bled.obj `if test -f 'bled.c'; then $(CYGPATH_W) 'bled.c'; else $(CYGPATH_W) '$(srcdir)/bled.c'; fi`
libbled_a-bled_size.o: bled_size.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbled_a_CFLAGS) $(CFLAGS) -c -o libbled_a-bled_size.o `test -f 'bled_size.c' || echo '$(srcdir)/'`bled_size.c
libbled_a-bled_size.obj: bled_size.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbled_a_CFLAGS) $(CFLAGS) -c -o libbled_a-bled_size.obj `if test -f 'bled_size.c'; then $(CYGPATH_W) 'bled_size.c'; else $(CYGPATH_W) '$(srcdir)/bled_size.c'; fi`
libbled_a-crc32.o: crc32.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbled_a_CFLAGS) $(CFLAGS) -c -o libbled_a-crc32.o `test -f 'crc32.c' || echo '$(srcdir)/'`crc32.c

View file

@ -235,28 +235,23 @@ typedef struct transformer_state_t {
int dst_fd;
const char *dst_dir; /* if non-NULL, extract to dir */
char *dst_name;
int64_t src_size; /* size of the source archive */
int64_t dst_size; /* size of the uncompressed data, if available */
uint64_t dst_size;
size_t mem_output_size_max; /* if non-zero, decompress to RAM instead of fd */
size_t mem_output_size;
char *mem_output_buf;
uint64_t bytes_total; /* used in unzip code only, for directory extraction */
uint64_t bytes_out;
uint64_t bytes_in; /* used in unzip code only: needs to know packed size */
uint64_t bytes_in; /* used in unzip code only: needs to know packed size */
uint32_t crc32;
time_t mtime; /* gunzip code may set this on exit */
time_t mtime; /* gunzip code may set this on exit */
union { /* if we read magic, it's saved here */
union { /* if we read magic, it's saved here */
uint8_t b[8];
uint16_t b16[4];
uint32_t b32[2];
} magic;
} transformer_state_t;
typedef int64_t(*unpacker_t)(transformer_state_t* xstate);
typedef int64_t(*get_uncompressed_size_t)(int fd);
int64_t get_uncompressed_size(int fd, int type);
void init_transformer_state(transformer_state_t *xstate) FAST_FUNC;
ssize_t transformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC;
ssize_t xtransformer_write(transformer_state_t *xstate, const void *buf, size_t bufsize) FAST_FUNC;
@ -281,7 +276,7 @@ static inline int transformer_switch_file(transformer_state_t* xstate)
last_slash = i;
}
if (bled_switch != NULL)
bled_switch(dst, xstate->bytes_total);
bled_switch(dst, xstate->dst_size);
dst[last_slash] = 0;
bb_make_directory(dst, 0, 0);
dst[last_slash] = '/';

View file

@ -1,7 +1,7 @@
/*
* Bled (Base Library for Easy Decompression)
*
* Copyright © 2014-2026 Pete Batard <pete@akeo.ie>
* Copyright © 2014-2024 Pete Batard <pete@akeo.ie>
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
@ -15,26 +15,27 @@
#include "bb_archive.h"
#include "bled.h"
typedef long long int(*unpacker_t)(transformer_state_t *xstate);
/* Globals */
smallint bb_got_signal;
uint64_t bb_total_rb, bb_total_wb;
uint64_t bb_total_rb;
printf_t bled_printf = NULL;
read_t bled_read = NULL;
write_t bled_write = NULL;
progress_t bled_progress = NULL;
switch_t bled_switch = NULL;
unsigned long* bled_cancel_request;
bool bled_initialized = 0;
static bool bled_initialized = 0;
jmp_buf bb_error_jmp;
char* bb_virtual_buf = NULL;
size_t bb_virtual_len = 0, bb_virtual_pos = 0;
int bb_virtual_fd = -1;
bool bb_progress_on_write = 0;
// ZSTD has a minimal buffer size of (1 << ZSTD_BLOCKSIZELOG_MAX) + ZSTD_blockHeaderSize = 128 KB + 3
// So we set our bufsize to 256 KB
uint32_t BB_BUFSIZE = 0x40000;
static int64_t unpack_none(transformer_state_t *xstate)
static long long int unpack_none(transformer_state_t *xstate)
{
bb_error_msg("This compression type is not supported");
return -1;
@ -65,7 +66,6 @@ int64_t bled_uncompress(const char* src, const char* dst, int type)
}
bb_total_rb = 0;
bb_total_wb = 0;
init_transformer_state(&xstate);
xstate.src_fd = -1;
xstate.dst_fd = -1;
@ -87,14 +87,6 @@ int64_t bled_uncompress(const char* src, const char* dst, int type)
goto err;
}
if (bled_progress != NULL) {
xstate.src_size = lseek(xstate.src_fd, 0, SEEK_END);
xstate.dst_size = get_uncompressed_size(xstate.src_fd, type);
bb_progress_on_write = (xstate.dst_size > 0);
bled_progress(bb_progress_on_write ? -xstate.dst_size : -xstate.src_size);
}
if (setjmp(bb_error_jmp))
goto err;
@ -120,7 +112,6 @@ int64_t bled_uncompress_with_handles(HANDLE hSrc, HANDLE hDst, int type)
}
bb_total_rb = 0;
bb_total_wb = 0;
init_transformer_state(&xstate);
xstate.src_fd = -1;
xstate.dst_fd = -1;
@ -142,13 +133,6 @@ int64_t bled_uncompress_with_handles(HANDLE hSrc, HANDLE hDst, int type)
return -1;
}
if (bled_progress != NULL) {
xstate.src_size = lseek(xstate.src_fd, 0, SEEK_END);
xstate.dst_size = get_uncompressed_size(xstate.src_fd, type);
bb_progress_on_write = (xstate.dst_size > 0);
bled_progress(bb_progress_on_write ? -xstate.dst_size : -xstate.src_size);
}
if (setjmp(bb_error_jmp))
return -1;
@ -172,7 +156,6 @@ int64_t bled_uncompress_to_buffer(const char* src, char* buf, size_t size, int t
}
bb_total_rb = 0;
bb_total_wb = 0;
init_transformer_state(&xstate);
xstate.src_fd = -1;
xstate.dst_fd = -1;
@ -196,13 +179,6 @@ int64_t bled_uncompress_to_buffer(const char* src, char* buf, size_t size, int t
goto err;
}
if (bled_progress != NULL) {
xstate.src_size = lseek(xstate.src_fd, 0, SEEK_END);
xstate.dst_size = get_uncompressed_size(xstate.src_fd, type);
bb_progress_on_write = (xstate.dst_size > 0);
bled_progress(bb_progress_on_write ? -xstate.dst_size : -xstate.src_size);
}
if (setjmp(bb_error_jmp))
goto err;
@ -227,7 +203,6 @@ int64_t bled_uncompress_to_dir(const char* src, const char* dir, int type)
}
bb_total_rb = 0;
bb_total_wb = 0;
init_transformer_state(&xstate);
xstate.src_fd = -1;
xstate.dst_fd = -1;
@ -246,13 +221,6 @@ int64_t bled_uncompress_to_dir(const char* src, const char* dir, int type)
goto err;
}
if (bled_progress != NULL) {
xstate.src_size = lseek(xstate.src_fd, 0, SEEK_END);
xstate.dst_size = 0;
bb_progress_on_write = 0;
bled_progress(-xstate.src_size);
}
if (setjmp(bb_error_jmp))
goto err;
@ -300,34 +268,6 @@ int64_t bled_uncompress_from_buffer_to_buffer(const char* src, const size_t src_
return ret;
}
/* Get the decompressed size of file 'src', compressed using 'type' */
int64_t bled_get_uncompressed_size(const char* src, int type)
{
int fd = -1;
int64_t ret = -1;
if (!bled_initialized) {
bb_error_msg("The library has not been initialized");
return -1;
}
if ((type < 0) || (type >= BLED_COMPRESSION_MAX)) {
bb_error_msg("Unsupported compression format");
goto err;
}
fd = _openU(src, _O_RDONLY | _O_BINARY, 0);
if (fd < 0)
return -1;
ret = get_uncompressed_size(fd, type);
err:
if (fd > 0)
_close(fd);
return ret;
}
/* Initialize the library.
* When the parameters are not NULL or zero you can:
* - specify the buffer size to use (must be larger than 256KB and a power of two)

View file

@ -1,7 +1,7 @@
/*
* Bled (Base Library for Easy Decompression)
*
* Copyright © 2014-2026 Pete Batard <pete@akeo.ie>
* Copyright © 2014-2024 Pete Batard <pete@akeo.ie>
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
@ -16,7 +16,7 @@
#endif
typedef void (*printf_t) (const char* format, ...);
typedef void (*progress_t) (const int64_t read_bytes);
typedef void (*progress_t) (const uint64_t read_bytes);
typedef int (*read_t)(int fd, void* buf, unsigned int count);
typedef int (*write_t)(int fd, const void* buf, unsigned int count);
typedef void (*switch_t)(const char* filename, const uint64_t size);
@ -35,9 +35,6 @@ typedef enum {
BLED_COMPRESSION_MAX
} bled_compression_type;
/* (Where possible) get the uncompressed size of file 'src', compressed using 'type' */
int64_t bled_get_uncompressed_size(const char* src, int type);
/* Uncompress file 'src', compressed using 'type', to file 'dst' */
int64_t bled_uncompress(const char* src, const char* dst, int type);

View file

@ -1,782 +0,0 @@
/*
* Bled (Base Library for Easy Decompression) - Size related dependencies
*
* Mostly generated by AI - No copyright assigned.
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
#ifdef _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#endif
#include "libbb.h"
#include "bb_archive.h"
#include "bled.h"
/* -------------------------------------------------------------------------
* Internal helpers
* ---------------------------------------------------------------------- */
#define DECOMP_SIZE_ERROR ((int64_t)-1)
#define DECOMP_SIZE_UNKNOWN ((int64_t)-2)
#define DECOMP_IO_ERROR ((int64_t)-3)
/** Read exactly n bytes from fd into buf; returns 0 on success, -1 on error. */
static int read_exact(int fd, void* buf, size_t n)
{
uint8_t* p = (uint8_t*)buf;
while (n > 0) {
int got = _read(fd, p, (unsigned)n);
if (got <= 0)
return -1;
p += got;
n -= (size_t)got;
}
return 0;
}
int64_t get_uncompress_size_none(int fd)
{
return DECOMP_SIZE_UNKNOWN;
}
/* -------------------------------------------------------------------------
* PKZIP
*
* Local File Header layout (all fields little-endian):
*
* Offset Size Field
* 0 4 Signature (0x04034b50)
* 4 2 Version needed
* 6 2 General purpose bit flag
* 8 2 Compression method
* 10 2 Last mod file time
* 12 2 Last mod file date
* 14 4 CRC-32
* 18 4 Compressed size (0xFFFFFFFF see ZIP64 Extra Field)
* 22 4 Uncompressed size (0xFFFFFFFF see ZIP64 Extra Field)
* 26 2 File name length
* 28 2 Extra field length
* 30 ? File name
* 30+n ? Extra field
*
* ZIP64 Extra Field tag: 0x0001
* Within the ZIP64 extra field block the fields appear only when the
* corresponding 32-bit field in the Local Header is 0xFFFFFFFF:
* - Original size (8 bytes LE) first, if uncompressed == 0xFFFFFFFF
* - Compressed size (8 bytes LE) second, if compressed == 0xFFFFFFFF
* ---------------------------------------------------------------------- */
#define ZIP_LFH_SIG UINT32_C(0x04034b50)
#define ZIP_LFH_HDR_SIZE 30
#define ZIP64_EXTRA_TAG 0x0001
#define ZIP32_NEEDS_ZIP64 UINT32_C(0xFFFFFFFF)
static int64_t get_uncompress_size_zip(int fd)
{
uint8_t hdr[ZIP_LFH_HDR_SIZE];
if (lseek(fd, 0, SEEK_SET) < 0)
return DECOMP_SIZE_ERROR;
if (read_exact(fd, hdr, ZIP_LFH_HDR_SIZE))
return DECOMP_SIZE_ERROR;
/* Verify Local File Header signature. */
if (get_le32(hdr + 0) != ZIP_LFH_SIG)
return DECOMP_SIZE_ERROR;
uint32_t uncomp32 = get_le32(hdr + 22);
uint32_t comp32 = get_le32(hdr + 18);
uint16_t fname_len = get_le16(hdr + 26);
uint16_t extra_len = get_le16(hdr + 28);
/* Fast path: 32-bit field is valid. */
if (uncomp32 != ZIP32_NEEDS_ZIP64)
return (int64_t)uncomp32;
/* Need ZIP64 Extra Field skip over the file name first. */
if (lseek(fd, (int64_t)fname_len, SEEK_CUR) < 0)
return DECOMP_SIZE_ERROR;
/* Walk the extra field TLV blocks looking for tag 0x0001. */
uint16_t remaining = extra_len;
while (remaining >= 4) {
uint8_t tag_buf[4];
if (read_exact(fd, tag_buf, 4))
return DECOMP_SIZE_ERROR;
remaining = (uint16_t)(remaining - 4);
uint16_t tag = get_le16(tag_buf + 0);
uint16_t dlen = get_le16(tag_buf + 2);
if (tag == ZIP64_EXTRA_TAG) {
/*
* Fields are present only when the corresponding 32-bit value is
* 0xFFFFFFFF. Uncompressed size comes first; we need 8 bytes.
*/
if (uncomp32 == ZIP32_NEEDS_ZIP64) {
if (dlen < 8 || remaining < 8)
return DECOMP_SIZE_ERROR;
uint8_t sz[8];
if (read_exact(fd, sz, 8))
return DECOMP_SIZE_ERROR;
return (int64_t)get_le64(sz);
}
}
/* Skip this block. */
if (dlen > remaining) return DECOMP_SIZE_ERROR;
if (lseek(fd, (int64_t)dlen, SEEK_CUR) < 0)
return DECOMP_SIZE_ERROR;
remaining = (uint16_t)(remaining - dlen);
(void)comp32; /* suppress unused-variable warning */
}
return DECOMP_SIZE_ERROR; /* ZIP64 tag not found */
}
/* -------------------------------------------------------------------------
* GZIP
*
* The ISIZE field is the last 4 bytes of the file (little-endian uint32).
* It holds the decompressed size modulo 2^32.
*
* Header magic: 0x1F 0x8B
* ---------------------------------------------------------------------- */
#define GZIP_MAGIC_0 0x1F
#define GZIP_MAGIC_1 0x8B
static int64_t get_uncompress_size_gz(int fd)
{
/* Verify magic bytes at offset 0. */
uint8_t magic[2];
if (lseek(fd, 0, SEEK_SET) < 0)
return DECOMP_SIZE_ERROR;
if (read_exact(fd, magic, 2))
return DECOMP_SIZE_ERROR;
if (magic[0] != GZIP_MAGIC_0 || magic[1] != GZIP_MAGIC_1)
return DECOMP_SIZE_ERROR;
/* Seek to ISIZE: last 4 bytes of the file. */
if (lseek(fd, -4, SEEK_END) < 0)
return DECOMP_SIZE_ERROR;
uint8_t isize[4];
if (read_exact(fd, isize, 4))
return DECOMP_SIZE_ERROR;
/*
* ISIZE is uint32 mod 2^32. We return it as int64_t; callers that need
* to handle files >= 4 GiB must apply their own correction.
*/
return (int64_t)(uint64_t)get_le32(isize);
}
/* -------------------------------------------------------------------------
* LZMA (.lzma "alone" format)
*
* Header layout:
* Offset Size Field
* 0 1 Properties byte (lc, lp, pb encoded)
* 1 4 Dictionary size (uint32 LE)
* 5 8 Uncompressed size (uint64 LE;
* 0xFFFFFFFFFFFFFFFF unknown, uses EOS marker)
* ---------------------------------------------------------------------- */
#define LZMA_HEADER_SIZE 13 /* 1 + 4 + 8 */
#define LZMA_SIZE_UNKNOWN UINT64_C(0xFFFFFFFFFFFFFFFF)
static int64_t get_uncompress_size_lzma(int fd)
{
uint8_t hdr[LZMA_HEADER_SIZE];
if (lseek(fd, 0, SEEK_SET) < 0)
return DECOMP_SIZE_ERROR;
if (read_exact(fd, hdr, LZMA_HEADER_SIZE))
return DECOMP_SIZE_ERROR;
/*
* Basic sanity check on the properties byte:
* lc = props % 9, lp = (props / 9) % 5, pb = props / 45
* pb must be <= 4, so the byte must be < 225 (9 * 5 * 5).
*/
if (hdr[0] >= 225)
return DECOMP_SIZE_ERROR;
uint64_t size = get_le64(hdr + 5);
if (size == LZMA_SIZE_UNKNOWN)
return DECOMP_SIZE_UNKNOWN;
return (int64_t)size;
}
/* -------------------------------------------------------------------------
* XZ (.xz)
*
* An XZ file is one or more Streams, each structured as:
*
* Stream Header (12 bytes)
* Block(s) (variable)
* Index (variable)
* Stream Footer (12 bytes)
*
* Stream Footer layout (little-endian unless noted):
* Offset Size Field
* 0 4 CRC32 of bytes 4..7
* 4 4 Backward Size (uint32 LE; index_size = (value+1)*4)
* 8 2 Stream Flags (must match Stream Header flags)
* 10 2 Magic (0x59 0x5A)
*
* Index layout (immediately before Stream Footer):
* [0] 1 Indicator byte (must be 0x00)
* [1] VLI Number of Records
* per record:
* VLI Unpadded Size of the compressed Block
* VLI Uncompressed Size of the Block what we want
* padding to 4-byte boundary
* 4 CRC32 of the Index
*
* VLI encoding: up to 9 bytes; each byte contributes 7 bits (little-endian
* bit order); the MSB is a continuation flag (1 = more bytes follow).
* Maximum value: 2^63 - 1 (high bit of the 9th byte must be 0).
* ---------------------------------------------------------------------- */
#define XZ_STREAM_FOOTER_SIZE 12
#define XZ_MAGIC_0 0xFDu
#define XZ_MAGIC_1 0x37u
#define XZ_MAGIC_2 0x7Au
#define XZ_MAGIC_3 0x58u
#define XZ_MAGIC_4 0x5Au
#define XZ_MAGIC_5 0x00u
#define XZ_FOOTER_MAGIC_0 0x59u
#define XZ_FOOTER_MAGIC_1 0x5Au
/**
* Decode one XZ/LZMA2 VLI from buf[*pos], advancing *pos.
* Returns the value, or UINT64_MAX on error (overlong / overflow).
*/
static uint64_t xz_read_vli(const uint8_t* buf, size_t buf_len, size_t* pos)
{
uint64_t val = 0;
int shift = 0;
for (;;) {
if (*pos >= buf_len) return UINT64_MAX; /* truncated */
if (shift >= 63) return UINT64_MAX; /* overlong */
uint8_t b = buf[(*pos)++];
val |= (uint64_t)(b & 0x7Fu) << shift;
shift += 7;
if (!(b & 0x80u))
return val;
}
}
static int64_t get_uncompress_size_xz(int fd)
{
/* ---- Verify Stream Header magic (6 bytes at offset 0) ---- */
uint8_t hdr_magic[6];
if (lseek(fd, 0, SEEK_SET) < 0)
return DECOMP_SIZE_ERROR;
if (read_exact(fd, hdr_magic, 6))
return DECOMP_SIZE_ERROR;
if (hdr_magic[0] != XZ_MAGIC_0 || hdr_magic[1] != XZ_MAGIC_1 ||
hdr_magic[2] != XZ_MAGIC_2 || hdr_magic[3] != XZ_MAGIC_3 ||
hdr_magic[4] != XZ_MAGIC_4 || hdr_magic[5] != XZ_MAGIC_5)
return DECOMP_SIZE_ERROR;
/* ---- Read Stream Footer ---- */
if (lseek(fd, -(int64_t)XZ_STREAM_FOOTER_SIZE, SEEK_END) < 0)
return DECOMP_SIZE_ERROR;
uint8_t footer[XZ_STREAM_FOOTER_SIZE];
if (read_exact(fd, footer, XZ_STREAM_FOOTER_SIZE))
return DECOMP_SIZE_ERROR;
/* Check footer magic bytes at offset 10-11 */
if (footer[10] != XZ_FOOTER_MAGIC_0 || footer[11] != XZ_FOOTER_MAGIC_1)
return DECOMP_SIZE_ERROR;
/* Backward Size: real Index size = (backward_size + 1) * 4 */
uint32_t backward_size = get_le32(footer + 4);
size_t index_size = ((size_t)backward_size + 1u) * 4u;
/* ---- Read Index block ---- */
int64_t index_offset =
-(int64_t)XZ_STREAM_FOOTER_SIZE - (int64_t)index_size;
if (lseek(fd, index_offset, SEEK_END) < 0)
return DECOMP_SIZE_ERROR;
uint8_t* index_buf = (uint8_t*)
_alloca(index_size);
if (read_exact(fd, index_buf, index_size))
return DECOMP_SIZE_ERROR;
/* ---- Parse Index ---- */
size_t pos = 0;
/* Indicator byte must be 0x00 */
if (index_buf[pos++] != 0x00u)
return DECOMP_SIZE_ERROR;
/* Number of Records */
uint64_t num_records = xz_read_vli(index_buf, index_size, &pos);
if (num_records == UINT64_MAX || num_records == 0)
return DECOMP_SIZE_ERROR;
/* Sum uncompressed sizes across all records */
uint64_t total = 0;
for (uint64_t r = 0; r < num_records; r++) {
/* Unpadded Size (compressed) — skip it */
uint64_t unpadded = xz_read_vli(index_buf, index_size, &pos);
if (unpadded == UINT64_MAX || unpadded == 0)
return DECOMP_SIZE_ERROR;
/* Uncompressed Size — accumulate */
uint64_t uncomp = xz_read_vli(index_buf, index_size, &pos);
if (uncomp == UINT64_MAX)
return DECOMP_SIZE_ERROR;
total += uncomp;
}
return (int64_t)total;
}
/* -------------------------------------------------------------------------
* 7-ZIP (.7z)
*
* Signature Header (32 bytes at offset 0):
* Offset Size Field
* 0 6 Signature (0x37 0x7A 0xBC 0xAF 0x27 0x1C)
* 6 1 Major version
* 7 1 Minor version
* 8 4 CRC32 of bytes 12..27
* 12 8 NextHeader Offset (uint64 LE, relative to offset 32)
* 20 8 NextHeader Size (uint64 LE)
* 28 4 NextHeader CRC32
*
* The End Header lives at file offset 32 + NextHeaderOffset.
* Its property-block stream (for a plain, non-encoded-header archive) is:
*
* kHeader (0x01)
* kMainStreamsInfo (0x04)
* kPackInfo (0x06)
* 7z-num: PackPos
* 7z-num: NumPackStreams
* kSize (0x09)
* NumPackStreams × 7z-num packed sizes
* kEnd (0x00)
* kUnPackInfo (0x07)
* kFolder (0x0b)
* 7z-num: NumFolders (must be 1 for single-file)
* byte: External (0 = inline folder data)
* [inline] 7z-num: NumCoders
* per coder:
* byte: flags (bits[3:0]=CodecIdSize, bit4=IsComplex, bit5=HasAttrs)
* CodecIdSize bytes: Codec ID
* if IsComplex: 7z-num NumInStreams, 7z-num NumOutStreams
* if HasAttrs: 7z-num AttrSize, AttrSize bytes Attributes
* [if NumCoders>1] BindPairs, PackedStreams (skipped here)
* kCodersUnPackSize (0x0c)
* 7z-num: uncompressed size what we want
* [optional kCRC (0x0a)]
* kEnd (0x00)
* [optional kSubStreamsInfo (0x08)]
* kEnd (0x00)
* [kFilesInfo (0x05) ...]
* kEnd (0x00)
*
* 7z variable-length number encoding:
* The first byte's leading 1-bits count how many extra bytes follow.
* extra=0 value in bits[6:0] of first byte (7 bits)
* extra=1 bits[5:0] of first byte + 8 bits of second (14 bits)
* ...
* extra=8 0xFF marker + full uint64 in next 8 bytes
* ---------------------------------------------------------------------- */
static const uint8_t SZ_SIG[6] = { 0x37,0x7A,0xBC,0xAF,0x27,0x1C };
#define SZ_kEnd 0x00u
#define SZ_kHeader 0x01u
#define SZ_kMainStreamsInfo 0x04u
#define SZ_kPackInfo 0x06u
#define SZ_kUnPackInfo 0x07u
#define SZ_kSize 0x09u
#define SZ_kFolder 0x0Bu
#define SZ_kCodersUnPackSize 0x0Cu
#define SZ_kEncodedHeader 0x17u
/**
* Decode one 7z variable-length number from buf[*pos], advancing *pos.
*
* Algorithm from the 7-zip SDK (CPP/7zip/Archive/7z/7zIn.cpp ReadNumber):
* mask starts at 0x80 and shifts right each iteration.
* While (firstByte & mask) != 0: read one more byte into low bits of value.
* When the stop bit is found: add (firstByte & (mask-1)) into the
* appropriately shifted position.
*
* Returns UINT64_MAX on error (buffer overrun).
*/
static uint64_t sz_read_num(const uint8_t* buf, size_t buf_len, size_t* pos)
{
if (*pos >= buf_len) return UINT64_MAX;
uint8_t first = buf[(*pos)++];
uint8_t mask = 0x80u;
uint64_t value = 0;
for (int i = 0; i < 8; i++) {
if ((first & mask) == 0) {
/* Stop bit found: the remaining bits of first contribute here */
uint64_t high_part = first & (uint64_t)(mask - 1u);
value += high_part << (i * 8);
return value;
}
/* Consume one more byte into bits [i*8 .. i*8+7] of value */
if (*pos >= buf_len) return UINT64_MAX;
value |= (uint64_t)buf[(*pos)++] << (i * 8);
mask = (uint8_t)(mask >> 1);
}
/* first == 0xFF: all 8 extra bytes consumed, value is complete */
return value;
}
static int64_t get_uncompress_size_7zip(int fd)
{
/* ---- Read & verify Signature Header (32 bytes) ---- */
uint8_t sig_hdr[32];
if (lseek(fd, 0, SEEK_SET) < 0)
return DECOMP_SIZE_ERROR;
if (read_exact(fd, sig_hdr, 32))
return DECOMP_SIZE_ERROR;
if (memcmp(sig_hdr, SZ_SIG, 6) != 0)
return DECOMP_SIZE_ERROR;
uint64_t nh_offset = get_le64(sig_hdr + 12);
uint64_t nh_size = get_le64(sig_hdr + 20);
if (nh_size == 0 || nh_size > (uint64_t)64 * 1024 * 1024)
return DECOMP_SIZE_ERROR; /* sanity cap: 64 MiB */
/* ---- Read End Header ---- */
int64_t eh_abs = (int64_t)(32u + nh_offset);
if (lseek(fd, eh_abs, SEEK_SET) < 0) return DECOMP_SIZE_ERROR;
uint8_t* eh = (uint8_t*)
_alloca((size_t)nh_size);
if (read_exact(fd, eh, (size_t)nh_size)) return DECOMP_SIZE_ERROR;
size_t pos = 0;
size_t len = (size_t)nh_size;
/*
* Helpers that operate on (eh, len, pos) in the enclosing scope.
* We avoid macros that embed do-while inside comma-expressions (not
* valid in C99); instead use explicit checks before each read.
*/
#define SZ_NEED(n) \
do { if (pos + (size_t)(n) > len) return DECOMP_SIZE_ERROR; } while (0)
#define SZ_BYTE(var) \
do { SZ_NEED(1); (var) = eh[pos++]; } while (0)
#define SZ_NUM(var) \
do { (var) = sz_read_num(eh, len, &pos); \
if ((var) == UINT64_MAX) return DECOMP_SIZE_ERROR; } while (0)
#define SZ_SKIP(n) \
do { SZ_NEED(n); pos += (size_t)(n); } while (0)
#define SZ_EXPECT(tag) \
do { uint8_t _b; SZ_BYTE(_b); \
if (_b != (tag)) return DECOMP_SIZE_ERROR; } while (0)
uint8_t first_tag;
uint64_t num_pack, num_folders, num_coders, unpack_size;
/* Expect kHeader */
SZ_EXPECT(SZ_kHeader);
/* kEncodedHeader (0x17) means the real header is itself compressed;
* that requires decompressing a sub-stream, which we do not support. */
SZ_NEED(1);
if (eh[pos] == SZ_kEncodedHeader)
return DECOMP_SIZE_ERROR;
SZ_EXPECT(SZ_kMainStreamsInfo);
SZ_EXPECT(SZ_kPackInfo);
/* PackPos (discard) then NumPackStreams */
{ uint64_t dummy; SZ_NUM(dummy); (void)dummy; }
SZ_NUM(num_pack);
/* kSize: skip NumPackStreams packed-size VLIs */
SZ_EXPECT(SZ_kSize);
for (uint64_t i = 0; i < num_pack; i++) {
uint64_t dummy; SZ_NUM(dummy); (void)dummy;
}
SZ_EXPECT(SZ_kEnd); /* closes kPackInfo */
SZ_EXPECT(SZ_kUnPackInfo);
SZ_EXPECT(SZ_kFolder);
SZ_NUM(num_folders);
if (num_folders != 1)
return DECOMP_SIZE_ERROR; /* only single-folder archives supported */
{
uint8_t external; SZ_BYTE(external);
if (external != 0)
return DECOMP_SIZE_ERROR;
} /* external not supported */
/* Parse the inline folder record to skip past coder descriptors */
SZ_NUM(num_coders);
if (num_coders == 0) return DECOMP_SIZE_ERROR;
for (uint64_t c = 0; c < num_coders; c++) {
uint8_t flags;
SZ_BYTE(flags);
uint8_t id_size = flags & 0x0Fu;
int is_complex = (flags >> 4) & 1;
int has_attrs = (flags >> 5) & 1;
SZ_SKIP(id_size); /* Codec ID bytes */
if (is_complex) {
uint64_t dummy;
SZ_NUM(dummy); (void)dummy; /* NumInStreams */
SZ_NUM(dummy); (void)dummy; /* NumOutStreams */
}
if (has_attrs) {
uint64_t attr_size; SZ_NUM(attr_size);
SZ_SKIP(attr_size);
}
}
/* Multi-coder folders have BindPairs and possibly PackedStreams indices */
if (num_coders > 1) {
for (uint64_t i = 0; i < num_coders - 1; i++) {
uint64_t dummy;
SZ_NUM(dummy); (void)dummy; /* InIndex */
SZ_NUM(dummy); (void)dummy; /* OutIndex */
}
if (num_pack > num_coders - 1) {
uint64_t n = num_pack - (num_coders - 1);
for (uint64_t i = 0; i < n; i++) {
uint64_t dummy; SZ_NUM(dummy); (void)dummy;
}
}
}
/* kCodersUnPackSize: one VLI per output stream (single folder → one value) */
SZ_NEED(1);
first_tag = eh[pos++];
if (first_tag != SZ_kCodersUnPackSize) return DECOMP_SIZE_ERROR;
SZ_NUM(unpack_size);
return (int64_t)unpack_size;
#undef SZ_NEED
#undef SZ_BYTE
#undef SZ_NUM
#undef SZ_SKIP
#undef SZ_EXPECT
}
/* -------------------------------------------------------------------------
* Ventoy Sparse Image (.vsti)
* ---------------------------------------------------------------------- */
static int64_t get_uncompress_size_vtsi(int fd)
{
if (lseek(fd, -512 + 8 + 4, SEEK_END) < 0)
return DECOMP_SIZE_ERROR;
uint8_t isize[8];
if (read_exact(fd, isize, 8))
return DECOMP_SIZE_ERROR;
return (int64_t)get_le64(isize);
}
/* -------------------------------------------------------------------------
* Zstandard (.zst)
*
* Frame layout:
* Offset Size Field
* 0 4 Magic (0xFD2FB528, LE)
* 4 1 Frame Header Descriptor (FHD)
* 5 0/1 Window_Descriptor (absent when Single_Segment_Flag set)
* ? 0/1/2/4/8 Content_Size
*
* FHD bits:
* [7:6] Frame_Content_Size_Flag (FCS_Flag)
* [5] Single_Segment_Flag (SS_Flag)
* [4] reserved (must be 0)
* [3] Content_Checksum_Flag
* [2] reserved (must be 0)
* [1:0] Dictionary_ID_Flag
*
* Content_Size size from FCS_Flag:
* 0 0 bytes if SS_Flag==0 (unknown), or 1 byte if SS_Flag==1
* 1 2 bytes (value + 256, to avoid overlap with 1-byte encoding)
* 2 4 bytes
* 3 8 bytes
* ---------------------------------------------------------------------- */
#define ZSTD_MAGIC UINT32_C(0xFD2FB528)
#define ZSTD_MAGIC_SIZE 4
static int64_t get_uncompress_size_zstd(int fd)
{
uint8_t buf[4 + 1 + 1]; /* magic + FHD + optional Window_Descriptor */
if (lseek(fd, 0, SEEK_SET) < 0)
return DECOMP_SIZE_ERROR;
if (read_exact(fd, buf, 6))
return DECOMP_SIZE_ERROR;
if (get_le32(buf) != ZSTD_MAGIC)
return DECOMP_SIZE_ERROR;
uint8_t fhd = buf[4];
int fcs_flag = (fhd >> 6) & 0x03;
int ss_flag = (fhd >> 5) & 0x01;
/* Window_Descriptor is present only when Single_Segment_Flag == 0.
* buf[5] already consumed it; if SS_Flag==1 that byte is Content_Size[0].
* We'll re-seek to the correct offset to avoid confusion. */
/* Determine Content_Size field size. */
int cs_bytes;
if (fcs_flag == 0) {
if (ss_flag == 0)
return DECOMP_SIZE_UNKNOWN; /* field absent */
cs_bytes = 1;
} else if (fcs_flag == 1) {
cs_bytes = 2;
} else if (fcs_flag == 2) {
cs_bytes = 4;
} else {
cs_bytes = 8;
}
/*
* Content_Size starts at:
* offset 5 if Single_Segment_Flag == 1 (no Window_Descriptor)
* offset 6 if Single_Segment_Flag == 0 (Window_Descriptor present)
*/
int64_t cs_offset = (ss_flag ? 5 : 6);
if (lseek(fd, cs_offset, SEEK_SET) < 0)
return DECOMP_SIZE_ERROR;
uint8_t cs_buf[8] = { 0 };
if (read_exact(fd, cs_buf, (size_t)cs_bytes))
return DECOMP_SIZE_ERROR;
uint64_t size;
switch (cs_bytes) {
case 1:
size = cs_buf[0];
break;
case 2:
/*
* 2-byte encoding: actual value = field_value + 256
* (reserves 0-255 for the 1-byte SS_Flag path)
*/
size = (uint64_t)get_le16(cs_buf) + 256U;
break;
case 4:
size = get_le32(cs_buf);
break;
default: /* 8 */
size = get_le64(cs_buf);
break;
}
return (int64_t)size;
}
#if defined(BLED_EXPECT_DISK_IMAGE)
extern progress_t bled_progress;
extern unpacker_t unpacker[BLED_COMPRESSION_MAX];
int64_t get_uncompressed_size_from_disk_image(int fd, int type)
{
progress_t old_bled_progress = bled_progress;
int64_t size = DECOMP_SIZE_UNKNOWN;
uint8_t buf[8192];
transformer_state_t xstate;
bled_progress = NULL; /* Can't have progress on this operation */
init_transformer_state(&xstate);
xstate.src_fd = fd;
xstate.dst_fd = -1;
xstate.mem_output_buf = buf;
xstate.mem_output_size = 0;
xstate.mem_output_size_max = sizeof(buf);
if (setjmp(bb_error_jmp))
goto out;
lseek(fd, 0, SEEK_SET);
size = unpacker[type](&xstate);
if (size != sizeof(buf) || buf[0x1fe] != 0x55 || buf[0x1ff] != 0xaa) {
size = DECOMP_SIZE_UNKNOWN;
goto out;
}
if (buf[0x1be] == 0x00 && buf[0x1c2] == 0xee) {
/*
* Protective EFI MBR => look for the primary GPT, which'll also give us the sector size
* The address of the backup GPT is assumed to be the last LBA for the disk
*/
if (memcmp("EFI PART", &buf[0x200], 8) == 0)
size = (get_le64(&buf[0x220]) + 1) * 512;
else if (memcmp("EFI PART", &buf[0x1000], 8) == 0)
size = (get_le64(&buf[0x1020]) + 1) * 4096;
else
bb_error_msg("Could not locate primary GPT");
} else if (buf[0x1be] == 0x80) {
/* Regular bootable MBR => compute the max LBA (using primary partitions only) */
uint32_t max_lba = 1;
for (int i = 0; i < 4; i++)
max_lba = MAX(max_lba, get_le32(&buf[0x1be + 0x10 * i + 8]) + get_le32(&buf[0x1be + 0x10 * i + 0xc]));
size = (max_lba + 1) * 512; /* assume 512-byte sectors for anything MBR based */
if (size < 4096)
size = DECOMP_SIZE_UNKNOWN;
}
out:
bled_progress = old_bled_progress;
return size;
}
#endif
static get_uncompressed_size_t _get_uncompressed_size[BLED_COMPRESSION_MAX] = {
get_uncompress_size_none,
get_uncompress_size_zip,
get_uncompress_size_none, // .Z has no decompressed size info
get_uncompress_size_gz,
get_uncompress_size_lzma,
get_uncompress_size_none, // .bz2 has no decompressed size info
get_uncompress_size_xz,
get_uncompress_size_7zip,
get_uncompress_size_vtsi,
get_uncompress_size_zstd,
};
/* Get the decompressed size of file 'fd', compressed using 'type' */
int64_t get_uncompressed_size(int fd, int type)
{
int64_t size = _get_uncompressed_size[type](fd);
#if defined(BLED_EXPECT_DISK_IMAGE)
if (size < 0)
size = get_uncompressed_size_from_disk_image(fd, type);
#endif
/* Make sure to reset our file pointer */
lseek(fd, 0, SEEK_SET);
return size;
}

View file

@ -768,7 +768,7 @@ unpack_bz2_stream(transformer_state_t *xstate)
if (check_signature16(xstate, BZIP2_MAGIC))
return -1;
outbuf = aligned_xmalloc(IOBUF_SIZE);
outbuf = xmalloc(IOBUF_SIZE);
if (outbuf == NULL)
return -1;
len = 0;
@ -834,7 +834,7 @@ unpack_bz2_stream(transformer_state_t *xstate)
release_mem:
dealloc_bunzip(bd);
aligned_free(outbuf);
free(outbuf);
return i ? i : IF_DESKTOP(total_written) + 0;
}

View file

@ -1012,7 +1012,7 @@ inflate_unzip_internal(STATE_PARAM transformer_state_t *xstate)
ssize_t nwrote;
/* Allocate all global buffers (for DYN_ALLOC option) */
gunzip_window = aligned_xzalloc(GUNZIP_WSIZE);
gunzip_window = xzalloc(GUNZIP_WSIZE);
gunzip_outbuf_count = 0;
gunzip_bytes_out = 0;
gunzip_src_fd = xstate->src_fd;
@ -1068,7 +1068,7 @@ inflate_unzip_internal(STATE_PARAM transformer_state_t *xstate)
}
ret:
/* Cleanup */
aligned_free(gunzip_window);
free(gunzip_window);
free(gunzip_crc_table);
return n;
}

View file

@ -104,7 +104,7 @@ unpack_Z_stream(transformer_state_t *xstate)
return -1;
inbuf = xzalloc(IBUFSIZ + 64);
outbuf = aligned_xzalloc(OBUFSIZ + 2048);
outbuf = xzalloc(OBUFSIZ + 2048);
htab = xzalloc(HSIZE); /* wasn't zeroed out before, maybe can xmalloc? */
codetab = xzalloc(HSIZE * sizeof(codetab[0]));
@ -311,7 +311,7 @@ unpack_Z_stream(transformer_state_t *xstate)
retval = IF_DESKTOP(total_written) + 0;
err:
free(inbuf);
aligned_free(outbuf);
free(outbuf);
free(htab);
free(codetab);
return retval;

View file

@ -263,8 +263,8 @@ unpack_lzma_stream(transformer_state_t *xstate)
if (header.dict_size == 0)
header.dict_size++;
buffer_size = (uint32_t)MAX(SECTOR_ALIGNMENT, MIN(header.dst_size, header.dict_size));
buffer = aligned_xmalloc(buffer_size);
buffer_size = (uint32_t)MIN(header.dst_size, header.dict_size);
buffer = xmalloc(buffer_size);
{
int num_probs;
@ -528,7 +528,7 @@ unpack_lzma_stream(transformer_state_t *xstate)
}
rc_free(rc);
free(p);
aligned_free(buffer);
free(buffer);
return total_written;
}
}

View file

@ -49,7 +49,7 @@ IF_DESKTOP(long long) int FAST_FUNC unpack_xz_stream(transformer_state_t *xstate
bb_error_msg_and_err("memory allocation error");
in = xmalloc(XZ_BUFSIZE);
out = aligned_xmalloc(XZ_BUFSIZE);
out = xmalloc(XZ_BUFSIZE);
b.in = in;
b.in_pos = 0;
@ -129,7 +129,7 @@ out:
err:
xz_dec_end(s);
free(in);
aligned_free(out);
free(out);
if (ret == XZ_OK)
return n;
else if (ret == XZ_BUF_FULL)

View file

@ -399,7 +399,7 @@ static void unzip_set_xstate(transformer_state_t* xstate, zip_header_t* zip)
zip64_t* zip64;
/* Set the default sizes for non ZIP64 content */
xstate->bytes_total = zip->fmt.ucmpsize;
xstate->dst_size = zip->fmt.ucmpsize;
xstate->bytes_in = zip->fmt.cmpsize;
/* Set the filename */
@ -440,7 +440,7 @@ static void unzip_set_xstate(transformer_state_t* xstate, zip_header_t* zip)
zip64->fmt.cmpsize,
zip64->fmt.ucmpsize
);
xstate->bytes_total = zip64->fmt.ucmpsize;
xstate->dst_size = zip64->fmt.ucmpsize;
xstate->bytes_in = zip64->fmt.cmpsize;
}
}
@ -457,10 +457,10 @@ unzip_extract(zip_header_t* zip, transformer_state_t* xstate)
if (zip->fmt.method == 0) {
/* Method 0 - stored (not compressed) */
if (xstate->bytes_total) {
bb_copyfd_exact_size(xstate->src_fd, xstate->dst_fd, xstate->bytes_total);
if (xstate->dst_size) {
bb_copyfd_exact_size(xstate->src_fd, xstate->dst_fd, xstate->dst_size);
}
return xstate->bytes_total;
return xstate->dst_size;
}
if (zip->fmt.method == 8) {
@ -507,7 +507,7 @@ unzip_extract(zip_header_t* zip, transformer_state_t* xstate)
}
/* Validate decompression - size */
if (n != -ENOSPC && xstate->bytes_total != xstate->bytes_out) {
if (n != -ENOSPC && xstate->dst_size != xstate->bytes_out) {
/* Don't die. Who knows, maybe len calculation
* was botched somewhere. After all, crc matched! */
bb_simple_error_msg("bad length");

View file

@ -27,8 +27,8 @@ unpack_zstd_stream_inner(transformer_state_t *xstate,
ZSTD_DStream *dctx, void *out_buff)
{
const U32 zstd_magic = ZSTD_MAGIC;
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), SECTOR_ALIGNMENT),
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), SECTOR_ALIGNMENT);
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), 1024),
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), 1024);
IF_DESKTOP(long long int total = 0;)
size_t last_result = ZSTD_error_maxCode + 1;
@ -119,8 +119,8 @@ unpack_zstd_stream_inner(transformer_state_t *xstate,
IF_DESKTOP(long long) int FAST_FUNC
unpack_zstd_stream(transformer_state_t *xstate)
{
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), SECTOR_ALIGNMENT),
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), SECTOR_ALIGNMENT);
const size_t in_allocsize = roundupsize(ZSTD_DStreamInSize(), 1024),
out_allocsize = roundupsize(ZSTD_DStreamOutSize(), 1024);
IF_DESKTOP(long long) int result;
void *out_buff;
@ -132,10 +132,10 @@ unpack_zstd_stream(transformer_state_t *xstate)
bb_error_msg_and_die("memory exhausted");
}
out_buff = aligned_xmalloc(in_allocsize + out_allocsize);
out_buff = xmalloc(in_allocsize + out_allocsize);
result = unpack_zstd_stream_inner(xstate, dctx, out_buff);
aligned_free(out_buff);
free(out_buff);
ZSTD_freeDStream(dctx);
return result;
}

View file

@ -62,7 +62,7 @@ typedef struct {
extern int __static_assert__[sizeof(VTSI_FOOTER) == 512 ? 1 : -1];
#define MAX_READ_BUF BB_BUFSIZE
#define MAX_READ_BUF (8 * 1024 * 1024)
static int check_vtsi_footer(VTSI_FOOTER* footer)
{
@ -140,13 +140,13 @@ IF_DESKTOP(long long) int FAST_FUNC unpack_vtsi_stream(transformer_state_t* xsta
goto err;
if (xstate->mem_output_size_max == 512)
max_buflen = SECTOR_ALIGNMENT;
max_buflen = 1024;
buf = aligned_xmalloc(max_buflen + footer.segment_num * sizeof(VTSI_SEGMENT));
if (!buf)
segment = xmalloc(footer.segment_num * sizeof(VTSI_SEGMENT) + max_buflen);
if (!segment)
bb_error_msg_and_err("Failed to alloc segment buffer %u", footer.segment_num);
segment = (VTSI_SEGMENT*)&buf[max_buflen];
buf = (uint8_t*)segment + footer.segment_num * sizeof(VTSI_SEGMENT);
lseek(src_fd, footer.segment_offset, SEEK_SET);
safe_read(src_fd, segment, footer.segment_num * sizeof(VTSI_SEGMENT));
@ -182,7 +182,8 @@ IF_DESKTOP(long long) int FAST_FUNC unpack_vtsi_stream(transformer_state_t* xsta
n = tot;
err:
aligned_free(buf);
if (segment)
free(segment);
return n;
}

View file

@ -33,7 +33,6 @@
#include <stdarg.h>
#include <stddef.h>
#include <string.h>
#include <malloc.h>
#include <time.h>
#include <direct.h>
#include <sys/stat.h>
@ -41,7 +40,6 @@
#include <io.h>
#define ONE_TB 1099511627776ULL
#define SECTOR_ALIGNMENT 4096
#define ENABLE_DESKTOP 1
#if ENABLE_DESKTOP
@ -126,7 +124,6 @@ extern jmp_buf bb_error_jmp;
extern char* bb_virtual_buf;
extern size_t bb_virtual_len, bb_virtual_pos;
extern int bb_virtual_fd;
extern bool bb_progress_on_write;
uint32_t* crc32_filltable(uint32_t *crc_table, int endian);
uint32_t crc32_le(uint32_t crc, unsigned char const *p, size_t len, uint32_t *crc32table_le);
@ -155,7 +152,7 @@ struct timeval64 {
};
extern void (*bled_printf) (const char* format, ...);
extern void (*bled_progress) (const int64_t processed_bytes);
extern void (*bled_progress) (const uint64_t processed_bytes);
extern void (*bled_switch) (const char* filename, const uint64_t filesize);
extern int (*bled_read)(int fd, void* buf, unsigned int count);
extern int (*bled_write)(int fd, const void* buf, unsigned int count);
@ -194,8 +191,8 @@ static inline int fnmatch(const char *pattern, const char *string, int flags) {
static inline pid_t wait(int* status) { *status = 4; return -1; }
#define wait_any_nohang wait
/* This enables the display of a progress based on the number of bytes read/written */
extern uint64_t bb_total_rb, bb_total_wb;
/* This enables the display of a progress based on the number of bytes read */
extern uint64_t bb_total_rb;
static inline int full_read(int fd, void *buf, unsigned int count) {
int rb;
@ -226,28 +223,23 @@ static inline int full_read(int fd, void *buf, unsigned int count) {
} else {
rb = (bled_read != NULL) ? bled_read(fd, buf, count) : _read(fd, buf, count);
}
if (bled_progress != NULL && !bb_progress_on_write && rb > 0) {
if (rb > 0) {
bb_total_rb += rb;
bled_progress(bb_total_rb);
if (bled_progress != NULL)
bled_progress(bb_total_rb);
}
return rb;
}
static inline int full_write(int fd, const void* buffer, unsigned int count)
{
int wb;
/* None of our r/w buffers should be larger than BB_BUFSIZE */
if (count > BB_BUFSIZE) {
errno = E2BIG;
return -1;
}
wb = (bled_write != NULL) ? bled_write(fd, buffer, count) : _write(fd, buffer, count);
if (bled_progress != NULL && bb_progress_on_write && wb > 0) {
bb_total_wb += wb;
bled_progress(bb_total_wb);
}
return wb;
return (bled_write != NULL) ? bled_write(fd, buffer, count) : _write(fd, buffer, count);
}
static inline void bb_copyfd_exact_size(int fd1, int fd2, off_t size)
@ -262,7 +254,7 @@ static inline void bb_copyfd_exact_size(int fd1, int fd2, off_t size)
if (size > ONE_TB)
bb_error_msg_and_die("too large");
buf = _mm_malloc(BB_BUFSIZE, SECTOR_ALIGNMENT);
buf = malloc(BB_BUFSIZE);
if (buf == NULL)
bb_error_msg_and_die("out of memory");
@ -270,7 +262,7 @@ static inline void bb_copyfd_exact_size(int fd1, int fd2, off_t size)
int r, w;
r = full_read(fd1, buf, (unsigned int)MIN(size - rb, BB_BUFSIZE));
if (r < 0) {
_mm_free(buf);
free(buf);
bb_error_msg_and_die("read error");
}
if (r == 0) {
@ -279,7 +271,7 @@ static inline void bb_copyfd_exact_size(int fd1, int fd2, off_t size)
}
w = full_write(fd2, buf, r);
if (w < 0) {
_mm_free(buf);
free(buf);
bb_error_msg_and_die("write error");
}
if (w != r) {
@ -288,7 +280,7 @@ static inline void bb_copyfd_exact_size(int fd1, int fd2, off_t size)
}
rb += r;
}
_mm_free(buf);
free(buf);
}
static inline struct tm *localtime_r(const time_t *timep, struct tm *result) {
@ -302,9 +294,6 @@ static inline struct tm *localtime_r(const time_t *timep, struct tm *result) {
#define xmalloc malloc
#define xzalloc(x) calloc(x, 1)
#define malloc_or_warn malloc
#define aligned_xmalloc(x) _mm_malloc(x, SECTOR_ALIGNMENT);
static inline void* aligned_xzalloc(size_t x) { void* r = aligned_xmalloc(x); if (r) memset(r, 0, x); return r; }
#define aligned_free _mm_free
#define mkdir(x, y) _mkdirU(x)
struct fd_pair { int rd; int wr; };
void xpipe(int filedes[2]) FAST_FUNC;

View file

@ -368,7 +368,7 @@ static enum xz_ret XZ_FUNC crc32_validate(struct xz_dec *s, struct xz_buf *b)
*/
static bool XZ_FUNC check_skip(struct xz_dec *s, struct xz_buf *b)
{
while (s->check_type >= 0 && s->check_type < 16 && s->pos < check_sizes[s->check_type]) {
while (s->check_type < 16 && s->pos < check_sizes[s->check_type]) {
if (b->in_pos == b->in_size)
return false;

View file

@ -84,7 +84,6 @@ static uint8_t sha256db[] = {
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, 0x57, 0xaa, 0xd3, 0x6a, 0xec, 0x68, 0x21, 0xcb, 0xf2, 0x17, 0x4d, 0xb5, 0xd2, 0x09, 0xef, 0x2c, 0xd2, 0x62, 0x88, 0x12, 0x39, 0xeb, 0xc3, 0xf4, 0xc1, 0xcf, 0x55, 0xab, 0x10, 0xee, 0x55, // grub-2.12~rc1/core.img
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
0x84, 0x73, 0x50, 0x4a, 0x84, 0x9c, 0x89, 0x83, 0x29, 0xcb, 0x90, 0x92, 0xf2, 0x5e, 0x26, 0x9d, 0x4e, 0x19, 0x3b, 0xc7, 0x72, 0xf8, 0x48, 0x9f, 0xa2, 0xc5, 0xd5, 0xa5, 0xd2, 0xd8, 0x87, 0x74, // grub-2.12-nonstandard-gdie/core.img
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
0x88, 0x14, 0xe5, 0x76, 0xab, 0xc1, 0xaa, 0x44, 0xdd, 0xe9, 0x43, 0xb0, 0xca, 0xae, 0xe8, 0x33, 0xa5, 0x81, 0x01, 0x42, 0x61, 0x4a, 0xde, 0xeb, 0x4c, 0xc7, 0x25, 0xe7, 0x8a, 0x50, 0x45, 0xb7, // syslinux-6.03/ldlinux.bss
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

View file

@ -1765,15 +1765,11 @@ const char* GetFsName(HANDLE hPhysical, LARGE_INTEGER StartingOffset)
if (buf == NULL)
goto out;
// 1. Try to detect ISO9660/FAT/exFAT/NTFS/ReFS/SquashFS through the 512 bytes superblock at offset 0
// 1. Try to detect ISO9660/FAT/exFAT/NTFS/ReFS through the 512 bytes superblock at offset 0
if (!SetFilePointerEx(hPhysical, StartingOffset, NULL, FILE_BEGIN))
goto out;
if (!ReadFile(hPhysical, buf, sector_size, &size, NULL) || size != sector_size)
goto out;
if (memcmp("hsqs", buf, 4) == 0) {
ret = "SquashFS";
goto out;
}
if (strncmp("CD001", &buf[0x01], 5) == 0) {
ret = "ISO9660";
goto out;
@ -2482,8 +2478,10 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m
DriveLayoutEx.PartitionEntry[i].Gpt.PartitionType = PARTITION_MICROSOFT_DATA;
// Prevent a drive letter from being assigned to the UEFI:NTFS partition
DriveLayoutEx.PartitionEntry[i].Gpt.Attributes = GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER;
// NB: We no longer make the partition read-only as we need to be able to edit
// its label for WUE's silent install no-disk/extra-disk detection.
#if !defined(_DEBUG)
// Also make the partition read-only for release versions
DriveLayoutEx.PartitionEntry[i].Gpt.Attributes += GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY;
#endif
} else if (wcscmp(SelectedDrive.Partition[i].Name, L"EFI System Partition") == 0)
DriveLayoutEx.PartitionEntry[i].Gpt.PartitionType = PARTITION_GENERIC_ESP;
else if (wcscmp(SelectedDrive.Partition[i].Name, L"Linux Persistence") == 0)

View file

@ -74,7 +74,7 @@ extern const int nb_steps[FS_MAX];
extern const char* md5sum_name[2];
extern uint32_t dur_mins, dur_secs;
extern BOOL force_large_fat32, enable_ntfs_compression, lock_drive, zero_drive, fast_zeroing, enable_file_indexing;
extern BOOL write_as_image, use_vds, write_as_esp, is_vds_available, has_ffu_support, use_rufus_mbr, append_silent;
extern BOOL write_as_image, use_vds, write_as_esp, is_vds_available, has_ffu_support, use_rufus_mbr;
extern char* archive_path;
uint8_t *grub2_buf = NULL, *sec_buf = NULL;
long grub2_len;
@ -1072,18 +1072,10 @@ BOOL WritePBR(HANDLE hLogicalVolume)
return FALSE;
}
static void update_progress(const int64_t processed_bytes)
static void update_progress(const uint64_t processed_bytes)
{
static uint64_t total_bytes;
if (processed_bytes < 0) {
total_bytes = -processed_bytes;
UpdateProgressWithInfo(OP_FORMAT, MSG_261, 0, total_bytes);
uprint_progress(0, total_bytes);
} else {
UpdateProgressWithInfo(OP_FORMAT, MSG_261, processed_bytes, total_bytes);
uprint_progress(processed_bytes, total_bytes);
}
UpdateProgressWithInfo(OP_FORMAT, MSG_261, processed_bytes, img_report.image_size);
uprint_progress(processed_bytes, img_report.image_size);
}
// Some compressed images use streams that aren't multiple of the sector
@ -1296,6 +1288,7 @@ static BOOL WriteDrive(HANDLE hPhysicalDrive, BOOL bZeroDrive)
if_assert_fails((uintptr_t)sec_buf% SelectedDrive.SectorSize == 0)
goto out;
sec_buf_pos = 0;
update_progress(0);
bled_init(256 * KB, uprintf, NULL, sector_write, update_progress, NULL, &ErrorStatus);
bled_ret = bled_uncompress_with_handles(hSourceImage, hPhysicalDrive, img_report.compression_type);
bled_exit();
@ -1788,9 +1781,6 @@ try_clear:
}
GetWindowTextU(hLabel, label, sizeof(label));
// Append a " (SILENT)" suffix to the label for fully unattended silent installation media.
if (append_silent && strstr(label, " (SILENT)") == NULL)
static_strcat(label, " (SILENT)");
if (fs_type < FS_EXT2)
ToValidLabel(label, (fs_type == FS_FAT16) || (fs_type == FS_FAT32) || (fs_type == FS_EXFAT));
ClusterSize = (DWORD)ComboBox_GetCurItemData(hClusterSize);

View file

@ -1532,6 +1532,7 @@ BOOL HashFile(const unsigned type, const char* path, uint8_t* hash)
HASH_CONTEXT hash_ctx = { {0} };
HANDLE h = INVALID_HANDLE_VALUE;
DWORD rs = 0;
uint64_t rb;
uint8_t buf[4096];
if ((type >= HASH_MAX) || (path == NULL) || (hash == NULL))
@ -1545,7 +1546,7 @@ BOOL HashFile(const unsigned type, const char* path, uint8_t* hash)
}
hash_init[type](&hash_ctx);
while(1) {
for (rb = 0; ; rb += rs) {
CHECK_FOR_USER_CANCEL;
if (!ReadFile(h, buf, sizeof(buf), &rs, NULL)) {
ErrorStatus = RUFUS_ERROR(ERROR_READ_FAULT);

View file

@ -1578,7 +1578,7 @@ int sanitize_label(char* label)
// Remove all leading '-'
for (i = 0; i < len && label[i] == '-'; i++);
if (i != 0)
memmove(label, &label[i], len - i + 1);
memmove(label, &label[i], len - i);
len = strlen(label);
if (len <= 1)
return -1;
@ -1603,7 +1603,7 @@ int sanitize_label(char* label)
for (i = 0; i < ARRAYSIZE(remove); i++) {
s = strstr(label, remove[i]);
if (s != NULL)
memmove(s, &s[strlen(remove[i])], strlen(&s[strlen(remove[i])]) + 1);
strcpy(s, &s[strlen(remove[i])]);
}
return 0;

View file

@ -131,7 +131,7 @@ BOOL usb_debug, use_fake_units, preserve_timestamps = FALSE, fast_zeroing = FALS
BOOL zero_drive = FALSE, list_non_usb_removable_drives = FALSE, enable_file_indexing, large_drive = FALSE;
BOOL write_as_image = FALSE, write_as_esp = FALSE, use_vds = FALSE, ignore_boot_marker = FALSE, save_image = FALSE;
BOOL appstore_version = FALSE, is_vds_available = TRUE, persistent_log = FALSE, has_ffu_support = FALSE;
BOOL expert_mode = FALSE, use_rufus_mbr = TRUE, bcdboot_supports_ex = FALSE, append_silent = FALSE;
BOOL expert_mode = FALSE, use_rufus_mbr = TRUE, bcdboot_supports_ex = FALSE;
float fScale = 1.0f;
int dialog_showing = 0, selection_default = BT_IMAGE, persistence_unit_selection = -1, imop_win_sel = 0;
int default_fs, fs_type, boot_type, partition_type, target_type;
@ -1391,8 +1391,6 @@ DWORD WINAPI ImageScanThread(LPVOID param)
(img_report.compression_type != BLED_COMPRESSION_NONE && img_report.compression_type < BLED_COMPRESSION_MAX) ?
"compressed " : "", img_report.is_vhd ? "VHD" : "disk");
selection_default = BT_IMAGE;
if (img_report.projected_size > 0)
uprintf(" Size: %s (Projected)", SizeToHumanReadable(img_report.projected_size, FALSE, FALSE));
}
if (img_report.is_iso) {
@ -1456,6 +1454,7 @@ DWORD WINAPI ImageScanThread(LPVOID param)
}
UpdateImage(dont_display_image_name);
ToggleImageOptions();
EnableControls(TRUE, FALSE);
// Set Target and FS accordingly
if (img_report.is_iso || img_report.is_windows_img) {
IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, image_index));
@ -1468,7 +1467,6 @@ DWORD WINAPI ImageScanThread(LPVOID param)
SendMessage(hMainDialog, WM_COMMAND, (CBN_SELCHANGE_INTERNAL << 16) | IDC_FILE_SYSTEM,
ComboBox_GetCurSel(hFileSystem));
}
EnableControls(TRUE, FALSE);
// Lose the focus on the select ISO (but place it on Close)
SendMessage(hMainDialog, WM_NEXTDLGCTL, (WPARAM)FALSE, 0);
// Lose the focus from Close and set it back to Start
@ -1508,7 +1506,6 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
syslinux_ldlinux_len[0] = 0; syslinux_ldlinux_len[1] = 0;
safe_free(grub2_buf);
append_silent = FALSE;
if (ComboBox_GetCurSel(hDeviceList) == CB_ERR)
goto out;
@ -1527,8 +1524,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_358), lmprintf(MSG_359));
goto out;
}
/* Add 4 KB extra margin for VHD footers and so on */
if ((size_check) && (img_report.projected_size > ((uint64_t)SelectedDrive.DiskSize + 4 * KB))) {
if ((size_check) && (img_report.projected_size > (uint64_t)SelectedDrive.DiskSize)) {
// This ISO image is too big for the selected target
Notification(MB_OK | MB_ICONERROR, lmprintf(MSG_088), lmprintf(MSG_089));
goto out;
@ -1723,16 +1719,16 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
selection.privacy_index = _log2(b) + 1;
MAP_BIT(UNATTEND_NO_DATA_COLLECTION);
if (IS_WINDOWS_11(img_report)) {
StrArrayAdd(&selection.choices, lmprintf(MSG_355), TRUE);
StrArrayAdd(&selection.tooltips, lmprintf(MSG_371), TRUE);
selection.edition_index = _log2(b) + 1;
MAP_BIT(UNATTEND_SILENT_INSTALL);
StrArrayAdd(&selection.choices, lmprintf(MSG_335), TRUE);
StrArrayAdd(&selection.tooltips, lmprintf(MSG_366), TRUE);
MAP_BIT(UNATTEND_DISABLE_BITLOCKER);
StrArrayAdd(&selection.choices, lmprintf(MSG_324), TRUE);
StrArrayAdd(&selection.tooltips, lmprintf(MSG_370), TRUE);
MAP_BIT(UNATTEND_QOL_ENHANCEMENTS);
StrArrayAdd(&selection.choices, lmprintf(MSG_355), TRUE);
StrArrayAdd(&selection.tooltips, lmprintf(MSG_371), TRUE);
selection.edition_index = _log2(b) + 1;
MAP_BIT(UNATTEND_SILENT_INSTALL);
if (img_report.win_version.build >= 26200) {
StrArrayAdd(&selection.choices, lmprintf(MSG_350), TRUE);
StrArrayAdd(&selection.tooltips, lmprintf(MSG_368), TRUE);
@ -1755,7 +1751,6 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
if (i < 0)
goto out;
i = remap16(i, map, TRUE);
append_silent = (i & UNATTEND_SILENT_INSTALL);
unattend_xml_path = CreateUnattendXml(arch, i);
// Remember the user preferences for the current session.
unattend_xml_mask &= ~(remap16(UNATTEND_FULL_MASK, map, TRUE));

View file

@ -150,11 +150,6 @@
#endif
#define SYMBOL_SERVER_USER_AGENT "Microsoft-Symbol-Server/10.0.22621.755"
#define DEFAULT_ESP_MOUNT_POINT "S:\\"
// Per https://learn.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-shell-setup-useraccounts-localaccounts-localaccount-name
// and https://learn.microsoft.com/en-us/previous-versions/cc722458(v=technet.10)#user-name-policies
// Add '.' to the list because some folks also reported an issue with local accounts that have dots.
// Also add '&', even as it could be escaped, as it's just not worth the trouble...
#define USERNAME_INVALID_CHARS "/\\[]:;|=.,+*?<>%@&\""
#define IS_POWER_OF_2(x) ((x != 0) && (((x) & ((x) - 1)) == 0))
#define IGNORE_RETVAL(expr) do { (void)(expr); } while(0)
#ifndef ARRAYSIZE
@ -745,12 +740,9 @@ extern void StrArrayDestroy(StrArray* arr);
#define IsStrArrayEmpty(arr) (arr.Index == 0)
// Options for the custom selection dialog
#define SELECTION_NEEDS_ALL_TO_PROCEED 1
#define SELECTION_USE_WARNING_ICON 2
typedef struct {
int style;
int mask;
int flags;
int username_index;
int edition_index;
int regional_index;

View file

@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG DIALOGEX 12, 12, 232, 326
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES
CAPTION "Rufus 4.15.2396"
CAPTION "Rufus 4.14.2377"
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
BEGIN
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
@ -409,8 +409,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,15,2396,0
PRODUCTVERSION 4,15,2396,0
FILEVERSION 4,14,2377,0
PRODUCTVERSION 4,14,2377,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -428,13 +428,13 @@ BEGIN
VALUE "Comments", "https://rufus.ie"
VALUE "CompanyName", "Akeo Consulting"
VALUE "FileDescription", "Rufus"
VALUE "FileVersion", "4.15.2396"
VALUE "FileVersion", "4.14.2377"
VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2026 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
VALUE "OriginalFilename", "rufus-4.15.exe"
VALUE "OriginalFilename", "rufus-4.14.exe"
VALUE "ProductName", "Rufus"
VALUE "ProductVersion", "4.15.2396"
VALUE "ProductVersion", "4.14.2377"
END
END
BLOCK "VarFileInfo"

View file

@ -36,7 +36,6 @@
#include "rufus.h"
#include "ntdll.h"
#include "winio.h"
#include "missing.h"
#include "settings.h"
#include "resource.h"
@ -615,23 +614,28 @@ HANDLE CreateFileWithTimeout(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwS
BOOL WriteFileWithRetry(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten, DWORD nNumRetries)
{
static const LARGE_INTEGER liZero = { { 0,0 } };
DWORD nTry, NumberOfBytesWritten;
NOW_THATS_WHAT_I_CALL_AN_OVERLAPPED overlapped = { 0 };
DWORD nTry;
BOOL readFilePointer;
LARGE_INTEGER liFilePointer, liZero = { { 0,0 } };
DWORD NumberOfBytesWritten;
if (lpNumberOfBytesWritten == NULL)
lpNumberOfBytesWritten = &NumberOfBytesWritten;
// Need to get the current file pointer for retry
if (!SetFilePointerEx(hFile, liZero, (PLARGE_INTEGER)&overlapped.Offset, FILE_CURRENT)) {
uprintf("ERROR: Could not set file offset %s", WindowsErrorString());
return FALSE;
}
// Need to get the current file pointer in case we need to retry
readFilePointer = SetFilePointerEx(hFile, liZero, &liFilePointer, FILE_CURRENT);
if (!readFilePointer)
uprintf("WARNING: Could not read file pointer %s", WindowsErrorString());
if (nNumRetries == 0)
nNumRetries = 1;
for (nTry = 1; nTry <= nNumRetries && (HRESULT_CODE(ErrorStatus) != ERROR_CANCELLED); nTry++) {
if (WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, (LPOVERLAPPED)&overlapped)) {
for (nTry = 1; nTry <= nNumRetries; nTry++) {
// Need to rewind our file position on retry - if we can't even do that, just give up
if ((nTry > 1) && (!SetFilePointerEx(hFile, liFilePointer, NULL, FILE_BEGIN))) {
uprintf("Could not set file pointer - Aborting");
break;
}
if (WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, NULL)) {
LastWriteError = 0;
if (nNumberOfBytesToWrite == *lpNumberOfBytesWritten)
return TRUE;
@ -644,15 +648,18 @@ BOOL WriteFileWithRetry(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWr
} else {
uprintf("Write error %s", WindowsErrorString());
LastWriteError = RUFUS_ERROR(GetLastError());
if (LastWriteError == RUFUS_ERROR(ERROR_DISK_FULL) || HRESULT_CODE(ErrorStatus) == ERROR_CANCELLED)
if (LastWriteError == RUFUS_ERROR(ERROR_DISK_FULL))
break;
}
// If we can't reposition for the next run, just abort
if (!readFilePointer)
break;
if (nTry < nNumRetries) {
uprintf("Retrying in %d seconds...", WRITE_TIMEOUT / 1000);
Sleep(WRITE_TIMEOUT);
}
}
if (SCODE_CODE(GetLastError()) == ERROR_SUCCESS && HRESULT_CODE(ErrorStatus) != ERROR_CANCELLED)
if (SCODE_CODE(GetLastError()) == ERROR_SUCCESS)
SetLastError(RUFUS_ERROR(ERROR_WRITE_FAULT));
return FALSE;
}
@ -967,15 +974,9 @@ static void print_extracted_file(const char* file_path, uint64_t file_length)
PrintStatus(0, MSG_000, str); // MSG_000 is "%s"
}
static void update_progress(const int64_t processed_bytes)
static void update_progress(const uint64_t processed_bytes)
{
static uint64_t total_bytes = 0;
if (processed_bytes < 0) {
total_bytes = -processed_bytes;
UpdateProgressWithInfo(OP_EXTRACT_ZIP, MSG_348, 0, total_bytes);
} else
UpdateProgressWithInfo(OP_EXTRACT_ZIP, MSG_348, processed_bytes, total_bytes);
UpdateProgressWithInfo(OP_EXTRACT_ZIP, MSG_348, processed_bytes, archive_size);
}
// Extract content from a zip archive onto the designated directory or drive

View file

@ -58,13 +58,11 @@ static struct {
char **szDialogItem;
int nDialogItems;
} list_data = { 0 };
// The selection dialog can be re-entered so we need multiple instances + an index
static struct {
char* szMessageText;
char* szMessageTitle;
selection_dialog_options_t* options;
} selection_data[3] = { 0 };
static int s = -1;
} selection_data = { 0 };
static struct {
HICON hMessageIcon;
char* szMessageText;
@ -838,23 +836,6 @@ static int GetComboBoxMinWidth(HWND hCtrl, StrArray* array)
return max_width + arrow_width + padding;
}
static VOID ShowSilentOption(HWND hDlg, int index, BOOL show)
{
int i, dh;
RECT rc1, rc2;
ShowWindow(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[index].options->edition_index - 1), show ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDC_SELECTION_EDITION), show ? SW_SHOW : SW_HIDE);
GetWindowRect(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1), &rc1);
GetWindowRect(GetDlgItem(hDlg, IDC_SELECTION_CHOICE2), &rc2);
dh = show ? (rc2.top - rc1.top) : (rc1.top - rc2.top);
for (i = selection_data[index].options->edition_index; i < (int)selection_data[index].options->choices.Index; i++)
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), 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);
ResizeMoveCtrl(hDlg, hDlg, 0, 0, 0, dh, 1.0f);
}
/*
* Custom dialog for radio button selection dialog
*/
@ -862,22 +843,25 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
{
// This "Mooo" is designed to give us enough space for a regular username length
static const char* base_username = "MOOOOOOOOOOO"; // 🐮
static const char* username_invalid_chars = USERNAME_INVALID_CHARS;
// https://learn.microsoft.com/en-us/previous-versions/cc722458(v=technet.10)#user-name-policies
static const char* username_invalid_chars = "/\\[]:;|=,+*?<>\"";
// Prevent resizing
static const LRESULT disabled[9] = { HTLEFT, HTRIGHT, HTTOP, HTBOTTOM, HTSIZE,
static LRESULT disabled[9] = { HTLEFT, HTRIGHT, HTTOP, HTBOTTOM, HTSIZE,
HTTOPLEFT, HTTOPRIGHT, HTBOTTOMLEFT, HTBOTTOMRIGHT };
static HBRUSH background_brush, separator_brush;
static HFONT hDlgFont = NULL;
static BOOL silent_install_checked = FALSE;
char username[128] = { 0 }, str[MAX_PATH];
int i, m, dw, dh, r = -1, mw;
DWORD size = sizeof(username);
LRESULT loc;
NONCLIENTMETRICS ncm; // To use the system message font
// To use the system message font
NONCLIENTMETRICS ncm;
RECT rc, rc2;
HWND hCtrl;
HDC hDC;
assert(s < ARRAYSIZE(selection_data));
assert(selection_data[s].options != NULL);
int nDialogItems = selection_data[s].options->choices.Index;
assert(selection_data.options != NULL);
int nDialogItems = selection_data.options->choices.Index;
switch (message) {
case WM_INITDIALOG:
@ -893,7 +877,7 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
}
// Switch to checkboxes or some other style if requested
for (i = 0; i < nDialogItems; i++)
Button_SetStyle(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), selection_data[s].options->style, TRUE);
Button_SetStyle(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), selection_data.options->style, TRUE);
// Get the system message box font. See http://stackoverflow.com/a/6057761
if (hDlgFont == NULL) {
ncm.cbSize = sizeof(ncm);
@ -909,6 +893,8 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
SendMessage(GetDlgItem(hDlg, IDNO), WM_SETFONT, (WPARAM)hDlgFont, MAKELPARAM(TRUE, 0));
apply_localization(IDD_SELECTION, hDlg);
background_brush = GetSysColorBrush(COLOR_WINDOW);
separator_brush = GetSysColorBrush(COLOR_3DLIGHT);
SetTitleBarIcon(hDlg);
CenterDialog(hDlg, NULL);
@ -918,34 +904,31 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
mw = rc.right - rc.left - ddw; // ddw seems to work okay as a fudge
dw = mw;
// NB: GetEdition() may cause SelectionDialog() to be re-entered!
if (selection_data[s].options->edition_index > 0)
r = GetEditions(&edition_name, &edition_index);
r = GetEditions(&edition_name, &edition_index);
// Change the default icon and set the text
Static_SetIcon(GetDlgItem(hDlg, IDC_SELECTION_ICON), (selection_data[s].options->flags & SELECTION_USE_WARNING_ICON) ?
FixWarningIcon(LoadIcon(NULL, IDI_WARNING)) : LoadIcon(NULL, IDI_QUESTION));
SetWindowTextU(hDlg, selection_data[s].szMessageTitle);
Static_SetIcon(GetDlgItem(hDlg, IDC_SELECTION_ICON), LoadIcon(NULL, IDI_QUESTION));
SetWindowTextU(hDlg, selection_data.szMessageTitle);
SetWindowTextU(GetDlgItem(hDlg, IDCANCEL), lmprintf(MSG_007));
SetWindowTextU(GetDlgItem(hDlg, IDC_SELECTION_TEXT), selection_data[s].szMessageText);
SetWindowTextU(GetDlgItem(hDlg, IDC_SELECTION_TEXT), selection_data.szMessageText);
for (i = 0; i < nDialogItems; i++) {
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i);
static_strcpy(str, selection_data[s].options->choices.String[i]);
static_strcpy(str, selection_data.options->choices.String[i]);
SetWindowTextU(hCtrl, str);
ShowWindow(hCtrl, SW_SHOW);
// Compute the maximum line's width (with some extra for the username and edition fields)
if (i == selection_data[s].options->username_index - 1) {
static_sprintf(str, "%s __%s__", selection_data[s].options->choices.String[i], base_username);
if (i == selection_data.options->username_index - 1) {
static_sprintf(str, "%s __%s__", selection_data.options->choices.String[i], base_username);
mw = max(mw, GetTextSize(hCtrl, str).cx);
} else if (i == selection_data[s].options->edition_index - 1) {
} else if (i == selection_data.options->edition_index - 1) {
mw = max(mw, GetTextSize(hCtrl, str).cx +
GetComboBoxMinWidth(GetDlgItem(hDlg, IDC_SELECTION_EDITION), &edition_name));
} else {
mw = max(mw, GetTextSize(hCtrl, str).cx);
}
// Set tooltips, if any
if (i < (int)selection_data[s].options->tooltips.Index)
CreateTooltipEx(hDlg, hCtrl, selection_data[s].options->tooltips.String[i], -1);
if (i < (int)selection_data.options->tooltips.Index)
CreateTooltipEx(hDlg, hCtrl, selection_data.options->tooltips.String[i], -1);
}
// If our maximum line's width is greater than the default, set a nonzero delta width
dw = (mw <= dw) ? 0 : mw - dw;
@ -956,7 +939,7 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
SelectFont(hDC, hDlgFont); // Yes, you *MUST* reapply the font to the DC, even after SetWindowText!
GetWindowRect(hCtrl, &rc);
dh = rc.bottom - rc.top;
DrawTextU(hDC, selection_data[s].szMessageText, -1, &rc, DT_CALCRECT | DT_WORDBREAK);
DrawTextU(hDC, selection_data.szMessageText, -1, &rc, DT_CALCRECT | DT_WORDBREAK);
dh = rc.bottom - rc.top - dh;
safe_release_dc(hCtrl, hDC);
ResizeMoveCtrl(hDlg, hCtrl, 0, 0, 0, dh, 1.0f);
@ -964,12 +947,12 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i), 0, dh, dw, 0, 1.0f);
// If required, set up the the username edit box
if (selection_data[s].options->username_index > 0) {
if (selection_data.options->username_index > 0) {
unattend_username[0] = 0;
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->username_index - 1);
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->username_index - 1);
GetClientRect(hCtrl, &rc);
ResizeMoveCtrl(hDlg, hCtrl, 0, 0,
(rc.left - rc.right) + GetTextSize(hCtrl, selection_data[s].options->choices.String[selection_data[s].options->username_index - 1]).cx + ddw, 0, 1.0f);
(rc.left - rc.right) + GetTextSize(hCtrl, selection_data.options->choices.String[selection_data.options->username_index - 1]).cx + ddw, 0, 1.0f);
GetWindowRect(hCtrl, &rc);
SetWindowPos(GetDlgItem(hDlg, IDC_SELECTION_USERNAME), hCtrl, rc.left, rc.top, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_USERNAME);
@ -983,11 +966,11 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
}
// If required, set up the the edition combo box
if (selection_data[s].options->edition_index > 0 && edition_name.String != NULL && edition_name.Index > 0) {
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->edition_index - 1);
if (selection_data.options->edition_index > 0 && edition_name.String != NULL && edition_name.Index > 0) {
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->edition_index - 1);
GetClientRect(hCtrl, &rc);
ResizeMoveCtrl(hDlg, hCtrl, 0, 0,
(rc.left - rc.right) + GetTextSize(hCtrl, selection_data[s].options->choices.String[selection_data[s].options->edition_index - 1]).cx + ddw, 0, 1.0f);
(rc.left - rc.right) + GetTextSize(hCtrl, selection_data.options->choices.String[selection_data.options->edition_index - 1]).cx + ddw, 0, 1.0f);
GetWindowRect(hCtrl, &rc);
SetWindowPos(GetDlgItem(hDlg, IDC_SELECTION_EDITION), hCtrl, rc.left, rc.top, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_EDITION);
@ -1014,21 +997,22 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDOK), dw, dh, 0, 0, 1.0f);
ResizeMoveCtrl(hDlg, GetDlgItem(hDlg, IDCANCEL), dw, dh, 0, 0, 1.0f);
ResizeButtonHeight(hDlg, IDOK);
if (selection_data[s].options->flags & SELECTION_NEEDS_ALL_TO_PROCEED)
EnableWindow(GetDlgItem(hDlg, IDOK), FALSE);
ResizeButtonHeight(hDlg, IDCANCEL);
// Set the default selection
for (i = 0, m = 1; i < nDialogItems; i++, m <<= 1)
Button_SetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i),
(selection_data[s].options->style == BS_AUTORADIOBUTTON && selection_data[s].options->mask == 0 && i == 0) ||
(selection_data[s].options->mask != 0 && (m & selection_data[s].options->mask) ? BST_CHECKED : BST_UNCHECKED));
// Hide the silent option if any of the username/regional/privacy checkboxes are unchecked
if (selection_data[s].options->edition_index > 0) {
if (!Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->username_index - 1)) ||
!Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->regional_index - 1)) ||
!Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->privacy_index - 1)))
ShowSilentOption(hDlg, s, FALSE);
(selection_data.options->mask == 0 && i == 0) ||
(selection_data.options->mask != 0 && (m & selection_data.options->mask) ? BST_CHECKED : BST_UNCHECKED));
// Set the default state of the silent install option if available
if (selection_data.options->edition_index > 0 && selection_data.options->username_index > 0 &&
selection_data.options->regional_index > 0 && selection_data.options->privacy_index > 0) {
// Should be the same condition as the one in WM_COMMAND
BOOL enable = Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->username_index - 1)) &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->regional_index - 1)) &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->privacy_index - 1));
EnableWindow(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->edition_index - 1), enable);
EnableWindow(GetDlgItem(hDlg, IDC_SELECTION_EDITION), enable);
}
SetDarkModeForChild(hDlg);
@ -1038,66 +1022,55 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
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)GetSysColorBrush(COLOR_3DLIGHT);
return (INT_PTR)GetSysColorBrush(COLOR_WINDOW);
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])
if (loc == disabled[i]) {
return (INT_PTR)TRUE;
}
}
return (INT_PTR)FALSE;
case WM_NCDESTROY:
if (s == 0)
safe_delete_object(hDlgFont);
safe_delete_object(hDlgFont);
break;
case WM_COMMAND:
BOOL enable = TRUE;
WORD command = LOWORD(wParam);
if (command >= IDC_SELECTION_CHOICE1 && command < IDC_SELECTION_CHOICEMAX) {
if (selection_data[s].options->flags & SELECTION_NEEDS_ALL_TO_PROCEED) {
// Check if all the currently displayed checkboxes are displayed to enable/disable the OK button
for (i = 0; i < nDialogItems; i++)
enable = enable && Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i));
EnableWindow(GetDlgItem(hDlg, IDOK), enable);
} else if (selection_data[s].options->edition_index > 0 && selection_data[s].options->username_index > 0 &&
// Check if local account + regional settings + data collection checkboxes are clicked and show/hide the silent install option
selection_data[s].options->edition_index > 0 && selection_data[s].options->regional_index > 0 &&
(command - IDC_SELECTION_CHOICE1 == selection_data[s].options->username_index - 1 ||
command - IDC_SELECTION_CHOICE1 == selection_data[s].options->regional_index - 1 ||
command - IDC_SELECTION_CHOICE1 == selection_data[s].options->privacy_index - 1)) {
enable = Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->username_index - 1)) &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->regional_index - 1)) &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->privacy_index - 1));
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->edition_index - 1);
if (enable && !IsWindowVisible(hCtrl))
ShowSilentOption(hDlg, s, TRUE);
else if (!enable && IsWindowVisible(hCtrl))
ShowSilentOption(hDlg, s, FALSE);
// Check if local account + regional settings + data collection checkboxes are clicked and enable/disable the silent install option
if (selection_data.options->edition_index > 0 && selection_data.options->username_index > 0 &&
selection_data.options->edition_index > 0 && selection_data.options->regional_index > 0 &&
(command - IDC_SELECTION_CHOICE1 == selection_data.options->username_index - 1 ||
command - IDC_SELECTION_CHOICE1 == selection_data.options->regional_index - 1 ||
command - IDC_SELECTION_CHOICE1 == selection_data.options->privacy_index - 1)) {
BOOL enable = Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->username_index - 1)) &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->regional_index - 1)) &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->privacy_index - 1));
hCtrl = GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->edition_index - 1);
if (!enable && IsWindowEnabled(hCtrl)) {
silent_install_checked = (Button_GetCheck(hCtrl) == BST_CHECKED);
Button_SetCheck(hCtrl, FALSE);
} else if (enable && !IsWindowEnabled(hCtrl)) {
Button_SetCheck(hCtrl, silent_install_checked);
}
EnableWindow(hCtrl, enable);
EnableWindow(GetDlgItem(hDlg, IDC_SELECTION_EDITION), enable);
}
} else switch (LOWORD(wParam)) {
case IDOK:
// Produce a big scary warning if the silent install option was selected
if (selection_data[s].options->edition_index > 0 &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data[s].options->edition_index - 1))) {
selection_dialog_options_t selection = { 0 };
selection.style = BS_AUTOCHECKBOX;
selection.flags = SELECTION_NEEDS_ALL_TO_PROCEED | SELECTION_USE_WARNING_ICON;
StrArrayCreate(&selection.choices, 4);
StrArrayAdd(&selection.choices, lmprintf(MSG_372), FALSE);
StrArrayAdd(&selection.choices, lmprintf(MSG_373), FALSE);
StrArrayAdd(&selection.choices, lmprintf(MSG_374), FALSE);
i = SelectionDialog(APPLICATION_NAME, lmprintf(MSG_356), &selection);
safe_free(selection.choices.String);
if (i != 7)
break;
}
if (selection_data.options->edition_index > 0 &&
Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + selection_data.options->edition_index - 1)) &&
Notification(MB_YESNO | MB_ICONWARNING, APPLICATION_NAME, lmprintf(MSG_356)) != IDYES)
break;
for (r = 0, i = 0, m = 1; i < nDialogItems; i++, m <<= 1)
if (Button_GetCheck(GetDlgItem(hDlg, IDC_SELECTION_CHOICE1 + i)) == BST_CHECKED)
r += m;
if (selection_data[s].options->username_index > 0) {
if (selection_data.options->username_index > 0) {
GetWindowTextU(GetDlgItem(hDlg, IDC_SELECTION_USERNAME), unattend_username, MAX_USERNAME_LENGTH);
// Perform string sanitization (NB: GetWindowTextU always terminates the string)
for (i = 0; unattend_username[i] != 0; i++) {
@ -1107,7 +1080,7 @@ static INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam
// Also remove leading and trailing whitespaces (https://github.com/pbatard/rufus/issues/2950)
trim(unattend_username);
}
if (selection_data[s].options->edition_index > 0)
if (selection_data.options->edition_index > 0)
unattend_edition_index = (int)ComboBox_GetCurItemData(GetDlgItem(hDlg, IDC_SELECTION_EDITION));
// Fall through
case IDNO:
@ -1152,17 +1125,15 @@ int SelectionDialog(char* title, char* message, selection_dialog_options_t* opti
assert(options != NULL);
dialog_showing++;
s++;
selection_data[s].szMessageTitle = title;
selection_data[s].szMessageText = message;
selection_data[s].options = options;
selection_data.szMessageTitle = title;
selection_data.szMessageText = message;
selection_data.options = options;
if (options->style == 0)
options->style = BS_AUTORADIOBUTTON;
assert ((options->style == BS_AUTORADIOBUTTON || options->style == BS_AUTOCHECKBOX));
hook = SetWindowsHookEx(WH_MOUSE, SelectionTooltipPopper, NULL, GetCurrentThreadId());
ret = (int)MyDialogBox(hMainInstance, IDD_SELECTION, hMainDialog, SelectionCallback);
UnhookWindowsHookEx(hook);
s--;
dialog_showing--;
return ret;
@ -1416,11 +1387,12 @@ void DestroyTooltip(HWND hControl)
void DestroyAllTooltips(void)
{
int i;
int i, j;
for (i = 0; i < MAX_TOOLTIPS; i++) {
for (i = 0, j = 0; i < MAX_TOOLTIPS; i++) {
if (ttlist[i].hTip == NULL)
continue;
j++;
DestroyWindow(ttlist[i].hTip);
safe_free(ttlist[i].wstring);
ttlist[i].original_proc = NULL;

View file

@ -99,9 +99,6 @@ static int8_t IsCompressedBootableImage(const char* path)
ErrorStatus = 0;
if (img_report.compression_type < BLED_COMPRESSION_MAX) {
bled_init(0, uprintf, NULL, NULL, NULL, NULL, &ErrorStatus);
dc = bled_get_uncompressed_size(path, file_assoc[i].type);
if (dc > 0)
img_report.projected_size = dc;
dc = bled_uncompress_to_buffer(path, (char*)buf, MBR_SIZE, file_assoc[i].type);
bled_exit();
} else if (img_report.compression_type == BLED_COMPRESSION_MAX) {

View file

@ -108,11 +108,7 @@ out:
char* CreateUnattendXml(int arch, int flags)
{
const static char* xml_arch_names[5] = { "x86", "amd64", "arm", "arm64" };
const static char* unallowed_account_names[] = {
// From https://learn.microsoft.com/en-us/archive/technet-wiki/13813.localized-names-for-administrator-account-in-windows
"Administrator", "Järjestelmänvalvoja", "Administrateur", "Rendszergazda", "Administrador", "Администратор", "Administratör",
"Guest", "DefaultAccount", "WDAGUtilityAccount", "HelpAssistant", "KRBTGT", "Local", "NONE", "SYSTEM"
};
const static char* unallowed_account_names[] = { "Administrator", "Guest", "KRBTGT", "Local", "NONE" };
static char path[MAX_PATH], tmp[MAX_PATH];
char* tzstr;
FILE* fd;
@ -157,24 +153,18 @@ char* CreateUnattendXml(int arch, int flags)
if (flags & UNATTEND_DISABLE_BITLOCKER)
fprintf(fd, " <DisableEncryptedDiskProvisioning>true</DisableEncryptedDiskProvisioning>\n");
// The following ensures that we display the disk selection screen if only the boot media is
// available (i.e. if the system does not see any target for installation) or (in most cases)
// if the user happens to have more than one disk connected besides the instal USB. In that
// case the label assignment below fails and the UI is displayed allowing the user to provide
// drivers or pick their target disk explicitly.
// This also prevents the install media from being scratched.
// available (i.e. if the system does not see any target for installation). In that case the
// letter assignment below fails and the UI is displayed allowing the user to provide drivers.
// This also prevents the install media from being scratched, when it's the only disk.
// With a special mention to Claude AI, that explicitly said this could not be accomplished...
// Note that this may result in the disk partition screen being produced on systems that have
// card readers, but we'd rather inconvenience a few people, to prevent potential data loss,
// than the opposite. Also note that you do *NOT* want to try to use drive letter mapping for
// the detection here, as if your drive isn't of type FIXED, the file copy steps bails out at
// 75%. See https://github.com/pbatard/rufus/issues/2960 for more details.
fprintf(fd, " <Disk wcm:action=\"modify\">\n");
fprintf(fd, " <DiskID>1</DiskID> \n");
fprintf(fd, " <ModifyPartitions>\n");
fprintf(fd, " <ModifyPartition wcm:action=\"modify\">\n");
fprintf(fd, " <Order>1</Order>\n");
fprintf(fd, " <PartitionID>2</PartitionID>\n");
fprintf(fd, " <Label>RUFUS_BOOT</Label>\n");
fprintf(fd, " <PartitionID>1</PartitionID>\n");
// You REALLY don't want to use 'U' for the drive letter below. Don't ask me how I know!!!
fprintf(fd, " <Letter>D</Letter>\n");
fprintf(fd, " </ModifyPartition>\n");
fprintf(fd, " </ModifyPartitions>\n");
fprintf(fd, " </Disk>\n");
@ -279,8 +269,8 @@ char* CreateUnattendXml(int arch, int flags)
// Remove OneDrive
StrArrayAdd(&commands, "reg add \"HKLM\\Software\\Policies\\Microsoft\\Windows\\OneDrive\" /v DisableFileSyncNGSC /t REG_DWORD /d 1 /f", TRUE);
StrArrayAdd(&commands, "PowerShell -NonInteractive -WindowStyle Hidden -Command "
"\"Remove-Item -Path $env:SystemRoot\\System32\\OneDriveSetup.exe -Force -Confirm:$false; "
"Remove-Item -Path $env:SystemRoot\\SysWOW64\\OneDriveSetup.exe -Force -Confirm:$false;\"", TRUE);
"\"Remove-Item -Path $env:SystemRoot\\System32\\OneDriveSetup.exe -Force -Confirm:$false;"
"\"Remove-Item -Path $env:SystemRoot\\SysWOW64\\OneDriveSetup.exe -Force -Confirm:$false;", TRUE);
// Remove Outlook. How the frig is forcing Outlook on users legal when MS got pinned for bundling IE with Windows?
StrArrayAdd(&commands, "PowerShell -NonInteractive -WindowStyle Hidden -Command "
"\"Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like '*Outlook*'} |"
@ -347,7 +337,9 @@ char* CreateUnattendXml(int arch, int flags)
uprintf("WARNING: '%s' is not allowed as local account name - Option ignored", unattend_username);
} else if (unattend_username[0] != 0) {
char* org_username = safe_strdup(unattend_username);
filter_chars(unattend_username, USERNAME_INVALID_CHARS, '_');
// Per https://learn.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-shell-setup-useraccounts-localaccounts-localaccount-name
// Add '.' to the list because some folks also reported an issue with local accounts that have dots...
filter_chars(unattend_username, "/\\[]:|<>+=;,?*%@.", '_');
uprintf("• Use '%s' for local account name", unattend_username);
if (strcmp(org_username, unattend_username) != 0)
uprintf("WARNING: Local account name contained unallowed characters and has been sanitized");

View file

@ -42,9 +42,8 @@
#endif
#define EZXML_NOMMAP
#define EZXML_WS "\t\r\n " // whitespace
#define EZXML_ERRL 256 // maximum error string length
#define EZXML_MAXEXP (8 * MB) // max entity expansion (to prevent "billion laughs" blowup)
#define EZXML_WS "\t\r\n " // whitespace
#define EZXML_ERRL 256 // maximum error string length
#ifdef _MSC_VER
#pragma warning(disable:6011)
@ -69,7 +68,7 @@ struct ezxml_root { // additional data for the root tag
char *EZXML_NIL[] = { NULL }; // empty, null terminated array of strings
// what realloc should be doing all along
static inline void* _realloc(void* ptr, size_t size) {
static inline void* _realloc(void* ptr, unsigned int size) {
void* old_ptr = ptr;
ptr = realloc(ptr, size);
if (ptr == NULL)
@ -201,8 +200,7 @@ ezxml_t ezxml_err(ezxml_root_t root, char *s, const char *err, ...)
char *ezxml_decode(char *s, char **ent, char t)
{
char *e, *r = s, *m = s;
ssize_t b, c, d;
size_t l, o, x = 0;
long b, c, d, l;
for (; *s; s++) { // normalize line endings
while (*s == '\r') {
@ -216,8 +214,8 @@ char *ezxml_decode(char *s, char **ent, char t)
if (! *s) break;
else if (t != 'c' && ! strncmp(s, "&#", 2)) { // character reference
if (s[2] == 'x') c = (ssize_t)strtoull(s + 3, &e, 16); // base 16
else c = (ssize_t)strtoull(s + 2, &e, 10); // base 10
if (s[2] == 'x') c = strtol(s + 3, &e, 16); // base 16
else c = strtol(s + 2, &e, 10); // base 10
if (! c || *e != ';') { s++; continue; } // not a character ref
if (c < 0x80) *(s++) = (char)c; // US-ASCII subset
@ -238,14 +236,10 @@ char *ezxml_decode(char *s, char **ent, char t)
b += 2); // find entity in entity list
if (ent[b++]) { // found a match
c = strlen(ent[b]);
x += c;
if (x > EZXML_MAXEXP) break;
if ((e = strchr(s, ';')) && c - 1 > e - s) {
o = s - r;
l = o + c + (e ? strlen(e) : 0); // new length
if ((c = (long)strlen(ent[b])) - 1 > (e = strchr(s, ';')) - s) {
l = (d = (long)(s - r)) + c + (long)(e ? strlen(e) : 0); // new length
r = (r == m) ? strcpy(malloc(l), r) : _realloc(r, l);
e = strchr((s = r + o), ';'); // fix up pointers
e = strchr((s = r + d), ';'); // fix up pointers
}
if (!e) return r;
@ -260,7 +254,7 @@ char *ezxml_decode(char *s, char **ent, char t)
if (t == '*') { // normalize spaces for non-cdata attributes
for (s = r; *s; s++) {
if ((l = strspn(s, " "))) memmove(s, s + l, strlen(s + l) + 1);
if ((l = (long)strspn(s, " "))) memmove(s, s + l, strlen(s + l) + 1);
while (*s && *s != ' ') s++;
}
if (--s >= r && *s == ' ') *s = '\0'; // trim any trailing space
@ -316,27 +310,19 @@ ezxml_t ezxml_close_tag(ezxml_root_t root, char *name, char *s)
// checks for circular entity references, returns non-zero if no circular
// references are found, zero otherwise
static int ezxml_ent_ok_r(char *name, char *s, char **ent, int depth)
int ezxml_ent_ok(char *name, char *s, char **ent)
{
int i;
if (depth <= 0) return 0; // treat deep nesting as circular
for (; ; s++) {
while (*s && *s != '&') s++; // find next entity reference
if (! *s) return 1;
if (! strncmp(s + 1, name, strlen(name))) return 0; // circular ref.
for (i = 0; ent[i] && strncmp(ent[i], s + 1, strlen(ent[i])); i += 2);
if (ent[i] && ! ezxml_ent_ok_r(name, ent[i + 1], ent, depth - 1))
return 0;
if (ent[i] && ! ezxml_ent_ok(name, ent[i + 1], ent)) return 0;
}
}
int ezxml_ent_ok(char *name, char *s, char **ent)
{
return ezxml_ent_ok_r(name, s, ent, 20);
}
// called when the parser finds a processing instruction
void ezxml_proc_inst(ezxml_root_t root, char *s, size_t len)
{