Win64 驱动内核编程-5.内核里操作文件

内核里操作文件

    RING0 操作文件和 RING3 操作文件在流程上没什么大的区别,也是“获得文件句柄->///->关闭文件句柄”的模式。当然了,只能用内核 API,不能用 WIN32API。在讲解具体的代码之前,先讲解一下文件系统的流程,让大家对整个文件系统有个大概的了解。

    假设我们要读写一个文件,无论在 RING3 调用 ReadFile,还是在 RING0 调用 NtReadFile,它们最终会转换为 IRP,发送到 文件系统驱动(具体哪个驱动和分区类型相关,如果是 FAT32分区,则是 FASTFAT.SYS;如果是 NTFS 分区,则是 NTFS.SYS)的 IRP_MJ_READ 分发函数里。文件系统驱动经过一定处理后,就把 IRP 传给 磁盘类驱动(通常是 CLASSPNP.SYS,此驱动的源码在 WDK 里有)的 IRP_MJ_READ 分发函数处理。磁盘类驱动处理完毕后,又把 IRP 传给磁盘小端口驱动的 IRP_MJ_SCSI 分发函数处理。 磁盘小端口 驱动太多了,网上有人 用ATAPI.SYS  来指代 磁盘 小端口驱动,是极端错误的说法。ATAPI.SYS 是磁盘小端口驱动,但磁盘小端口驱动绝非只能是 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
api-ms-win-downlevel-kernel32-l2-1-0.dll是Windows操作系统中的一个动态链接库文件。动态链接库(DLL)是一种用于存储代码和数据的库文件,可以在多个程序之间共享,并可通过调用其中的函数来实现特定功能。 此DLL文件主要属于Windows内核32位系统的下层API(应用程序编程接口)。API是一组软件函数和过程的集合,用于帮助应用程序与操作系统进行交互和通信。该DLL文件中的API函数是针对较低级别的内核操作提供的。 api-ms-win-downlevel-kernel32-l2-1-0.dll文件的目的是为了提供向下兼容性。在某些情况下,旧的应用程序或驱动程序可能依赖于旧版本的kernel32.dll文件。然而,Windows操作系统的更新可能会替换旧的kernel32.dll文件为新版本,这可能导致旧的应用程序或驱动程序无法正常工作。为了解决这个问题,api-ms-win-downlevel-kernel32-l2-1-0.dll文件被引入,作为新版本kernel32.dll文件和旧版本之间的桥梁。 当旧的应用程序或驱动程序需要调用较旧版本的kernel32.dll的函数时,它们实际上是通过api-ms-win-downlevel-kernel32-l2-1-0.dll中的函数来实现的。这样可以确保旧的应用程序或驱动程序在新的Windows操作系统上继续正常运行。 总而言之,api-ms-win-downlevel-kernel32-l2-1-0.dll是一个用于向下兼容性的DLL文件,主要提供旧的应用程序或驱动程序与新的Windows操作系统之间的通讯和功能支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值