0
.NET 래퍼와 함께 ImDisk 라이브러리를 사용하여 C# 응용 프로그램에서 가상 디스크를 만들었습니다. 그러나 장치를 만든 후에는 실제로 장치를 드라이브 문자로 표시 할 탑재 지점을 만들 필요가 있습니다. Mount Point를 만들기 위해 무엇이 제공되어야하는지 완전히 이해하지는 못했지만, 이것이 라이브러리보다는 Virtual devices에 더 많은 영향을 미친다고 생각합니다.가상 디스크 탑재 지점 만들기
내 기능 :
public bool CreateRAMDisk()
{
// Create Empty RAM Disk
char driveLetter = ImDiskAPI.FindFreeDriveLetter();
ImDiskAPI.CreateDevice(52428800, 0, 0, 0, 0, ImDiskFlags.DeviceTypeHD | ImDiskFlags.TypeVM, null, false, driveLetter.ToString(), ref deviceID, IntPtr.Zero);
string mountPoint = driveLetter + @":\Device\ImDisk0";
ImDiskAPI.CreateMountPoint(mountPoint, deviceID);
// Format the Drive for NTFS
if (FormatDrive(driveLetter.ToString(), "NTFS", true, 4096, "", false))
{
CreateMountPoint 정의 :
public static void CreateMountPoint(string Directory, uint DeviceNumber);
//
// Summary:
// Creates a mount point for an ImDisk virtual disk on an empty subdirectory
// on an NTFS volume.
//
// Parameters:
// Directory:
// Path to an empty subdirectory on an NTFS volume
//
// DeviceNumber:
// Device number of an existing ImDisk virtual disk
UPDATE
FormatDrive 기능 :
public static bool FormatDrive(string driveLetter, string fileSystem, bool quickFormat, int clusterSize, string label, bool enableCompression)
{
driveLetter = driveLetter + ":";
if (driveLetter.Length != 2 || driveLetter[1] != ':'|| !char.IsLetter(driveLetter[0]))
{
return false;
}
//query and format given drive
ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"select * from Win32_Volume WHERE DriveLetter = '" + driveLetter + "'");
foreach (ManagementObject vi in searcher.Get())
{
vi.InvokeMethod("Format", new object[] {fileSystem, quickFormat, clusterSize, label, enableCompression});
}
return true;
}
FormatDrive는 정확히 무엇을 수행합니까? 그것은 창조 된 장치에 그것을 연결하는 것을 아무것도 가지지 않는 것처럼 보이는가? CreateMountPoint를 사용해야한다면 CreateMountPoint ("C : \ mount", deviceID);'C : \ mount는 기존 파일 시스템에있는 빈 디렉토리이다. – thelsdj
FormatDrive() 함수로 초기 게시물을 업데이트했습니다. 장치를 만든 후에 드라이브를 포맷해야합니다. 내 장치가 아직 드라이브 문자에 연결되지 않아서 작동하지 않습니다. –
흠, 마운트 포인트에서 작동하는 것처럼 보였지만 장치가 여전히 내 컴퓨터의 편지에 붙어 있지 않은 것 같습니다. 내가 누락 된 가상 디스크 생성과 관련된 다른 것이 있습니까? –