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.