]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Ventoy2Disk update:
authorlongpanda <admin@ventoy.net>
Wed, 30 Nov 2022 13:12:43 +0000 (21:12 +0800)
committerlongpanda <admin@ventoy.net>
Wed, 30 Nov 2022 13:12:43 +0000 (21:12 +0800)
1. Add UDF filesytem option.
2. Add Cluster Size option.
3. Support FAT32 for disk bigger than 32GB.
4. Fix the format fail issue.
5. Add a tip bubble with cluster size when mouse hover on the file system type string.
6. The secure boot lock character can not show in early Windows, change it to a yellow icon.

23 files changed:
INSTALL/Ventoy2Disk.exe
INSTALL/Ventoy2Disk_ARM.exe
INSTALL/Ventoy2Disk_ARM64.exe
INSTALL/Ventoy2Disk_X64.exe
LANGUAGES/languages.json
README.md
Ventoy2Disk/Ventoy2Disk/DiskService.c
Ventoy2Disk/Ventoy2Disk/DiskService.h
Ventoy2Disk/Ventoy2Disk/DiskService_diskpart.c
Ventoy2Disk/Ventoy2Disk/DiskService_vds.c
Ventoy2Disk/Ventoy2Disk/DiskService_wmsa.c
Ventoy2Disk/Ventoy2Disk/Language.c
Ventoy2Disk/Ventoy2Disk/Language.h
Ventoy2Disk/Ventoy2Disk/PartDialog.c
Ventoy2Disk/Ventoy2Disk/PhyDrive.c
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.aps
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.c
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.h
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.rc
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.vcxproj
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.vcxproj.filters
Ventoy2Disk/Ventoy2Disk/WinDialog.c
Ventoy2Disk/Ventoy2Disk/resource.h

index f6c3ab55eaf44caca0b8c1275c1582cb6ece4048..916a3ebc1000b975725359fda53d8de119b4345c 100644 (file)
Binary files a/INSTALL/Ventoy2Disk.exe and b/INSTALL/Ventoy2Disk.exe differ
index d1630163adbfe922870f46b19eb29a48978bfc2b..3ef8bdb33c897cbfe4b459124a47acd9ee6c503e 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_ARM.exe and b/INSTALL/Ventoy2Disk_ARM.exe differ
index 6616dde60642ccc4c42c1651b3b28fbd508bb8d1..730927f980bd13b88b0784e61593394d0c0dc088 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_ARM64.exe and b/INSTALL/Ventoy2Disk_ARM64.exe differ
index ac9f6bfcaf8b53feee18c6939d2414041dccc290..435f4d783beb8b6892d6c3028eeb2a6dc631390d 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_X64.exe and b/INSTALL/Ventoy2Disk_X64.exe differ
index f47078435d717554bcc51ef5ae4680cae8a4d98a..c83fb1cda881e5949917b18a9c6404762d86af13 100644 (file)
@@ -56,6 +56,9 @@
         "STR_INSTALL_YES_TIP1":"تحذير: سيتم فقدان البيانات!",
         "STR_INSTALL_YES_TIP2":"يرجى إدخال YES في مربع النص في الأسفل للتأكيد بأنك تريد عمل تثبيت جديد بدلاً من التحديث.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"경고: 데이터가 손실됩니다!",
         "STR_INSTALL_YES_TIP2":"업그레이드 대신 새로 설치할지 확인하려면 아래 입력란에 YES를 입력하십시오.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"警告: 所有数据将会丢失!",
         "STR_INSTALL_YES_TIP2":"请在下面文本框中输入 YES 以确认你是要进行安装而不是升级。",
         "STR_PART_VENTOY_FS":"Ventoy 分区文件系统类型",
