1
1
Fork 0
mirror of https://github.com/pbatard/rufus.git synced 2024-08-14 23:57:05 +00:00

Compare commits

...

4 commits

Author SHA1 Message Date
Sivert Løkkesveen
4dd40bba2f
[loc] update Norwegian translation to latest 2023-04-17 13:47:57 +01:00
Minh Nguyễn Quang
41e0ed8933
[loc] update Vietnamese translation to latest 2023-04-17 13:41:23 +01:00
Pete Batard
e5f90282ed
[misc] improve Windows version detection
* Also use actual Windows major.minor when checking for updates
2023-04-17 13:33:05 +01:00
Pete Batard
6280e8020a
[net] fix incorrect architectures when querying for updates 2023-04-16 19:47:54 +01:00
14 changed files with 795 additions and 357 deletions

View file

@ -1,9 +1,11 @@
msgid ""
msgstr ""
"Project-Id-Version: 3.14\n"
"Project-Id-Version: 3.22\n"
"Report-Msgid-Bugs-To: pete@akeo.ie\n"
"POT-Creation-Date: 2021-04-11 17:32+0200\n"
"PO-Revision-Date: 2021-04-11 17:46+0200\n"
"POT-Creation-Date: 2023-04-17 13:44+0100\n"
"PO-Revision-Date: 2023-04-17 13:46+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: nb_NO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -11,9 +13,7 @@ msgstr ""
"X-Poedit-SourceCharset: UTF-8\n"
"X-Rufus-LanguageName: Norwegian (Norsk)\n"
"X-Rufus-LCID: 0x0414\n"
"Last-Translator: \n"
"Language-Team: \n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 3.2.2\n"
#. • IDD_DIALOG → IDS_DRIVE_PROPERTIES_TXT
msgid "Drive Properties"
@ -316,11 +316,11 @@ msgstr ""
#. • MSG_027
msgid "kilobytes"
msgstr ""
msgstr "kilobyte"
#. • MSG_028
msgid "megabytes"
msgstr ""
msgstr "megabyte"
#. • MSG_029
msgid "Default"
@ -949,8 +949,8 @@ msgid "Download using a browser"
msgstr "Last ned ved hjelp av en nettleser"
#. • MSG_144
msgid "Temporarily banned by Microsoft for requesting too many downloads - Please try again later..."
msgstr "Midlertidig utestengt av Microsoft for å be om for mange nedlastinger - Prøv igjen senere ..."
msgid "Download of Windows ISOs is unavailable due to Microsoft having altered their website to prevent it."
msgstr "Nedlasting av Windows ISO fra Microsoft er ikke tilgjengelig. Microsoft har endret websiden for å forhindre nedlastinger på denne måten."
#. • MSG_145
msgid "PowerShell 3.0 or later is required to run this script."
@ -1651,7 +1651,6 @@ msgid "Unsupported Windows version"
msgstr "Ikke støttet Windows-versjon"
#. • MSG_294
#, fuzzy
msgid ""
"This version of Windows is no longer supported by Rufus.\n"
"The last version of Rufus compatible with this platform is v%d.%d."
@ -1722,7 +1721,7 @@ msgid "Create a disk image of the selected device"
msgstr "Opprett et diskbilde av den valgte enheten"
#. • MSG_305
msgid "Use this option to indicate whether you want to use this device to install Windows on another disk, or if you want to run Windows directly from this drive (Windows To Go)."
msgid "Use this option to indicate if you plan to install Windows to a different disk, or if you want to run Windows directly from this drive (Windows To Go)."
msgstr "Bruk dette alternativet for å angi om du vil bruke denne enheten til å installere Windows på en annen disk, eller hvis du vil kjøre Windows direkte fra denne stasjonen (Windows To Go)."
#. • MSG_306
@ -1733,8 +1732,8 @@ msgid "Fast-zeroing drive: %s"
msgstr "Hurtig nullstilling av disken: %s"
#. • MSG_307
msgid "This may take a while"
msgstr "Dette kan ta litt tid"
msgid "this may take a while"
msgstr "dette kan ta litt tid"
#. • MSG_308
msgid "VHD detection"
@ -1780,7 +1779,7 @@ msgstr "Antall pasninger"
#. • MSG_317
msgid "Disk ID"
msgstr "Disk ID"
msgstr ""
#. • MSG_318
msgid "Default thread priority: %d"
@ -1801,3 +1800,144 @@ msgid ""
msgstr ""
"Bildet du har valgt er en ISOHybrid, men skaperne har ikke gjort det kompatibelt med ISO / File copy modus.\n"
"Som et resultat vil DD-skrivemodus bli håndhevet."
#. • MSG_322
msgid "Unable to open or read '%s'"
msgstr "Kan ikke åpne eller lese '%s'"
#. • MSG_325
msgid "Applying Windows customization: %s"
msgstr "Utfører tilpasning av Windows: %s"
#. • MSG_326
msgid "Applying user options..."
msgstr "Aktiverer brukertilpasninger..."
#. • MSG_327
msgid "Windows User Experience"
msgstr "Windows brukeropplevelse"
#. • MSG_328
msgid "Customize Windows installation?"
msgstr "Tilpasse Windows installasjonen?"
#. • MSG_329
msgid "Remove requirement for 4GB+ RAM, Secure Boot and TPM 2.0"
msgstr "Fjern krav om 4GB+ RAM, Secure Boot og TPM 2.0"
#. • MSG_330
msgid "Remove requirement for an online Microsoft account"
msgstr "Fjern krav om en Microsoft konto"
#. • MSG_331
msgid "Disable data collection (Skip privacy questions)"
msgstr "Slå av all datainnsamling (hopp over spørsmålene)"
#. • MSG_332
msgid "Prevent Windows To Go from accessing internal disks"
msgstr "Ikke gi Windows To Go tilgang til interne harddisker"
#. • MSG_333
msgid "Create a local account with username:"
msgstr "Lag en lokal brukerkongot med med brukernavnet:"
#. • MSG_334
msgid "Set regional options to the same values as this user's"
msgstr "Sett regionale instillinger til det samme som den aktive brukerkontoen"
#. • MSG_335
msgid "Disable BitLocker automatic device encryption"
msgstr "Deaktiver BitLocker kryptering av enheten"
#. • MSG_336
msgid "Persistent log"
msgstr "Behold log"
#. • MSG_900
#.
#. The following messages are for the Windows Store listing only and are not used by the application
msgid "Rufus is a utility that helps format and create bootable USB flash drives, such as USB keys/pendrives, memory sticks, etc."
msgstr "Rufus er et verktøy som hjelper til med å formatere og lage oppstartbare USB-stasjoner, for eksempel USB-minnepinner, USB-harddisker, og lignende."
#. • MSG_901
msgid "Official site: %s"
msgstr "Offisiell webside: %s"
#. • MSG_902
msgid "Source Code: %s"
msgstr "Kildekode: %s"
#. • MSG_903
msgid "ChangeLog: %s"
msgstr "Endringslogg: %s"
#. • MSG_904
#.
#. The gnu.org website has many translations of the GPL (such as https://www.gnu.org/licenses/gpl-3.0.zh-cn.html, https://www.gnu.org/licenses/gpl-3.0.fr.html)
#. Please make sure you try to locate the relevant https://www.gnu.org/licenses/gpl-3.0.<LANG-ID>.html for your language and use it here.
msgid ""
"This application is licensed under the terms of the GNU Public License (GPL) version 3.\n"
"See https://www.gnu.org/licenses/gpl-3.0.en.html for details."
msgstr ""
"Dette programmet er lisensiert under GNU Public Licence (GPL) versjon 3.\n"
"Se https://www.gnu.org/licenses/gpl-3.0.html for mer informasjon."
#. • MSG_905
#.
#. Keyword for "boot" will be used for search in the Windows Store
msgid "Boot"
msgstr "Oppstart"
#. • MSG_910
#.
#. This and subsequent messages will be listed in the 'Features' section of the Windows Store page
msgid "Format USB, flash card and virtual drives to FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3"
msgstr "Formater USB, minnekort og virtuelle disker til FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3"
#. • MSG_911
msgid "Create FreeDOS bootable USB drives"
msgstr "Lag FreeDos oppstartbar USB stick"
#. • MSG_912
msgid "Create bootable drives from bootable ISOs (Windows, Linux, etc.)"
msgstr "Lag oppstartabar enhet/disk fra ISOer (Windows, Linux, etc.)"
#. • MSG_913
msgid "Create bootable drives from bootable disk images, including compressed ones"
msgstr "Lag oppstartbare disker fra images, inkludert komprimerte sådan"
#. • MSG_914
msgid "Create BIOS or UEFI bootable drives, including UEFI bootable NTFS"
msgstr "Lag BIOS eller UEFI oppstartbare disker, inkludert UEFI oppstartbar NTFS"
#. • MSG_915
msgid "Create 'Windows To Go' drives"
msgstr "Lag 'Windows To Go' disker"
#. • MSG_916
msgid "Create Windows 11 installation drives for PCs that don't have TPM or Secure Boot"
msgstr "Lag oppstartsmedia for Windows 11 som ikke krever TPM eller Secure Boot"
#. • MSG_917
msgid "Create persistent Linux partitions"
msgstr "Lag persistente Linux partisjoner"
#. • MSG_918
msgid "Create VHD/DD images of the selected drive"
msgstr "Lag VHD/DD speilinger av valgt disk"
#. • MSG_919
msgid "Compute MD5, SHA-1, SHA-256 and SHA-512 checksums of the selected image"
msgstr "Kalkuler MD5, SHA-1, SHA-256 og SHA-512 sjekksummer fra valgt speiling"
#. • MSG_920
msgid "Perform bad blocks checks, including detection of \"fake\" flash drives"
msgstr "Utfør sjekk for dårlige sektorer, inkludert sjekk for forfalskede flash disker"
#. • MSG_921
msgid "Download official Microsoft Windows retail ISOs"
msgstr "Last ned offisielle Windows ISOer"
#. • MSG_922
msgid "Download UEFI Shell ISOs"
msgstr "Last ned UEFI kommandolinje ISOer"

File diff suppressed because it is too large Load diff

View file

