2016-06-09 10 views
1

Microsoft RAM 디스크 예제 드라이버 (WDK 8.1의 VS2013 - WDK 8.1 드라이버 예제 사용)를 컴파일하고 설치하는 데 성공했습니다.Microsoft RAM 디스크 예제 드라이버 - 액세스 문제를 해결할 수있는 아이디어가 있습니까?

readme는 설치 후 관리자 프롬프트에서 RAM 드라이브를 사용할 수 있음을 알려줍니다. 은 아마 같은 문제는 여기에 요청을 받고 :

status = WdfDeviceInitAssignSDDLString(DeviceInit, 
      &SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX); 
if (!NT_SUCCESS(status)) { 
    return status; 
} 

이 관리, 세계와 예약에 대한 RWX 권한을 추가해야합니다 : https://superuser.com/questions/344577/how-to-access-ramdisk-drive-from-non-admin-user-account-on-windows-xp이 스레드에 주어진 답을

, 나는 RamDiskEvtDeviceAdd 기능이 코드를 추가 계정.

이제 일반 사용자가 드라이브에 액세스하여 파일을 RAM 드라이브에 복사 할 수 있습니다. 또한 탐색기 (Windows 7)에서도 볼 수 있고 액세스 할 수 있습니다. 하지만 여전히 파일을 삭제할 수는 없습니다 (관리자가 아닐지라도). 첫 번째 프롬프트는 파일을 삭제하기 위해 관리자 권한이 필요하다는 것을 알려줍니다. 이 메시지를 확인하면 두 번째 프롬프트가 나타납니다. "이 파일을 변경하려면 Everyone의 사용 권한이 필요합니다."

디스크 드라이브의 속성을 살펴볼 때 권한을 검사하거나 부여 할 수있는 보안 탭이 없습니다. 그래서 나는 어떤 종류의 보안 기술자가 빠져 있다고 생각한다.

는 이미 다른 RAM 드라이브 구현에 슬쩍하려고했으나 그들은 아마도 이러한 측면에서 매우 다르게 작동하는 것 다른 드라이버 모델 (비 WDF)로 기록됩니다.

또한 WDF에 관한 MSDN 페이지를 공부하는 데 더 많은 정보를 얻으려고했지만 유용한 정보가 없습니다.

어떤 사람들은 질문 할 수 있습니다. 작동하는 RAM 드라이브 솔루션을 사용하지 않는 이유는 무엇입니까? 그러나 실제 문제는 필요할 때 IO 오류를 생성하도록 구성 할 수있는 디스크 드라이버를 만드는 것입니다. 리눅스를위한이 해결책과 유사한 : 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