+        "STR_PART_FS":"文件系统",
+        "STR_PART_CLUSTER":"簇大小",
+        "STR_PART_CLUSTER_DEFAULT":"系统默认值",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_MENU_PART_RESIZE": "გთხოვთ, შეიყვანოთ YES ქვემოთ მოცემულ ტექსტურ ველში, რათა დაადასტუროთ... გსურთ განახლების ნაცვლად განახორციელოთ ახალი ინსტალაცია.",
         "STR_PART_RESIZE_TIP": "Ventoy ჩეეცდება დააყენოს არა-დესტრუქციული რამდენადაც შეეცდება. გსურს გაგრძელება?",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX": ""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Ostrzeżenie: Dane zostaną utracone!",
         "STR_INSTALL_YES_TIP2":"Wpisz YES w poniższym polu tekstowym, aby potwierdzić, że naprawdę chcesz przeprowadzić nową instalację zamiast aktualizacji.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Aviso: Os dados serão perdidos!",
         "STR_INSTALL_YES_TIP2":"Por favor, digite YES na caixa de texto abaixo para confirmar que você realmente quer fazer uma nova instalação em vez de atualização.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Uyarı: Tüm verileriniz kaybolacak!",
         "STR_INSTALL_YES_TIP2":"Güncelleme yapmak yerine,yeni bir kurulum yapmak istediğinizi doğrulamak için lütfen aşağıdaki metin kutusuna YES yazın.",
         "STR_PART_VENTOY_FS":"Ventoy bölümü Dosya Sistemi",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warnung: Die Daten gehen verloren!",
         "STR_INSTALL_YES_TIP2":"Bitte bestätigen Sie in der unteren Textbox mit YES, dass Sie anstelle eines Upgrades eine frische Installation durchführen möchten.",
         "STR_PART_VENTOY_FS":"Dateisystem für die Ventoy-Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Attention : les données seront perdues !",
         "STR_INSTALL_YES_TIP2":"Veuillez saisir YES dans la zone de texte ci-dessous pour confirmer que vous souhaitez bien effectuer une nouvelle installation au lieu d'une mise à niveau.",
         "STR_PART_VENTOY_FS":"Système de fichiers pour la partition Ventoy",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Varování: Data budou ztracena!",
         "STR_INSTALL_YES_TIP2":"Do níže uvedeného textového pole zadejte YES a potvrďte, že skutečně chcete provést novou instalaci namísto aktualizace.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
 
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Varovanie: Dôjde k strate údajov!",
         "STR_INSTALL_YES_TIP2":"Prosím, zadajte YES v textovom poli nižšie, čím potvrdíte, že naozaj chcete vykonať novú inštaláciu miesto aktualizácie.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Advertencia: ¡Los datos se perderán!",
         "STR_INSTALL_YES_TIP2":"Por favor ingresa YES en el cuadro de texto a continuación para confirmar que realmente quieres realizar una instalación nueva en vez de actualizar.",
         "STR_PART_VENTOY_FS":"Sistema de archivos para partición de Ventoy",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Advertencia: ¡Los datos se perderán!",
         "STR_INSTALL_YES_TIP2":"Por favor, escriba YES en el cuadro de texto a continuación para confirmar que realmente quiere realizar una nueva instalación de Ventoy en vez de actualizarlo.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Предупреждение: Данные будут потеряны!",
         "STR_INSTALL_YES_TIP2":"Пожалуйста, введите YES в текстовое поле ниже, чтобы подтвердить, что вы действительно хотите выполнить новую установку вместо обновления.",
         "STR_PART_VENTOY_FS":"Файловая система для Ventoy раздела",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"সতর্কতা: ডেটা হারিয়ে যাবে!",
         "STR_INSTALL_YES_TIP2":"আপনি আপগ্রেড করার পরিবর্তে একটি নতুন ইনস্টল করতে চান তা নিশ্চিত করতে দয়া করে নীচের পাঠ্য বাক্সে Yes লিখুন৷।",
         "STR_PART_VENTOY_FS":"Ventoy পার্টিশনের জন্য ফাইল সিস্টেম",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"चेतावनी: डेटा खो जाएगा!",
         "STR_INSTALL_YES_TIP2":"यह पुष्टि करने के लिए कि आप वास्तव में अपग्रेड के बजाय एक नया इंस्टॉल करना चाहते हैं, कृपया नीचे दिए टेक्स्ट बॉक्स में Yes दर्ज करें।",
         "STR_PART_VENTOY_FS":"Ventoy विभाजन के लिए फाइल सिस्टम",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Atenție: Datele se vor pierde!",
         "STR_INSTALL_YES_TIP2":"Introduceți DA în caseta de text de mai jos pentru a confirma că într-adevăr doriți să faceți o nouă instalare în loc să faceți upgrade.",
         "STR_PART_VENTOY_FS":"Sistem de fișiere pentru partiția Ventoy",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"警告: データが消去されます",
         "STR_INSTALL_YES_TIP2":"Ventoyを更新するのではなく新規に導入するということを確認するために,下の入力欄に「YES」と入力してください。",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Attenzione: i dati verranno persi!",
         "STR_INSTALL_YES_TIP2":"Digita YES nella casella di testo qui sotto per confermare che vuoi davvero eseguire un'installazione pulita anziché un aggiornamento.",
         "STR_PART_VENTOY_FS":"File System per partizione Ventoy",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Figyelmeztetés: Az adatok elvesznek!",
         "STR_INSTALL_YES_TIP2":"Írja a YES szót az alábbi szövegmezőbe, hogy megerősítse, valóban új telepítést szeretne végrehajtani a frissítés helyett.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
    {
         "STR_INSTALL_YES_TIP1":"警告:資料將會遺失!",
         "STR_INSTALL_YES_TIP2":"請在下方的文字輸入框輸入 YES 來證實您想要進行全新安裝取代升級。",
         "STR_PART_VENTOY_FS":"Ventoy 分割區文件系統",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Peringatan: Data akan hilang!",
         "STR_INSTALL_YES_TIP2":"Silakan ketik YES pada kotak tulis di bawah untuk meyakinkan bahwa anda memang untuk melakukan pemasangan baru ketimbang memperbaruinya",
         "STR_PART_VENTOY_FS":"Berkas Sistem Untuk Partisi Ventoy",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Προειδοποίηση: Τα δεδομένα θα χαθούν!",
         "STR_INSTALL_YES_TIP2":"Εισαγάγετε ΝΑΙ στο παρακάτω πλαίσιο κειμένου για να επιβεβαιώσετε ότι όντως θέλετε να κάνετε μια νέα εγκατάσταση αντί για αναβάθμιση.",
         "STR_PART_VENTOY_FS":"Σύστημα αρχείων για το διαμέρισμα Ventoy",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Varning: Data kommer att gå förlorade!",
         "STR_INSTALL_YES_TIP2":"Skriv YES i textrutan nedan för att bekräfta att du verkligen vill göra en nyinstallation i stället för att uppgradera.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Pozor: Podatki bodo izbrisani!",
         "STR_INSTALL_YES_TIP2":"Prosim vtipkajte YES v spodnje okno da potrdite čisto inštalacijo in ne zgolj nadgradnje.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Внимание: Ще има загуба на данни!",
         "STR_INSTALL_YES_TIP2":"Въведете „YES“ в полето отдолу, за да потвърдите, че искате да извършите нова инсталация вместо обновяване.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
 
         "STRXXX":""
     },
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     
         "STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
         "STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
-        
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
+
         "STRXXX":""
     },
     {
         "STR_INSTALL_YES_TIP1":"எச்சரிக்கை: தரவு தொலைந்து போகும்!",
         "STR_INSTALL_YES_TIP2":"மேம்படுத்துவதற்குப் பதிலாக புதிதாக நிறுவ விரும்புகிறீர்கள் என்பதை உறுதிப்படுத்த, கீழே உள்ள உரைப் பெட்டியில் ஆம் என உள்ளிடவும்.",
         "STR_PART_VENTOY_FS":"File System For Ventoy Partition",
+        "STR_PART_FS":"File System",
+        "STR_PART_CLUSTER":"Cluster Size",
+        "STR_PART_CLUSTER_DEFAULT":"System Default Value",
         
         "STRXXX":""
     }
index c107e8e510bb0ad60b3681a1798962d0b24242ee..2bac7d1cd1f8adcd2feb32875ebf4302ea0f2e3e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ Most type of OS supported(Windows/WinPE/Linux/Unix/ChromeOS/Vmware/Xen...) <br/>
 Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022, WinPE
 
 **Linux**  
