The Types of Kernel Extensions diagram illustrates the addition of extensions to the kernel environment.
The following kernel-environment programming information is provided to assist you in programming kernel extensions:
A process executing in user mode can customize the kernel by using the sysconfig subroutine, if the process has appropriate privilege. In this way, a user-mode process can load, unload, initialize, or terminate kernel routines. Kernel configuration can also be altered by changing tuneable system parameters.
Kernel extensions can also customize the kernel by using kernel services to load, unload, initialize, and terminate dynamically loaded kernel routines; to create and initialize kernel processes; and to define interrupt handlers. Binding of kernel extensions can be performed at link-edit, load, or run time.
Note: Private kernel routines (or kernel services) execute in a privileged protection domain and can affect the operation and integrity of the whole system. See "Kernel Protection Domain" for more information.
Understanding Kernel Extension Binding.
Understanding Execution Environments.
Accessing User-Mode Data While in Kernel Mode.
Understanding Exception Handling.