They are used internally by some other functions inside msvcrt so they must be somewhere what is going on now is that internally a stically linked library is used but anything referencing those functions from the outside are being redirected to ntdll.
What I mean is: If you are forwarding them, why you don´t import them too instead of the static link? If you are statically linking then why forward them?
First: it was not me who added those forwards to ntdll. But it can't see anything wrong with it either.
Sure they are all right. In fact I proposed something similar a long time ago. Ask Hyperion :) However the final solution was better.
It seems none of the forwarded functions are implemented/duplicated in crt and they are not called from within crt either thus none of the forwarded routines are imported from ntdll by msvcrt/crtdll.
Gunnar
Maybe I'm out of sync by far or maybe I'm wrong. Snapshots do no work anymore since the move to subversion I guess. I will check again using the old sources and will tell in such case so if you have a chance check it on the most recent ones. In the last snapshot I was able to download there was a libary strings.a statically linked with several components of ReactOS such as ntoskrnl, ntdll, crtdll.dll and msvcrt.dll that means that there are/were at least 4 copies in RAM of the same set of routines. This can be easily ckecked if for example you pick one of the functions and do a binary search on the ROS tree. I think that there could be only one If both crtdll and msvcrt forward them to ntdll and ntdll import them from ntoskrnl and they are set as executable ring0 <-> ring3. But maybe that's to ask a lot for now. I beleive that just taking away the duplicated code crtdll/msvcrt and in case that I'm right import those from ntdll will help more and will be alot easier than the last one.
Regards Waldo