================================================================================
 Only few people (me and Vasily Shchukin) write entire driver in asm.

 Q: Why to write driver in asm?
 A: WYSIWYG.

 Q: Why to write driver in Visual C++?
 A: Portable source (alpha,ix86,mips,ppc), better unicode handling,..
    VC++ has very effective optimizations: the size of simple driver written
    in VC++ is comparable with size of simple driver written in asm.
================================================================================
 Archive contains:
 NTcallCOM.bat - source showing how to call KMD from 16bit subsystem of NT
                 (compile with TASM 5.0) (see also DemoVDD on my webpage)
 NTcallEXE.bat - source showing how to install/unistall KMD and how to
                 communicate with it
 NTcallSYS.bat - source of simple NT kernel-mode driver
 NTcallVDD.bat - source of simple NT user-mode driver (DemoVDD on my webpage)
                 (compile with MASM 6.14, LINK 6.0)
 Release       - directory containing binaries


 Your compiled binaries will differ from mine, because You don't know how to
 play with API (see Q: How to make my assembly language more flexible?).
 The 2nd function of KMD (GetSDT) will fail (because of 
 MOV R32, KeServiceDescriptorTable), but 1st function (GetVersion) is OK.


 ntddk.inc is hand-made, small but will rise. It was made before I got NTDDK.
 I'll try to make the names of constants and structures more similar to the
 ones in ntddk.h. H2INC failed (of course) and doesn't work correctly.


 The case that service NTCALL is already running is not handled and
 error message Can't start service! appears. Then use instdrv ntcall remove
================================================================================
 Q: Where can I get native API reference?
 A: I don't know. MSDN(CD)/NTDDK describe only 15% of native API.
    When You need to know how the API works, number of parameters, etc..
    trace it.

 KMD is as simple as possible: interrupt, completion, cancel and other
 routines (and MANY other and IMPORTANT things) aren't showed!



 EliCZ, chemical student, http://elicz.cjb.net, May-19-1999
================================================================================