803页:WDK文档强调IoRegisterDriverReinitialization 主要用于同时支持Non-PNP和PNP下层的驱动。大概原因是:只依赖Legacy下层的驱动可以通过LoadOrderGroup、Dependencies等注册表项决定合适加载时机,PNP驱动则由PNP机制决定加载时机,而同时支持两种下层的驱动由PNP机制加载时,legacy下层可能尚未初始化,因此必须有一种回调机制以便等待其初始化。还是不太理解,希望看完代码能够解惑。

805页:为何Named Pipe 和 Mailslot会例外?因为是流文件,不能Seek?疑问暂时放着。

936页:注意文件对象FileObject的内部也有个Event 对象,这是供设备驱动内部来同步的。

文件对象内部的Event结构用于实现其同步语义。用户态程序在文件句柄上等待IO完成,也由此Event实现。

810、940页://对于加了锁的文件片段

参考WDK的文档,这里对Key的注释是错误的,这里的Key用于决定IRP在队列中的位置,类似于优先级。

941页:凡是支持异步操作的设备驱动都要提供一个“IO启动函数”

凡是含有“凡是”的论述都是错的,包括这一句:)

951页:同步返回时,不在IoCompleteRequest中安排一个内核态APC执行IopCompleteRequest应该仅仅是优化问题,无法理解 因为缺少触发条件 的表述述

转载于:https://blog.51cto.com/thewe/765741

Windows内核情景分析 笔记相关推荐

  1. windows 内核情景分析

    原文很长:先转部分过来,有时间看一下: 一 windows 内核情景分析---说明 说明 本文结合<Windows内核情景分析>(毛德操著).<软件调试>(张银奎著).< ...

  2. windows内核情景分析读书笔记-----HYPERSPACE

    主要介绍HYPERSPACE的创建映射函数 赏光看我这一系列文章的朋友最好结合毛德操老师的书来看,具体的细节我这里就不阐述了 简单说下这个函数功能 Windows内核有时候需要把某些物理页面临时映射到 ...

  3. [14]Windows内核情景分析 --- 文件系统

    文件系统 一台机器上可以安装很多物理介质来存放资料(如磁盘.光盘.软盘.U盘等).各种物理介质千差万别,都配备有各自的驱动程序,为了统一地访问这些物理介质,windows设计了文件系统机制.应用程序要 ...

  4. windows内核情景分析 --- 文件系统

    文件系统 一台机器上可以安装很多物理介质来存放资料(如磁盘.光盘.软盘.U盘等).各种物理介质千差万别,都配备有各自的驱动程序,为了统一地访问这些物理介质,windows设计了文件系统机制.应用程序要 ...

  5. Windows内核情景分析-概述

    现在的Windows 现在的windows内核包含了两大部分,一部分是本来意面上的操作系统内核,另一部分则是移到了内核中的视窗服务,前者对应ntoskrnl.exe后者win32k.sys:后者部分为 ...

  6. windows内核情景分析---进程线程2

    二.线程调度与切换 众所周知:Windows系统是一个分时抢占式系统,分时指每个线程分配时间片,抢占指时间片到期前,中途可以被其他更高优先级的线程强制抢占. 背景知识:每个cpu都有一个TSS,叫'任 ...

  7. windows内核情景分析---进程线程1

    本篇主要讲述进程的启动过程.线程的调度与切换.进程挂靠 一.进程的启动过程: BOOL CreateProcess ( LPCTSTR lpApplicationName,               ...

  8. [6]Windows内核情景分析 --APC

    APC:异步过程调用.这是一种常见的技术.前面进程启动的初始过程就是:主线程在内核构造好运行环境后,从KiThreadStartup开始运行,然后调用PspUserThreadStartup,在该线程 ...

  9. [9]Windows内核情景分析 --- DPC

    DPC不同APC,DPC的全名是'延迟过程调用'. DPC最初作用是设计为中断服务程序的一部分.因为每次触发中断,都会关中断,然后执行中断服务例程.由于关中断了,所以中断服务例程必须短小精悍,不能消耗 ...

最新文章

  1. ACMNO.44 C语言-平均分 有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
  2. 语言课程设计超市售货_自闭症儿童家庭干预10个语言能力提升小技巧
  3. C++实现trie tree字典树(附完整源码)
  4. Javascript和android原生互调
  5. linux perl 单例模式,Perl脚本学习经验(三)--Perl中ftp的使用
  6. java编写设置按钮随机背景色_java – 如何设置自定义按钮状态背景颜色?
  7. php 获取url中的参数
  8. 简单说说WinHex(一)安装注册过程
  9. 电阻式触摸屏UI设计
  10. 计算机硬件的五大逻辑部分,计算机硬件系统主要由五个部分组成?
  11. nuxt 如何添加robots.txt文件
  12. W806+ST7735R+tftLCD程序开发
  13. 如何获取 ChatGPT OpenAI API Key
  14. 阿里五年测试工程师的一些小建议,让你少走弯路
  15. 成熟男人与未成熟男人
  16. Word 2016表格三线表制作
  17. 美标A537CL2钢板交货状态和执行标准
  18. 线性代数知识总结梳理
  19. TTP233H-BA6功能介绍于适用场景;
  20. 英文版权声明_【16期】超美100款英文LOGO,让你的创意更优美

热门文章

  1. java开发经验分享_java开发经验分享(一)
  2. 简单的错觉画_一看就错?眼睛厉害还是大神画的厉害!
  3. 单应矩阵(Homography)基本概念和代码测试
  4. 在AI Studio创建课程 : 2021 ANN课程
  5. 一款N-沟道耗尽型JFET晶体管 MPF102
  6. 实验电路的放大器伴侣:LMV358
  7. 7 开机启动文件路径_为什么当我登录的时候,总有一些文件会被打开
  8. vectorvn1610报价_德国Vector测试软件VN1610A-上海壹侨特价
  9. 做一个计算器_2019年初级会计考试考生能不能带计算器?现在统一回复!
  10. linux mysql解锁账号密码忘了怎么办,linux下mysql忘记密码怎么办