-Debian, Ubuntu, CentOS(6/7/8/9), RHEL(6/7/8/9), Deepin, Fedora, Rocky Linux, AlmaLinux, EuroLinux(6/7/8/9), openEuler, OpenAnolis, SLES, openSUSE, MX Linux, Manjaro, Linux Mint, Endless OS, Elementary OS, Solus, Linx, Zorin, antiX, PClinuxOS, Arch, ArcoLinux, ArchLabs, BlackArch, Obarun, Artix Linux, Puppy Linux, Tails, Slax, Kali, Mageia, Slackware, Q4OS, Archman, Gentoo, Pentoo, NixOS, Kylin, openKylin, Ubuntu Kylin, Lubuntu, Xubuntu, Kubuntu, Ubuntu MATE, Ubuntu Budgie, Ubuntu Studio, Bluestar, OpenMandriva, ExTiX, Netrunner, ALT Linux, Nitrux, Peppermint, KDE neon, Linux Lite, Parrot OS, Qubes, Pop OS, ROSA, Void Linux, Star Linux, EndeavourOS, MakuluLinux, Voyager, Feren, ArchBang, LXLE, Knoppix, Calculate Linux, Clear Linux, Pure OS, Oracle Linux, Trident, Septor, Porteus, Devuan, GoboLinux, 4MLinux, Simplicity Linux, Zeroshell, Android-x86, netboot.xyz, Slitaz, SuperGrub2Disk, Proxmox VE, Kaspersky Rescue, SystemRescueCD, MemTest86, MemTest86+, MiniTool Partition Wizard, Parted Magic, veket, Sabayon, Scientific, alpine, ClearOS, CloneZilla, Berry Linux, Trisquel, Ataraxia Linux, Minimal Linux Live, BackBox Linux, Emmabuntüs, ESET SysRescue Live,Nova Linux, AV Linux, RoboLinux, NuTyX, IPFire, SELKS, ZStack, Enso Linux, Security Onion, Network Security Toolkit, Absolute Linux, TinyCore, Springdale Linux, Frost Linux, Shark Linux, LinuxFX, Snail Linux, Astra Linux, Namib Linux, Resilient Linux, Virage Linux, Blackweb Security OS, R-DriveImage, O-O.DiskImage, Macrium, ToOpPy LINUX, GNU Guix, YunoHost, foxclone, siduction, Adelie Linux, Elive, Pardus, CDlinux, AcademiX, Austrumi, Zenwalk, Anarchy, DuZeru, BigLinux, OpenMediaVault, Ubuntu DP, Exe GNU/Linux, 3CX Phone System, KANOTIX, Grml, Karoshi, PrimTux, ArchStrike, CAELinux, Cucumber, Fatdog, ForLEx, Hanthana, Kwort, MiniNo, Redcore, Runtu, Asianux, Clu Linux Live, Uruk, OB2D, BlueOnyx, Finnix, HamoniKR, Parabola, LinHES, LinuxConsole, BEE free, Untangle, Pearl, Thinstation, TurnKey, tuxtrans, Neptune, HefftorLinux, GeckoLinux, Mabox Linux, Zentyal, Maui, Reborn OS, SereneLinux , SkyWave Linux, Kaisen Linux, Regata OS, TROM-Jaro, DRBL Linux, Chalet OS, Chapeau, Desa OS, BlankOn, OpenMamba, Frugalware, Kibojoe Linux, Revenge OS, Tsurugi Linux, Drauger OS, Hash Linux, gNewSense, Ikki Boot, SteamOS, Hyperbola, VyOS, EasyNAS, SuperGamer, Live Raizo, Swift Linux, RebeccaBlackOS, Daphile, CRUX, Univention, Ufficio Zero, Rescuezilla, Phoenix OS, Garuda Linux, Mll, NethServer, OSGeoLive, Easy OS, Volumio, FreedomBox, paldo, UBOS, Recalbox, batocera, Lakka, LibreELEC, Pardus Topluluk, Pinguy, KolibriOS, Elastix, Arya, Omoikane, Omarine, Endian Firewall, Hamara, Rocks Cluster, MorpheusArch, Redo, Slackel, SME Server, APODIO, Smoothwall, Dragora, Linspire, Secure-K OS, Peach OSI, Photon, Plamo, SuperX, Bicom, Ploplinux, HP SPP, LliureX, Freespire, DietPi, BOSS, Webconverger, Lunar, TENS, Source Mage, RancherOS, T2, Vine, Pisi, blackPanther, mAid, Acronis, Active.Boot, AOMEI, Boot.Repair, CAINE, DaRT, EasyUEFI, R-Drive, PrimeOS, Avira Rescue System, bitdefender, Checkra1n Linux, Lenovo Diagnostics, Clover, Bliss-OS, Lenovo BIOS Update, Arcabit Rescue Disk, MiyoLinux, TeLOS, Kerio Control, RED OS, OpenWrt, MocaccinoOS, EasyStartup, Pyabr, Refracta, Eset SysRescue, Linpack Xtreme, Archcraft, NHVBOOT, pearOS, SeaTools, Easy Recovery Essentional, iKuai, StorageCraft SCRE, ZFSBootMenu, TROMjaro, BunsenLabs, Todo en Uno, ChallengerOS, Nobara, Holo, CachyOS, ......
+Debian, Ubuntu, CentOS(6/7/8/9), RHEL(6/7/8/9), Deepin, Fedora, Rocky Linux, AlmaLinux, EuroLinux(6/7/8/9), openEuler, OpenAnolis, SLES, openSUSE, MX Linux, Manjaro, Linux Mint, Endless OS, Elementary OS, Solus, Linx, Zorin, antiX, PClinuxOS, Arch, ArcoLinux, ArchLabs, BlackArch, Obarun, Artix Linux, Puppy Linux, Tails, Slax, Kali, Mageia, Slackware, Q4OS, Archman, Gentoo, Pentoo, NixOS, Kylin, openKylin, Ubuntu Kylin, KylinSec, Lubuntu, Xubuntu, Kubuntu, Ubuntu MATE, Ubuntu Budgie, Ubuntu Studio, Bluestar, OpenMandriva, ExTiX, Netrunner, ALT Linux, Nitrux, Peppermint, KDE neon, Linux Lite, Parrot OS, Qubes, Pop OS, ROSA, Void Linux, Star Linux, EndeavourOS, MakuluLinux, Voyager, Feren, ArchBang, LXLE, Knoppix, Calculate Linux, Clear Linux, Pure OS, Oracle Linux, Trident, Septor, Porteus, Devuan, GoboLinux, 4MLinux, Simplicity Linux, Zeroshell, Android-x86, netboot.xyz, Slitaz, SuperGrub2Disk, Proxmox VE, Kaspersky Rescue, SystemRescueCD, MemTest86, MemTest86+, MiniTool Partition Wizard, Parted Magic, veket, Sabayon, Scientific, alpine, ClearOS, CloneZilla, Berry Linux, Trisquel, Ataraxia Linux, Minimal Linux Live, BackBox Linux, Emmabuntüs, ESET SysRescue Live,Nova Linux, AV Linux, RoboLinux, NuTyX, IPFire, SELKS, ZStack, Enso Linux, Security Onion, Network Security Toolkit, Absolute Linux, TinyCore, Springdale Linux, Frost Linux, Shark Linux, LinuxFX, Snail Linux, Astra Linux, Namib Linux, Resilient Linux, Virage Linux, Blackweb Security OS, R-DriveImage, O-O.DiskImage, Macrium, ToOpPy LINUX, GNU Guix, YunoHost, foxclone, siduction, Adelie Linux, Elive, Pardus, CDlinux, AcademiX, Austrumi, Zenwalk, Anarchy, DuZeru, BigLinux, OpenMediaVault, Ubuntu DP, Exe GNU/Linux, 3CX Phone System, KANOTIX, Grml, Karoshi, PrimTux, ArchStrike, CAELinux, Cucumber, Fatdog, ForLEx, Hanthana, Kwort, MiniNo, Redcore, Runtu, Asianux, Clu Linux Live, Uruk, OB2D, BlueOnyx, Finnix, HamoniKR, Parabola, LinHES, LinuxConsole, BEE free, Untangle, Pearl, Thinstation, TurnKey, tuxtrans, Neptune, HefftorLinux, GeckoLinux, Mabox Linux, Zentyal, Maui, Reborn OS, SereneLinux , SkyWave Linux, Kaisen Linux, Regata OS, TROM-Jaro, DRBL Linux, Chalet OS, Chapeau, Desa OS, BlankOn, OpenMamba, Frugalware, Kibojoe Linux, Revenge OS, Tsurugi Linux, Drauger OS, Hash Linux, gNewSense, Ikki Boot, SteamOS, Hyperbola, VyOS, EasyNAS, SuperGamer, Live Raizo, Swift Linux, RebeccaBlackOS, Daphile, CRUX, Univention, Ufficio Zero, Rescuezilla, Phoenix OS, Garuda Linux, Mll, NethServer, OSGeoLive, Easy OS, Volumio, FreedomBox, paldo, UBOS, Recalbox, batocera, Lakka, LibreELEC, Pardus Topluluk, Pinguy, KolibriOS, Elastix, Arya, Omoikane, Omarine, Endian Firewall, Hamara, Rocks Cluster, MorpheusArch, Redo, Slackel, SME Server, APODIO, Smoothwall, Dragora, Linspire, Secure-K OS, Peach OSI, Photon, Plamo, SuperX, Bicom, Ploplinux, HP SPP, LliureX, Freespire, DietPi, BOSS, Webconverger, Lunar, TENS, Source Mage, RancherOS, T2, Vine, Pisi, blackPanther, mAid, Acronis, Active.Boot, AOMEI, Boot.Repair, CAINE, DaRT, EasyUEFI, R-Drive, PrimeOS, Avira Rescue System, bitdefender, Checkra1n Linux, Lenovo Diagnostics, Clover, Bliss-OS, Lenovo BIOS Update, Arcabit Rescue Disk, MiyoLinux, TeLOS, Kerio Control, RED OS, OpenWrt, MocaccinoOS, EasyStartup, Pyabr, Refracta, Eset SysRescue, Linpack Xtreme, Archcraft, NHVBOOT, pearOS, SeaTools, Easy Recovery Essentional, iKuai, StorageCraft SCRE, ZFSBootMenu, TROMjaro, BunsenLabs, Todo en Uno, ChallengerOS, Nobara, Holo, CachyOS, ......
 
 **Unix**  
 DragonFly FreeBSD pfSense GhostBSD FreeNAS TrueNAS XigmaNAS FuryBSD OPNsense HardenedBSD MidnightBSD ClonOS EmergencyBootKit
