เมื่อคุณต้องการสร้างระบบไฟล์ใหม่บน Windows ที่ไม่ใช่ FAT หรือ NTFS คุณจะต้องพัฒนาไดรเวอร์ระบบไฟล์ การพัฒนาไดรเวอร์อุปกรณ์ที่ทำงานในโหมดเคอร์เนลบน Windows ถือเป็นเรื่องทางเทคนิคอย่างยิ่ง ด้วยการใช้ Dokan คุณสามารถสร้างระบบไฟล์ของคุณเองได้อย่างง่ายดายโดยไม่ต้องเขียนไดรเวอร์อุปกรณ์ Dokan คล้ายกับ FUSE (ระบบไฟล์ Linux ในพื้นที่ผู้ใช้) แต่ใช้งานได้บน Windows ยิ่งไปกว่านั้น dokany ยังมี FUSE wrapper ที่ช่วยให้คุณย้ายระบบไฟล์ FUSE ของคุณโดยไม่มีการเปลี่ยนแปลง
Dokany เป็นทางแยกของ Dokan 0.6.0 พร้อมการแก้ไขข้อบกพร่อง ล้างประวัติการเปลี่ยนแปลง และอัปเดตเพื่อสร้างด้วยเครื่องมือล่าสุด
เนื่องจากโปรเจ็กต์ Dokan Legacy (< 0.6.0) ดั้งเดิมไม่ได้รับการบำรุงรักษาอีกต่อไป
ตั้งแต่เวอร์ชัน 0.8.0 เป็นต้นมา dokany ได้ทำลายความเข้ากันได้กับ dokan API ดูเลือกเวอร์ชันสำหรับข้อมูลเพิ่มเติม
API มีการเปลี่ยนแปลงอีกครั้งเมื่อเวลาผ่านไปใน 1.1.0 และ 2.0.0
เกณฑ์มาตรฐานที่ทดสอบหลายสถานการณ์ซ้ำและต่อเนื่องกัน 5 ครั้งเทียบกับตัวอย่าง memfs
เวอร์ชัน 1.5.1.1000 และ 2.0.3.1000 ในสภาพแวดล้อมที่ไม่ได้ใช้งานเพื่อให้ได้ผลลัพธ์ที่แม่นยำ สามารถดูผลลัพธ์โดยละเอียดได้ในสเปรดชีตนี้ที่นี่ เนื่องจากมีการเพิ่มเธรดและการสำรวจหน่วยความจำที่ดีขึ้นในเวอร์ชัน 2 จึงคาดว่าสถานการณ์ที่เกิดขึ้นพร้อมกัน (เช่น การทดสอบเหล่านั้น) จะได้รับการปรับปรุงให้ดียิ่งขึ้นไปอีก
ตัวอย่างผลลัพธ์:
Create New | +13.55% | List | +60.69% | GetAttributes | +48.78% | Read | +18-42% |
Open/Overwrite | +153.41% | ListExactFile | +131.91% | SetAttributes | +120.91% | Write | +10-32% |
RandomOpenClose | +173.05% | | | Delete | +90.83% | | |
Dokan มีโปรแกรมลิขสิทธิ์ LGPL และ MIT
สำหรับรายละเอียด โปรดตรวจสอบไฟล์ลิขสิทธิ์
คุณสามารถรับไฟล์ต้นฉบับได้จากhttps://dokan-dev.github.io
โดคานทำงานต่อไป
แพลตฟอร์ม
ไดร์เวอร์รุ่น Signed Release และ Debug มีให้ในแต่ละรุ่นสำหรับทุกแพลตฟอร์ม
ไลบรารี Dokan ประกอบด้วย DLL โหมดผู้ใช้ (dokan2.dll) และไดรเวอร์ระบบไฟล์โหมดเคอร์เนล (dokan2.sys) เมื่อติดตั้งไดรเวอร์ระบบไฟล์ Dokan แล้ว คุณสามารถสร้างระบบไฟล์ที่สามารถมองเห็นได้เป็นระบบไฟล์ปกติใน Windows แอปพลิเคชันที่สร้างระบบไฟล์โดยใช้ไลบรารี Dokan เรียกว่าแอปพลิเคชันระบบไฟล์
คำขอดำเนินการไฟล์จากโปรแกรมผู้ใช้ (เช่น CreateFile, ReadFile, WriteFile, ...) จะถูกส่งไปยังระบบย่อย Windows I/O (ทำงานในโหมดเคอร์เนล) ซึ่งจะส่งต่อคำขอไปยังไดรเวอร์ระบบไฟล์ Dokan (dokan2. ระบบ) ด้วยการใช้ฟังก์ชันที่จัดทำโดยไลบรารีโหมดผู้ใช้ Dokan (dokan2.dll) แอปพลิเคชันระบบไฟล์จึงสามารถลงทะเบียนฟังก์ชันการเรียกกลับให้กับไดรเวอร์ระบบไฟล์ได้ ไดรเวอร์ระบบไฟล์จะเรียกใช้รูทีนการโทรกลับเหล่านี้เพื่อตอบสนองต่อคำขอที่ได้รับ ผลลัพธ์ของรูทีนการโทรกลับจะถูกส่งกลับไปยังโปรแกรมผู้ใช้
ตัวอย่างเช่น เมื่อ Windows Explorer ร้องขอให้เปิดไดเร็กทอรี คำขอตัวเลือก CreateFile with Direction จะถูกส่งไปยังไดรเวอร์ระบบไฟล์ Dokan และไดรเวอร์จะเรียกใช้การเรียกกลับ CreateFile ที่ได้รับจากแอปพลิเคชันระบบไฟล์ ผลลัพธ์ของรูทีนนี้จะถูกส่งกลับไปยัง Windows Explorer เพื่อตอบสนองต่อคำขอ CreateFile ดังนั้นไดรเวอร์ระบบไฟล์ Dokan จึงทำหน้าที่เป็นพร็อกซีระหว่างโปรแกรมผู้ใช้และแอปพลิเคชันระบบไฟล์ ข้อดีของแนวทางนี้คือช่วยให้โปรแกรมเมอร์สามารถพัฒนาระบบไฟล์ในโหมดผู้ใช้ที่ปลอดภัยและแก้ไขข้อบกพร่องได้ง่าย
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาระบบไฟล์ Dokan โปรดดูและตัวอย่าง โดยเฉพาะ dokan_memfs
กล่าวโดยย่อคือ ดาวน์โหลดและติดตั้ง Visual Studio 2019 เลือกส่วนประกอบ Windows 10 SDK ระหว่างการติดตั้งหรือจากเมนูเครื่องมือและติดตั้ง WDK 10
สำหรับรายละเอียด โปรดดูที่หน้าการสร้าง
บิลด์อย่างเป็นทางการและลงนามล่าสุดสามารถดาวน์โหลดได้จาก:
choco install dokany2
สำหรับการติดตั้งด้วยตนเอง โปรดดูที่หน้าการติดตั้ง
คุณอยากให้โดคานดีขึ้นไหม? มีส่วนช่วย!
เรียนรู้โค้ดและแนะนำการเปลี่ยนแปลงของคุณบนพื้นที่เก็บข้อมูล GitHub
ตรวจจับข้อบกพร่องและรายงานเกี่ยวกับเครื่องมือติดตามปัญหา GitHub
ถามและตอบคำถามในการสนทนา Github หรือกลุ่มสนทนาของ Google