[ros-kernel] Differences between ntdll and ntoskrnl Rtl functions

Gunnar Dalsnes hardon at online.no
Sun May 30 06:24:23 CEST 2004


Hi,

I'm currently creating a Rtl library, merging the common ntdll and ntoskrnl
Rtl routines. So far i have merged unicode.c, nls.c, random.c, compress.c
and largeint.c. I'm trying to sort out some differences in other files and
need help:

Bitmap.c:
ntdll:
Ptr = (PUCHAR)BitMapHeader->Buffer + (StartingIndex / 8); etc. etc.

Ntoskrnl:
Ptr = (PULONG)BitMapHeader->Buffer + (StartingIndex / 32); etc. etc.

Any reason for this difference?


Atom.c:
Ntdll:
static BOOLEAN
RtlpLockAtomTable(PRTL_ATOM_TABLE AtomTable)
{
   RtlEnterCriticalSection((PCRITICAL_SECTION)AtomTable->Lock);
   return TRUE;
}


static VOID
RtlpUnlockAtomTable(PRTL_ATOM_TABLE AtomTable)
{
   RtlLeaveCriticalSection((PCRITICAL_SECTION)AtomTable->Lock);
}

Ntoskrnl:
static BOOLEAN
RtlpLockAtomTable(PRTL_ATOM_TABLE AtomTable)
{
   //   ExAcquireFastMutex((PFAST_MUTEX)AtomTable->Lock);
   return TRUE;
}

static VOID
RtlpUnlockAtomTable(PRTL_ATOM_TABLE AtomTable)
{
   //   ExReleaseFastMutex((PFAST_MUTEX)AtomTable->Lock);
}

Any reason for why the locking of atom tables in ntoskrnl is commented out?

-Gunnar



More information about the Ros-kernel mailing list