void CreateNewPartition(const int diskNumber,const ULONGLONG ullOffset, const ULONGLONG ullSize,const int partType, TCHAR tcVolume, const ULONGLONG ExtensionSize)
{
CStringA strACmd;
MyRunCmd mrc;
MainFrame* pMainFrame = (MainFrame*)g_MainFrame;
mrc.Run(TEXT("diskPart"));
pMainFrame->SetCreateNewPartitionProc(1);
strACmd.Format("select disk %d\n", diskNumber);
mrc.WriteToPipe(strACmd.GetBuffer());
mrc.ReadFromPipe("succes");
pMainFrame->SetCreateNewPartitionProc(2);
switch (partType)
{
case PARTITION_TYPE_EFI:
strACmd.Format("CREATE PARTITION EFI size=%lld offset=%lld\n", ullSize, ullOffset); //0EFI
break;
case PARTITION_TYPE_EXTENDED:
strACmd.Format("CREATE PARTITION EXTENDED size=%lld offset=%lld\n", ExtensionSize, ullOffset); //1扩展分区
break;
case PARTITION_TYPE_LOGICAL:
strACmd.Format("CREATE PARTITION LOGICAL size=%lld offset=%lld\n", ullSize, ullOffset); //2逻辑分区
break;
case PARTITION_TYPE_MSR:
strACmd.Format("CREATE PARTITION MSR size=%lld offset=%lld\n", ullSize, ullOffset); //3保留分区
break;
default:
strACmd.Format("CREATE PARTITION PRIMARY size=%lld offset=%lld\n", ullSize, ullOffset); //4主分区
}
mrc.WriteToPipe(strACmd.GetBuffer());
mrc.ReadFromPipe("succes");
pMainFrame->SetCreateNewPartitionProc(3);
if (partType == 1)
{
strACmd.Format("CREATE PARTITION LOGICAL size=%lld\n", ullSize); //如果是扩展进来再初始化一个逻辑分区
mrc.WriteToPipe(strACmd.GetBuffer());
mrc.ReadFromPipe("success");
}
strACmd.Format("format fs=ntfs quick\n"); //格式化
mrc.WriteToPipe(strACmd.GetBuffer());
mrc.ReadFromPipe("success");
pMainFrame->SetCreateNewPartitionProc(4);
strACmd.Format("assign letter=%C\n", tcVolume); //设置盘符
mrc.WriteToPipe(strACmd.GetBuffer());
mrc.ReadFromPipe("success");
pMainFrame->SetCreateNewPartitionProc(5);
strACmd.Format("select volume %C:\n", tcVolume); //选中盘符
mrc.WriteToPipe(strACmd.GetBuffer());
mrc.ReadFromPipe("success");
pMainFrame->SetCreateNewPartitionProc(6);
pMainFrame->SetCreateNewPartitionProc(7);
strACmd.Format("RESCAN\n"); //刷新
mrc.WriteToPipe(strACmd.GetBuffer());
mrc.ReadFromPipe("success");
pMainFrame->SetCreateNewPartitionProc(8);
}
系统diskPart 操作命令函数
于 2020-08-01 08:32:24 首次发布