Ich habe die Entwicklung eines Archivformats in verwaltetem C # abgeschlossen, das viel zu flexibel ist, um nur ein Archiv zu sein. Ich möchte es als Dateisystem verwenden.
Es ist gut organisiert, sehr schnell und hat sowohl Low-Level- als auch High-Level-API-Funktionen. Es unterstützt die sofortige Verschlüsselung und Komprimierung, Passwortschutz, Windows Explorer-spezifische Datei-Metadaten (wie Erstellungs- / Änderungs- / Zugriffszeiten und Attribute), 2 ^ 63 - 1 HDDs usw.
Wenn es möglich ist, Windows dazu zu bringen, mein Dateisystem zu erkennen und zu benutzen, würde ich Visual C ++ nur lernen, um es zu implementieren. Werden benutzerdefinierte Dateisysteme sogar in Windows unterstützt? (7 ist ein Muss, andere sind optional.) Wenn ja, wie mache ich sie?
Wenn ich eine Drittanbieter-Bibliothek verwenden muss, muss diese frei sein. Ich möchte CallbackFileSystem nicht verwenden, da es nicht kostenlos ist.
Vielleicht sind einige Leser neugierig, warum ich mich entschieden habe, meinen eigenen Fahrer nicht zu machen.
Der Grund ist signing . Treiber, die auf 64bit-Systemen (zumindest Windows 7) gut funktionieren, müssen signiert sein.
Jetzt habe ich nicht das Geld, um digitale Zertifikate von vertrauenswürdigen Quellen zu kaufen ... Also keine Treiber für mich ... Ich benutze x64 Windows 7 auf den meisten meiner Maschinen, so wäre es eine enorme Verschwendung, den Treiber für x86 zu schreiben ...
Ja, das ist möglich, aber Sie benötigen Visual C ++. Dateisysteme sind Treiber und werden nativ (im Kernel) ausgeführt. Der relevante Teil, den Sie benötigen, ist das Installable File System (IFS) SDK. Dies wird unter XP, Vista und 7 unterstützt.
Die Treiberprogrammierung ist viel schwieriger als die normale Programmierung. Sie müssen viel vorsichtiger mit Zeigern sein, da sie in verschiedenen Varianten kommen (paged / nonpaged, user / kernel, etc).
Es ist eine großartige Idee, die Treiberentwicklung zu erlernen, wenn Sie es geschafft haben, ein vollständiges Dateisystem zu erstellen. Sie benötigen Windows Driver Kit . OSR-Angebote sind viel teurer als Callback-Dateisystem, und sie erfordern Kernel-Modus-Entwicklung, so dass sie keine Option für Sie sein werden.
Beachten Sie, dass erfahrene Windows-Entwickler 6 bis 12 Monate benötigen, um einen komplexen Kernel-Modus-Treiber (wie Dateisystemtreiber oder Filtertreiber oder ähnliches) zu erstellen und zu debuggen. Sei also bereit für eine lange Entwicklungszeit.
Sie müssten außerdem Ihren vorhandenen Dateisystemcode in C neu schreiben, was Ihre Zeit für die Entwicklung der Lösung erhöhen würde. Die Alternative besteht darin, etwas, das das Callback-Dateisystem tut, erneut zu implementieren, d. H. Benutzermoduscode für alle Geschäftslogik aufzurufen, aber diese Aufgabe ist (in Begriffen) vergleichbar mit dem Umschreiben Ihres Codes in C.
Eine Anmerkung zu Ссылка - die Treiber, die dort vorgestellt werden, erfordern fast vollständig Neuschreiben. Wir haben sie einmal als Leitfaden verwendet, als wir die erste Version unseres Produkts SolFS OS Edition erstellt haben. Aber wir haben den Treiber komplett neu geschrieben (und Zeit bei der ersten Implementierung verschwendet). Es gibt auch Gerüchte über IP-Probleme mit diesem Code, aber ich lese sie nur in OSR Mailing-Liste, so dass ich nicht viel dazu kommen kann (OSR hat Mailing-Liste-Archive, wenn Sie an Details interessiert sind).
Tags und Links c# c++ windows filesystems