On Mon, 7 Mar 2005 11:51:53 -0600, James Hawkins truiken@gmail.com wrote:
Hi,
I'm implementing NtLoadKey, but I can't find any documentation on making server requests, ie SERVER_START_REQ, the different tracing abilitites such as using fprintf(stderr,...) instead of the known TRACE, style of code etc. The latter two are not as important to me because I've picked them up while perusing the code, but it might be important to someone who hasn't looked through it before. I do need the semantics for SERVER_START_REQ, so if you could point me in the right direction or tell me I would really appreciate it.
I've looked deeper into this and found include/wine/server.h and the SERVER_START_REQ define. So this define is a method of communication between the client(?) and server? One thing I don't understand is why we put the request in two do...while(0) loops. Won't they just run once anyway?
Concerning Reg/NtLoadKey, load_key (in the server) looks implemented to me. NtLoadKey is not is not implemented. RegLoadKeyW/A is implemented, but it opens the file containing the hive to load to the registry and then calls load_registry which loads a part of the registry from a file. While this probably does work, I think the correct thing to do is:
* Implement NtLoadKey, having it call load_key in the server * Rewrite RegLoadKey to call NtLoadKey
What do you think?