[ros-dev] headers suggestion
ionucu at videotron.ca
Sat Nov 20 11:15:57 CET 2004
Jonathan Wilson wrote:
> This sounds good.
> What will happen to the msvcrt headers?
> msvcrt itself (and things like crtdll and the others that build off
> msvcrt) should put all their internal stuff (including internal copies
> of the public headers like Microsoft does if that is required)
> But I think that any part of ReactOS that needs to talk to
> msvcrt/crtdll/etc should use mingw-runtime (i.e. we make it better
> using stuff in our msvcrt headers if we need to then use and import if
> needed mingw-runtime)
I don't have much experience with those headers... I always assumed they
were provided by deafault by mingw+gcc.
> as for the other stuff, I assume that /sdk will basicly be w32api
Yes, with documented additions.
> and that /ddk will be the w32api DDK.
As well as the IFS, with documented additions that we have in our
> Anything that w32api wont take because its documented but not
> publically (e.g. the aformentioned fdi.h and fci.h) should go into the
> NDK IMO.
Yes, the NDK has undocumented windows apis organized much like our old
headers: "kefuncs.h/ketypes.h" "exfuncs.h/extypes.h" as well as
"umtypes.h" which contains User-Mode Native types.
> I assume then that ndk will contain all the stuff that is exported by
> the various parts of windows but is not documented outside of microsoft.
> Assuming this to be the case, I suggest it is split up (logically if
> not physically split up into different bits) into a set of kernel
> headers (basicly everything exported by ntoskrnl,
See the funcs/types organization.
> and the various kernel mode drivers like win32k.sys
I haven't thought about exported win32k functions yet... I haven't met
any yet. But I suppose w32kfuncs/w32ktypes will do, but I'm still not
sure if those should be in the NDK...I've never heard about many people
> , videoprt.sys, ndis.sys etc)
Once again, I'm not sure those have exported functions that are usually
being called, so I don't see why to include them in the NDK. They should
just have their own set of internal headers.
> and a set of userland headers (i.e. all the stuff exported from
> userland dlls that microsoft doesnt document).
Once again, the NDK is mostly for kernel functions that are either
native or undocumented...so undocumented userland dlls (apart ntdll)
probably don't have much use being called. But if it's something really
useful, then they'll be documented.
> Also, the NDK should contain something saying that this stuff is
> undocumented and there are no gaurantees that, if you use it, your
> program will work in the future or that it will work on real windows
> if microsoft changes the undocumented stuff)
It's the whole point of a NDK :)
> IMO, anything that is exported by a dll or driver or whatever in
> ReactOS but which is not exported by the MS dlls should be seperate
> from the NDK (at least in a seperate set of headers anyway)
Of course. For now there's a rosfuncs/types in inclue/reactos in my new
> and it should be clear that using these functions prevents your code
> from running on real windows.
Yes, the best would be to declare them as deprecated or somethign to
make sure that nobody can use them in a compiled app/driver.
More information about the Ros-dev