ntdll: Implement NtLoadKey
James Hawkins
truiken at gmail.com
Thu Mar 24 12:21:31 CST 2005
On 24 Mar 2005 13:35:35 +0100, Alexandre Julliard <julliard at winehq.org> wrote:
> James Hawkins <truiken at gmail.com> writes:
>
> > This implementation passes the registry tests. A new server function
> > is added, mount_key. mount_key is similar to load_registry except
> > that mount_key can only load a key under HKLM or HKU and the key is
> > created inside mount_key. To use load_registry, the subkey has to be
> > created and then passed in as a parameter. load_registry is no longer
> > used by anything, so if it should be remove, let me know.
>
> What you should have done is modify load_registry, there's no reason
> to create a new request that does the same thing.
>
There are a couple reasons why I chose to add a new request instead of
use load_registry. mount_key was written with the restriction that a
key can only be loaded under HKLM or HKU, while load_registry
(internally) loads a key anywhere. While load_registry wouldn't be
called anymore, I thought that it still might be needed...but I agree
this isn't a very strong reason to make a new request. load_registry
requires that the requested key be created and sent in as a parameter.
I think requiring NtLoadKey to create the key is mislocating
functionality. NtLoadKey's job is to make the server request with the
information provided, and mount_key should create the key. The only
way I can think of modifying load_registry to fit the functionality of
RegLoadKey/NtLoadKey is to add a char *subkey param to load_registry
and then put the tests and create_key in load_registry, but by then
we've just renamed mount_key to load_registry and gotten rid of the
old load_registry. Let me know what is the best route to take for
this circumstance.
--
James Hawkins
More information about the wine-devel
mailing list