[ros-dev] Undocumented APIs

D. Hazelton dhazelton at enter.net
Tue Jan 31 14:23:15 CET 2006

On Tuesday 31 January 2006 07:33, Casper Hornstrup wrote:
> > -----Original Message-----
> > From: ros-dev-bounces at reactos.org [mailto:ros-dev-bounces at reactos.org] On
> > Behalf Of Thomas Weidenmueller
> > Sent: 31. januar 2006 13:12
> > To: ReactOS Development List
> > Subject: Re: [ros-dev] Undocumented APIs
> >
> > Casper Hornstrup wrote:
> > > Why implement something which is not used? From a survival POV, ReactOS
> >
> > is
> >
> > > better off doing what is needed instead of doing what is not needed.
> >
> > Good luck. From a survival POV, we shouldn't even implement anything not
> > documented publicly. Okay, then let's reinvent a native api to the
> > kernel. If it turns out an application or driver really depends one one
> > we're in deep sh... Not that I cared.

According to the legal repercussions that came about from the first MS//US DOJ 
lawsuit there are to be _no_ undocumented function calls within the Microsoft 
operating systems. If you are worried about function calls from the older 
windows releases, I believe there is enough documentation out there to 
implement those without requiring reverse engineering.

For the rest, if MS hasn't documented a function it is using then they should 
be in deep sh.. over that. IANAL, but IIRC, the first lawsuit against them 
covered undocumented functions and stated that MS could not have them as it 
was a monopolistic move. By that it meant that MS was not giving other 
companies a fair chance to compete, so all functions had to be documented.

There may be hundreds or even thousands of structures with undocumented 
members, but, personally, it might be good to do something like fix the value 
of those members to known values - either by writing a program to dump those 
values or just by picking a number at random. At some point the use of those 
values should become clear and proper values can then begin to be inserted by 
the code, as well as having a proper name given to the member.

Someone mentioned that regedit might be a piece of code which is the only one 
to use a function call... All modern windows releases ship with two versions 
of regedit, regedit.exe and regedt32.exe - and there have been several 
third-party replacements for regedit released. If possible it might be best 
for ReactOS to ship with one of the free third-party regedit's - this would 
save development time and the author of said tool might have information on 
undocumented API's.

When I've finished my other projects (one of which I'm hoping to have 
functioning in ReactOS) and have more time free I'll start trolling bugzilla 
and offering my help in keeping the bugs there cleaned up...

D. Hazelton

More information about the Ros-dev mailing list