Hi Martin,
Each DLL should only import standard win32 api functions exported by other (lower level) DLLs.
Where possible, the code should be able to be compiled and run on a windows box. (ok, that excludes kernel, gdi, user, winsock, etc). That is necessary to support dll=native linking.
In theory, we should only have to implement ntdll and the device driver interfaces, then Microsoft's kernel, gdi, user, etc. would all run on top of those too. Practically, some of our low level DLLs need the wineserver interface.
Your client side register_async() func should be present in all the dlls that use it because Windows has no equivilent export from NTDLL (or any other dll).
Maybe you could create an inline function in a header?
My guess is that WinNT implements WSARecv() and ReadFile() using something like NtReadFile().
http://www.osr.com/ntinsider/1996/native.htm
Mike
On 16 Jan 2002, Alexandre Julliard wrote:
Also note that because of dll separation you cannot use functions
like
register_async() from winsock. If absolutely necessary they could
be
exported, but I think it would be much better to use straight
server
calls (and in theory these functions shouldn't be used from comm.c either).
Hmm. I guess I don't fully understand dll separation. Are you
telling me
that the scheduling mechanism for async requests shouls be
implemented
separately in each DLL? If so, I could have spared my efforts to
build
a "generic" interface to async requests. I'd just mention that this would be error-prone, because different parts of wine with equivalent functionality would need to be maintained. Note that an app is allowed to mix ReadFile() and WSARecv() calls for a socket (however braindead that would be). I'd assume that in Windows there must be a hidden layer for asynchronous requests somewhere, too, or do you think their respective code is completely separate?
------------------------------------------ mailto:Mike_McCormack@start.com.au ph +82 16 430 0425
__________________________________________________________________ Get your free Australian email account at http://www.Looksmart.com.au