Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
4.2 KiB

  1. {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\froman\fcharset0 Times New Roman;}}
  2. {\colortbl ;\red0\green0\blue0;}
  3. \viewkind4\uc1\pard\fi-1800\li1800\tx1800\cf1\b\f0\fs20 From:\b0\tab Alex Armanasu (Exchange)\par
  4. \b Sent:\b0\tab Wednesday, November 17, 1999 3:50 PM\par
  5. \b To:\b0\tab Murthy Srinivas (Exchange)\par
  6. \b Subject:\b0\tab Win9x Upgrade versus ScanState\par
  7. \pard\cf0\f1\par
  8. This email compares the win9x upgrade process to the scanstate migration process. First, it describes what features the two tools has. Second it describes how code is shared between the two tools.\par
  9. \par
  10. \b Features\b0\par
  11. \par
  12. \tab\tab\tab\tab Win9x Upgrade\tab\tab ScanState\par
  13. User files available after\tab\tab yes\tab\tab\tab configurable\par
  14. Moves system settings\tab\tab almost all\tab\tab 15 groups\par
  15. Moves application settings\tab a lot\tab\tab\tab 10 applications\par
  16. Moves user profile\tab\tab yes\tab\tab\tab yes\par
  17. src and dest same machine\tab\tab yes\tab\tab\tab yes\par
  18. src and dest different machine\tab no\tab\tab\tab yes\par
  19. Moves irrelevent drivers\tab\tab sometimes\tab\tab no\par
  20. Moves machine to managed env\tab no\tab\tab\tab some\par
  21. \par
  22. There are three core features that caused us to implement scanstate rather then using the win9x upgrade process. The first is on the chart above. Upgrade only works on one machine. If you can't run Windows 2000 on your current machine, upgrade can't help you get your state to a Windows 2000 machine. Scanstate can. The second feature is more perceived then reality. Customers perceive that an upgrade is less reliable then a wipe, reload, and reapplication of state (WRR). Whether or not this is true remains to be seen, but customers have that perception. They also perceive that WRR will clean up the machine. That may mean losing unused files or losing unused registry keys. Again, this is not a demonstrated feature of scanstate. The third feature is managability. In a managed environment the administrator can find a user's files and settings. Scanstate aids in this process by giving the administrator the option of moving the users files to My Documents.\par
  23. \par
  24. \par
  25. \b Code Sharing\b0\par
  26. \par
  27. Scanstate consists of four pieces: moving system settings, move the user hive, moving application settings, and moving user files. Each pieces uses the win9x upgrade code to a different degree.\par
  28. \par
  29. Moving the system settings is almost a direct port of the Win9x upgrade code. For each setting we took the win9x upgrade code and ported it to our tool. We examined porting the win9x upgrade tool itself but decided not to for the following reasons. First, the win9x upgrade tool runs during setup and we do not. A lot of APIs behave differently during setup. Second, the win9x upgrade tool is tightly coupled to a process that creates several databases. We could not determine a simple way to take just the pieces of the code we needed. A quick port would require porting all of the win9x upgrade code. The entire tool was too large to port in the time frame we had available. Finally, the win9x upgrade code has already been through several ports. It contains a lot of bad coding practises including extensive use of globals between modules and lack of documentation.\par
  30. \par
  31. The code to move the user hive is based on the design of the win9x upgrade. We read their documentation, discussed their design with them, and took their file containing rules to process the hive. We simply rewrote the processing code which was straightforward and only took a week.\par
  32. \par
  33. The application settings are moved by specifying rules to the registry processing engine used to move the user hive. The win9x upgrade uses the same method. However, the win9x upgrade moves both the user hive and the machine hive. The scanstate tool does not want to move the machine hive. Thus the win9x upgrade file containing application rules only has a subset of the information we need. We had to determine which keys in HKLM needed to be moved for all our applications of interest.\par
  34. \par
  35. The win9x upgrade code does not move files. Scanstate must move files. We had to write this code from scratch.\par
  36. \par
  37. \pard\fi-1800\li1800\tx1800\cf1\f0\par
  38. }