Es ist mir gelungen, den Microsoft RAM-Disk-Beispieltreiber (VS2013 mit WDK 8.1 - ebenfalls unter Verwendung der WDK 8.1-Treiberbeispiele) zu kompilieren und zu installieren.Microsoft RAM Disk-Beispieltreiber - Ideen, um Zugriffsprobleme zu beheben?
Die Readme teilt mit, dass Sie nach der Installation das RAM-Laufwerk von einer Administrator-Eingabeaufforderung aus verwenden können. Wahrscheinlich fragte hier das gleiche Problem wie zu werden: https://superuser.com/questions/344577/how-to-access-ramdisk-drive-from-non-admin-user-account-on-windows-xp
Mit der Antwort in diesem Thread gegeben, ich diesen Code auf die Funktion RamDiskEvtDeviceAdd hinzugefügt:
status = WdfDeviceInitAssignSDDLString(DeviceInit,
&SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX);
if (!NT_SUCCESS(status)) {
return status;
}
Dies sollte RWX Rechte für admin, Welt hinzufügen und reserviert Konten.
Jetzt kann ein normaler Benutzer auf das Laufwerk zugreifen und Dateien auf das RAM-Laufwerk kopieren. Es ist auch sichtbar und zugänglich im Explorer (Windows 7). Aber ich kann immer noch keine Dateien löschen (nicht einmal als Administrator). Die erste Eingabeaufforderung teilt Ihnen mit, dass zum Löschen von Dateien Administratorrechte erforderlich sind. Wenn Sie diese Eingabeaufforderung bestätigen, wird eine zweite Eingabeaufforderung angezeigt: "Sie benötigen Berechtigungen von Everyone, um Änderungen an dieser Datei vorzunehmen."
Wenn Sie sich die Eigenschaften des Festplattenlaufwerks ansehen, gibt es keine Sicherheitsregisterkarte, auf der Sie Rechte prüfen oder gewähren können. Also ich denke, eine Art Sicherheitsbeschreibung fehlt.
Ich habe schon versucht, in andere RAM-Laufwerk Implementierungen zu sehen, aber sie sind wahrscheinlich mit anderen Treibermodellen (nicht WDF) geschrieben, die in diesem Aspekt ganz anders funktionieren scheinen.
Ich habe auch versucht, weitere Informationen zum Studium der MSDN-Seiten in Bezug auf WDF zu bekommen, konnte aber nichts nützliches finden.
Einige Leute könnten fragen: Warum verwenden Sie keine Arbeits RAM-Laufwerk Lösung? Das eigentliche Problem besteht jedoch darin, einen Datenträgertreiber zu erstellen, der so konfiguriert werden kann, dass bei Bedarf IO-Fehler erzeugt werden. Ähnlich wie bei dieser Lösung für Linux: http://www.scylladb.com/2016/02/16/fault-injection-filesystem-software-testing/
Also dachte ich, mit einem einfachen RAM-Disk-Treiber könnte ein guter Start sein. Irgendwelche Kommentare, wie man die gelöschten Zugriffsrechtsprobleme repariert, sind willkommen.
Danke für Ihre Antwort. Ich wechselte zu den ImDisk-Treiberquellen. Aber vielleicht findet jemand anderes Ihre Antwort hilfreich. – Alatun