GSoC 2013 - Registry Merging Project

Guo Jian orzhvs at gmail.com
Mon May 13 16:06:03 CDT 2013


Have been working hard to get familiar with the workflow in wine, by
reporting bugs (bug 33542 33550 and 33558) and sending patches (patch
96154 and 96157) to wine. I got more accustomed to the community to
find I like here and I will keep working in wine even after GSoC.

Working progress :

I've concluded that all the registry operations :
*create_key
*delete_key
*delete_value
=enum_key
=enum_value
-flush_key
-get_key_security
-load_key
-notify_change_key_value
=open_key
-override_predef_key
=query_info_key
=query_multipe_values
=query_value
-replace_key
-restore_key
-save_key
-set_key_security
*set_value
-unload_key
[ - operations that are not very important and less used, put them
aside at first ]
[ * operations that change the contents ]
[ = operations that only read contents ]
In my previous tests I found that create_key & delete_key of HKCR
works like simply redirecting to HKCU or HKLM (depending on how their
subkeys conflict). So I guess that all the operations have such
feature. The next thing I need to write tests for :
 - Where does each write-operations redirect to when there's [no
subkey|both subkeys] in HKCU & HKLM.
 - Where does each read-operations redirect to when HKCU & HKLM conflicts.
There is one thing that I can make sur, when it does not conflict in
HKCU & HKLM, operations are redirected to the only one.

Another guess : open_key (including opening from create_key) will be a
special operation, it should not return a handle directly based on
HKCU or HKLM, or further operation on the handle will be treated as
opened directly from the source. So it may be necessary to define a
new type of key handle.

Updated time table:

Start Date	End Date	Event
3rd, May	12th, May	Work on some basic knowledge (bugs, patches,
winedbg debugchannel), learning workflow of wine.
13th, May *	16th, Jun	Write full tests and test reports. Make puzzles
clear. Design the main algorithm.
28th, May	24th, Jul	Implement almost all of the registry merging
feature. Submit as patch and track feedbacks.
25th, Jul	31st, Jul	Finish and submit the Mid-term evaluations.
1st, Aug	31st, Aug	Implement the rest part of our scheme. Apply
changes by patches.
1st, Sep	22th, Sep	Cleanups. Write the final evaluations.
23th, Sep	/	Submit to Google after some modification from the mentor.

Note that the 2nd and 3rd part have time intersection beacause I think
each of the two is based on another.

-- 
Regards,
Guo Jian



More information about the wine-devel mailing list