首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

驱动开发:通过ReadFile与内核层通信

驱动与应用程序的通信是非常有必要的,内核中执行代码后需要将其动态显示给应用层,但驱动程序与应用层毕竟不在一个地址空间内,为了实现内核与应用层数据交互则必须有通信的方法,微软为我们提供了三种通信方式,如下先来介绍通过ReadFile...缓冲区方式读写(DO_BUFFERED_IO) 直接方式读写(DO_DIRECT_IO) 其他方式读写 而通过ReadFile,WriteFile系列函数实现的通信机制则属于缓冲区通信模式,在该模式下操作系统会将应用层中的数据复制到内核中...,此时应用层调用ReadFile,WriteFile函数进行读写时,在驱动内会自动触发 IRP_MJ_READ 与 IRP_MJ_WRITE这两个派遣函数,在派遣函数内则可以对收到的数据进行各类处理。...IoCompleteRequest(Irp, IO_NO_INCREMENT); return Status; } 如上部分都是在讲解驱动层面的读写派遣,应用层还没有介绍,在应用层我们只需要调用ReadFile...// 从内核读取数据到本地 char buffer[128] = { 0 }; ULONG length; // 读入到buffer长度为5 // By:lyshark.com ReadFile

48910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    驱动开发:通过ReadFile与内核层通信

    驱动与应用程序的通信是非常有必要的,内核中执行代码后需要将其动态显示给应用层,但驱动程序与应用层毕竟不在一个地址空间内,为了实现内核与应用层数据交互则必须有通信的方法,微软为我们提供了三种通信方式,如下先来介绍通过ReadFile...缓冲区方式读写(DO_BUFFERED_IO)直接方式读写(DO_DIRECT_IO)其他方式读写而通过ReadFile,WriteFile系列函数实现的通信机制则属于缓冲区通信模式,在该模式下操作系统会将应用层中的数据复制到内核中...,此时应用层调用ReadFile,WriteFile函数进行读写时,在驱动内会自动触发 IRP_MJ_READ 与 IRP_MJ_WRITE这两个派遣函数,在派遣函数内则可以对收到的数据进行各类处理。...ulWriteData);IoCompleteRequest(Irp, IO_NO_INCREMENT);return Status;}如上部分都是在讲解驱动层面的读写派遣,应用层还没有介绍,在应用层我们只需要调用ReadFile...; } // 从内核读取数据到本地 char buffer[128] = { 0 }; ULONG length; // 读入到buffer长度为5 // By:lyshark.com ReadFile

    41530
    领券