如何使用C#备份Windows主引导记录?
答
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace BackupMBR
{
class Program
{
[DllImport("kernel32")]
private static extern IntPtr CreateFile(
string lpFileName,
uint dwDesiredAccess,
uint dwShareMode,
IntPtr lpSecurityAttributes,
uint dwCreationDisposition,
uint dwFlagsAndAttributes,
IntPtr hTemplateFile);
static void Main(string[] args)
{
IntPtr handle = CreateFile(
@"\\.\PHYSICALDRIVE0",
0x80000000,
1,
IntPtr.Zero,
3,
0,
IntPtr.Zero
);
using (FileStream disk = new FileStream(handle, FileAccess.Read))
{
byte[] mbrData = new byte[512];
Console.WriteLine("Starting MBR Backup...");
try
{
disk.Read(mbrData, 0, mbrData.Length);
FileStream mbrSave = new FileStream("mbr.img", FileMode.Create);
mbrSave.Write(mbrData, 0, mbrData.Length);
Console.WriteLine("MBR Backuped to mymbr.img success!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
Console.ReadKey();
}
}
}
不错的清晰代码,但GPT呢? –
@DaveBurton好点。我正在审阅Microsoft的[此文档](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363785(v = vs.85).aspx#partition_styles)以了解更多信息。 – Volomike