index b73511927aae9a011e5db6423b50ab5ec2f1751b..cbc27b8d2509879e6563ef7c1e7ee23b1b69c4fc 100644 (file)
@@ -109,17 +109,175 @@ BOOL DISK_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLetter,
        return ret;\r
 }\r
 \r
-BOOL DISK_FormatVolume(char DriveLetter, int fs)\r
+\r
+\r
+// Output command\r
+typedef struct\r
+{\r
+       DWORD Lines;\r
+       PCHAR Output;\r
+} TEXTOUTPUT, * PTEXTOUTPUT;\r
+\r
+// Callback command types\r
+typedef enum\r
+{\r
+       PROGRESS,\r
+       DONEWITHSTRUCTURE,\r
+       UNKNOWN2,\r
+       UNKNOWN3,\r
+       UNKNOWN4,\r
+       UNKNOWN5,\r
+       INSUFFICIENTRIGHTS,\r
+       UNKNOWN7,\r
+       UNKNOWN8,\r
+       UNKNOWN9,\r
+       UNKNOWNA,\r
+       DONE,\r
+       UNKNOWNC,\r
+       UNKNOWND,\r
+       OUTPUT,\r
+       STRUCTUREPROGRESS\r
+} CALLBACKCOMMAND;\r
+\r
+// FMIFS callback definition\r
+typedef BOOLEAN(__stdcall* PFMIFSCALLBACK)(CALLBACKCOMMAND Command, DWORD SubAction, PVOID ActionInfo);\r
+\r
+\r
+// Chkdsk command in FMIFS\r
+typedef VOID(__stdcall* PCHKDSK)(PWCHAR DriveRoot,\r
+       PWCHAR Format,\r
+       BOOL CorrectErrors,\r
+       BOOL Verbose,\r
+       BOOL CheckOnlyIfDirty,\r
+       BOOL ScanDrive,\r
+       PVOID Unused2,\r
+       PVOID Unused3,\r
+       PFMIFSCALLBACK Callback);\r
+\r
+\r
+// media flags\r
+#define FMIFS_HARDDISK 0xC\r
+#define FMIFS_FLOPPY   0x8\r
+// Format command in FMIFS\r
+typedef VOID(__stdcall* PFORMATEX)(PWCHAR DriveRoot,\r
+       DWORD MediaFlag,\r
+       PWCHAR Format,\r
+       PWCHAR Label,\r
+       BOOL QuickFormat,\r
+       DWORD ClusterSize,\r
+       PFMIFSCALLBACK Callback);\r
+\r
+\r
+// FormatExCallback\r
+static int g_dll_format_error = 0;\r
+BOOLEAN __stdcall FormatExCallback(CALLBACKCOMMAND Command, DWORD Modifier, PVOID Argument)\r
+{\r
+       PDWORD percent;\r
+       PBOOLEAN status;\r
+\r
+       switch (Command)\r
+       {\r
+       case PROGRESS:\r
+               percent = (PDWORD)Argument;\r
+               Log("Format percent: %d \n", *percent);\r
+               break;\r
+\r
+       case OUTPUT:\r
+               break;\r
+\r
+       case DONE:\r
+               status = (PBOOLEAN)Argument;\r
+               if (*status == FALSE)\r
+               {\r
+                       g_dll_format_error = 1;\r
+               }\r
+               else\r
+               {\r
+               }\r
+\r
+               break;\r
+       }\r
+       return TRUE;\r
+}\r
+\r
+\r
+BOOL DLL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)\r
+{\r
+       PWCHAR  Label = L"Ventoy";\r
+       PWCHAR  Format = NULL;\r
+       WCHAR   RootDirectory[MAX_PATH] = { 0 };\r
+       HMODULE ifsModule;\r
+       PFORMATEX FormatEx;\r
+\r
+       ifsModule = LoadLibraryA("fmifs.dll");\r
+       if (NULL == ifsModule)\r
+       {\r
+               Log("LoadLibrary fmifs.dll failed %u", LASTERR);\r
+               return FALSE;\r
+       }\r
+\r
+       Log("Find ifsModule");\r
+\r
+       FormatEx = (PFORMATEX)GetProcAddress(ifsModule, "FormatEx");\r
+       if (FormatEx == NULL)\r
+       {\r
+               Log("Failed to get FormatEx handler\n");\r
+               return FALSE;\r
+       }\r
+       Log("Find FormatEx=%p", FormatEx);\r
+\r
+       RootDirectory[0] = DriveLetter;\r
+       RootDirectory[1] = L':';\r
+       RootDirectory[2] = L'\\';\r
+       RootDirectory[3] = (WCHAR)0;\r
+\r
+       DWORD media;\r
+       DWORD driveType;\r
+       driveType = GetDriveTypeW(RootDirectory);\r
+       if (driveType != DRIVE_FIXED)\r
+               media = FMIFS_FLOPPY;\r
+       if (driveType == DRIVE_FIXED)\r
+               media = FMIFS_HARDDISK;\r
+\r
+       Format = GetVentoyFsFmtNameByTypeW(fs);\r
+\r
+       g_dll_format_error = 0;\r
+\r
+       Log("Call FormatEx Function for %C: %s ClusterSize=%u(%uKB)", DriveLetter, GetVentoyFsFmtNameByTypeA(fs), ClusterSize, ClusterSize / 1024);\r
+       FormatEx(RootDirectory, media, Format, Label, TRUE, ClusterSize, FormatExCallback);\r
+       FreeLibrary(ifsModule);\r
+\r
+       if (g_dll_format_error)\r
+       {\r
+               Log("Format failed by DLL");\r
+               return FALSE;\r
+       }\r
+\r
+       Log("Format success by DLL");\r
+       return TRUE;\r
+}\r
+\r
+\r
+BOOL DISK_FormatVolume(char DriveLetter, int fs, UINT64 VolumeSize)\r
 {\r
+       DWORD ClusterSize = 0;\r
        BOOL ret = FALSE;\r
 \r
-       //ret = VDS_FormatVolume(DriveLetter, fs);\r
+       ClusterSize = (DWORD)GetClusterSize();\r
+       Log("DISK_FormatVolume %C:\\ %s VolumeSize=%llu ClusterSize=%u(%uKB)",\r
+               DriveLetter, GetVentoyFsNameByType(fs), (ULONGLONG)VolumeSize, ClusterSize, ClusterSize/1024);\r
+\r
+       ret = DLL_FormatVolume(DriveLetter, fs, ClusterSize);\r
        if (!ret)\r
        {\r
-               //ret = DSPT_FormatVolume(DriveLetter, fs);\r
+               ret = VDS_FormatVolume(DriveLetter, fs, ClusterSize);\r
                if (!ret)\r
                {\r
-                       ret = PSHELL_FormatVolume(DriveLetter, fs);\r
+                       ret = DSPT_FormatVolume(DriveLetter, fs, ClusterSize);\r
+                       if (!ret)\r
+                       {\r
+                               ret = PSHELL_FormatVolume(DriveLetter, fs, ClusterSize);\r
+                       }\r
                }\r
        }\r
 \r
index 4e197cbcb74bf57052382dd7d78ad549da18209c..ecf1af22e9d715232f763f8562172656ca51f209 100644 (file)
@@ -30,6 +30,7 @@ typedef struct VDS_PARA
        ULONG NameLen;\r
     ULONGLONG Offset;\r
        CHAR DriveLetter;\r
+    DWORD ClusterSize;\r
 }VDS_PARA;\r
 \r
 //DISK API\r
