zoukankan      html  css  js  c++  java
  • 驱动读写方式

     1 PIO_STACK_LOCATION isl = IoGetCurrentIrpStackLocation(pIrp);
     2 
     3     //Read & Write Length
     4     ULONG dwInSize = isl->Parameters.Read.Length;
     5     ULONG dwOutSize = isl->Parameters.Write.Length;
     6 
     7     //In & Out Buffer DO_BUFFERED_IO
     8     PVOID pInBuffer = pIrp->AssociatedIrp.SystemBuffer;
     9     PVOID pOutBuffer = pIrp->AssociatedIrp.SystemBuffer;
    10 
    11     //In & Out Buffer DO_DIRECT_IO 
    12     pInBuffer = MmGetSystemAddressForMdlSafe(pIrp->MdlAddress, NormalPagePriority);
    13     pOutBuffer = MmGetSystemAddressForMdlSafe(pIrp->MdlAddress, NormalPagePriority);
    14 
    15     //In & Out Buffer DO_DIRECT_IO 
    16     ProbeForRead(pIrp->UserBuffer, dwInSize, 4);
    17     pInBuffer = pIrp->UserBuffer;
    18     ProbeForWrite(pIrp->UserBuffer, dwOutSize, 4);
    19     pOutBuffer = pIrp->UserBuffer;
    20 
    21     //Io control device
    22     ULONG dwCtrlCoder = isl->Parameters.DeviceIoControl.IoControlCode;
    23     //Read & Write Length
    24     dwInSize = isl->Parameters.DeviceIoControl.InputBufferLength;
    25     dwOutSize = isl->Parameters.DeviceIoControl.OutputBufferLength;
    26     
    27     //In & Out Buffer METHOD_BUFFERED || METHOD_IN_DIRECT || METHOD_OUT_DIRECT || METHOD_NEITHER I/O
    28     pInBuffer = pIrp->AssociatedIrp.SystemBuffer;
    29     pOutBuffer = pIrp->AssociatedIrp.SystemBuffer;
    30 
    31     //In & Out Buffer METHOD_IN_DIRECT || METHOD_OUT_DIRECT
    32     pInBuffer = pIrp->AssociatedIrp.SystemBuffer;
    33     pOutBuffer = MmGetSystemAddressForMdlSafe(pIrp->MdlAddress, NormalPagePriority);
    34 
    35     //In & Out Buffer METHOD_NEITHER I/O
    36     
    37     pInBuffer = isl->Parameters.DeviceIoControl.Type3InputBuffer;
    38     ProbeForRead(pInBuffer, dwInSize, 4);
    39     pOutBuffer = pIrp->UserBuffer;
    40     ProbeForRead(pOutBuffer, dwOutSize, 4);
  • 相关阅读:
    VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
    VMWare虚拟机下为Windows Server 2012配置静态IP(NAT方式)
    Windows 7防火墙阻止了远程桌面连接的解决方法
    Win10系统如何在防火墙里开放端口
    ECharts 定制 label 样式
    目标值柱状图
    echarts中datazoom相关配置
    环形图
    带时间轴的指标监控柱状图
    2020mysql面试题
  • 原文地址:https://www.cnblogs.com/endenvor/p/11526464.html
Copyright © 2011-2022 走看看