在写文件的时候没问题,但是写完文件之后,就出问题了,

什么问题呢,是因为写完文件之后,文件关闭之后,

调用了一个叫做 CcFlushCache 的函数,这个函数是从CcWriteBehind 调过来的,

顿时懵逼了,什么情况,怎么会进入刷缓存的函数,和缓存有鸡毛关系,

这是我至少半年前的代码了,因为当初没有使用到这块,所以就没有测试这块,

结果现在要用,SB了,咋办,

看代码没啥问题啊。但是就是蓝屏,稳定蓝屏。

哎,

该谁的事,找谁去,

翻了一下ntoskrnl,找到了NtWriteFile函数,

其实这里已经看过好多次了,不说闭眼睛都知道流程,

至少也是和舅舅看外甥一样那么亲切了,

一行一行找,一个字一个字找,突然,

我看到了下面一行,图片中,红色一行。

there is a 1 flage,擦,都怪我当初太年轻,过于自信就没照抄这块代码,

结果IRP的Flages我写的是 IRP_WRITE_OPERATION ,就是少了那个 1, 导致最后又刷缓存去了,

但是我没有缓存操作,所以不存在缓存,所以刷不到,所以崩,

人生无奈,那个1 的英文名字叫。。。IRP_NOCACHE。。。

哈哈哈哈,人生都无奈得到头了,当初我就一个IRP_WRI 然后自动补全,就全了,

都没仔细看一眼标志位,结果导致人生出现了一堆插曲。。。

哎。拐了,拐了,结果把自己拐了。。。

当一个教训吧。。。人生无奈的教训。。。

记住这个1,英文名字叫 IRP 没缓存。

留个图片,祭奠伟大的Windows。

自己写IRP,做文件操作,遇到的坑的更多相关文章

  1. 使用IRP进行文件操作

    使用IRP进行文件操作 首先声明这个是菜鸟—我的学习日记,不是什么高深文章,高手们慎看. 一定要先感谢为技术的进步而付出辛勤汗水的人,感谢他们对技术的共享. 一个通用IRP访问文件的十六进制编辑器(开 ...

  2. Windows xp 重载内核(使用Irp进行文件操作)

    一.前言 最近在阅读A盾代码A盾电脑防护(原名 3600safe)anti-rootkit开放源代码,有兴趣的可以去看雪论坛下载,本文代码摘自其中的重载内核. 二.实现步骤 1.ZwQuerySyst ...

  3. open文件操作

    open()做文件操作的就是他1.打开文件#f=open("db","r")#只读#f-open("db","w")#只 ...

  4. [19/10/16-星期四] Python中的文件操作

    一.打开文件 # open(file, mode='r', buffering=-1, encoding_=None, errors=None, newline=None, closefd=True, ...

  5. File 文件操作类 大全

    File  文件操作类  大全 许多人都会对文件操作感到很难  我也是  但是一个好的项目中必定会涉及到文件操作的 文件的复制 粘贴  等等等 公司大佬写了 一个文件操作的工具类 感觉还是棒棒的啦   ...

  6. python学习笔记(11)文件操作

    一.读文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...

  7. c++读取文件操作和写入文件

    在C++中与读取文件和写入文件简单操作有关的类分别有ifstream(文件读入).ofstream(文件写出).fstream (文件读入和写出). 名称 作用 ifstream 文件读入 ofstr ...

  8. day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作

    复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...

  9. vbs连接sql server及写文件操作

    此段代码是连接SQL SERVER的 代码内connMMSQL的参数要根据实际情况传入 Function connMMSQL(ip,user,pwd,database,strsql) Dim conn ...

随机推荐

  1. [FW]修复ubutnu12.04+win7的grub2引导

    [转]修复ubutnu12.04+win7的grub2引导 原文位置:http://wenku.baidu.com/view/b6b7c9926bec0975f465e2f8.html ps:我使用的 ...

  2. Java面试宝典(4)Java基础部分

    71.说出一些常用的类,包,接口,请各举5个 要让人家感觉你对java ee开发很熟,所以,不能仅仅只列core java中的那些东西,要多列你在做ssh项目中涉及的那些东西.就写你最近写的那些程序中 ...

  3. Nginx 实现 Rewrite 跳转

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 上一篇文章对Nginx的Location配置进行了讲解,本篇主要对于Nginx中的Rewrite跳转进行讲解. ...

  4. 模仿JQuery封装ajax功能

    需求分析 因为有时候想提高性能,只需要一个ajax函数,不想引入较大的jq文件,尝试过axios,可是get方法不支持多层嵌套的json,post方式后台接收方式似乎要变..也许是我不太会用吧..其实 ...

  5. SQL数据库—<9>数据库安全

    --创建登陆用户 --create login login_name from windows with default_database = database | default_language ...

  6. 在Linux上搭建私有git仓库

    最近在学Linux,顺便将自己的服务器用起来,不然又得废弃一年.这次是跟着网上的教程做一个简单的git私有仓库,复杂完整的git系统还需使用gitlib系统. 首先在linux上安装git yum i ...

  7. 【转载】MySQL查询当天0点,昨天时间

    转载自:https://blog.csdn.net/qq_22158021/article/details/78800299 今天是 SELECT NOW();-- 2015-09-28 13:48: ...

  8. 服务器修改静态ip

    ifconfig,看当前网卡名字 设置 ip地址,子网掩码 ,广播地址 ifconfig eth1 172.16.11.25 netmask 255.255.255.0 broadcast 172.1 ...

  9. java--字符串拼接比较

    /** * 字符串拼接 */ public class StringAddDemo { public static void main(String[] args){ testStringAdd(); ...

  10. 【leetcode】1001. Grid Illumination

    题目如下: On a N x N grid of cells, each cell (x, y) with 0 <= x < N and 0 <= y < N has a la ...