@@ -39,7 +40,7 @@ BOOL DISK_ChangeVtoyEFIAttr(int DriveIndex, UINT64 Offset, UINT64 Attr);
 BOOL DISK_ChangeVtoyEFI2ESP(int DriveIndex, UINT64 Offset);\r
 BOOL DISK_ChangeVtoyEFI2Basic(int DriveIndex, UINT64 Offset);\r
 BOOL DISK_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLetter, UINT64 OldBytes, UINT64 ReduceBytes);\r
-BOOL DISK_FormatVolume(char DriveLetter, int fs);\r
+BOOL DISK_FormatVolume(char DriveLetter, int fs, UINT64 VolumeSize);\r
 \r
 \r
 //VDS com\r
@@ -51,11 +52,11 @@ BOOL VDS_ChangeVtoyEFI2ESP(int DriveIndex, UINT64 Offset);
 BOOL VDS_ChangeVtoyEFI2Basic(int DriveIndex, UINT64 Offset);\r
 BOOL VDS_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLetter, UINT64 OldBytes, UINT64 ReduceBytes);\r
 BOOL VDS_IsLastAvaliable(void);\r
-BOOL VDS_FormatVolume(char DriveLetter, int fs);\r
+BOOL VDS_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);\r
 \r
 //diskpart.exe\r
 BOOL DSPT_CleanDisk(int DriveIndex);\r
-BOOL DSPT_FormatVolume(char DriveLetter, int fs);\r
+BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);\r
 \r
 //powershell.exe\r
 BOOL PSHELL_CleanDisk(int DriveIndex);\r
@@ -63,7 +64,7 @@ BOOL PSHELL_DeleteVtoyEFIPartition(int DriveIndex, UINT64 EfiPartOffset);
 BOOL PSHELL_ChangeVtoyEFI2ESP(int DriveIndex, UINT64 Offset);\r
 BOOL PSHELL_ChangeVtoyEFI2Basic(int DriveIndex, UINT64 Offset);\r
 BOOL PSHELL_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLetter, UINT64 OldBytes, UINT64 ReduceBytes);\r
-BOOL PSHELL_FormatVolume(char DriveLetter, int fs);\r
+BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);\r
 \r
 //\r
 // Internel define\r
index 6d02e90517e45dd1725c1fe94955797b038f061e..b99c1cb31c07e45b44a29eb0de31833bd8acbbff 100644 (file)
@@ -86,7 +86,7 @@ BOOL DSPT_CleanDisk(int DriveIndex)
     return DSPT_CommProc(CmdBuf);\r
 }\r
 \r
-BOOL DSPT_FormatVolume(char DriveLetter, int fs)\r
+BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)\r
 {\r
     const char* fsname = NULL;\r
     CHAR CmdBuf[256];\r
@@ -98,15 +98,18 @@ BOOL DSPT_FormatVolume(char DriveLetter, int fs)
         return FALSE;\r
     }\r
 \r
-    if (fs == 1)\r
+    fsname = GetVentoyFsFmtNameByTypeA(fs);\r
+\r
+    if (ClusterSize > 0)\r
     {\r
-        fsname = "NTFS";\r
+        sprintf_s(CmdBuf, sizeof(CmdBuf), "select volume %C:\r\nformat FS=%s LABEL=Ventoy UNIT=%u QUICK OVERRIDE\r\n", DriveLetter, fsname, ClusterSize);\r
     }\r
     else\r
     {\r
-        fsname = "FAT32";\r
+        sprintf_s(CmdBuf, sizeof(CmdBuf), "select volume %C:\r\nformat FS=%s LABEL=Ventoy QUICK OVERRIDE\r\n", DriveLetter, fsname);\r
     }\r
+    \r
+    Log("Diskpart cmd:<%s>", CmdBuf);\r
 \r
-    sprintf_s(CmdBuf, sizeof(CmdBuf), "select volume %C:\r\nformat FS=%s LABEL=Ventoy QUICK OVERRIDE\r\n", DriveLetter, fsname);\r
     return DSPT_CommProc(CmdBuf);\r
 }\r
