#高级主题和提示

本文档是[Driver Development Kit教程](ddk-tutorial.md)文档的一部分。

##需要很长时间才能初始化

如果您的设备需要很长时间才能初始化,该怎么办?
当我们讨论上面的** null_bind()**函数时,我们成功返回告诉设备管理器驱动程序现在与设备关联了。
我们不能在bind函数上花费很多时间;我们基本上应该初始化我们的设备,发布它,并完成。

但您的设备可能需要执行冗长的初始化操作,例如:

*枚举硬件点
*加载固件
*协商协议

等等,这可能需要很长时间才能完成。

您可以使用`DEVICE_ADD_INVISIBLE`标志将设备发布为“不可见”。
这符合绑定功能的要求,但没有人能够使用你的设备(因为没有人知道它,因为它不可见)。
现在,您的设备可以通过后台线程执行长时间操作。

当您的设备准备好为客户端请求提供服务时,请调用** device_make_visible()**,这将导致它出现在路径名空间中。

###省电

您的设备为了支持电源或其他资源节约功能可以使用两个标注** suspend()**和** resume()**。

两者都采用设备上下文指针和flags参数,但flags参数是仅用于suspend案例。

flags                                   |含义
------------------------------------    | ------------------------------------------------------------
`DEVICE_SUSPEND_FLAG_REBOOT`            |驱动程序应自行关闭以准备重启或关闭机器
`DEVICE_SUSPEND_FLAG_REBOOT_BOOTLOADER` | ?
`DEVICE_SUSPEND_FLAG_REBOOT_RECOVERY`   | ?
`DEVICE_SUSPEND_FLAG_POWEROFF`          |驱动应该自行关闭以准备断电
`DEVICE_SUSPEND_FLAG_MEXEC`             | @@@几乎没有人使用它除了图形控制器,它做什么? @@@
`DEVICE_SUSPEND_FLAG_SUSPEND_RAM`       | 驱动程序应该做好安排,以便可以从RAM重新启动它

> @@@是的,我只是猜测flags;它们用得那么少......

出于文档目的,我应该写什么?
他们只是提示,或者你必须*因为给定的flags而做某事,或者......?

##参考:支持函数

本节列出了供驱动程序使用的支持函数。

### Accessor功能

作为驱动程序协议函数的第一个参数传递的上下文块是一种不透明的数据结构。
这意味着为了访问数据元素,您需要调用一个访问器函数:

Function                   |目的
------------------------   | ------------------------- ------------------
** device_get_name()**   |检索设备的名称
** device_get_parent()** |检索设备的父设备

###管理职能

以下功能用于管理设备:

Function                     |目的
---------------------------- | --------------------- ----------------------
** device_add()**          |将设备添加到父设备
** device_make_visible()** |使设备可见
** device_remove()**       |从父级中删除设备

###信号

以下函数用于设置设备的状态:

Function                  |目的
------------------------  | ------------------------- ------------------
** device_state_set()** |设置设备上的给定信号
** device_state_clr()** |清除设备上的给定信号

我们在上面的`/dev/misc/demo-fifo`处理程序中看到了这些。

@@@Notes only@@@

这部分非常适合open_at(),讨论缓冲区管理,线程,最佳实践,device_add()的高级选项等。
我认为它可以介于手册页之间(“printf用于打印字符串并采用以下参数“)和应用笔记—我想看看如何使用函数的例子,参数意味着什么,各种设计决定的影响是什么,那种事。