@ -25,7 +25,7 @@
# • v3.22 "lv-LV" "Latvian (Latviešu)"
# • v3.14 "lt-LT" "Lithuanian (Lietuvių)"
# • v3.5 "ms-MY" "Malay (Bahasa Malaysia)"
# • v3.14 "nb-NO" "Norwegian (Norsk)"
# • v3.22 "nb-NO" "Norwegian (Norsk)"
# • v3.22 "fa-IR" "Persian (پارسی)"
# • v3.22 "pl-PL" "Polish (Polski)"
# • v3.22 "pt-BR" "Portuguese Brazilian (Português do Brasil)"
@ -40,7 +40,7 @@
# • v3.22 "th-TH" "Thai (ไทย)"
# • v3.22 "tr-TR" "Turkish (Türkçe)"
# • v3.22 "uk-UA" "Ukrainian (Українська)"
# • v3.5 "vi-VN" "Vietnamese (Tiếng Việt)"
# • v3.22 "vi-VN" "Vietnamese (Tiếng Việt)"
#########################################################################
l "en-US" "English (English)" 0x0409, 0x0809, 0x0c09, 0x1009, 0x1409, 0x1809, 0x1c09, 0x2009, 0x2409, 0x2809, 0x2c09, 0x3009, 0x3409, 0x3809, 0x3c09, 0x4009, 0x4409, 0x4809
@ -9064,7 +9064,7 @@ t MSG_900 "Rufus adalah utiliti yang membantu memformat dan mencipta pemacu kila
#########################################################################
l "nb-NO" "Norwegian (Norsk)" 0x0414
v 3.14
v 3.22
b "en-US"
g IDD_ABOUTBOX
@ -9142,6 +9142,8 @@ t MSG_016 "Månedlig"
t MSG_017 "Bruker"
t MSG_018 "Din versjon: %d.%d (Utgave %d)"
t MSG_019 "Siste versjon: %d.%d (Utgave %d)"
t MSG_027 "kilobyte"
t MSG_028 "megabyte"
t MSG_029 "Standard"
t MSG_030 "%s (Standard)"
t MSG_031 "BIOS (eller UEFI-CSM)"
@ -9254,7 +9256,7 @@ t MSG_140 "Fortsett"
t MSG_141 "Tilbake"
t MSG_142 "Vennligst vent..."
t MSG_143 "Last ned ved hjelp av en nettleser"
t MSG_144 "Midlertidig utestengt av Microsoft for å be om for mange nedlastinger - Prøv igjen senere ..."
t MSG_144 "Nedlasting av Windows ISO fra Microsoft er ikke tilgjengelig. Microsoft har endret websiden for å forhindre nedlastinger på denne måten."
t MSG_145 "PowerShell 3.0 eller nyere kreves for å kjøre dette skriptet."
t MSG_146 "Ønsker du å gå online og laste den ned?"
t MSG_148 "Kjører nedlastingskript..."
@ -9415,7 +9417,7 @@ t MSG_303 "Vis loggen"
t MSG_304 "Opprett et diskbilde av den valgte enheten"
t MSG_305 "Bruk dette alternativet for å angi om du vil bruke denne enheten til å installere Windows på en annen disk, eller hvis du vil kjøre Windows direkte fra denne stasjonen (Windows To Go)."
t MSG_306 "Hurtig nullstilling av disken: %s"
t MSG_307 "Dette kan ta litt tid"
t MSG_307 "dette kan ta litt tid"
t MSG_308 "VHD deteksjon"
t MSG_309 "Komprimert arkiv"
t MSG_310 "ISO du har valgt bruker UEFI og er liten nok til å bli skrevet som en EFI System Partition (ESP). Å skrive til en ESP, i stedet for å skrive til en generisk datapartisjon som okkuperer hele disken, kan være å foretrekke for noen typer installasjoner.\n\nVennligst velg modusen du vil bruke til å skrive dette bildet:"
@ -9429,7 +9431,38 @@ t MSG_318 "Standard trådprioritet: %d"
t MSG_319 "Ignorer oppstartsmarkør"
t MSG_320 "Forfriskende partisjonsoppsett (%s)..."
t MSG_321 "Bildet du har valgt er en ISOHybrid, men skaperne har ikke gjort det kompatibelt med ISO / File copy modus.\nSom et resultat vil DD-skrivemodus bli håndhevet."
t MSG_322 "Kan ikke åpne eller lese '%s'"
t MSG_325 "Utfører tilpasning av Windows: %s"
t MSG_326 "Aktiverer brukertilpasninger..."
t MSG_327 "Windows brukeropplevelse"
t MSG_328 "Tilpasse Windows installasjonen?"
t MSG_329 "Fjern krav om 4GB+ RAM, Secure Boot og TPM 2.0"
t MSG_330 "Fjern krav om en Microsoft konto"
t MSG_331 "Slå av all datainnsamling (hopp over spørsmålene)"
t MSG_332 "Ikke gi Windows To Go tilgang til interne harddisker"
t MSG_333 "Lag en lokal brukerkongot med med brukernavnet:"
t MSG_334 "Sett regionale instillinger til det samme som den aktive brukerkontoen"
t MSG_335 "Deaktiver BitLocker kryptering av enheten"
t MSG_336 "Behold log"
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"
t MSG_903 "Endringslogg: %s"
t MSG_904 "Dette programmet er lisensiert under GNU Public Licence (GPL) versjon 3.\nSe https://www.gnu.org/licenses/gpl-3.0.html for mer informasjon."
t MSG_905 "Oppstart"
t MSG_910 "Formater USB, minnekort og virtuelle disker til FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3"
t MSG_911 "Lag FreeDos oppstartbar USB stick"
t MSG_912 "Lag oppstartabar enhet/disk fra ISOer (Windows, Linux, etc.)"
t MSG_913 "Lag oppstartbare disker fra images, inkludert komprimerte sådan"
t MSG_914 "Lag BIOS eller UEFI oppstartbare disker, inkludert UEFI oppstartbar NTFS"
t MSG_915 "Lag 'Windows To Go' disker"
t MSG_916 "Lag oppstartsmedia for Windows 11 som ikke krever TPM eller Secure Boot"
t MSG_917 "Lag persistente Linux partisjoner"
t MSG_918 "Lag VHD/DD speilinger av valgt disk"
t MSG_919 "Kalkuler MD5, SHA-1, SHA-256 og SHA-512 sjekksummer fra valgt speiling"
t MSG_920 "Utfør sjekk for dårlige sektorer, inkludert sjekk for forfalskede flash disker"
t MSG_921 "Last ned offisielle Windows ISOer"
t MSG_922 "Last ned UEFI kommandolinje ISOer"
#########################################################################
l "fa-IR" "Persian (پارسی)" 0x0429
@ -15113,7 +15146,7 @@ t MSG_922 "Завантаження командної оболонки UEFI ISO
#########################################################################
l "vi-VN" "Vietnamese (Tiếng Việt)" 0x042A
v 3.5
v 3.22
b "en-US"
g IDD_ABOUTBOX
@ -15125,7 +15158,7 @@ t IDS_DRIVE_PROPERTIES_TXT "Thuộc tính ổ đĩa"
t IDS_DEVICE_TXT "Thiết bị"
t IDS_BOOT_SELECTION_TXT "Phương thức khởi động"
t IDC_SELECT "Chọn"
t IDS_IMAGE_OPTION_TXT "Tùy chọn file ảnh"
t IDS_IMAGE_OPTION_TXT "Tùy chọn tệp tin"
t IDS_PARTITION_TYPE_TXT "Định dạng phân vùng"
t IDS_TARGET_SYSTEM_TXT "Hệ thống áp dụng"
t IDC_LIST_USB_HDD "Danh sách ổ cứng USB"
@ -15168,31 +15201,31 @@ t IDNO "Không"
g IDD_UPDATE_POLICY
t IDCANCEL "Đóng"
t IDD_UPDATE_POLICY "Thiết lập và lập chính sách cập nhật"
t IDD_UPDATE_POLICY "Cập nhật chính sách và thiết lập"
t IDS_UPDATE_SETTINGS_GRP "Thiết lập"
t IDS_UPDATE_FREQUENCY_TXT "Kiểm tra cập nhật"
t IDS_INCLUDE_BETAS_TXT "Gồm bản thử nghiệm"
t IDC_CHECK_NOW "Kiểm tra ngay"
t MSG_001 "Một bản Rufus khác đang chạy"
t MSG_001 "Phát hiện tiến trình chạy đồng thời"
t MSG_002 "Ứng dụng Rufus khác đang chạy.\nVui lòng đóng ứng dụng đầu tiên trước khi chạy tiếp."
t MSG_003 "CẢNH BÁO: TẤT CẢ DỮ LIỆU TRÊN THIẾT BỊ '%s' SẼ BỊ HUỶ.\nĐể tiếp tục hoạt động này, nhấn OK. Để thoát nhấn HUỶ."
t MSG_003 "CẢNH BÁO: TẤT CẢ DỮ LIỆU TRÊN THIẾT BỊ '%s' SẼ BỊ HUỶ.\nĐể tiếp tục tiến trình này, nhấn OK. Để thoát nhấn HUỶ."
t MSG_004 "Chính sách cập nhật Rufus"
t MSG_005 "Bạn muốn cho phép Rufus kiểm tra cập nhật ứng dụng trực tuyến?"
t MSG_005 "Bạn muốn cho phép Rufus kiểm tra cập nhật ứng dụng trực tuyến?"
t MSG_006 "Đóng"
t MSG_007 "Huỷ"
t MSG_008 "Có"
t MSG_009 "Không"
t MSG_010 "Phát hiện khối hỏng"
t MSG_011 "Kiểm tra hoàn tất: phát hiện %d khối hỏng\n %d lỗi đọc\n %d lỗi ghi\n %d lỗi cấu trúc"
t MSG_012 "%s\nCó thể tìm thấy một báo cáo chi tiết hơn trong:\n%s"
t MSG_012 "%s\nMột báo cáo chi tiết hơn có thể tìm thấy trong:\n%s"
t MSG_013 "Đã vô hiệu"
t MSG_014 "Hàng ngày"
t MSG_015 "Hàng tuần"
t MSG_016 "Hàng tháng"
t MSG_017 "Tuỳ chỉnh"
t MSG_018 "Phiên bản của bạn: %d.%d (Bản xây dựng %d)"
t MSG_019 "Phiên bản mới nhất: %d.%d (Bản xây dựng %d)"
t MSG_018 "Phiên bản của bạn: %d.%d (Bản dựng %d)"
t MSG_019 "Phiên bản mới nhất: %d.%d (Bản dựng %d)"
t MSG_029 "Mặc định"
t MSG_030 "%s (Mặc định)"
t MSG_031 "BIOS (hoặc UEFI-CSM)"
@ -15200,28 +15233,28 @@ t MSG_032 "UEFI (không CSM)"
t MSG_033 "BIOS hoặc UEFI"
t MSG_034 "Qua %d lần"
t MSG_035 "Qua %d lần %s"
t MSG_036 "Ảnh ISO"
t MSG_036 "Tệp ISO"
t MSG_037 "Ứng dụng"
t MSG_038 "Huỷ bỏ"
t MSG_039 "Khởi chạy"
t MSG_040 "Tải xuống"
t MSG_041 "Hoạt động bị huỷ bởi người dùng"
t MSG_041 "Tiến trình bị huỷ bởi người dùng"
t MSG_042 "Lỗi"
t MSG_043 "Lỗi: %s"
t MSG_044 "Tải xuống tập tin"
t MSG_045 "Thiết bị lưu trữ USB (Cơ bản)"
t MSG_046 "%s (Đĩa %d) [%s]"
t MSG_047 "Nhiều phân vùng"
t MSG_047 "Đa phân vùng"
t MSG_048 "Rufus - Xoá bộ đệm"
t MSG_049 "Rufus - Huỷ"
t MSG_050 "Thành công."
t MSG_051 "Lỗi chưa được xác định khi đang định dạng."
t MSG_051 "Lỗi không xác định khi đang định dạng."
t MSG_052 "Không thể dùng hệ thống tập tin đã chọn cho thiết bị này."
t MSG_053 "Từ chối truy cập đến thiết bị."
t MSG_053 "Thiết bị từ chối truy cập."
t MSG_054 "Thiết bị được bảo vệ ghi."
t MSG_055 "Thiết bị đang được dùng bởi tiến trình khác. Vui lòng đóng mọi tiến trình có thể truy cập thiết bị."
t MSG_056 "Định dạng nhanh không khả dụng với thiết bị này."
t MSG_057 "Tên ổ đãi không hợp lệ."
t MSG_057 "Tên ổ đĩa không hợp lệ."
t MSG_058 "Xử lý thiết bị không hợp lệ."
t MSG_059 "Kích cỡ liên cung đã chọn không thích hợp với thiết bị này."
t MSG_060 "Kích cỡ ổ đĩa không hợp lệ."
@ -15231,88 +15264,88 @@ t MSG_063 "Lỗi sắp xếp bộ nhớ."
t MSG_064 "Lỗi đọc."
t MSG_065 "Lỗi ghi."
t MSG_066 "Cài đặt thất bại"
t MSG_067 "Không thể mở phương tiện. Có thể nó đang được tiến trình khác sử dụng. Vui lòng tái kết nối và thử lại."
t MSG_068 "Lỗi khi phân vùng ổ đĩa."
t MSG_067 "Không thể mở thiết bị. Có thể nó đang được tiến trình khác sử dụng. Vui lòng cắm lại thiết bị và thử lại."
t MSG_068 "Không thể phân vùng ổ đĩa."
t MSG_069 "Không thể chép tập tin vào đĩa."
t MSG_070 "Đã huỷ bởi người dùng."
t MSG_071 "Không thể bắt đầu luồn."
t MSG_071 "Không thể bắt đầu luồng."
t MSG_072 "Kiểm tra khối hỏng chưa hoàn tất."
t MSG_073 "Quét ảnh ISO thất bại."
t MSG_074 "Trích xuất ảnh ISO thất bại."
t MSG_075 "Không thể tái kết nối ổ đĩa."
t MSG_073 "Quét tệp ISO thất bại."
t MSG_074 "Trích xuất tệp ISO thất bại."
t MSG_075 "Không thể tái gắn ổ đĩa."
t MSG_076 "Không thể vá/cài đặt tập tin cho việc khởi động."
t MSG_077 "Không thể định ký tự ổ đĩa."
t MSG_078 "Không thể gắn kết ổ GUID."
t MSG_079 "Thiết bị chưa sẵn sàng."
t MSG_080 "Rufus đã phát hiện Windows vẫn đang làm sạch bộ đệm bên trong thiết bị USB.\n\nTuỳ thuộc vào tốc độ của thiết bị USB, hoạt động này có thể mất một thời gian dài để hoàn tất, đặc biệt với những tập tin lớn.\n\nChúng tôi khuyên bạn nên để Windows kết thúc để phòng hỏng dữ liệu. Nhưng nếu bạn mệt mỏi vì chờ đợi, hãy cứ rút thiết bị ra..."
t MSG_081 "Ảnh không được hỗ trợ"
t MSG_082 "Ảnh này không có khả năng khởi động hoặc sử dụng một phương thức khởi động hoặc nén không được Rufus hỗ trợ..."
t MSG_080 "Rufus đã phát hiện Windows vẫn đang làm sạch bộ đệm bên trong thiết bị USB.\n\nTuỳ thuộc vào tốc độ của thiết bị USB, hoạt động này có thể mất một thời gian dài để hoàn tất, đặc biệt với những tập tin lớn.\n\nChúng tôi khuyên bạn nên để Windows kết thúc để phòng hỏng dữ liệu. Nhưng nếu bạn cảm thấy quá lâu, hãy cứ tháo thiết bị ra..."
t MSG_081 "Tệp tin không được hỗ trợ"
t MSG_082 "Tệp này không có khả năng khởi động hoặc sử dụng một phương thức khởi động hoặc nén không được Rufus hỗ trợ..."
t MSG_083 "Thay thế %s?"
t MSG_084 "Ảnh ISO này là phiên bản cũ của '%s'.\nMenu khởi động có thể không hiện chính xác vì điều này.\n\nMột phiên bản mới có thể được tải xuống bởi Rufus để khắc phục vấn đề này:\n- Chọn 'Có' để kết nối với Internet và tải tập tin xuống\n- Chọn 'Không' để không thay đổi tập tin ISO đang có\nNếu bạn không biết phải làm gì, bạn nên chọn 'Có'.\n\nGhi chú: Tập tin mới sẽ được tải xuống vào thư mục hiện tại và một khi '%s' trong đó, nó sẽ được tự động tái sử dụng."
t MSG_084 "Tệp ISO này có vẻ là phiên bản lỗi thời của '%s'.\nCác menu khởi động có thể không hiện chính xác vì điều này.\n\nMột phiên bản mới có thể được tải xuống bởi Rufus để khắc phục vấn đề này:\n- Chọn 'Có' để kết nối với Internet và tải tập tin xuống\n- Chọn 'Không' để không thay đổi tập tin ISO đang có\nNếu bạn không biết phải làm gì, bạn nên chọn 'Có'.\n\nGhi chú: Tập tin mới sẽ được tải xuống vào thư mục hiện tại và một khi '%s' tồn tại trong đó, nó sẽ được tự động tái sử dụng."
t MSG_085 "Đang tải xuống %s"
t MSG_086 "Chưa chọn ảnh"
t MSG_086 "Chưa chọn tệp tin"
t MSG_087 "cho %s NAND"
t MSG_088 "Ảnh quá lớn"
t MSG_089 "Ảnh quá lớn cho đĩa đã chọn."
t MSG_088 "Tệp tin quá lớn"
t MSG_089 "Tệp tin quá lớn cho đĩa đã chọn."
t MSG_090 "ISO không được hỗ trợ"
t MSG_091 "Khi dùng loại hệ thống là UEFI, chỉ có ảnh ISO có thể khởi động với EFI được hỗ trợ. Vui lòng chọn một ISO có thể khởi động với EFI hoặc chọn loại hệ thống là BIOS."
t MSG_091 "Khi dùng loại hệ thống là UEFI, chỉ có tệp ISO có thể khởi động với EFI được hỗ trợ. Vui lòng chọn tệp phù hợp hoặc chọn loại hệ thống là BIOS."
t MSG_092 "Hệ thống tập tin không được hỗ trợ"
t MSG_093 "QUAN TRỌNG: Ổ ĐĨA NÀY CHỨA NHIỀU PHÂN VÙNG!!\n\nĐiều này có thể bao gồm phân vùng/ổ đĩa không có trong danh sách hoặc không hiển thị trong Windows. Nếu bạn muốn tiến hành, bạn sẽ phải chịu trách nhiệm về mọi tổn thất dữ liệu trên những phân vùng này."
t MSG_093 "QUAN TRỌNG: Ổ ĐĨA NÀY CHỨA NHIỀU PHÂN VÙNG!!\n\nCó thể bao gồm phân vùng/ổ đĩa không có trong danh sách hoặc không hiển thị trong Windows. Nếu bạn tiến hành, bạn sẽ phải chịu trách nhiệm về mọi tổn thất dữ liệu trên những phân vùng này."
t MSG_094 "Đã phát hiện nhiều phân vùng"
t MSG_095 "Ảnh DD"
t MSG_095 "Tệp tin DD"
t MSG_096 "Không thể dùng loại ISO này với hệ thống tập tin đã chọn. Vui lòng chọn một hệ thống tập tin hoặc ISO khác."
t MSG_097 "Chỉ có thể áp dụng '%s' nếu hệ thống tập tin là NTFS."
t MSG_098 "QUAN TRỌNG: Bạn đang cố cài đặt 'Windows To Go', nhưng ổ đĩa không có thuộc tính 'CỐ ĐỊNH'. Vì điều này, Windows có thể sẽ dừng tại điểm khởi động, do Microsoft không thiết kế nó để chạy với ổ đĩa có thuộc tính 'CÓ THỂ THÁO ĐƯỢC'. \n\nBạn vẫn muốn tiến hành?\n\nGHi chú: Thuộc tính 'CỐ ĐỊNH/CÓ THỂ THÁO ĐƯỢC' là một thuộc tính phần cứng chỉ có thể thay đổi bằng các công cụ tuỳ chỉnh từ nhà sản xuất ổ đĩa. Tuy nhiên những công cụ này HẦU NHƯ KHÔNG BAO GIỜ được cung cấp công khai..."
t MSG_098 "QUAN TRỌNG: Bạn đang cố cài đặt 'Windows To Go', nhưng ổ đĩa không có thuộc tính 'CỐ ĐỊNH'. Vì vậy, Windows có thể sẽ đóng băng tại điểm khởi động, do Microsoft không thiết kế nó để chạy với ổ đĩa có thuộc tính 'CÓ THỂ THÁO ĐƯỢC'. \n\nBạn vẫn muốn tiến hành?\n\nGhi chú: Thuộc tính 'CỐ ĐỊNH/CÓ THỂ THÁO ĐƯỢC' là một thuộc tính phần cứng chỉ có thể thay đổi bằng các công cụ tuỳ chỉnh từ nhà sản xuất ổ đĩa. Tuy nhiên những công cụ này HẦU NHƯ KHÔNG BAO GIỜ được cung cấp công khai..."
t MSG_099 "Giới hạn tập tin hệ thống"
t MSG_100 "Ảnh ISO này chứa tập tin lớn hơn 4 GB, là kích thước lớn hơn kích thước tập tin tối đa được tập tin hệ thống FAT hoặc FAT32 cho phép."
t MSG_100 "Tệp ISO này có chứa một tập tin lớn hơn 4 GB, lớn hơn kích thước tập tin tối đa được hệ thống FAT hoặc FAT32 cho phép."
t MSG_101 "Thiếu hỗ trợ WIM"
t MSG_102 "Nền tảng của bạn không thể trích xuất tập tin từ lưu trữ WIM. Việc trích xuất WIM là yêu cầu để tạo đĩa USB khởi động EFI Windows 7 và Windows Vista. Bạn có thể khắc phục điều này bằng cách cài phiên bản mới nhất của 7-Zip.\nBạn muốn truy cập trang tải xuống của 7-Zip?"
t MSG_102 "Nền tảng của bạn không thể giải nén tệp từ lưu trữ WIM. Việc giải nén WIM là cần thiết để tạo đĩa USB khởi động Windows 7 và Windows Vista có hỗ trợ EFI. Bạn có thể khắc phục điều này bằng cách cài phiên bản mới nhất của 7-Zip.\nBạn muốn truy cập trang tải xuống của 7-Zip?"
t MSG_103 "Tải xuống %s?"
t MSG_104 "%s hoặc mới hơn yêu cầu tập tin '%s' được cài đặt.\nVì tập tin này lớn hơn 100 KB, và luôn có trong ảnh ISO %s, nó không được kèm theo trong Rufus.\n\nRufus có thể tải xuống tập tin còn thiếu cho bạn:\n- Chọn 'Có' để kết nối với Internet và tải tập tin\n- Chọn 'Không' nếu bạn muốn tự chép tập tin này trên đĩa lúc khác\n\nGhu chú: tập tin sẽ được tải xuống thư mục hiện tại và khi có '%s' tồn tại tại đó, nó sẽ tự động được tái sử dụng."
t MSG_105 "Huỷ bỏ có thể làm thiết bị rơi vào tình trạng KHÔNG THỂ SỬ DỤNG.\nNếu bạn chắc muốn huỷ, chọn CÓ. Nếu không, hãy chọn KHÔNG."
t MSG_104 "%s hoặc mới hơn yêu cầu tập tin '%s' được cài đặt.\nVì tập tin này lớn hơn 100 KB, và luôn có trong ảnh ISO %s, nó không được kèm theo trong Rufus.\n\nRufus có thể tải xuống tập tin còn thiếu cho bạn:\n- Chọn 'Có' để kết nối với Internet và tải tập tin\n- Chọn 'Không' nếu bạn muốn tự chép tập tin này trên đĩa lúc khác\n\nGhi chú: tập tin sẽ được tải xuống thư mục hiện tại và khi '%s' tồn tại ở đó, nó sẽ tự động được tái sử dụng."
t MSG_105 "Huỷ bỏ có thể làm thiết bị rơi vào trạng thái KHÔNG THỂ SỬ DỤNG.\nNếu bạn chắc chắn muốn huỷ, chọn CÓ. Nếu không, hãy chọn KHÔNG."
t MSG_106 "Vui lòng chọn thư mục"
t MSG_107 "Tất cả tập tin"
t MSG_108 "Nhật kýRufus"
t MSG_108 "Nhật ký Rufus"
t MSG_109 "0x%02X (Đĩa %d)"
t MSG_110 "MS-DOS không thể khởi động từ ổ đĩa dùng kích thước liên cung 64 kilobyte.\nVui lòng thay đổi kích thước liên cung hoặc dùng FreeDOS."
t MSG_110 "MS-DOS không thể khởi động từ ổ đĩa dùng kích thước liên cung 64 kilobytes.\nVui lòng thay đổi kích thước liên cung hoặc dùng FreeDOS."
t MSG_111 "Kích thước liên cung không tương thích"
t MSG_112 "Định dạng ổ UDF lớn cần nhiều thời gian. Với tốc độ USB 2.0, thời gian định dạng dự kiến là %d:%02d, trong lúc này thanh tiến trình không thay đổi. Vui lòng kiên nhẫn!"
t MSG_112 "Định dạng ổ UDF lớn có thể mất nhiều thời gian. Với tốc độ của USB 2.0, thời gian định dạng dự kiến là %d:%02d, trong lúc này thanh tiến trình sẽ không thay đổi. Vui lòng kiên nhẫn!"
t MSG_113 "Ổ UDF lớn"
t MSG_114 "Ảnh này dùng Syslinux %s%s nhưng ứng dụng này chỉ bao gồm tập tin cài đặt cho Syslinux %s%s.\n\nPhiên bản khác của Syslinux không tương thích với các phiên bản khác nhau và Rufus không thể kèm theo tất cả chúng, bạn phải tải xuống thêm hai tập tin từ Internet ('ldlinux.sys' và 'ldlinux.bss'):\n- Chọn 'Có' để kết nối với Internet và tải những tập tin này\n- Chọn 'Không' để huỷ hoạt động\n\nChú ý: Các tập tin sẽ được tải xuống vào thư mục ứng dụng hiện tại và sẽ được tự tái sử dụng nếu có."
t MSG_114 "Tệp này dùng Syslinux %s%s nhưng ứng dụng này chỉ bao gồm tập tin cài đặt cho Syslinux %s%s.\n\nPhiên bản mới của Syslinux không tương thích với các phiên bản khác, và Rufus không thể kèm theo tất cả chúng, bạn phải tải xuống thêm hai tập tin từ Internet ('ldlinux.sys' và 'ldlinux.bss'):\n- Chọn 'Có' để kết nối tới Internet và tải xuống những tập tin này\n- Chọn 'Không' để huỷ hoạt động\n\nChú ý: Các tập tin sẽ được tải xuống vào thư mục ứng dụng hiện tại và sẽ được tự tái sử dụng nếu có."
t MSG_115 "Yêu cầu tải xuống"
t MSG_116 "Ảnh này dùng Grub %s nhưng ứng dụng này chỉ bao gồm tập tin cài đặt cho Grub %s.\n\nPhiên bản khác của Grub không tương thích với các phiên bản khác nhau và Rufus không thể kèm theo tất cả chúng, ứng dụng sẽ cố xác định phiên bảntập tin cài đặt Grub ('core.img') khớp với cái có trong ảnh của bạn:\n- Chọn 'Có' để kết nối đến Internet và cố thử tải nó xuống\n- Chọn 'Không' để dùng phiên bản mặc định từ Rufus\n- Chọn 'Huỷ' để bỏ qua hoạt động\n\nChú ý: Các tập tin sẽ được tải xuống vào thư mục ứng dụng hiện tại và sẽ được tự tái sử dụng nếu có. Nếu không tìm thấy bản trùng khớp nào trực tuyến thì phiên bản mặc định sẽ được sử dụng."
t MSG_116 "Tệp này dùng Grub %s nhưng ứng dụng này chỉ bao gồm tập tin cài đặt cho Grub %s.\n\nCác phiên bản khác nhau của Grub có thể không tương thích với nhau, và Rufus không thể kèm theo tất cả chúng, ứng dụng sẽ cố tìm một phiên bản tập tin cài đặt Grub ('core.img') khớp với phiên bản có trong tệp của bạn:\n- Chọn 'Có' để kết nối tới Internet và thử tải nó xuống\n- Chọn 'Không' để dùng phiên bản mặc định từ Rufus\n- Chọn 'Huỷ' để bỏ qua hoạt động\n\nChú ý: Các tập tin sẽ được tải xuống vào thư mục ứng dụng hiện tại và sẽ được tự tái sử dụng nếu có. Nếu không tìm thấy bản trùng khớp nào trực tuyến thì phiên bản mặc định sẽ được sử dụng."
t MSG_117 "Cài đặt Windows tiêu chuẩn"
t MSG_119 "thuộc tính nâng cao ổ đĩa"
t MSG_119 "thuộc tính ổ đĩa nâng cao"
t MSG_120 "tùy chọn định dạng nâng cao"
t MSG_121 "Hiện %s"
t MSG_122 "Ẩn %s"
t MSG_123 "Kích thước phân vùng cố định"
t MSG_124 "Không cố định"
t MSG_125 "Đặt kích thước phân vùng cố định cho bản live USB. Đặt kích thước là 0 để bỏ phân vùng cố định."
t MSG_125 "Đặt kích thước phân vùng cố định cho live USB. Đặt kích thước là 0 để bỏ phân vùng cố định."
t MSG_126 "Chọn đơn vị kích thước cho phân vùng."
t MSG_127 "Không hiển thị lại thông báo này"
t MSG_128 "Chú ý quan trọng về %s"
t MSG_129 "Bạn vừa mới tạo ổ đĩa sử dung UEFI:NTFS bootloader. Hãy nhớ rằng để boot được đĩa này BẠN PHẢI VÔ HIỆU SECURE BOOT.\nXem phần 'Thông tin thêm' phía dưới để tìm hiểu thêm."
t MSG_129 "Bạn vừa mới tạo ổ đĩa sử dung UEFI:NTFS bootloader. Hãy nhớ rằng để khởi động được đĩa này BẠN PHẢI VÔ HIỆU SECURE BOOT.\nĐể hiểu tại sao nó quan trọng, xem trong phần 'Thông tin thêm' phía dưới."
t MSG_130 "Chọn file ảnh Windows"
t MSG_131 "File ISO này chứa nhiều file ảnh Windows.\nHãy chọn file ảnh bạn muốn sử dung cho việc cài đặt này:"
t MSG_132 "Đang có một chương trình hoặc tiến trình nào đó truy cập vào ổ. Bạn vẫn muốn định dạng ổ đĩa?"
t MSG_133 "Rufus nhận thấy bạn đang cố gắng tạo ổ đĩa Windows To Go dựa vào định dạng ISO 1809.\n\nBởi vì một lỗi của MICROSOFT, ổ đĩa này sẽ bị lỗi trong quá trình khởi động Windows (Màn hình xanh chết chóc), trừ khi bạn thay thế thủ công file 'WppRecorder.sys' phiên bản 1803.\n\nCũng xin lưu ý rằng Rufus không thể tự động sửa lỗi này vì file 'WppRecorder.sys' thuộc bản quyền của Microsoft, vì vậy chúng ta không thể nhúng file này vào chương trình..."
t MSG_131 "File ISO này chứa nhiều tệp ảnh Windows.\nHãy chọn tệp ảnh bạn muốn sử dung cho việc cài đặt này:"
t MSG_132 "Có một chương trình hoặc tiến trình nào đó đang truy cập ổ. Bạn vẫn muốn định dạng ổ đĩa?"
t MSG_133 "Rufus nhận thấy bạn đang cố gắng tạo ổ đĩa Windows To Go dựa vào ISO phiên bản 1809.\n\nBởi vì một *LỖI CỦA MICROSOFT*, ổ đĩa này sẽ bị lỗi trong quá trình khởi động Windows (Màn hình xanh chết chóc), trừ khi bạn thay thế thủ công file 'WppRecorder.sys' của phiên bản 1803.\n\nCũng xin lưu ý rằng Rufus không thể tự động sửa lỗi này vì file 'WppRecorder.sys' thuộc bản quyền của Microsoft, vì vậy chúng tôi không thể nhúng file này vào chương trình..."
t MSG_134 "Bởi vì MBR được chọn để định dạng phân vùng, Rufus chỉ có thể tạo phân vùng tới 2 TB cho ổ đĩa này, việc này sẽ bỏ phí %s không được sử dung.\n\nBạn có muốn tiếp tục?"
t MSG_135 "Hệ điều hành"
t MSG_136 "Bản phát hành"
t MSG_137 "Phiên bản"
t MSG_135 "Phiên bản"
t MSG_136 "Phát hành"
t MSG_137 "Chế bản"
t MSG_138 "Ngôn ngữ"
t MSG_139 "Kiến trúc"
t MSG_140 "Tiếp tục"
t MSG_141 "Quay lại"
t MSG_142 "Xin hãy đợi..."
t MSG_143 "Sử dụng trình duyệt để tải"
t MSG_144 "Tạm thời bị khóa bởi Microsoft vì yêu cầu tải quá nhiều - Xin hãy thử lại sau..."
t MSG_142 "Vui lòng đợi..."
t MSG_143 "Tải bằng trình duyệt"
t MSG_144 "Việc tải các tệp ISO Windows không có sẵn bởi Microsoft đã chỉnh lại trang web của họ để chống lại điều này."
t MSG_145 "Yêu cầu phiên bản PowerShell 3.0 hoặc cao hơn để chạy đoạn mã này."
t MSG_146 "Bạn có muốn kết nối Internet và tải nó?"
t MSG_148 "Đang chạy đoạn mã tải file..."
t MSG_149 "Tải file ảnh ISO"
t MSG_150 "Loại máy tính mà bạn định sử dung với ổ USB boot. Bạn phải tìm hiểu máy đó là kiểu BIOS hay UEFI trước khi bạn tạo ổ USB bởi nó có thể bị lỗi khi boot."
t MSG_149 "Tải tệp tin ISO"
t MSG_150 "Loại máy tính mà bạn định sử dung với ổ có thể khởi động này. Bạn có trách nhiệm phải tìm hiểu máy đó là kiểu BIOS hay UEFI trước khi bạn tạo ổ đĩa, bởi nó có thể bị lỗi khi khởi động."
t MSG_151 "'UEFI-CSM' nghĩa là thiết bị chỉ có thể boot ở chế độ giả lập BIOS (hay còn gọi là 'Legacy Mode') bên trong chế độ UEFI, và nó không phải là chế độ thuần UEFI."
t MSG_152 "'non CSM' nghĩa là thiết bị chỉ có thể boot ở chế độ thuần UEFI mà không phải chế độ giả lập BIOS (hay còn gọi là 'Legacy Mode')"
t MSG_153 "Mẫu thử: 0x%02X"
@ -15321,54 +15354,54 @@ t MSG_155 "Mẫu thử: 0x%02X, 0x%02X, 0x%02X"
t MSG_156 "Mẫu thử: 0x%02X, 0x%02X, 0x%02X, 0x%02X"
t MSG_157 "Đặt loại hệ thống tập tin"
t MSG_158 "Kích thước tối thiểu của khối dữ liệu sẽ chiếm dụng trong hệ thống tập tin"
t MSG_159 "Dùng trường này để đặt tên đĩa.\nChấp nhận các ký tự quốc tế."
t MSG_160 "Bật tắt tuỳ chọn nâng cao"
t MSG_159 "Dùng trường này để đặt tên đĩa.\nCác ký tự quốc tế được chấp nhận."
t MSG_160 "Bật/tắt tuỳ chọn nâng cao"
t MSG_161 "Kiểm tra khối hỏng bằng mẫu thử"
t MSG_162 "Bỏ chọn mục này để dùng cách định dạng chậm"
t MSG_163 "Cách thức tạo phân vùng"
t MSG_164 "Cách sẽ dùng để tạo ổ đĩa có thể khởi động"
t MSG_162 "Bỏ chọn mục này để dùng cách định dạng \"chậm\""
t MSG_163 "Cách thức để tạo phân vùng"
t MSG_164 "Cách thức để tạo ổ đĩa có thể khởi động"
t MSG_165 "Nhấn để chọn hoặc tải file ảnh..."
t MSG_166 "Chọn mục này để cho phép hiện tên quốc tế và đặt biểu tượng thiết bị (tạo một autorun.inf)"
t MSG_166 "Chọn mục này để cho phép hiện tên ổ đĩa toàn hệ thống và đặt biểu tượng thiết bị (khởi tạo autorun.inf)"
t MSG_167 "Cài đặt một MBR cho phép lựa chọn khởi động và có thể giả ID ổ đĩa USB BIOS"
t MSG_168 "Thử giả ổ đĩa USB khởi động đầu tiên (thường là 0x80) như một đĩa khác.\nĐiều này chỉ cần thiết nếu bạn cài đặt Windows XP và có nhiều hơn một đĩa."
t MSG_169 "Tạo một phân vùng ẩn khác và thử gắn kết ranh giới phân vùng.\nĐiều này có thể cải thiện khả năng phát hiện khởi động cho BIOS cũ."
t MSG_170 "Kích hoạt danh sách ổ cứng USB trong máy. DÙNG CẨN TRỌNG!!!"
t MSG_169 "Tạo một phân vùng ẩn khác và thử sắp xếp ranh giới phân vùng.\nĐiều này có thể cải thiện khả năng phát hiện khởi động cho BIOS cũ."
t MSG_170 "Kích hoạt liệt kê ổ cứng USB trong máy. DÙNG CẨN TRỌNG!!!"
t MSG_171 "Bắt đầu hoạt động định dạng.\nViệc này sẽ TIÊU HUỶ mọi dữ liệu trên đĩa đã chọn!"
t MSG_172 "Chữ kí tải xuống không hợp lệ"
t MSG_173 "Nhấn để chọn..."
t MSG_174 "Rufus - Tiện ích Định dạng USB Đáng tin cậy"
t MSG_175 "Phiên bản %d.%d (Bản dựng %d)"
t MSG_176 "Bản dịch tiếng Việt:\\line• thanhtai2009 <mailto:thanhtai2009@outlook.com>\\line• caobach <mailto:caobach@gmail.com>"
t MSG_176 "Bản dịch tiếng Việt:\\line• thanhtai2009 <mailto:thanhtai2009@outlook.com>\\line• caobach <mailto:caobach@gmail.com>\\line• VNSpringRice <mailto:admin@quangminh.name.vn>"
t MSG_177 "Báo lỗi hoặc yêu cầu cải tiến tại:"
t MSG_178 "Bản quyền khác:"
t MSG_178 "Các bản quyền bổ sung:"
t MSG_179 "Chính sách cập nhật:"
t MSG_180 "Nếu bạn chọn cho phép chương trình này kiểm tra cập nhật ứng dụng, bạn đồng ý rằng những thông tin dưới đây có thể được thu thập trên (các) máy chủ của chúng tôi:"
t MSG_181 "Kiến trúc và phiên bản hệ điều hành của bạn"
t MSG_182 "Phiên bản của ứng dụng bạn dùng"
t MSG_182 "Phiên bản của ứng dụng bạn đang dùng"
t MSG_183 "Địa chỉ IP của bạn"
t MSG_184 "Vì mục đích tạo thống kê sử dụng riêng tư, chúng tôi có thể giữ thông tin đã thu thập, \\b tối đa một năm\\b0 . Tuy nhiên, chúng tôi sẽ không tiết lộ bất kỳ dữ liệu cá nhân nào cho bên thứ ba."
t MSG_185 "Tiến trình cập nhật:"
t MSG_186 "Rufus không cài đặt hoặc chạy dịch vụ nền, do đó việc kiểm tra cập nhật chỉ được thực hiện khi ứng dụng chính đang chạy.\\line\nQuyền truy cập Internet dĩ nhiên cần thiết khi kiểm tra cập nhật."
t MSG_187 "Ảnh không hợp lệ chio tuỳ chọn khởi động đã chọn"
t MSG_188 "Ảnh hiện tại khong hợp với tuỳ chọn khởi động đã chọn. Vui lòng chọn ảnh hoặc tuỳ chọn khởi động khác."
t MSG_189 "Ảnh ISO không tương thích với hệ thống tập tin đã chọn"
t MSG_187 "Tệp tin không hợp lệ cho tuỳ chọn khởi động đã chọn"
t MSG_188 "Tệp tin hiện tại không hợp với tuỳ chọn khởi động đã chọn. Vui lòng chọn tệp hoặc tuỳ chọn khởi động khác."
t MSG_189 "Tệp ISO không tương thích với hệ thống tập tin đã chọn"
t MSG_190 "Phát hiện ổ đĩa không tương thích"
t MSG_191 "Qua lượt ghi"
t MSG_192 "Qua lượt đọc"
t MSG_191 "Ghi đã đạt"
t MSG_192 "Đọc đã đạt"
t MSG_193 "Đã tải xuống %s"
t MSG_194 "Không thể tải xuống %s"
t MSG_195 "Dùng phiên bản (các) tập tin %s được nhúng sẵn"
t MSG_196 "QUAN TRỌNG: ĐĨA NÀY DÙNG KÍCH CỠ CUNG KHÔNG CHUẨN!\n\nỔ cứng thông thườn dùng kích cỡ cung 512 byte nhưng ổ đĩa này lại dùng cỡ %d byte. Trong nhiều trường hợp, điều này có nghĩa bạn sẽ KHÔNG thể khởi động từ ổ đĩa này.\nRufus có thể thử tạo một ổ đĩa khởi động, nhưng KHÔNG ĐẢM BẢO rằng nó sẽ hoạt động."
t MSG_196 "QUAN TRỌNG: ĐĨA NÀY DÙNG KÍCH CỠ CUNG KHÔNG CHUẨN!\n\nỔ cứng thông thường dùng kích cỡ cung 512-byte nhưng ổ đĩa này lại dùng %d byte. Trong nhiều trường hợp, điều này có nghĩa bạn sẽ KHÔNG thể khởi động từ ổ đĩa này.\nRufus có thể thử tạo một ổ đĩa khởi động, nhưng KHÔNG ĐẢM BẢO rằng nó sẽ hoạt động."
t MSG_197 "Phát hiện kích cỡ cung không chuẩn"
t MSG_198 "'Windows To Go chỉ có thể được cài đặt trên ổ đĩa đã phân vùng GPT nếu nó có tập thuộc tính CỐ ĐỊNH. Ổ đĩa hiện tại không phải CỐ ĐỊNH."
t MSG_199 "Tính năng này không khả dụng trên nền tảng này."
t MSG_201 "Đang huỷ - Vui lòng chờ..."
t MSG_202 "Đang quét ảnh..."
t MSG_203 "Không thể quét ảnh"
t MSG_204 "Đã phát hiện %s "
t MSG_205 "Đang dùng ảnh: %s"
t MSG_206 "Thiết tập tin %s"
t MSG_207 "O_Dia_Moi"
t MSG_202 "Đang quét tệp..."
t MSG_203 "Không thể quét tệp"
t MSG_204 "Đã phát hiện %s lỗi thời"
t MSG_205 "Đang dùng tệp: %s"
t MSG_206 "Thiếu tập tin %s"
t MSG_207 "O_DIA_MOI"
t MSG_208 "Phát hiện %d thiết bị"
t MSG_209 "Phát hiện %d thiết bị"
t MSG_210 "SẴN SÀNG"
@ -15422,32 +15455,32 @@ t MSG_257 "Hỗ trợ Joliet"
t MSG_258 "Hỗ trợ Rock Ridge"
t MSG_259 "Buộc cập nhật"
t MSG_260 "Nén NTFS"
t MSG_261 "Ghi ảnh: %s"
t MSG_261 "Ghi tệp: %s"
t MSG_262 "Hỗ trợ ISO"
t MSG_263 "Dùng đơn vị kích cỡ ĐÚNG"
t MSG_264 "Đang xoá thư mục '%s'"
t MSG_265 "Phát hiện đĩa VMWare"
t MSG_266 "Chế độ Dual UEFI/BIOS"
t MSG_267 "Đang áp dụng ảnh Windows: %s"
t MSG_268 "Đang áp dụng ảnh Windows..."
t MSG_267 "Đang áp dụng tệp Windows: %s"
t MSG_268 "Đang áp dụng tệp Windows..."
t MSG_269 "Giữ dấu thời gian"
t MSG_270 "Gỡ rối USB"
t MSG_271 "Đang tính toán kiểm tổng ảnh: %s"
t MSG_272 "Tính toán giá trị tổng kiểm tra MD5, SHA1 và SHA256 với ảnh đã chọn"
t MSG_271 "Đang tính toán kiểm tổng tệp: %s"
t MSG_272 "Tính toán giá trị tổng kiểm tra MD5, SHA1 và SHA256 với tệp đã chọn"
t MSG_273 "Thay đổi ngôn ngữ ứng dụng"
t MSG_274 "Đã phát hiện ảnh %s"
t MSG_275 "Ảnh bạn đã chọn là một ảnh 'ISOHybrid'. Điều này có nghĩa nó có thể được ghi trong chế độ %s (chép tập tin) hoặc %s (ảnh đĩa).\nRufus khuyến cáo sử dụng chế độ %s, vì bạn luôn có toàn quyền truy nhập ổ đĩa sau khi ghi nó.\nTuy nhiên, nếu bạn gặp vấn đề trong lúc khởi động, bạn có thể thử ghi lại ảnh này trong chế độ %s.\n\nHãy chọn chế độ mà bạn muốn dùng để ghi ảnh này:"
t MSG_276 "Ghi trong chế độ %s (Khuyến cáo)"
t MSG_277 "Ghi trong chế độ %s"
t MSG_274 "Đã phát hiện tệp %s"
t MSG_275 "Tệp bạn đã chọn là một tệp 'ISOHybrid'. Điều này có nghĩa nó có thể được ghi trong chế độ %s (chép tập tin) hoặc %s (tệp đĩa).\nRufus khuyến cáo sử dụng chế độ %s, để bạn luôn có toàn quyền truy cập ổ đĩa sau khi ghi nó.\nTuy nhiên, nếu bạn gặp vấn đề trong lúc khởi động, bạn có thể thử ghi lại tệp này trong chế độ %s.\n\nHãy chọn chế độ mà bạn muốn dùng để ghi tệp này:"
t MSG_276 "Ghi với chế độ %s (Khuyến cáo)"
t MSG_277 "Ghi với chế độ %s"
t MSG_278 "Đang kiểm tra các tiến trình xung đột..."
t MSG_279 "Không có khả năng khởi động"
t MSG_280 "Đĩa hoặc file ảnh"
t MSG_281 "%s (Hãy chọn một ảnh)"
t MSG_280 "Đĩa hoặc tệp tin"
t MSG_281 "%s (Vui lòng chọn)"
t MSG_282 "Khoá ổ USB đặc biệt"
t MSG_283 "Chữ ký không hợp lệ"
t MSG_284 "Tập tin thực thi đã tải xuống thiếu chữ ký số."
t MSG_285 "Tập tin thực thi đã tải xuống được ký bởi '%s'.\nĐây không phải chữ ký số chúng tôi công nhận và có thể xác định là một dạng hoạt động nguy hiểm...\nBạn chắc muốn chạy tập tin này?"
t MSG_286 "Đang xóa ổ đĩa: %s"
t MSG_286 "Đang ghi đè giá trị 0 lên ổ: %s"
t MSG_287 "Phát hiện ổ đĩa tháo được không phải USB"
t MSG_288 "Thiếu đặc quyền"
t MSG_289 "Ứng dụng này chỉ có thể chạy với đặc quyền quản trị"
@ -15461,12 +15494,58 @@ t MSG_296 "Phiên bản Rufus này KHÔNG PHẢI do chính tác giả tạo ra.\
t MSG_297 "Đã phát hiện ISO bị cắt xén"
t MSG_298 "Tập tin ISO bạn đã chọn không trùng khớp kích cỡ của nó: thiếu mất %s dữ liệu!\n\nnếu bạn tải tập tin này từ Internet, bạn nên tải lại một bản sao mới và xác nhận rằng mã MD5 hoặc SHA trùng khớp với bản chính thức.\n\nHãy nhớ rằng bạn có thể tính mã MD5 hoặc SHA trong Rufus bằng cách chọn nút (✓)."
t MSG_299 "Lỗi xác thực dấu thời gian"
t MSG_300 "Rufus không thể xác thực dấu thời gian trên phiên bản cập nhật được tải xuống gần đây mới hơn so với phiên bản đang chạy.\n\nĐể tránh nguy cơ bị tấn công tiềm ẩn, quá trình cập nhật đã bị hủy và file tải sẽ bị xóa. Hãy kiểm tra log để biết thêm thông tin."
t MSG_300 "Rufus không thể xác thực liệu dấu thời gian trên phiên bản cập nhật được tải xuống gần đây mới hơn so với phiên bản đang chạy.\n\nĐể tránh nguy cơ bị tấn công tiềm ẩn, quá trình cập nhật đã bị hủy và file tải sẽ bị xóa. Hãy kiểm tra log để biết thêm thông tin."
t MSG_301 "Hiển thị cài đặt chương trình"
t MSG_302 "Hiện thông tin về chương trình"
t MSG_303 "Hiển thị log"
t MSG_304 "Tạo file ảnh ổ đĩa từ thiết bị được chọn"
t MSG_305 "Sử dụng tùy chọn này để chỉ thị rằng bạn muốn sử dung thiết bị này cài Windows lên một ổ đĩa khác, hoặc nếu bạn muốn chạy Windows trực tiếp từ thiết bị này (Windows To Go)."
t MSG_306 "Đang xóa nhanh ổ đĩa: %s"
t MSG_307 "có thể mất một thời gian"
t MSG_305 "Sử dụng tùy chọn này để chỉ thị rằng hoặc bạn muốn cài Windows lên một ổ đĩa khác, hoặc nếu bạn muốn chạy Windows trực tiếp từ thiết bị này (Windows To Go)."
t MSG_306 "Đang ghi đè nhanh giá trị 0 lên ổ đĩa: %s"
t MSG_307 "điều này có thể mất một thời gian"
t MSG_308 "phát hiện VHD"
t MSG_309 "Lưu trữ đã nén"
t MSG_310 "ISO bạn đã chọn sử dụng UEFI và đủ nhỏ để ghi dưới dạng Phân vùng hệ thống EFI (ESP). Ghi vào một ESP, thay vì ghi vào một phân vùng dữ liệu chung chiếm toàn bộ đĩa, có thể thích hợp hơn đối với một số loại cài đặt.\n\nVui lòng chọn chế độ mà bạn muốn sử dụng để viết hình ảnh này:"
t MSG_311 "Sử dụng %s (tại cửa sổ chính của phần mềm) để thực thi."
t MSG_312 "Các băm thêm (SHA512)"
t MSG_313 "Lưu vào VHD"
t MSG_314 "Đang tính tổng kiểm cùa tệp"
t MSG_315 "Nhiều nút"
t MSG_316 "Số lượng đã đạt"
t MSG_317 "ID ổ đĩa"
t MSG_318 "Mặc định thứ tự ưu tiên luồng: %d"
t MSG_319 "Bỏ qua đánh dấu khởi động"
t MSG_320 "Đang làm mới bố cục phân vùng (%s)..."
t MSG_321 "Hình ảnh bạn đã chọn là một ISOHybrid, nhưng những người tạo ra nó đã không làm cho nó tương thích với chế độ sao chép ISO/Tệp.\nDo đó, chế độ ghi hình ảnh DD sẽ được thực thi."
t MSG_322 "Không thể mở hoặc đọc '%s'"
t MSG_325 "Đang áp dụng tuỳ biến Windows: %s"
t MSG_326 "Đang áp dụng các cài đặt người dùng..."
t MSG_327 "Trải nghiệm người dùng Windows"
t MSG_328 "Tuỳ biến cài đặt Windows?"
t MSG_329 "Loại bỏ yêu cầu 4GB+ RAM, Secure Boot và TPM 2.0"
t MSG_330 "Loại bỏ yêu cầu tài khoản Microsoft trực tuyến"
t MSG_331 "Loại bỏ thu thập thông tin (Bỏ qua các câu hỏi riêng tư)"
t MSG_332 "Ngăn cản Windows To Go truy cập ổ đĩa trong"
t MSG_333 "Tạo tài khoản nội bộ với tên:"
t MSG_334 "Đặt các cài đặt địa phương cùng giá trị với người dùng hiện tại"
t MSG_335 "Vô hiệu tự động mã hoá thiết bị BitLocker"
t MSG_336 "Nhật ký"
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 USB, chẳng hạn như thẻ USB/đĩa di động, thẻ nhớ, vv."
t MSG_901 "Trang web chính thức: %s"
t MSG_902 "Mã nguồn: %s"
t MSG_903 "Nhật ký thay đổi: %s"
t MSG_904 "Phần mềm này đã được cấp phép dưới các điều khoản của GNU Public License (GPL) phiên bản 3.\nXem tại https://www.gnu.org/licenses/gpl-3.0.html để biết thêm chi tiết."
t MSG_905 "Khởi động"
t MSG_910 "Định dạng USB, thẻ nhớ hoặc ổ nhớ ảo với FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3"
t MSG_911 "Tạo USB có thể khởi động với FreeDOS"
t MSG_912 "Tạo ổ đĩa có thể khởi động từ các file ISO có thể khởi động (Windows, Linux, v.v...)"
t MSG_913 "Tạo ổ đĩa có thể khởi động từ các tệp đĩa có thể khởi động, bao gồm cả tệp nén"
t MSG_914 "Tạo ổ đĩa có thể khởi động với hệ thống BIOS hoặc UEFI, bao gồm cả NTFS có thể khởi động với UEFI"
t MSG_915 "Tạo ổ đĩa 'Windows To Go'"
t MSG_916 "Tạo ổ đĩa cài đặt Windows 11 cho các máy tính không có TPM hoặc Secure Boot"
t MSG_917 "Tạo phân vùng Linux liên tục"
t MSG_918 "Tạo tệp VHD/DD từ ổ đĩa đã chọn"
t MSG_919 "Tính tổng kiểm MD5, SHA-1, SHA-256 và SHA-512 của tệp đã chọn"
t MSG_920 "Thực hiện kiểm tra điểm lỗi, bao gồm phát hiện ổ đĩa \"giả\""
t MSG_921 "Tải xuống các tệp Microsoft Windows ISO bán lẻ chính thức"
t MSG_922 "Tải xuống các tệp UEFI Shell ISO"

