CTL_CODE宏

CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:

DeviceType(设备类型,高16位(16-31位)),

Function(功能2-13 位),

Method(I/O访问内存使用方式),

Access(访问限制,14-15位)。

这个宏创建一个独特的系统I/O(输入输出)控制代码(IOCTL)。

#define xxx_xxx_xxx CTL_CODE(DeviceType, Function, Method, Access)

( ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))

如例:

#include <winioctl.h>//用于创建一个唯一的32位系统 I/O 控制代码,这个控制代码包括4部分组成#define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS)#define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x801,METHOD_BUFFERED,FILE_ANY_ACCESS)

Parameters(参数)

CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:

DeviceType(设备类型,高16位

CTL_CODE 宏 详解相关推荐

  1. 【百度联盟峰会】李彦宏详解AI时代思维方式,算法驱动的降维攻击

     [百度联盟峰会]李彦宏详解AI时代思维方式,算法驱动的降维攻击 新智元 2017-05-23 14:51:52 李彦宏 手机 百度 阅读(20879) 评论(19) 新智元报道 来源:百度 [新 ...

  2. C 和 C++ 宏 详解

    From:https://www.cnblogs.com/njczy2010/p/5773061.html C中的预编译宏详解:http://www.cppblog.com/bellgrade/arc ...

  3. Orange's:一个操作系统的实现 Descriptor 3宏详解

    补充:关于GDT/LDT.段选择子和段描述符的解释       GDT/LDT:GDT/LDT是段描述符表,里面定义了每个段的段描述符的界限和属性,而段描述符的基址是在代码段中初始化的.        ...

  4. linux串口通信参数宏详解实例

    详解linux下的串口通讯开发 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会 ...

  5. container_of 和 offsetof 宏详解

    在linux内核链表中,会遇到两个宏. 在include/linux/stddef.h中,有这样的定义 #define offsetof(TYPE, MEMBER) ((size_t) &(( ...

  6. 【从零开始学习 UVM】6.4、UVM 激励产生 —— uvm_do 宏详解

    请注意,start方法的call_pre_post字段设置为0,这意味着在使用这些序列宏时,序列的pre_body和post_body方法将永远不会被调用.否则,执行流程与通过start方法执行序列时 ...

  7. Offsetof宏详解

    C语言面试的时候可能会考,这样的宏定义: #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER) 函数作用:计算结构体 ...

  8. ZeroMemory宏详解

    在使用C/C++编程时,当我们要清空一个数据的缓冲区的时候我们会执行下面的语句: #define BUF_SIZE 64 // 缓冲区的大小. char buf[BUF_SIZE]; // 数据的缓冲 ...

  9. C语言之详解#ifdef等宏

    C语言之详解#ifdef等宏 这几个宏是为了进行条件编译.一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是&qu ...

最新文章

  1. 搜索引擎的时效性需求满足
  2. react 调用组件方法_React源码分析1 — 组件和对象的创建(createClass,createElement)...
  3. 数据分析学习02-numpy
  4. android jni 返回java类
  5. Android项目开发实战—倒计时[Handler,Timer,TimerTask,Message]
  6. 全库模式 用户模式 表模式_暗模式,亮模式和用户的故事
  7. 分享10个2012年最新发布的jQuery插件
  8. Android build.gradle(app)介绍
  9. 用户如何有效地利用数据字典(转)
  10. 华润置地php面试题_长春华润置地崑崙御,以至臻匠心,成就城市典范
  11. 开发的必杀技:Git 的分支管理
  12. mysql 8.0 yum_CentOS7使用yum安装MySQL8.0
  13. html5——3D转换
  14. Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
  15. CPU(中央处理器)和GPU(图像处理器)区别
  16. python实现人民币金额大写转小写数字
  17. 微信小程序分享生成海报
  18. python- 按指定列值筛选数据
  19. 一、ECMAScript 6/7/8简介
  20. 面试官:HTTP协议你知道多少?

热门文章

  1. Android 拍身份证(自定义相机)
  2. 一张图看懂光圈、快门、感光度的意义 ​​​​
  3. 百度旋转验证码(8-24,js逆向)
  4. 看steam教育之风带来创新与变革
  5. 【Unity】Obi插件系列(二)—— Backends、Updaters、Simulation
  6. 还记得那一场说开始就开始的恋爱吗?
  7. Python3实现向指定邮箱发送邮件(支持附件文件、图片等)
  8. 【让你从0到1学会C语言】指针/数组传参以及static关键字
  9. 人生若只如初见,当时只道是寻常
  10. QNAP领衔进击2014vNAS內置虚拟机横空出世