[Bug 7115] Need for Speed III installer fails in Win9X mode, reporting "Could not get 'HardWareKey' value" (active PnP device keys in 'HKEY_DYN_DATA\\Config Manager\\Enum' missing)

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Mar 15 18:03:57 CDT 2014


http://bugs.winehq.org/show_bug.cgi?id=7115

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Need for Speed III          |Need for Speed III
                   |installer fails in Win9X    |installer fails in Win9X
                   |mode, reporting "Could not  |mode, reporting "Could not
                   |get 'HardWareKey' value"    |get 'HardWareKey' value"
                   |(support for                |(active PnP device keys in
                   |'HKEY_DYN_DATA\\Config      |'HKEY_DYN_DATA\\Config
                   |Manager\\Enum' missing)     |Manager\\Enum' missing)

--- Comment #22 from Anastasius Focht <focht at gmx.net> ---
Hello Jarkko,

--- quote ---
but is this easy to fix or will this be wontfix?
--- quote ---

well, the dynamic data registry root keys exist (created by wineboot) but there
is no component that actually manages data located here.

I think other 'dynamic' parts of registry have higher priority (perf data,
trees managed by device manager, ...).

The concept of 'virtual registry' introduced with newer Windows OS (registry
redirection) is also used to cope with old applications that need
hacks/workarounds for Win9X compat:

http://technet.microsoft.com/en-us/library/cc749368%28v=ws.10%29.aspx

--- quote ---
...
DYN_DATA

Emulates the HKEY_DYN_DATA registry keys, which were used by the Windows 9x
operating system to collect performance data. This fix redirects the
HKEY_LOCAL_MACHINE\Enum key to the HKEY_LOCAL_MACHINE\CurrentControlSet\Enum
key. This fix also adds the following virtual keys:

    HKEY_DYN_DATA\Config Manager\Enum with copied values from
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\PCI
--- quote ---

Probably implemented using userspace application shims and kernel side support.
Maybe Wine could do this too .. in some years ;-)

First the NT device manager (PnP) and its components would need to be
implemented.
With that infrastructure in place you would add shimming/redirection to make
'old-style' registry views available for legacy apps.
That way one can avoid the need to implement some brain damaged Win9X
components such as configuration manager (that OS is dead anyway).

Realistically, the chance this gets implemented in near future is rather slim.

The game installer probably does something stupid like this to figure out video
adapter from registry: http://support.microsoft.com/KB/200876

You might be able to cheat the installer using a cheap shot.

1) use 'winecfg' to set prefix 'WinVer' to 'Windows 95'
2) start the installer but don't click 'next' yet
3) import the following registry snippet from a separate console (wine regedit
fake_hkdd.reg)

fake_hkdd.reg:

--- snip  ---
REGEDIT4

[HKEY_DYN_DATA\Config Manager\Enum\fake]
"HardwareKey"=dword:00000000
"Problem"=dword:00000000
--- snip ---

The 'HardwareKey' type/value is actually wrong on purpose - it avoids the need
to put more info under 'HKLM\Enum' ('Driver', 'DeviceDesc' ...).
Installers and their stupid error handling ;-)
The important part is 'Problem' key/value, it has to be '0'.

4) Now click 'next' and the installer runs to completion (after exit the
HKEY_DYN_DATA part of registry will be gone again).

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list