index f0ee6f93ef0a33a98c1a2a5e1a7716b4bf9a1137..e2a1fab7f4e96cc2a696c35b730b3be1e7abe578 100644 (file)
@@ -1417,19 +1417,20 @@ BOOL VDS_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLetter,
 \r
 STATIC BOOL VDS_CallBack_FormatVolume(void* pInterface, VDS_DISK_PROP* pDiskProp, UINT64 data)\r
 {\r
+       int fs;\r
        HRESULT hr, hr2;\r
        ULONG completed;\r
        IVdsAsync* pAsync;\r
        IVdsVolumeMF3* pVolume = (IVdsVolumeMF3*)pInterface;\r
        WCHAR* pFs = NULL;\r
-       WCHAR FsNTFS[32] = L"NTFS";\r
-       WCHAR FsFAT32[32] = L"FAT32";\r
        VDS_PARA* VdsPara = (VDS_PARA*)data;\r
        \r
-       pFs = (VdsPara->Attr == 1) ? FsNTFS : FsFAT32;\r
-       Log("VDS_CallBack_FormatVolume (%C:) (%llu) ...", VdsPara->DriveLetter, (ULONGLONG)VdsPara->Attr);\r
+       fs = (int)VdsPara->Attr;\r
+       pFs = GetVentoyFsFmtNameByTypeW(fs);\r
+       \r
+       Log("VDS_CallBack_FormatVolume (%C:) (%s) ClusterSize:%u ...", VdsPara->DriveLetter, GetVentoyFsFmtNameByTypeA(fs), VdsPara->ClusterSize);\r
 \r
-       hr = IVdsVolumeMF3_FormatEx2(pVolume, pFs, 0, 0, L"Ventoy", VDS_FSOF_FORCE | VDS_FSOF_QUICK, &pAsync);\r
+       hr = IVdsVolumeMF3_FormatEx2(pVolume, pFs, 0, VdsPara->ClusterSize, L"Ventoy", VDS_FSOF_FORCE | VDS_FSOF_QUICK, &pAsync);\r
        while (SUCCEEDED(hr))\r
        {\r
                hr = IVdsAsync_QueryStatus(pAsync, &hr2, &completed);\r
@@ -1465,7 +1466,7 @@ STATIC BOOL VDS_CallBack_FormatVolume(void* pInterface, VDS_DISK_PROP* pDiskProp
 \r
        return TRUE;\r
 }\r
-BOOL VDS_FormatVolume(char DriveLetter, int fs)\r
+BOOL VDS_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)\r
 {\r
        int i;\r
        BOOL ret = FALSE;\r
@@ -1495,6 +1496,7 @@ BOOL VDS_FormatVolume(char DriveLetter, int fs)
 \r
        Para.Attr = fs;\r
        Para.DriveLetter = DriveLetter;\r
+       Para.ClusterSize = ClusterSize;\r
 \r
        ret = VDS_VolumeCommProc(INTF_VOLUME_MF3, wGuid, VDS_CallBack_FormatVolume, (UINT64)&Para);\r
        Log("VDS_FormatVolume %C: <%s> ret:%d (%s)", DriveLetter, VolumeGuid, ret, ret ? "SUCCESS" : "FAIL");\r
index ac9bd9613e5ef82f41e66871bedc32b8b9a603d4..e0cec35b952c64b80098e3158aa3cc30941904f7 100644 (file)
@@ -256,25 +256,27 @@ BOOL PSHELL_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLette
        return ret;\r
 }\r
 \r
-BOOL PSHELL_FormatVolume(char DriveLetter, int fs)\r
+BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)\r
 {\r
        BOOL ret;\r
        const char* fsname = NULL;\r
        CHAR CmdBuf[512];\r
 \r
-       if (fs == 1)\r
+       fsname = GetVentoyFsFmtNameByTypeA(fs);\r
+\r
+       if (ClusterSize > 0)\r
        {\r
-               fsname = "NTFS";\r
+               sprintf_s(CmdBuf, sizeof(CmdBuf),\r
+                       "format-volume -DriveLetter %C -FileSystem %s -AllocationUnitSize %u -Force -NewFileSystemLabel Ventoy",\r
+                       DriveLetter, fsname, ClusterSize);\r
        }\r
        else\r
        {\r
-               fsname = "FAT32";\r
+               sprintf_s(CmdBuf, sizeof(CmdBuf),\r
+                       "format-volume -DriveLetter %C -FileSystem %s -Force -NewFileSystemLabel Ventoy",\r
+                       DriveLetter, fsname);\r
        }\r
 \r
-       sprintf_s(CmdBuf, sizeof(CmdBuf),\r
-               "format-volume -DriveLetter %C -FileSystem %s -Force -NewFileSystemLabel Ventoy",\r
-               DriveLetter, fsname);\r
-\r
        ret = PSHELL_CommProc(CmdBuf);\r
        Log("PSHELL_FormatVolume %C: ret:%d (%s)", DriveLetter, ret, ret ? "SUCCESS" : "FAIL");\r
        return ret;\r
index 80833274cd564ba6260a9881cd66c0a8759f6735..2c135aa94618771c8e4d2ef40ad2b4edb6042224 100644 (file)
@@ -19,6 +19,7 @@
  */\r
  \r
 #include <Windows.h>\r
+#include <versionhelpers.h>\r
 #include "Ventoy2Disk.h"\r
 #include "Language.h"\r
 \r
@@ -33,13 +34,3 @@ const TCHAR * GetString(enum STR_ID ID)
         return NULL;\r
     }\r
 };\r
-\r
-static const UINT16 g_unicode_icon[UNICODE_BUTT][3] =\r
-{\r
-    { 0xD83D, 0xDD12, 0x0000 },\r
-};\r
-\r
-const UINT16 * GetUnicodeIcon(icon)\r
-{\r
-    return g_unicode_icon[icon];\r
-}\r
index 7dbedea5c88b2bbb34468503597ddb9da162973b..ac7d866ef3c01625db3d1cab3be80ad319df137d 100644 (file)
@@ -88,6 +88,10 @@ typedef enum STR_ID
 \r
        STR_PART_VENTOY_FS, //50\r
 \r
+       STR_PART_FS, //51\r
+       STR_PART_CLUSTER, //52\r
+       STR_PART_CLUSTER_DEFAULT, //53\r
+\r
        STR_ID_MAX\r
 }STR_ID;\r
 \r
@@ -151,13 +155,4 @@ const TCHAR * GetString(enum STR_ID ID);
 \r
 #define _G(a) GetString(a)\r
 \r
-typedef enum UNICODE_ICON\r
-{\r
-    UNICODE_LOCK = 0,\r
-    UNICODE_BUTT\r
-}UNICODE_ICON;\r
-\r
-const UINT16 * GetUnicodeIcon(icon);\r
-#define _UICON(i) GetUnicodeIcon(i)\r
-\r
 #endif\r
index e7bccd7dfb213da524817980da065056dc86a7a2..46450d1fc54d94161a2df626aad7cc55f36b84c0 100644 (file)
Binary files a/Ventoy2Disk/Ventoy2Disk/PartDialog.c and b/Ventoy2Disk/Ventoy2Disk/PartDialog.c differ
index c1ebe5e0a58ec9cf4e0a60bb0453ffe54187b63c..e139c09aa73f891dc34bcd99cdc674a000ff5d10 100644 (file)
@@ -1106,6 +1106,79 @@ static int WriteGrubStage1ToPhyDrive(HANDLE hDrive, int PartStyle)
 }\r
 \r
 \r
