问题描述
基于并使用 Jedi Demo VHD,我创建了一个虚拟磁盘,并且可以安装和卸载它。安装后,它在磁盘管理器中显示为磁盘 1“未知”。 继续在我的代码中对其进行初始化和格式化,我正在尝试使用以下代码:
procedure TMainForm.BtnInitClick(Sender: TObject);
var RetBytes: DWORD;
hDevice: Cardinal;
Status: LongBool;
Drive: string;
CDsk : TCreatedisk;
PS : TPartitionStyle;
begin
hDevice := INVALID_HANDLE_VALUE;
Drive := GetdiskPath(Edit1.Text);
hDevice:=CreateFile(PChar(Drive),FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0);
try
memoinfo.Lines.Add('CreateFile Success. hDevice = '+hDevice.ToString);
CDsk.PartitionStyle := PARTITION_STYLE_GPT;
CDsk.Gpt.diskId := TGuid.Empty;
CDsk.Gpt.MaxPartitionCount := 0;
Status := DeviceIoControl(hDevice,IOCTL_disK_CREATE_disK,@CDsk,SizeOf(CDsk),@RetBytes,nil);
try
memoinfo.Lines.Add('DeviceControl Success');
except
on e: exception do memoinfo.Lines.Add('DeviceControl Error : '+e.Message);
end;
except
on e: exception do memoinfo.Lines.Add('CreateFile Error : '+e.Message);
end;
end;
当 edit1.text 包含我的虚拟磁盘的名称 (Testdisk.vhd) 并且 CreateFile 和 DeviceIoControl 都生成“成功”时,GetdiskPath 获取“\.\Physicaldisk1”,但磁盘管理器中的磁盘保持不变。
我做错了什么?
注意!如果您有基于 C# 的答案,那也可以。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)