View file

@ -73,7 +73,7 @@ PF_TYPE_DECL(NTAPI, NTSTATUS, NtQueryVolumeInformationFile, (HANDLE, PIO_STATUS_
*/
RUFUS_DRIVE_INFO SelectedDrive;
extern BOOL write_as_esp;
extern int nWindowsVersion, nWindowsBuildNumber;
extern windows_version_t WindowsVersion;
uint64_t partition_offset[PI_MAX];
uint64_t persistence_size = 0;
@ -1592,7 +1592,7 @@ BOOL ToggleEsp(DWORD DriveIndex, uint64_t PartitionOffset)
{ 0x0c, { 'F', 'A', 'T', '3', '2', ' ', ' ', ' ' } },
};
if ((PartitionOffset == 0) && (nWindowsVersion < WINDOWS_10)) {
if ((PartitionOffset == 0) && (WindowsVersion.Version < WINDOWS_10)) {
uprintf("ESP toggling is only available for Windows 10 or later");
return FALSE;
}
@ -2318,7 +2318,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m
// Having the ESP up front may help (and is the Microsoft recommended way) but this
// is only achievable if we can mount more than one partition at once, which means
// either fixed drive or Windows 10 1703 or later.
if (((SelectedDrive.MediaType == FixedMedia) || (nWindowsBuildNumber > 15000)) &&
if (((SelectedDrive.MediaType == FixedMedia) || (WindowsVersion.BuildNumber > 15000)) &&
(extra_partitions & XP_ESP)) {
assert(partition_style == PARTITION_STYLE_GPT);
extra_part_name = L"EFI System Partition";

View file

@ -1423,7 +1423,7 @@ DWORD WINAPI FormatThread(void* param)
BOOL ret, use_large_fat32, windows_to_go, actual_lock_drive = lock_drive, write_as_ext = FALSE;
// Windows 11 and VDS (which I suspect is what fmifs.dll's FormatEx() is now calling behind the scenes)
// require us to unlock the physical drive to format the drive, else access denied is returned.
BOOL need_logical = FALSE, must_unlock_physical = (use_vds || nWindowsVersion >= WINDOWS_11);
BOOL need_logical = FALSE, must_unlock_physical = (use_vds || WindowsVersion.Version >= WINDOWS_11);
DWORD cr, DriveIndex = (DWORD)(uintptr_t)param, ClusterSize, Flags;
HANDLE hPhysicalDrive = INVALID_HANDLE_VALUE;
HANDLE hLogicalVolume = INVALID_HANDLE_VALUE;
@ -1462,7 +1462,7 @@ DWORD WINAPI FormatThread(void* param)
actual_lock_drive = FALSE;
// Windows 11 is a lot more proactive in locking ESPs and MSRs than previous versions
// were, meaning that we also can't lock the drive without incurring errors...
if ((nWindowsVersion >= WINDOWS_11) && extra_partitions)
if ((WindowsVersion.Version >= WINDOWS_11) && extra_partitions)
actual_lock_drive = FALSE;
// Fixed drives + ext2/ext3 don't play nice and require the same handling as ESPs
write_as_ext = IS_EXT(fs_type) && (GetDriveTypeFromIndex(DriveIndex) == DRIVE_FIXED);

View file

@ -309,7 +309,7 @@ static HINTERNET GetInternetSession(BOOL bRetry)
}
static_sprintf(agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
rufus_version[0], rufus_version[1], rufus_version[2],
nWindowsVersion >> 4, nWindowsVersion & 0x0F, is_x64() ? "; WOW64" : "");
WindowsVersion.Major, WindowsVersion.Minor, is_x64() ? "; WOW64" : "");
hSession = pfInternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
// Set the timeouts
pfInternetSetOptionA(hSession, INTERNET_OPTION_CONNECT_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout));
@ -625,17 +625,15 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
int status = 0;
const char* server_url = RUFUS_URL "/";
int i, j, k, max_channel, verbose = 0, verpos[4];
static const char* archname[] = {"win_x86", "win_x64", "win_arm", "win_arm64", "win_none"};
static const char* channel[] = {"release", "beta", "test"}; // release channel
const char* accept_types[] = {"*/*\0", NULL};
static const char* channel[] = { "release", "beta", "test" }; // release channel
const char* accept_types[] = { "*/*\0", NULL };
char* buf = NULL;
char agent[64], hostname[64], urlpath[128], sigpath[256];
DWORD dwSize, dwDownloaded, dwTotalSize, dwStatus;
BYTE *sig = NULL;
OSVERSIONINFOA os_version = {sizeof(OSVERSIONINFOA), 0, 0, 0, 0, ""};
HINTERNET hSession = NULL, hConnection = NULL, hRequest = NULL;
URL_COMPONENTSA UrlParts = {sizeof(URL_COMPONENTSA), NULL, 1, (INTERNET_SCHEME)0,
hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1};
URL_COMPONENTSA UrlParts = { sizeof(URL_COMPONENTSA), NULL, 1, (INTERNET_SCHEME)0,
hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1 };
SYSTEMTIME ServerTime, LocalTime;
FILETIME FileTime;
int64_t local_time = 0, reg_time, server_time, update_interval;
@ -693,22 +691,18 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
PrintInfoDebug(3000, MSG_243);
status++; // 1
if (!GetVersionExA(&os_version)) {
uprintf("Could not read Windows version - Check for updates cancelled.");
goto out;
}
if (!pfInternetCrackUrlA(server_url, (DWORD)safe_strlen(server_url), 0, &UrlParts))
goto out;
hostname[sizeof(hostname)-1] = 0;
static_sprintf(agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %d.%d%s)",
rufus_version[0], rufus_version[1], rufus_version[2],
nWindowsVersion >> 4, nWindowsVersion & 0x0F, is_x64() ? "; WOW64" : "");
WindowsVersion.Major, WindowsVersion.Minor, is_x64() ? "; WOW64" : "");
hSession = GetInternetSession(FALSE);
if (hSession == NULL)
goto out;
hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort,
NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL);
if (hConnection == NULL)
goto out;
@ -724,7 +718,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
max_channel = releases_only ? 1 : (int)ARRAYSIZE(channel) - 1;
#endif
vuprintf("Using %s for the update check", RUFUS_URL);
for (k=0; (k<max_channel) && (!found_new_version); k++) {
for (k = 0; (k < max_channel) && (!found_new_version); k++) {
// Free any previous buffers we might have used
safe_free(buf);
safe_free(sig);
@ -734,10 +728,10 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
// and then remove each of the <os_> components until we find our match. For instance, we may first
// look for rufus_win_x64_6.2.ver (Win8 x64) but only get a match for rufus_win_x64_6.ver (Vista x64 or later)
// This allows sunsetting OS versions (eg XP) or providing different downloads for different archs/groups.
static_sprintf(urlpath, "%s%s%s_%s_%lu.%lu.ver", APPLICATION_NAME, (k==0)?"":"_",
(k==0)?"":channel[k], archname[GetCpuArch()], os_version.dwMajorVersion, os_version.dwMinorVersion);
static_sprintf(urlpath, "%s%s%s_win_%s_%lu.%lu.ver", APPLICATION_NAME, (k == 0) ? "": "_",
(k == 0) ? "" : channel[k], GetAppArchName(), WindowsVersion.Major, WindowsVersion.Minor);
vuprintf("Base update check: %s", urlpath);
for (i=0, j=(int)safe_strlen(urlpath)-5; (j>0)&&(i<ARRAYSIZE(verpos)); j--) {
for (i = 0, j = (int)safe_strlen(urlpath) - 5; (j > 0) && (i < ARRAYSIZE(verpos)); j--) {
if ((urlpath[j] == '.') || (urlpath[j] == '_')) {
verpos[i++] = j;
}
@ -826,8 +820,8 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param)
vuprintf(" url: %s", update.download_url);
found_new_version = ((to_uint64_t(update.version) > to_uint64_t(rufus_version)) || (force_update))
&& ((os_version.dwMajorVersion > update.platform_min[0])
|| ((os_version.dwMajorVersion == update.platform_min[0]) && (os_version.dwMinorVersion >= update.platform_min[1])));
&& ((WindowsVersion.Major > update.platform_min[0])
|| ((WindowsVersion.Major == update.platform_min[0]) && (WindowsVersion.Minor >= update.platform_min[1])));
uprintf("N%sew %s version found%c", found_new_version ? "" : "o n", channel[k], found_new_version ? '!' : '.');
}

View file

@ -1,7 +1,7 @@
/*
* Rufus: The Reliable USB Formatting Utility
* Elementary Unicode compliant find/replace parser
* Copyright © 2012-2022 Pete Batard <pete@akeo.ie>
* Copyright © 2012-2023 Pete Batard <pete@akeo.ie>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -914,14 +914,13 @@ void parse_update(char* buf, size_t len)
char allowed_rtf_chars[] = "abcdefghijklmnopqrstuvwxyz|~-_:*'";
char allowed_std_chars[] = "\r\n ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"$%^&+=<>(){}[].,;#@/?";
char download_url_name[24];
char *arch_names[5] = { "unknown", "x86", "x64", "arm", "arm64" };
// strchr includes the NUL terminator in the search, so take care of backslash before NUL
if ((buf == NULL) || (len < 2) || (len > 64 * KB) || (buf[len-1] != 0) || (buf[len-2] == '\\'))
return;
// Sanitize the data - Not a silver bullet, but it helps
len = safe_strlen(buf)+1; // Someone may be inserting NULs
for (i=0; i<len-1; i++) {
for (i = 0; i < len - 1; i++) {
// Check for valid RTF sequences as well as allowed chars if not RTF
if (buf[i] == '\\') {
// NB: we have a zero terminator, so we can afford a +1 without overflow
@ -933,25 +932,25 @@ void parse_update(char* buf, size_t len)
}
}
for (i=0; i<3; i++)
for (i = 0; i < 3; i++)
update.version[i] = 0;
update.platform_min[0] = 5;
update.platform_min[1] = 2; // XP or later
safe_free(update.download_url);
safe_free(update.release_notes);
if ((data = get_sanitized_token_data_buffer("version", 1, buf, len)) != NULL) {
for (i=0; (i<3) && ((token = strtok((i==0)?data:NULL, ".")) != NULL); i++) {
for (i = 0; (i < 3) && ((token = strtok((i == 0) ? data : NULL, ".")) != NULL); i++) {
update.version[i] = (uint16_t)atoi(token);
}
safe_free(data);
}
if ((data = get_sanitized_token_data_buffer("platform_min", 1, buf, len)) != NULL) {
for (i=0; (i<2) && ((token = strtok((i==0)?data:NULL, ".")) != NULL); i++) {
for (i = 0; (i < 2) && ((token = strtok((i == 0) ? data : NULL, ".")) != NULL); i++) {
update.platform_min[i] = (uint32_t)atoi(token);
}
safe_free(data);
}
static_sprintf(download_url_name, "download_url_%s", arch_names[GetCpuArch()]);
static_sprintf(download_url_name, "download_url_%s", GetAppArchName());
update.download_url = get_sanitized_token_data_buffer(download_url_name, 1, buf, len);
if (update.download_url == NULL)
update.download_url = get_sanitized_token_data_buffer("download_url", 1, buf, len);

View file

@ -226,10 +226,10 @@ static void SetBootOptions(void)
IGNORE_RETVAL(ComboBox_ResetContent(hBootType));
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType, lmprintf(MSG_279)), BT_NON_BOOTABLE));
if (nWindowsVersion < WINDOWS_10) // The diskcopy.dll along with its MS-DOS floppy image was removed in Windows 10
if (WindowsVersion.Version < WINDOWS_10) // The diskcopy.dll along with its MS-DOS floppy image was removed in Windows 10
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType, "MS-DOS"), BT_MSDOS));
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType, "FreeDOS"), BT_FREEDOS));
image_index = (nWindowsVersion < WINDOWS_10) ? 3 : 2;
image_index = (WindowsVersion.Version < WINDOWS_10) ? 3 : 2;
IGNORE_RETVAL(ComboBox_SetItemData(hBootType, ComboBox_AddStringU(hBootType,
(image_path == NULL) ? lmprintf(MSG_281, lmprintf(MSG_280)) : short_image_path), BT_IMAGE));
@ -411,12 +411,12 @@ static BOOL IsRefsAvailable(MEDIA_TYPE MediaType)
if (MediaType != FixedMedia)
return FALSE;
if (nWindowsVersion < WINDOWS_8_1 || nWindowsBuildNumber <= 0)
if (WindowsVersion.Version < WINDOWS_8_1 || WindowsVersion.BuildNumber <= 0)
return FALSE;
// Per https://gist.github.com/0xbadfca11/da0598e47dd643d933dc
if (nWindowsBuildNumber < 16226)
if (WindowsVersion.BuildNumber < 16226)
return TRUE;
switch (nWindowsEdition) {
switch (WindowsVersion.Edition) {
case 0x0000000A: // Enterprise Server
case 0x0000001B: // Enterprise N
case 0x00000046: // Enterprise E
@ -1494,7 +1494,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
goto out;
}
if (SelectedDrive.MediaType != FixedMedia) {
if ((target_type == TT_UEFI) && (partition_type == PARTITION_STYLE_GPT) && (nWindowsBuildNumber < 15000)) {
if ((target_type == TT_UEFI) && (partition_type == PARTITION_STYLE_GPT) && (WindowsVersion.BuildNumber < 15000)) {
// Up to Windows 10 Creators Update (1703), we were screwed, since we need access to 2 partitions at the same time.
// Thankfully, the newer Windows allow mounting multiple partitions on the same REMOVABLE drive.
MessageBoxExU(hMainDialog, lmprintf(MSG_198), lmprintf(MSG_190), MB_OK|MB_ICONERROR|MB_IS_RTL, selected_langid);
@ -1511,7 +1511,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
default:
break;
}
if ((nWindowsVersion >= WINDOWS_8) && IS_WINDOWS_1X(img_report)) {
if ((WindowsVersion.Version >= WINDOWS_8) && IS_WINDOWS_1X(img_report)) {
StrArray options;
int arch = _log2(img_report.has_efi >> 1);
uint8_t map[8] = { 0 }, b = 1;
@ -1573,7 +1573,7 @@ static DWORD WINAPI BootCheckThread(LPVOID param)
MessageBoxExU(hMainDialog, lmprintf(MSG_100), lmprintf(MSG_099), MB_OK | MB_ICONERROR | MB_IS_RTL, selected_langid);
goto out;
}
if ((nWindowsVersion >= WINDOWS_8) && IS_WINDOWS_1X(img_report) && (!is_windows_to_go)) {
if ((WindowsVersion.Version >= WINDOWS_8) && IS_WINDOWS_1X(img_report) && (!is_windows_to_go)) {
StrArray options;
int arch = _log2(img_report.has_efi >> 1);
uint8_t map[8] = { 0 }, b = 1;
@ -2041,7 +2041,7 @@ static void InitDialog(HWND hDlg)
free(buf);
}
}
uprintf("Windows version: %s", WindowsVersionStr);
uprintf("Windows version: %s", WindowsVersion.VersionStr);
uprintf("Syslinux versions: %s%s, %s%s", embedded_sl_version_str[0], embedded_sl_version_ext[0],
embedded_sl_version_str[1], embedded_sl_version_ext[1]);
uprintf("Grub versions: %s, %s", GRUB4DOS_VERSION, GRUB2_PACKAGE_VERSION);
@ -2453,7 +2453,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
nHeight = DialogRect.bottom - DialogRect.top;
GetWindowRect(hDlg, &DialogRect);
offset = GetSystemMetrics(SM_CXBORDER);
if (nWindowsVersion >= WINDOWS_10) {
if (WindowsVersion.Version >= WINDOWS_10) {
// See https://stackoverflow.com/a/42491227/1069307
// I agree with Stephen Hazel: Whoever at Microsoft thought it would be a great idea to
// add a *FRIGGING INVISIBLE BORDER* in Windows 10 should face the harshest punishment!
@ -2925,7 +2925,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
// The things one must do to get an ellipsis and text alignment on the status bar...
if (wParam == IDC_STATUS) {
pDI = (DRAWITEMSTRUCT*)lParam;
if (nWindowsVersion >= WINDOWS_10)
if (WindowsVersion.Version >= WINDOWS_10)
pDI->rcItem.top += (int)(1.0f * fScale);
else if (fScale >= 1.49f)
pDI->rcItem.top -= (int)(1.5f * fScale);
@ -3207,7 +3207,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
if (BlockingProcess.Index > 0) {
ListDialog(lmprintf(MSG_042), lmprintf(MSG_055), BlockingProcess.String, BlockingProcess.Index);
} else {
if (nWindowsVersion >= WINDOWS_10) {
if (WindowsVersion.Version >= WINDOWS_10) {
// Try to detect if 'Controlled Folder Access' is enabled on Windows 10 or later. See also:
// http://www.winhelponline.com/blog/use-controlled-folder-access-windows-10-windows-defender
char cmdline[256];
@ -3402,6 +3402,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
uprintf("*** " APPLICATION_NAME " init ***\n");
its_a_me_mario = GetUserNameA((char*)(uintptr_t)&u, &size) && (u == 7104878);
// coverity[pointless_string_compare]
// TODO: We'll need to change this when/if we switch to x86_64 default binary
is_x86_32 = (strcmp(APPLICATION_ARCH, "x86") == 0);
// Retrieve various app & system directories.
@ -3678,20 +3679,22 @@ skip_args_processing:
selected_langid = get_language_id(selected_locale);
// Set the Windows version
GetWindowsVersion();
GetWindowsVersion(&WindowsVersion);
// Force a version if specified as parameter, but without allowing folks running
// a version of Windows we no longer support to use the option as a bypass!
if (nWindowsVersion > WINDOWS_7 && forced_windows_version != 0)
nWindowsVersion = forced_windows_version;
if (WindowsVersion.Version > WINDOWS_7 && forced_windows_version != 0)
WindowsVersion.Version = forced_windows_version;
// ...and nothing of value was lost
if (nWindowsVersion <= WINDOWS_7) {
if (WindowsVersion.Version <= WINDOWS_7) {
// Load the translation before we print the error
get_loc_data_file(loc_file, selected_locale);
right_to_left_mode = ((selected_locale->ctrl_id) & LOC_RIGHT_TO_LEFT);
// Set MB_SYSTEMMODAL to prevent Far Manager from stealing focus...
MessageBoxExU(NULL,
lmprintf(MSG_294, (nWindowsVersion == WINDOWS_7) ? 3 : 2, (nWindowsVersion == WINDOWS_7) ? 22 : 18),
lmprintf(MSG_294,
(WindowsVersion.Version == WINDOWS_7) ? 3 : 2,
(WindowsVersion.Version == WINDOWS_7) ? 22 : 18),
lmprintf(MSG_293), MB_ICONSTOP | MB_IS_RTL | MB_SYSTEMMODAL, selected_langid);
goto out;
}

View file

@ -478,8 +478,7 @@ typedef enum TASKBAR_PROGRESS_FLAGS
/* Windows versions */
enum WindowsVersion {
WINDOWS_UNDEFINED = -1,
WINDOWS_UNSUPPORTED = 0,
WINDOWS_UNDEFINED = 0,
WINDOWS_XP = 0x51,
WINDOWS_2003 = 0x52, // Also XP_64
WINDOWS_VISTA = 0x60, // Also Server 2008
@ -489,7 +488,7 @@ enum WindowsVersion {
WINDOWS_10_PREVIEW1 = 0x64,
WINDOWS_10 = 0xA0, // Also Server 2016, also Server 2019
WINDOWS_11 = 0xB0, // Also Server 2022
WINDOWS_MAX
WINDOWS_MAX = 0xFFFF,
};
enum ArchType {
@ -506,6 +505,15 @@ enum ArchType {
ARCH_MAX
};
typedef struct {
DWORD Version;
DWORD Major;
DWORD Minor;
DWORD BuildNumber;
DWORD Edition;
char VersionStr[128];
} windows_version_t;
// Windows User Experience (unattend.xml) flags and masks
#define UNATTEND_SECUREBOOT_TPM_MINRAM 0x00001
#define UNATTEND_NO_ONLINE_ACCOUNT 0x00004
@ -545,20 +553,20 @@ extern uint64_t persistence_size;
extern size_t ubuffer_pos;
extern const int nb_steps[FS_MAX];
extern float fScale;
extern int nWindowsVersion, nWindowsBuildNumber, nWindowsEdition, dialog_showing, force_update;
extern int fs_type, boot_type, partition_type, target_type;
extern windows_version_t WindowsVersion;
extern int dialog_showing, force_update, fs_type, boot_type, partition_type, target_type;
extern unsigned long syslinux_ldlinux_len[2];
extern char WindowsVersionStr[128], ubuffer[UBUFFER_SIZE], embedded_sl_version_str[2][12];
extern char ubuffer[UBUFFER_SIZE], embedded_sl_version_str[2][12];
extern char szFolderPath[MAX_PATH], app_dir[MAX_PATH], temp_dir[MAX_PATH], system_dir[MAX_PATH], sysnative_dir[MAX_PATH];
extern char app_data_dir[MAX_PATH], *image_path, *fido_url;
/*
* Shared prototypes
*/
extern void GetWindowsVersion(void);
extern void GetWindowsVersion(windows_version_t* WindowsVersion);
extern BOOL is_x64(void);
extern int GetCpuArch(void);
extern const char *WindowsErrorString(void);
extern const char* GetAppArchName(void);
extern const char* WindowsErrorString(void);
extern void DumpBufferHex(void *buf, size_t size);
extern void PrintStatusInfo(BOOL info, BOOL debug, unsigned int duration, int msg_id, ...);
#define PrintStatus(...) PrintStatusInfo(FALSE, FALSE, __VA_ARGS__)

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 3.23.2019"
CAPTION "Rufus 3.23.2023"
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
BEGIN
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
@ -392,8 +392,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,23,2019,0
PRODUCTVERSION 3,23,2019,0
FILEVERSION 3,23,2023,0
PRODUCTVERSION 3,23,2023,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -411,13 +411,13 @@ BEGIN
VALUE "Comments", "https://rufus.ie"
VALUE "CompanyName", "Akeo Consulting"
VALUE "FileDescription", "Rufus"
VALUE "FileVersion", "3.23.2019"
VALUE "FileVersion", "3.23.2023"
VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2023 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
VALUE "OriginalFilename", "rufus-3.23.exe"
VALUE "ProductName", "Rufus"
VALUE "ProductVersion", "3.23.2019"
VALUE "ProductVersion", "3.23.2023"
END
END
BLOCK "VarFileInfo"

View file

@ -1,7 +1,7 @@
/*
* Rufus: The Reliable USB Formatting Utility
* Standard Windows function calls
* Copyright © 2013-2022 Pete Batard <pete@akeo.ie>
* Copyright © 2013-2023 Pete Batard <pete@akeo.ie>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -34,10 +34,7 @@
#include "settings.h"
int nWindowsVersion = WINDOWS_UNDEFINED;
int nWindowsBuildNumber = -1;
int nWindowsEdition = 0;
char WindowsVersionStr[128] = "Windows ";
windows_version_t WindowsVersion = { 0 };
/*
* Hash table functions - modified From glibc 2.3.2:
@ -223,22 +220,18 @@ BOOL is_x64(void)
return ret;
}
int GetCpuArch(void)
{
SYSTEM_INFO info = { 0 };
GetNativeSystemInfo(&info);
switch (info.wProcessorArchitecture) {
case PROCESSOR_ARCHITECTURE_AMD64:
return ARCH_X86_64;
case PROCESSOR_ARCHITECTURE_INTEL:
return ARCH_X86_64;
case PROCESSOR_ARCHITECTURE_ARM64:
return ARCH_ARM_64;
case PROCESSOR_ARCHITECTURE_ARM:
return ARCH_ARM_32;
default:
return ARCH_UNKNOWN;
}
const char* GetAppArchName(void) {
#if defined(_M_AMD64)
return "x64";
#elif defined(_M_IX86)
return "x86";
#elif defined(_M_ARM64)
return "arm64";
#elif defined(_M_ARM)
return "arm";
#else
return "unknown";
#endif
}
static const char* GetEdition(DWORD ProductType)
@ -343,7 +336,7 @@ static const char* GetEdition(DWORD ProductType)
/*
* Modified from smartmontools' os_win32.cpp
*/
void GetWindowsVersion(void)
void GetWindowsVersion(windows_version_t* WindowsVersion)
{
OSVERSIONINFOEXA vi, vi2;
DWORD dwProductType = 0;
@ -351,12 +344,12 @@ void GetWindowsVersion(void)
const char* w64 = "32 bit";
char *vptr;
size_t vlen;
unsigned major, minor;
DWORD major = 0, minor = 0;
ULONGLONG major_equal, minor_equal;
BOOL ws;
nWindowsVersion = WINDOWS_UNDEFINED;
static_strcpy(WindowsVersionStr, "Windows Undefined");
memset(WindowsVersion, 0, sizeof(windows_version_t));
static_strcpy(WindowsVersion->VersionStr, "Windows Undefined");
memset(&vi, 0, sizeof(vi));
vi.dwOSVersionInfoSize = sizeof(vi);
@ -401,8 +394,8 @@ void GetWindowsVersion(void)
if (vi.dwMajorVersion <= 0xf && vi.dwMinorVersion <= 0xf) {
ws = (vi.wProductType <= VER_NT_WORKSTATION);
nWindowsVersion = vi.dwMajorVersion << 4 | vi.dwMinorVersion;
switch (nWindowsVersion) {
WindowsVersion->Version = vi.dwMajorVersion << 4 | vi.dwMinorVersion;
switch (WindowsVersion->Version) {
case WINDOWS_XP: w = "XP";
break;
case WINDOWS_2003: w = (ws ? "XP_64" : (!GetSystemMetrics(89) ? "Server 2003" : "Server 2003_R2"));
@ -423,26 +416,29 @@ void GetWindowsVersion(void)
w = (ws ? "10" : ((vi.dwBuildNumber < 17763) ? "Server 2016" : "Server 2019"));
break;
}
nWindowsVersion = WINDOWS_11;
WindowsVersion->Version = WINDOWS_11;
major = 11;
// Fall through
case WINDOWS_11: w = (ws ? "11" : "Server 2022");
break;
default:
if (nWindowsVersion < WINDOWS_XP)
nWindowsVersion = WINDOWS_UNSUPPORTED;
if (WindowsVersion->Version < WINDOWS_XP)
WindowsVersion->Version = WINDOWS_UNDEFINED;
else
w = "12 or later";
break;
}
}
}
WindowsVersion->Major = major;
WindowsVersion->Minor = minor;
if (is_x64())
w64 = "64-bit";
GetProductInfo(vi.dwMajorVersion, vi.dwMinorVersion, vi.wServicePackMajor, vi.wServicePackMinor, &dwProductType);
vptr = &WindowsVersionStr[sizeof("Windows ") - 1];
vlen = sizeof(WindowsVersionStr) - sizeof("Windows ") - 1;
vptr = &WindowsVersion->VersionStr[sizeof("Windows ") - 1];
vlen = sizeof(WindowsVersion->VersionStr) - sizeof("Windows ") - 1;
if (!w)
safe_sprintf(vptr, vlen, "%s %u.%u %s", (vi.dwPlatformId == VER_PLATFORM_WIN32_NT ? "NT" : "??"),
(unsigned)vi.dwMajorVersion, (unsigned)vi.dwMinorVersion, w64);
@ -454,18 +450,18 @@ void GetWindowsVersion(void)
safe_sprintf(vptr, vlen, "%s%s%s, %s",
w, (dwProductType != 0) ? " " : "", GetEdition(dwProductType), w64);
nWindowsEdition = (int)dwProductType;
WindowsVersion->Edition = (int)dwProductType;
// Add the build number (including UBR if available) for Windows 8.0 and later
nWindowsBuildNumber = vi.dwBuildNumber;
if (nWindowsVersion >= 0x62) {
WindowsVersion->BuildNumber = vi.dwBuildNumber;
if (WindowsVersion->Version >= WINDOWS_8) {
int nUbr = ReadRegistryKey32(REGKEY_HKLM, "Software\\Microsoft\\Windows NT\\CurrentVersion\\UBR");
vptr = &WindowsVersionStr[safe_strlen(WindowsVersionStr)];
vlen = sizeof(WindowsVersionStr) - safe_strlen(WindowsVersionStr) - 1;
vptr = &WindowsVersion->VersionStr[safe_strlen(WindowsVersion->VersionStr)];
vlen = sizeof(WindowsVersion->VersionStr) - safe_strlen(WindowsVersion->VersionStr) - 1;
if (nUbr > 0)
safe_sprintf(vptr, vlen, " (Build %d.%d)", nWindowsBuildNumber, nUbr);
safe_sprintf(vptr, vlen, " (Build %d.%d)", WindowsVersion->BuildNumber, nUbr);
else
safe_sprintf(vptr, vlen, " (Build %d)", nWindowsBuildNumber);
safe_sprintf(vptr, vlen, " (Build %d)", WindowsVersion->BuildNumber);
}
}

View file

@ -1640,7 +1640,7 @@ void SetFidoCheck(void)
return;
}
if (nWindowsVersion < WINDOWS_8) {
if (WindowsVersion.Version < WINDOWS_8) {
ubprintf("Notice: The ISO download feature has been deactivated because "
"your version of Windows is too old.");
return;

View file

@ -1,7 +1,7 @@
/*
* Rufus: The Reliable USB Formatting Utility
* UI-related function calls
* Copyright © 2018-2022 Pete Batard <pete@akeo.ie>
* Copyright © 2018-2023 Pete Batard <pete@akeo.ie>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -123,7 +123,7 @@ void GetBasicControlsWidth(HWND hDlg)
sz.cy = rc.bottom;
// TODO: figure out the specifics of each Windows version
if (nWindowsVersion == WINDOWS_10) {
if (WindowsVersion.Version == WINDOWS_10) {
checkbox_internal_spacing = 10;
dropdown_internal_spacing = 13;
}
@ -779,7 +779,7 @@ void ToggleImageOptions(void)
int i, shift = rh;
has_wintogo = ((boot_type == BT_IMAGE) && (image_path != NULL) && (img_report.is_iso || img_report.is_windows_img) &&
(nWindowsVersion >= WINDOWS_8) && (HAS_WINTOGO(img_report)));
(WindowsVersion.Version >= WINDOWS_8) && (HAS_WINTOGO(img_report)));
has_persistence = ((boot_type == BT_IMAGE) && (image_path != NULL) && (img_report.is_iso) && (HAS_PERSISTENCE(img_report)));
assert(popcnt8(image_options) <= 1);

View file

@ -430,7 +430,7 @@ BOOL PopulateWindowsVersion(void)
memset(&img_report.win_version, 0, sizeof(img_report.win_version));
if ((nWindowsVersion < WINDOWS_8) || ((WimExtractCheck(TRUE) & 4) == 0))
if ((WindowsVersion.Version < WINDOWS_8) || ((WimExtractCheck(TRUE) & 4) == 0))
return FALSE;
// If we're not using a straight install.wim, we need to mount the ISO to access it
@ -486,7 +486,7 @@ int SetWinToGoIndex(void)
// Sanity checks
wintogo_index = -1;
wininst_index = 0;
if ((nWindowsVersion < WINDOWS_8) || ((WimExtractCheck(FALSE) & 4) == 0) ||
if ((WindowsVersion.Version < WINDOWS_8) || ((WimExtractCheck(FALSE) & 4) == 0) ||
(ComboBox_GetCurItemData(hFileSystem) != FS_NTFS)) {
return -1;
}
@ -606,7 +606,7 @@ BOOL SetupWinToGo(DWORD DriveIndex, const char* drive_name, BOOL use_esp)
uprintf("Windows To Go mode selected");
// Additional sanity checks
if ((use_esp) && (SelectedDrive.MediaType != FixedMedia) && (nWindowsBuildNumber < 15000)) {
if ((use_esp) && (SelectedDrive.MediaType != FixedMedia) && (WindowsVersion.BuildNumber < 15000)) {
FormatStatus = ERROR_SEVERITY_ERROR | FAC(FACILITY_STORAGE) | ERROR_NOT_SUPPORTED;
return FALSE;
}