html tool

2019年7月21日星期日

转:win32k.sys


检索:

子系统
  • win32
    • user层
      • csrss.exe
        • 控制窗口
        • 创建/删除,进程,线程
      • dll
    • 内核层
      • win32k.sys
  • POSIX
  • OS/2  

原文:

说到win32k.sys,要先说一下win32子系统。win32k.sys是win32子系统的一部分。

    子系统指操作系统的一部分,为操作系统的上层应用程序提供运行环境和接口(API)。windows 2000/xp包含三个子系统:win32、POSIX、OS/2,其中最重要的子系统是win32子系统,其他子系统都要通过win32子系统接收用户的输入和显示输出。所以,win32子系统是windows系统必须的,伴随windows启动时运行,其他子系统则根据需要时加载运行。win32子系统包括两个部分:用户层、内核层。用户层部分主要为csrss.exe以及一组动态链接库。csrss.exe进程主要实现控制台窗口功能、创建/删除进程、线程;动态链接库则直接被连接到应用程序进程、实现文档化的API。win32子系统的内核部分主要为win32k.sys。下面详细讲解win32k.sys。

    win32k.sys虽然为驱动文件但不处理I/O请求,主要为应用层提供大量服务。功能上主要实现窗口管理(收集、分发消息,控制窗口显示)和图形设备接口(各种图形绘制、文本输出)。win32.sys向内核注册一组调用函数,介入到内核的线程、进程,每个线程一旦调用win32.sys的服务就成了GUI线程。win32k.sys主要是user32.dll、GDI32.dll的内核实现。ntoskrnl.exe主要是kernel32.dll的内核实现。user32.dll、GDI32.dll、kernel32.dll中的API通过ntdll.dll主要实现功能的过度,最终调用的还是内核层win32k.sys和ntoskrnl.exe提供的服务。ntoskrnl.exe是Windows的大脑,它的上层被称为Executive,下层被称作Kernel。Win32k.sys提供与显示有关的system service。

-----------------------------------------
         用户层(ring3)
 
GDI32.dll user32.dll  kernel32.dll  
------------------------------------------
         ntdll.dll
------------------------------------------
                                                     
     win32k.sys    ntoskrnl.exe

------------------------------------------

(图中有些不标准)
先贴出这些,更多的部分在整理中。 

没有评论:

发表评论