windows-nt/Source/XPSP1/NT/windows/winstate/doc/special cases.txt

71 lines
3.4 KiB
Plaintext
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
Special Cases
Name
Key or file
Application
Handled by scanstate/loadstate
Description
Strings containing newlines
Key: unknown
Application: Win98 option pack
Handled: yes
The win98 option pack has some scheme keys that contain newlines. When stored in migration.inf, the strings span a line and migration.inf breaks. Our solution was to store them in migration.inf as special binary fields and convert them back to string fields before saving them to the registry.
Zero length binary keys
Key: unknown
Application: Win98 option pack
Handled: partially
Win98 has some zero length binary keys. NT does not support zero length binary keys. We don't migrate any zero length binary keys.
Reg keys of type none
Key: unknown
Application: Win98 option pack
Handled: partially
Win98 has some registry keys of type REG_NONE. We treat these as REG_BINARY keys.
Key: unknown
Application: printer driver names
Handled: yes
When moving the printer settings, the name of printer driver for the same printer can be different between Win9x and NT. usermig.inf has this mapping.
Key: HKCU\Keyboard Layout\Preload and Substitutes
Application: system keyboard mappings and IMEs
Handled: yes
Win9x uses one key per layout with an unnamed value, while NT uses one value per layout. The functions MigrateKeyboardPreloads and MigrateKeyboardSubstitutes handle this conversion.
Key: HKCU\Control Panel\Desktop\WindowMetrics [*Font]
HKCU\Control Panel\Apperance\Schemes
Application: desktop font settings
Handled: yes
Win9x uses an old 16-bit LOGFONT binary blob, while NT uses LOGFONTW. ConvertLogFont handles this conversion. Do not force he 16-bit LOGFONT blob on NT, or else your desktop will look really wacky. The LOGFONT structure is embedded in the non-client metrics, and so ConvertAppearanceScheme handles this translation.
Key: various keys and values
Application: user settings
Handled: yes
Win9x sometimes uses a DWORD when NT uses a string, and for other settings, Win9x uses a string instead of a DWORD. usermig.inf has a list of keys that need ConvertToDword or ConvertToString.
Key: HKCU\Control Panel\Desktop\FontSmoothing
Application: desktop setting
Handled: yes
The format is different between Win9x and NT. The AntiAlias function translates a "1" into a "2".
Key: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
Application: desktop start/documents
Handled: yes
On Win9x an ANSI link shortcut is stored as a binary blob. ConvertRecentDocsMRU converts it to a Unicode link shortcut on NT.
Key: HKCU\Control Panel\Accessibility
Appliction: user accessibility settings
Handled: yes
On Win9x, each setting has its own value. On NT, the settings are represented as bit flags in a DWORD. Scanstate does the translation and outputs the additional flag values in migration.inf.
Key: HKLM\Software\Microsoft\Windows\CurrentVersion\Time Zones
Application: system time zone
Handled: yes
The display names for time zones are different between Win9x and NT. Currently, scanstate is using the standard name instead to identify the time zone. The display name is not migrated (NT version is used).
Key: HKCU\Control Panel\Appearance [Current]
HKCU\Control Panel\Current [Color Schemes]
Application: desktop colors and scheme
Handles: yes
These values are missing for some user-defined schemes. usermig.inf has a section to delete the default values on NT to migrate absent settings.