+static int FormatPart1LargeFAT32(UINT64 DiskSizeBytes, int CluserSize)\r
+{\r
+    MKFS_PARM Option;\r
+    FRESULT Ret;\r
+    FATFS FS;\r
+\r
+    Option.fmt = FM_FAT32;\r
+    Option.n_fat = 1;\r
+    Option.align = 8;\r
+    Option.n_root = 1;\r
+\r
+    if (CluserSize == 0)\r
+    {\r
+        // < 32GB select 32KB as cluster size\r
+        // > 32GB select 128KB as cluster size\r
+        if (DiskSizeBytes / 1024 / 1024 / 1024 <= 32)\r
+        {\r
+            Option.au_size = 32768;\r
+        }\r
+        else\r
+        {\r
+            Option.au_size = 131072;\r
+        }\r
+    }\r
+    else\r
+    {\r
+        Option.au_size = CluserSize;\r
+    }\r
+\r
+    Log("Formatting Part1 large FAT32 ClusterSize:%u(%uKB) ...", CluserSize, CluserSize / 1024);\r
+\r
+    disk_io_reset_write_error();\r
+\r
+    Ret = f_mkfs(TEXT("0:"), &Option, 0, 8 * 1024 * 1024);\r
+    if (FR_OK == Ret)\r
+    {\r
+        if (disk_io_is_write_error())\r
+        {\r
+            Log("Formatting Part1 large FAT32 failed, write error.");\r
+            return 1;\r
+        }\r
+\r
+        Log("Formatting Part1 large FAT32 success, now set label");\r
+        \r
+        Ret = f_mount(&FS, TEXT("0:"), 1);\r
+        if (FR_OK == Ret)\r
+        {\r
+            Log("f_mount SUCCESS");\r
+            Ret = f_setlabel(TEXT("0:Ventoy"));\r
+            if (FR_OK == Ret)\r
+            {\r
+                Log("f_setlabel SUCCESS");\r
+                Ret = f_unmount(TEXT("0:"));\r
+                Log("f_unmount %d %s", Ret, (FR_OK == Ret) ? "SUCCESS" : "FAILED");\r
+            }\r
+            else\r
+            {\r
+                Log("f_setlabel failed %d", Ret);\r
+            }\r
+        }\r
+        else\r
+        {\r
+            Log("f_mount failed %d", Ret);\r
+        }\r
+\r
+        return 0;\r
+    }\r
+    else\r
+    {\r
+        Log("Formatting Part1 large FAT32 failed");\r
+        return 1;\r
+    }\r
+}\r
 \r
 static int FormatPart1exFAT(UINT64 DiskSizeBytes)\r
 {\r
@@ -1636,6 +1709,7 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
     UINT64 Part1StartSector = 0;\r
     UINT64 Part1SectorCount = 0;\r
     UINT64 Part2StartSector = 0;\r
+    BOOL LargeFAT32 = FALSE;\r
 \r
        Log("#####################################################");\r
     Log("InstallVentoy2PhyDrive try%d %s PhyDrive%d <<%s %s %dGB>>", TryId,\r
@@ -1737,13 +1811,28 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
         Sleep(1000 * 5);\r
     }\r
 \r
-    Log("Formatting part1 exFAT ...");\r
-    if (0 != FormatPart1exFAT(pPhyDrive->SizeInBytes))\r
+    if (GetVentoyFsType() == VTOY_FS_FAT32 && (Part1SectorCount * 512 >= FAT32_MAX_LIMIT))\r
     {\r
-        Log("FormatPart1exFAT failed.");\r
-        rc = 1;\r
-        goto End;\r
+        Log("Formatting part1 large FAT32 ...");\r
+        LargeFAT32 = TRUE;\r
+        if (0 != FormatPart1LargeFAT32(pPhyDrive->SizeInBytes, GetClusterSize()))\r
+        {\r
+            Log("FormatPart1LargeFAT32 failed.");\r
+            rc = 1;\r
+            goto End;\r
+        }\r
     }\r
+    else\r
+    {\r
+        Log("Formatting part1 exFAT ...");\r
+        if (0 != FormatPart1exFAT(pPhyDrive->SizeInBytes))\r
+        {\r
+            Log("FormatPart1exFAT failed.");\r
+            rc = 1;\r
+            goto End;\r
+        }\r
+    }\r
+    \r
 \r
     PROGRESS_BAR_SET_POS(PT_FORMAT_PART2);\r
     Log("Writing part2 FAT img ...");\r
@@ -1867,21 +1956,34 @@ End:
             }\r
         }\r
 \r
-        if (GetVentoyFsType() > 0)\r
+        if (state)\r
         {\r
-            if (state)\r
+            if (LargeFAT32)\r
+            {\r
+                Log("No need to reformat for large FAT32");\r
+                pPhyDrive->VentoyFsClusterSize = GetVolumeClusterSize(MountDrive);\r
+            }\r
+            else if (DISK_FormatVolume(MountDrive, GetVentoyFsType(), Part1SectorCount * 512))\r
             {\r
-                Log("Reformat %C:\\ to %s", MountDrive, GetVentoyFsName());\r
-                DISK_FormatVolume(MountDrive, GetVentoyFsType());\r
+                Log("Reformat %C:\\ to %s SUCCESS", MountDrive, GetVentoyFsName());\r
+                pPhyDrive->VentoyFsClusterSize = GetVolumeClusterSize(MountDrive);\r
+\r
+                if ((GetVentoyFsType() != VTOY_FS_UDF) && (pPhyDrive->VentoyFsClusterSize < 2048))\r
+                {\r
+                    for (i = 0; i < 10; i++)\r
+                    {\r
+                        Log("### Invalid cluster size %d ###", pPhyDrive->VentoyFsClusterSize);\r
+                    }                    \r
+                }\r
             }\r
             else\r
             {\r
-                Log("Can not reformat %s to %s", DriveName, GetVentoyFsName());\r
+                Log("Reformat %C:\\ to %s FAILED", MountDrive, GetVentoyFsName());\r
             }\r
         }\r
         else\r
         {\r
-            Log("No need to reformat ventoy partition");\r
+            Log("Can not reformat %s to %s", DriveName, GetVentoyFsName());\r
         }\r
 \r
         Log("OK\n");\r
index 6e1b9923f378cb2eb4f14f58a30d0c8a135c0847..f83cb03503bd98ed63f899bd5b16a6c3bef7c0ee 100644 (file)
Binary files a/Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.aps and b/Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.aps differ
index 2e0ef2046be66164cf0c69e906d143835872d25b..0e0fe67bd053d951690f34bd12afbe28f97a59dc 100644 (file)
@@ -251,10 +251,34 @@ static BOOL IsVentoyPhyDrive(int PhyDrive, UINT64 SizeBytes, MBR_HEAD *pMBR, UIN
     return TRUE;\r
 }\r
 \r
