C/C++ Win64 IO读写源码
本帖最后由 xuepojie 于 2022-2-27 05:19 编辑语言:C/C++
工具:VS2017+WDK10,signtools,InstDrv,Dbgview,Win10虚拟机
知识:驱动结构与逻辑,R3.exe编写
------------------------------------DeviceIoControl方式sys和exe通信---------------------------------------------
常识:
IRP:I/O RequestPackage即输入输出请求包exe和sys通信时,exe会发出I/O请求。
操作系统会将I/O请求转化为相应的IRP数据,不同类型传递到不同的dispatch function
通信过程:
就是驱动程序和应用程序自定义一种IO控制码,然后调用DeviceIoControl函数,IO管理器会产生一个MajorFunction 为IRP_MJ_DEVICE_CONTROL(DeviceIoControl函数会产生此IRP)
MinorFunction 为自己定义的控制码的IRP,系统就调用相应的处理IRP_MJ_DEVICE_CONTROL的派遣函数,你在派遣函数中判断MinorFunction ,是自定义的控制码你就进行相应的处理。
识:
IRP:I/O RequestPackage即输入输出请求包exe和sys通信时,exe会发出I/O请求。
操作系统会将I/O请求转化为相应的IRP数据,不同类型传递到不同的dispatch function
通信过程:
就是驱动程序和应用程序自定义一种IO控制码,然后调用DeviceIoControl函数,IO管理器会产生一个MajorFunction 为IRP_MJ_DEVICE_CONTROL(DeviceIoControl函数会产生此IRP)
MinorFunction 为自己定义的控制码的IRP,系统就调用相应的处理IRP_MJ_DEVICE_CONTROL的派遣函数,你在派遣函数中判断MinorFunction ,是自定义的控制码你就进行相应的处理。 {:smile:}{:smile:}{:smile:}{:smile:}{:smile:} DeviceIoControl方式sys和exe通信 Win64 IO读写源码 DeviceIoControl方式sys和exe通信 识:
IRP:I/O RequestPackage即输入输出请求包exe和sys通信时,exe会发出I/O请求。
操作系统会将I/O请求转化为相应的IRP数据,不同类型传递到不同的dispatch function
通信过程:
就是驱动程序和应用程序自定义一种IO控制码,然后调用DeviceIoControl函数,IO管理器会产生一个MajorFunction 为IRP_MJ_DEVICE_CONTROL(DeviceIoControl函数会产生此IRP)
MinorFunction 为自己定义的控制码的IRP,系统就调用相应的处理IRP_MJ_DEVICE_CONTROL的派遣函数,你在派遣函数中判断MinorFunction ,是自定义的控制码你就进行相应的处理。 DeviceIoControl方式sys和exe通信 {:titter:}{:titter:} ------------------------------------DeviceIoControl方式sys和exe通信---------------------------------------------
常识:
IRP:I/O RequestPackage即输入输出请求包exe和sys通信时,exe会发出I/O请求。
操作系统会将I/O请求转化为相应的IRP数据,不同类型传递到不同的dispatch function
通信过程:
就是驱动程序和应用程序自定义一种IO控制码,然后调用DeviceIoControl函数,IO管理器会产生一个MajorFunction 为IRP_MJ_DEVICE_CONTROL(DeviceIoControl函数会产生此IRP)
MinorFunction 为自己定义的控制码的IRP,系统就调用相应的处理IRP_MJ_DEVICE_CONTROL的派遣函数,你在派遣函数中判断MinorFunction ,是自定义的控制码你就进行相应的处理。
页:
[1]