public static SnapshotRegistry MakeRegistrySnapshot()
{
SnapshotRegistry res = new SnapshotRegistry();
SnapshotRegistryPartial partial = new SnapshotRegistryPartial();
partial.BasePath = "HKEY_CLASSES_ROOT";
partial.Items = DoRegistrySnapshotHive(RegistryHive.ClassesRoot);
res.PartialSnapshots.Add(partial);
partial = new SnapshotRegistryPartial();
partial.BasePath = "HKEY_CURRENT_CONFIG";
partial.Items = DoRegistrySnapshotHive(RegistryHive.CurrentConfig);
res.PartialSnapshots.Add(partial);
partial = new SnapshotRegistryPartial();
partial.BasePath = "HKEY_CURRENT_USER";
partial.Items = DoRegistrySnapshotHive(RegistryHive.CurrentUser);
res.PartialSnapshots.Add(partial);
partial = new SnapshotRegistryPartial();
partial.BasePath = "HKEY_LOCAL_MACHINE";
partial.Items = DoRegistrySnapshotHive(RegistryHive.LocalMachine);
res.PartialSnapshots.Add(partial);
partial = new SnapshotRegistryPartial();
partial.BasePath = "HKEY_PERFORMANCE_DATA";
partial.Items = DoRegistrySnapshotHive(RegistryHive.PerformanceData);
res.PartialSnapshots.Add(partial);
partial = new SnapshotRegistryPartial();
partial.BasePath = "HKEY_USERS";
partial.Items = DoRegistrySnapshotHive(RegistryHive.Users);
res.PartialSnapshots.Add(partial);
return res;
}