从技术上讲,所有进程都有一些线程将一些时间花在内核模式(ring 0)上.每当用户模式进程向系统调用进入操作系统时,就会发生一个转换,其中线程通过"门"进入环0.只要进程需要与设备通信,分配更多进程范围的内存,或者生成新线程,系统调用就会要求操作系统提供此服务.
因此,如果你想让进程在ring 0中运行一些代码,你需要编写一个驱动程序,然后通过一些系统调用与这个驱动程序通信.最常见的系统调用称为ioctl(代表I/O控制).
在Windows平台上要看的另一件事是UMDF(用户模式驱动程序框架).这允许您以用户模式(在环3中运行)编写,调试和测试驱动程序,但系统中的其他驱动程序或其他进程仍可访问它.