Я успешно могу создать / получить доступ к диску Ram объемом 20 МБ, используя образец RAMDISK в WinDDK, используя мою учетную запись администратора.

Однако, когда я вхожу в систему как пользователь без прав администратора на той же машине, я получаю ошибку отказа в доступе при двойном щелчке на том же диске Ram для доступа к нему. Пожалуйста, кто-нибудь здесь может рассказать, как дать доступ всем пользователям к этому диску.

2 ответа2

1

Я не могу себе представить, почему Microsoft выпустит образец ramdisk без установки своих разрешений, но они сделали ... так что по умолчанию это разрешения только для администратора.

Вам необходимо вызвать WdfDeviceInitAssignSDDLString() из RamDiskEvtDeviceAdd(), после вызова WdfDeviceInitAssignName() и перед вызовом WdfDeviceCreate(). Обратите внимание, что эта функция доступна только в том случае, если вы ссылаетесь на файл wdmsec.lib, который вам нужно добавить в файл "sources". И вы, вероятно, захотите использовать одну из строк определения ACL в wdmsec.h, хотя вы можете написать свою собственную, если хотите изучить ее структуру.

Другая проблема с примером драйвера Microsoft ramdisk заключается в том, что он не будет работать выше 32 МБ (на самом деле он будет работать только до 31,99 МБ), потому что код не обрабатывает переполнение 16-битного bootSector-> bsSectors; за пределами общего сектора 0x0000FFFF следует установить нулевое значение bootSector-> bsSectors и использовать вместо этого 32-разрядный bootSector-> bsHugeSectors.

Обратите внимание, что после исправления проблемы bootSector-> bsHugeSectors вы настраиваете себя на исчерпание невыгружаемой памяти ядра, если вы не будете осторожны ... хотя в большинстве случаев вы в безопасности до 96 МБ, поскольку в большинстве (современных) В вашей системе WinXP доступно 128 МБ памяти невыгружаемого ядра. Только не забывайте, что ваш драйвер ramdisk - не единственное, что использует пул невыгружаемых страниц.

0

Я обнаружил приведенный ниже пример, размещенный на сайте поддержки Microsoft, на котором создается диск Ramdisk, доступ к которому осуществляется через учетные записи не администратора. Работает на 2000, xp, win7. Не пробовал на Vista. http://support.microsoft.com/kb/257405

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .