2011-11-02 2 views
1

특정 외부 디스크를 컴퓨터에 연결하면 읽기 전용으로 마운트하는 도구를 작성하려고합니다. MacOS에서는 디스크 중재 (Disk Arbitration) 프레임 워크를 사용하여 매우 간단했습니다. 새로운 드라이브가 컴퓨터에 연결될 때 OS로부터 알림을 전송하고 마운트 옵션을 거부, 수락 또는 변경하도록 허용합니다 (예 : 마운트를 읽기 전용으로 강제 실행하는 등). Windows와 동일한 기능이 있습니까? ?Mac OS의 DiskArbitration 프레임 워크에 해당하는 Windows에 해당하는 항목이 있습니까?

미리 감사드립니다.

답변

1

직접적인 의미는 없습니다. 보안상의 이유로 Windows는 사용자 모드 코드로 인해 많은 제어 권한을 부여하지 않습니다 (예 : 바이러스로 의심되는 디스크를 마운트하지 못하도록하는 바이러스를 선택하면 바이러스 백신 프로그램이 포함될 수 있습니다). 그들이 일어날으로

WM_DEVICECHANGE 메시지 사물의 사용자 모드 응용 프로그램을 통지하지만 꽤 제한 - 당신은 장치의 제거 거부권을 행사할 수있는 동안, 당신은 많은 (어떤?) 제어를 통해 허용하지 않는, 특히 장치 추가.

자세한 내용은 RegisterDeviceNotification을 사용할 수도 있지만, 내가 원하는 컨트롤을 제공한다고 생각하지 않습니다.

적어도 내가 아는 한 .NET은 RegisterDeviceNotification을 직접 지원하지 않으므로 C#에서 사용하려면 P/Invoke를 통해 수행해야 할 것입니다.

장치를 마운트하고 마운트 해제 할 때 더 많은 제어를하려면 커널 모드 코드를 작성해야하지만 적어도 고려해야 할 사항을 넘어서는 비트 일지라도 적어도 순간.

+0

그건 내가 두려워하는 것입니다. 우리는 확실히 이것을위한 커널 레벨 코드를 조사하지 않습니다. 정보 주셔서 감사합니다. –