Мне удалось собрать и установить пример примера диска Microsoft RAM (VS2013 с WDK 8.1 - также с использованием примеров драйверов WDK 8.1).Драйвер для диска с Microsoft RAM - идеи для устранения проблем с доступом?
В файле readme указано, что после установки вы можете использовать RAM-диск из командной строки администратора. Вероятно, та же проблема, как спрашивает здесь: https://superuser.com/questions/344577/how-to-access-ramdisk-drive-from-non-admin-user-account-on-windows-xp
С ответом, приведенным в этой теме, я добавил этот код функции RamDiskEvtDeviceAdd:
status = WdfDeviceInitAssignSDDLString(DeviceInit,
&SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX);
if (!NT_SUCCESS(status)) {
return status;
}
Это должно добавить праву RWX для администратора, мира и защищен Счета.
Теперь обычный пользователь может получить доступ к диску и скопировать файлы на привод ram. Он также доступен и доступен в проводнике (Windows 7). Но я все еще не могу удалить файлы (даже не администратор). В первом приглашении указано, что для удаления файлов требуются права администратора. Если вы подтвердите это приглашение, появится второе приглашение: «Для внесения изменений в этот файл требуются разрешения« Все ».
При просмотре свойств диска нет закладки безопасности, которая позволяет вам проверять или предоставлять какие-либо права. Поэтому я думаю, что какой-то дескриптор безопасности отсутствует.
Я уже пытался заглянуть в другие реализации привода RAM, но они, вероятно, написаны с разными типами драйверов (не WDF), которые, похоже, работают совершенно по-другому в этом аспекте.
Я также попытался получить больше информации, изучая страницы MSDN относительно WDF, но не смог найти что-то полезное.
Некоторые люди могут спросить: почему бы вам не использовать рабочее решение для оперативной памяти? Но актуальной проблемой является создание драйвера диска, который можно настроить для создания ошибок ввода-вывода по требованию. Подобно этому решению для Linux: http://www.scylladb.com/2016/02/16/fault-injection-filesystem-software-testing/
Так что я думал, что использование простого драйвера RAM-диска может быть хорошим началом. Любые комментарии о том, как исправить проблемы с правами доступа к доступу, приветствуются.
Спасибо за ваш ответ. Я переключился с источниками драйвера ImDisk. Но, возможно, кто-то еще найдет ваш ответ полезным. – Alatun