[ros-kernel] Differences between ntdll and ntoskrnl Rtl functions
hardon at online.no
Tue Jun 1 04:17:39 CEST 2004
> The bitmaps being different is a bug. Dunno about why the fastmutex
> acquisition is commented in kmode for atom tables.
I guess i'll dump the ntdll variant and go for the ntoskrnl variant [Ptr =
(PULONG)BitMapHeader->Buffer + (StartingIndex / 32); etc.etc.]
I don't know if it's a bug since it looks like both versions should work as
expected, but i think it's strange that they are different in the first
place, like it was done on purpose...
And the atom tables: i'll reenable the locking of the kmode atom table.
Most stuff are now merged, but still problems:
ntoskrnl\rtl\cm\rtlfunc.c->RtlQueryRegistryValues are very different. The
ntdll version does correctly handle the environment argument while the
ntoskrnl variant seem to have various other improvements. Can one of them be
dumped or should i try to merge them?
First priority is to get all shared (ntdll/ntoskrnl) components into rtl but
i would prefer to add every rtl component into the library. This would have
worked fine if the linker would behave. Currently the linker links in object
files without external references also, bloating both ntoskrnl and ntdll
with unused and non-exported rtl routines. Is it possible to fix this by
passing some parameter to the linker?
More information about the Ros-kernel