创建IRP传递给驱动的派遣函数的一些方法

    技术2025-09-14  98

    创建IRP

     

    IoBuildSynchronousFsdRequest 

     

    创建同步IRP

     

    IoBuildAsynchronouseFsdRequest

     

    创建异步IRP

     

    类型: IRP_MJ_PNP , IRP_MJ_READ , IRP_MJ_WRITE , IRP_MJ_FLUSH_BUFFERS , IRP_MJ_SHUTDOWN

     

     

     

    IoBuildDeviceIoControlRequest

     

    创建同步IRP

     

    类型:  IRP_MJ_INTERNAL_DEVICE_CONTROL , IRP_MJ_DEVICE_CONTROL

     

     

     

    以上3个函数是调用此函数实现的,系统自动删除IRP,而此函数需要手动调用IoFreeIrp删除IRP

     

    IoAllocateIrp

     

    创建任意类型IRP

     

     

     

     

     


     

    派遣IRP

     

    IoCallDriver

     

     

    步骤:

    获得设备对象指针(非句柄)创建IRP构造IRP的I/O堆栈调用IoCallDriver内核函数,内部会调用派遣函数

     

     

     

    最新回复(0)