ddk高级主题和提示相关推荐

  1. Spread for Windows Forms高级主题(3)---单元格的编辑模式

    理解单元格的编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容.在一个单元格中编辑的能力被称为编辑模式.一些属性和方法可以用来自定义编辑模式的使用. 当一个单元格处于 ...

  2. Spread for Windows Forms高级主题(4)---自定义用户交互

    你可以从多方面自定义用户界面来自定义用户与Spread控件的交互方式.同时,你还可以自定义如何处理用户交互方式. 设置允许用户进行的操作 下面的列表总结了通过控件的数据区域,你可以授权用户进行的操作( ...

  3. DWR高级主题之反向Ajax(DWR3介绍)

    DWR高级主题之反向Ajax(DWR3介绍) ---------- 我们在前面使用的DWR主要是基于DWR2.X版本的,这里我们针对DWR3进行介绍,介绍一些提示或技巧. 1. ScriptSessi ...

  4. Redis 高级主题之布隆过滤器(BloomFilter)

    最近计划准备整理几篇关于Reids高级主题的博文,本文整理的是关于布隆过滤器在Redis中如何应用,先来一张思维导图浏览全文. 1. 认识BloomFilter 1.1 原理 布隆过滤器,英文叫Blo ...

  5. Spread for Windows Forms高级主题(5)---数据处理

    2019独角兽企业重金招聘Python工程师标准>>> 使用表单的API处理数据 你可以将数据以有格式或无格式字符串或者数据对象的形式填充到单元格中.将数据填充到单元格的最好方式取决 ...

  6. Spread for Windows Forms高级主题(7)---自定义打印的外观

    2019独角兽企业重金招聘Python工程师标准>>> 表单打印的多个部分都可以进行自定义,大多数的自定义选项存在于PrintInfo对象中.大多数打印选项是在PrintInfo对象 ...

  7. 分享21款漂亮的WordPress高级主题

     WordPress 是最流行的博客系统,各种主题非常多,其中很多的高级主题(Premium Theme)都是要付费购买的,今天本文收集到21款免费的 WordPress 高级主题分享给大家. Bol ...

  8. Spread for Windows Forms高级主题(6)---数据绑定管理

    自定义列和区域的数据绑定 当表单被绑定到一个数据集时,表单中的列就会相继的被分配到数据集的区域上.例如,第一个数据域分配给列A,第二个数据区域分配给列B,等等.你也可以改变分配顺序,将任意域分配给任意 ...

  9. android开发笔记之高级主题—传感器的简单介绍

    今天我们开始进入讲解android中的一些高级主题的用法,比如传感器.GPS.NFC.语音和人脸识别等. 这次来对传感器的一个简单介绍: Android平台支持三大类的传感器: 位移传感器 这些传感器 ...

  10. ExoPlayer详解——高级主题(官方文档)

    ExoPlayer详解系列文章 ExoPlayer详解--入门(官方文档) ExoPlayer详解--媒体类型(官方文档) ExoPlayer详解--高级主题(官方文档) 一.数字版权管理 ExoPl ...

最新文章

  1. pytorch nan解决方法笔记
  2. springMVC - 之拦截器
  3. php exchange,PHP SDK for digital currency exchange
  4. 树莓派上操作环境安装配置
  5. 【大讲堂第二期 | 第二场课程预告】全世界最出名的互联网公司的小伙伴都在这里!...
  6. 使用Docker搭建WordPress博客(三)nginx镜像制作
  7. 【Android】进程
  8. 如何创建一个完美的单例模式
  9. node --- 使用koa-router,让后端模块化
  10. python创建虚拟环境命令_python 创建虚拟环境
  11. angular监听输入框值的变化_如何检测Angular中@Input()值何时发生变化?
  12. 计算机名ip自动配置文件,[已解决]批处理如何根据网卡MAC地址自动设置IP和计算机名?...
  13. python w3cschool_python|w3cschool菜鸟教程
  14. Tushare数据工具介绍
  15. 企业版php自动发卡平台,企业版PHP自动发卡平台源码V6.3版
  16. 论黑产黑阔如何安全地转移赃款/洗钱?
  17. JBoss,Geronimo还是Tomcat?——三种开源Java应用服务器的比较
  18. Redis的五种基础数据结构和三种高级数据结构
  19. [元带你学NVMe协议] ] 插槽接口(M.2 / mSATA / SATA )、总线(PCIE / SATA )、传输协议(NVME / AHCI) 图解
  20. Windows xp sp3简体中文正式版下载地址

热门文章

  1. latex参考文献顺序不对_Latex-引用文献按引用顺序排号
  2. ER图(实体关系图)怎么画?
  3. 最高响应比调度算法_高响应比调度算法(c语言程序实现)
  4. 如何利用Arcmap模型构建器处理NC格式数据
  5. [转载] 像 IDE 一样使用 vim
  6. 计算机办公软件应用操作,基于计算机Word办公软件的使用及操作流程
  7. 计算机基础是五笔吗,计算机基础 五笔一.ppt
  8. markdown模板(个人使用)
  9. 使用github安装atom插件
  10. 2020软考程序员考试大纲要求的必会单词