• IO通信


    DeviceIoControl  发送控制代码到指定设备驱动程序
    参数解释:
    hDevice Long,设备句柄
    dwIoControlCode Long,应用程序调用驱动程序的控制命令,就是IOCTL_XXX IOCTLs。
    lpInBuffer Any,应用程序传递给驱动程序的数据缓冲区地址。
    nInBufferSize Long,应用程序传递给驱动程序的数据缓冲区大小,字节数。
    lpOutBuffer Any,驱动程序返回给应用程序的数据缓冲区地址。
    nOutBufferSize Long,驱动程序返回给应用程序的数据缓冲区大小,字节数。
    lpBytesReturned Long,驱动程序实际返回给应用程序的数据字节数地址。
    lpOverlapped OVERLAPPED,这个结构用于重叠操作。针对同步操作,请用ByVal As Long传递零值。
    
    通知消息宏定义方法:
    CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:
    
    DeviceType(设备类型,高16位(16-31位)),
    
    Access(访问限制,14-15位),
    
    Function(功能2-13 位),
    
    Method(I/O访问内存使用方式)。
    
    DeviceType 
    定义为给定的设备IOCTL的类型。
    微软使用的值的范围是0-0X7FFF;值0X800-0XFFF是由程序员自己定义。
    下面的设备类型由系统定义的:
    
    Method I/O访问内存使用方式
    
    METHOD_BUFFERED   使用缓冲区方式操作
    METHOD_IN_DIRECT  使用直接写方式操作
    METHOD_OUT_DIRECT 使用直接读方式操作
    METHOD_NEITHER    使用其他方式操作
    
    
    Access 访问权限
    下表显示了此参数的可能标志。该FILE_ACCESS_ANY通常是正确的值。
    
    FILE_ANY_ACCESS Request all access. 
    FILE_READ_ACCESS Request read access. Can be used with FILE_WRITE_ACCESS. 
    FILE_WRITE_ACCESS Request write access. Can be used with FILE_READ_ACCESS.
    
    Return Values(返回值)
    None.
    
    Remarks(备注)
    宏可以被用来定义IOCTL和FSCTL功能控制代码。所有的IOCTL必须以这种方式定义,以确保由微软,OEM厂商,和IHV使用的值不重叠。
  • 相关阅读:
    仿照everything写的一个超级速查 原创
    [转]SharePoint 2013 Online App Development – Part 1
    [转]SharePoint 2013 App 开发 (2)
    [转]ASP.NET自定义控件复杂属性声明持久性浅析
    HasRights方法参数
    故障分析神器——BTrace
    JVM——Memory Analyzor分析内存溢出
    关于句柄
    Java内存区域与内存溢出
    命令行的使用
  • 原文地址:https://www.cnblogs.com/IMyLife/p/4826170.html
Copyright © 2020-2023  润新知