.net - كيفية إنشاء محرك أقراص افتراضي ويندوز




windows winapi (6)

إذا كنت (أو شخصًا آخر) لا تزال تمانع في ترميز برنامج التشغيل نفسه ، فهناك العديد من النماذج الأولية والعملية:

أحاول إنشاء محرك أقراص Windows ظاهري (مثل c: \) لتعيين تخزين بعيد. الهدف الرئيسي هو القيام بذلك بطريقة واضحة للمستخدم. لذلك لا يعرف المستخدم أنه يكتب / يقرأ من موقع آخر.

كنت أبحث عن المنتجات المتاحة ، وأجد أن FUSE ليس خيارًا في Windows ويخزن WebDAV محرك الأقراص مباشرةً ، وأود أن أبني طبقة متوسطة بين النوافذ والتخزين البعيد لتنفيذ بعض الخدمات. توجد بدائل أخرى ، مثل Dokan ، وهي مكلفة جدًا ، و System.IO.IsolatedStorage Namespace ، التي لا تبدو لتكريس إنشاء محرك أقراص Windows جديد.

من المحتمل أن يكون pismo ( http://www.pismotechnic.com/ ) هو الشيء الذي يطابق متطلباتي في الغالب ولكنني أعرف ما إذا كان هناك بديل آخر ، بما في ذلك بعض API (Windows) أو C ++ (API) الأصلي للقيام بذلك.

شكرا للقراءة :)




كما أرى ، هناك العديد من الخيارات لتنفيذ ذلك.

يتم إنشاء "الأصلي" أحد برنامج تشغيل مخصص (ملف .sys) يعترض عمليات الإدخال / الإخراج. مايكروسوفت يطلق عليه MiniFilter. هذا الخيار هو الأصعب ولكنه يسمح لك بالتحكم الكامل.

الخيار الجبان ؛) هو استخدام مكتبة موجودة للقيام بذلك ، ومن أمثلة ذلك dokan-dev.net/en أو GPL ( dokan-dev.net/en ) أو Pismo أو free ( http://www.pismotechnic.com/ ) أو http://www.pismotechnic.com/ File System ( www.eldos.com ).

ولكن إذا لم يكن لديك Windows كهدف رئيسي ، فيمكنك استخدام FUSE وهو خيار جيد جدًا.



يمكنك كتابة ملحق Shell NameSpace ، مما يسمح لك بتمثيل أي شيء كمحرك أقراص (مع المجلدات الفرعية والملفات والقوائم المخصصة وغيرها) ، ولكن يجب عليك إنشاء كافة الوظائف من البداية. الاتجاه الصاعد هو أن هناك الكثير من العينات على الشبكة ، مثل this .







drive