2016-06-09 4 views
1

Мне удалось собрать и установить пример примера диска 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-диска может быть хорошим началом. Любые комментарии о том, как исправить проблемы с правами доступа к доступу, приветствуются.

ответ

1

У меня была та же проблема. Это мое решение:

DECLARE_CONST_UNICODE_STRING ( MY_SDDL_STRING, L "D: P (A ;; GA ;;; SY) (A ;; GA ;;; BA) (A ;; GA ;;; WD) (A ;; GA ;;; RC) " );

status = WdfDeviceInitAssignSDDLString (DeviceInit, & MY_SDDL_STRING);

+0

Спасибо за ваш ответ. Я переключился с источниками драйвера ImDisk. Но, возможно, кто-то еще найдет ваш ответ полезным. – Alatun

 Смежные вопросы

  • Нет связанных вопросов^_^