Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
CryptoAlgo Inc daad8a087a Add source files 4 years ago
..
kernel Add source files 4 years ago
user Add source files 4 years ago
_hashfn.h Add source files 4 years ago
dirs Add source files 4 years ago
extcrap.h Add source files 4 years ago
httptypes.h Add source files 4 years ago
kdebug.h Add source files 4 years ago
misc.c Add source files 4 years ago
misc.h Add source files 4 years ago
parse.c Add source files 4 years ago
parsep.h Add source files 4 years ago
precomp.h Add source files 4 years ago
precomp9x.h Add source files 4 years ago
rcvhdrs.c Add source files 4 years ago
rcvhdrs.h Add source files 4 years ago
readme.txt Add source files 4 years ago
sources.inc Add source files 4 years ago
udebug.h Add source files 4 years ago

readme.txt

This is the SLM project for the IIS Rearchitecture Team

ulrtl - Shared kernel/user-mode library.

kernel ... Builds the kernel-mode library (ulrtlk.lib)
user ... Builds the user-mode library (ulrtlu.lib)


Rules for adding new routines to these libraries:

1. Do not depend on anything defined in WINDOWS.H or anything that includes
WINDOWS.H. Getting WINDOWS.H included in kernel-mode code is a complete
pain and will not be allowed. Use the types & constants defined in NT.H,
NTRTL.H, and NTURTL.H. If you need something that's not defined in these
header files, dont include it in ULRTL.

2. If you change anything related to ULRTL, remember to rebuild it for both
kernel- and user-mode.

3. If you change anything in ULRTL.H, remember to rebuild all kernel- and
user-mode code that reference it.

4. Kernel-mode routines can be tagged (through a pragma) as either paged or
nonpaged. If you are not 100% sure of how to tag a new routine you're
adding, leave it as nonpaged (the default) and add a CODEWORK comment
so we know to revisit the routine later. Routines that are unnecessarily
nonpaged lead to excessive nonpaged pool consumption, which is not good,
but routines that are paged but should not be lead to random & mysterious
blue-screens, which is worse.

5. The kernel-mode driver is written in C, so there's no point in adding C++
routines or classes to ULRTL.

6. The memory allocation functions differ greatly between kernel- and user-
mode, so do not directly reference these. For example, kernel-mode
concepts such as pool type, tagging, and priority have no counterpart
in user-mode.

7. Synchronization primitives differ greatly between kernel- and user-mode,
so do not directly reference these. For example, theres no such thing as
a CRITICAL_SECTION in kernel-mode.

8. There are a limited number of C Run Time functions available in kernel-
mode, so beware. If you want the actual list of supported CRT functions,
see \\kernel\razzle2\src\ntos\init\ntoskrnl.src and look for the section
labeled ntcrt.lib (at the end of the file).