IRP结构与理解

    Irp->AssociatedIrp.SystemBuffer //输入输出缓冲区 使用DO_BUFFER_IO
    Irp->IoStatus.Status //返回给用户层的状态,表示这次通信的结果
    Irp->IoStatus.Information //返回给用户层的大小
    Irp->UserBuffer //USER_BUFFER时的通信
    Irp->MdlAddress //使用MDL映射机制时的通信

    PIO_STACK_LOCATION irpStack;
    irpStack = IoGetCurrentIrpStackLocation (Irp);//从栈上取IRP信息
    irpStack->Parameters.Read.Length //ReadFile/WriteFile传入的大小
    irpStack->Parameters.Read.ByteOffset //ReadFile/WriteFile从哪读写偏移
    irpStack->Parameters.DeviceIoControl.IoControlCode//控制码
    irpStack->Parameters.DeviceIoControl.InputBufferLength//输入缓冲区大小
    irpStack->Parameters.DeviceIoControl.OutputBufferLength//输出缓冲区大小
    irpStack->MajorFunction//分发函数数组
    irpStack->MinorFunction
    irpStack->DeviceObject
    irpStack->FileObject

你可能感兴趣的:(IRP结构与理解)