+int GetVolumeClusterSize(char Drive)\r
+{\r
+    CHAR Volume[32] = { 0 };\r
+    DWORD SectorsPerCluster = 0;\r
+    DWORD BytesPerSector = 0;\r
+    DWORD NumberOfFreeClusters = 0;\r
+    DWORD TotalNumberOfClusters = 0;\r
+\r
+    sprintf_s(Volume, sizeof(Volume), "%C:\\", Drive);\r
+\r
+    if (GetDiskFreeSpaceA(Volume, &SectorsPerCluster, &BytesPerSector, &NumberOfFreeClusters, &TotalNumberOfClusters))\r
+    {\r
+        Log("GetVolumeClusterSize %s SUCCESS %u %u %u", Volume, SectorsPerCluster, BytesPerSector, SectorsPerCluster * BytesPerSector);\r
+        return (int)(SectorsPerCluster * BytesPerSector);        \r
+    }\r
+    else\r
+    {\r
+        Log("GetVolumeClusterSize %s failed err:%u", Volume, LASTERR);\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
 static int GetVentoyFsNameInPhyDrive(PHY_DRIVE_INFO* CurDrive)\r
 {\r
     int i = 0;\r
     UINT64 Offset;\r
+\r
     CHAR Volume[128] = { 0 };\r
     CHAR FsName[MAX_PATH] = { 0 };\r
 \r
@@ -276,6 +300,8 @@ static int GetVentoyFsNameInPhyDrive(PHY_DRIVE_INFO* CurDrive)
 \r
     if (Volume[0])\r
     {\r
+        CurDrive->VentoyFsClusterSize = GetVolumeClusterSize(Volume[0]);\r
+\r
         if (GetVolumeInformationA(Volume, NULL, 0, NULL, NULL, NULL, FsName, MAX_PATH))\r
         {\r
             if (_stricmp(FsName, "exFAT") == 0)\r
index 0371d176724a54b5cb1f58dbb51df75cbe4a71fa..8ba3d49be780db89b7aad37ec70f1bee4f8ad6d5 100644 (file)
 \r
 #include <stdio.h>\r
 \r
+typedef enum VTOY_FS\r
+{\r
+    VTOY_FS_EXFAT = 0,\r
+    VTOY_FS_NTFS,\r
+    VTOY_FS_FAT32,\r
+    VTOY_FS_UDF,\r
+    VTOY_FS_BUTT\r
+}VTOY_FS;\r
+\r
+#define FAT32_MAX_LIMIT             (32 * 1073741824ULL)\r
+\r
+#define SIZE_1KB                                       (1024)\r
 #define SIZE_1GB                                       (1024 * 1024 * 1024)\r
+#define SIZE_1TB                                       (1024ULL * 1024ULL * 1024ULL * 1024ULL)\r
 #define SIZE_1MB                    (1024 * 1024)\r
 #define SIZE_2MB                    (2048 * 1024)\r
 #define VENTOY_EFI_PART_SIZE       (32 * SIZE_1MB)\r
@@ -160,6 +173,7 @@ typedef struct PHY_DRIVE_INFO
 \r
     CHAR DriveLetters[64];\r
     \r
+    int  VentoyFsClusterSize;\r
     CHAR VentoyFsType[16];\r
     CHAR VentoyVersion[32];\r
 \r
@@ -251,6 +265,7 @@ int INIT unxz(unsigned char *in, int in_size,
     unsigned char *out, int *in_used,\r
     void(*error)(char *x));\r
 void disk_io_set_param(HANDLE Handle, UINT64 SectorCount);\r
+int GetVolumeClusterSize(char Drive);\r
 \r
 extern BOOL g_InputYes;\r
 INT_PTR CALLBACK YesDialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);\r
@@ -259,7 +274,14 @@ int GetReservedSpaceInMB(void);
 int IsPartNeed4KBAlign(void);\r
 int GetVentoyFsType(void);\r
 void SetVentoyFsType(int fs);\r
+int GetClusterSize(void);\r
+void SetClusterSize(int ClusterSize);\r
+WCHAR* GetClusterSizeTip(void);\r
+void FormatClusterSizeTip(int Size, WCHAR* pBuf, size_t len);\r
 const char* GetVentoyFsName(void);\r
+const char* GetVentoyFsNameByType(int fs);\r
+CHAR* GetVentoyFsFmtNameByTypeA(int fs);\r
+WCHAR* GetVentoyFsFmtNameByTypeW(int fs);\r
 int FindProcessOccupyDisk(HANDLE hDrive, PHY_DRIVE_INFO *pPhyDrive);\r
 int VentoyFillMBRLocation(UINT64 DiskSizeInBytes, UINT32 StartSectorId, UINT32 SectorCount, PART_TABLE *Table);\r
 int ClearVentoyFromPhyDrive(HWND hWnd, PHY_DRIVE_INFO *pPhyDrive, char *pDrvLetter);\r
@@ -270,8 +292,6 @@ BOOL PartResizePreCheck(PHY_DRIVE_INFO** ppPhyDrive);
     liCurrentPosition.QuadPart = pos; \\r
     SetFilePointerEx(hDrive, liCurrentPosition, &liCurrentPosition, FILE_BEGIN)\\r
 \r
-#define SECURE_ICON_STRING _UICON(UNICODE_LOCK)\r
-\r
 extern int g_WriteImage;\r
 \r
 #define VTSI_IMG_MAGIC 0x0000594F544E4556ULL  // "VENTOY\0\0"\r
index 741d9d6c42b4b77fba6a0770e222a898f02c2783..abc2453dfd65497315acf87fb3f40fc0e07b28ee 100644 (file)
Binary files a/Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.rc and b/Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.rc differ
index 9540a363722628f00c6b2f9e407735463d3958b6..4af33bb4eee61d6708059476494eca2de665375d 100644 (file)
     <Image Include="res\icon2.ico" />
     <Image Include="Res\refresh.ico" />
     <Image Include="Res\secure.ico" />
+    <Image Include="Res\secure2.ico" />
     <Image Include="Res\ventoy.ico" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
index 0ee93bc6dccdd10d9cf68331637b58f081b98296..553cc00f092820e7d5d093892d6ca6ead83f4486 100644 (file)
     <Image Include="Res\secure.ico">
       <Filter>资源文件</Filter>
     </Image>
+    <Image Include="Res\secure2.ico">
+      <Filter>资源文件</Filter>
+    </Image>
   </ItemGroup>
 </Project>
\ No newline at end of file
index ae8ea4e5d1a79bee6fbd85fc59a53efbc8e7e514..8537c30cb556cd7899e90fb2588faabfa72789e9 100644 (file)
Binary files a/Ventoy2Disk/Ventoy2Disk/WinDialog.c and b/Ventoy2Disk/Ventoy2Disk/WinDialog.c differ
index a93eb56704797933fb00b4ae98fa23f923f346d6..05fc19cd5cd80551560f34273dcabc0a655108ea 100644 (file)
Binary files a/Ventoy2Disk/Ventoy2Disk/resource.h and b/Ventoy2Disk/Ventoy2Disk/resource.h differ