zoukankan      html  css  js  c++  java
  • 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使用的值不重叠。
  • 相关阅读:
    视频直播架构
    day1 python 入门
    python 多用户登录
    mysql innobackup 备份脚本
    ADT离线安装
    真机调试adb:wait for device 解决方案
    php中的魔术方法
    整理资料
    PostgreSQL表空间_数据库_模式_表_用户角色之间的关系[转]
    PHP获取文件夹的大小
  • 原文地址:https://www.cnblogs.com/IMyLife/p/4826170.html
Copyright © 2011-2022 走看看