- 博客(24)
- 资源 (8)
- 收藏
- 关注
转载 IRQL深入解析(2)--驱动级别
今天来看看驱动中常见的几种IRQL。每个NDIS API函数,在DDK文档中都描述了它的IRQL. PASSIVE_LEVEL: IRQL最低级别,没有被屏蔽的中断(即中断所有IRQL的中断),在这个级别上,线程执行用户模式,可以访问分页内存。DriverEntry(), AddDevice()和大部分IRP Dispatch函数都运行在PASSIVE_
2015-05-06 16:51:46
2172
转载 IRQL深入解析(3)--与IRQ比较
IRQ:Interrupt ReQuest,中断请求,当中断发生后,发生中断的设备通过它使用的中断请求信号线象中断控制器报告中断。CPU可以通过IRQ号来识别中断。 IRQL:Interrupt ReQuest Level,中断请求优先级,一个由windows虚拟出来的概念,划分在windows下中断的优先级,这里中断包括了硬中断和软中断,硬中断是由硬件产生,而软中断则是完全
2015-05-06 16:51:09
3467
转载 IRQL深入解析(1)--IRQL级别
IRQL = Interrupt Request Level.即中断执行的优先级。一个由windows虚拟出来的概念,划分在windows下中断的优先级,这里中断包括了硬中断和软中断,硬中断是由硬件产生,而软中断则是完全虚拟出来的。 IRQL = Interrupt Request.中断请求,当中断发生后,发生中断的设备通过它使用的中断请求信号线象中断控制器报告中断。CPU可以通
2015-05-06 16:45:06
4011
原创 王垠博客转载的一些说明
转载原因无意中在朋友圈中提到王垠这个人,提到了"无法理解的40行代码",于是怀着好奇的心网上搜索了下他的相关信息,于是“川大计算机系本科生”、"保送清华大学硕博连读",“博士读到还剩最后一年退学”、“cornell大学博士退学”.....一个个跳了出来,于是花了近一个下午的时间搜索了一下他发表的部分文章,对其传奇经历和天才般技能深深折服,特别深有体会的是他对于探索未知世界、遇到问题解决问题,特
2014-12-15 17:22:07
2951
转载 如何掌握程序语言(转自王垠Blog)
摘要:这篇文章曾经叫做《初学者程序语言的选择》,但是后来我发现,这里给出的看法其实不只是给初学者看的,甚至可能会让初学者看不懂。而就我在 Google 实习的时候的观察看来,很多写了几十年程序的资深程序员,可能也没有明白这里指出的道理。所以我把题目改了一下,并且加入了新的内容,希望对新手和老手都有所帮助。学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号
2014-12-15 17:10:00
2047
转载 对博士学位说永别(转自王垠blog)
对博士学位说永别by 王垠经过深思熟虑之后,我决定再次“抛弃”我的博士学位。这是我第三次决定离开博士学位,也应该是最后一次了。这应该不是什么惊人的消息,因为我虽然读博士10年了,可是我的目标从来就不是博士学位。我在寻找更重要的东西,而且那个东西已经被我找到了。所以我的“博士生涯”其实完成了它的使命,基本上可以圆满结束了。如果你从我之前的博文判定我现在生活在我所向往的环境中,
2014-12-15 17:01:59
5389
转载 我和Google的故事(转自王垠blog)
文/王垠 也许有人看见过我批判 Google 的那篇英文文章。它好像有一部分片面性,所以被我从英文博客上拿下来了。我一直在反思自己在 Google 的经历,因为在这个公司工作总是感觉不对劲,但是却总也说不清楚为什么。也许现在用自己的母语,我可以得出一个准确一点的结论吧。 受命于危难 先说说我的项目是怎么开始的吧。当我加入的时候,我的老板 Steve Yegge 的小组
2014-12-15 16:59:21
1991
转载 清华梦的粉碎—写给清华大学的退学申请(转自王垠Blog)
清华梦的诞生 小时候,妈妈给我一个梦。她指着一个大哥哥的照片对我说,这是爸爸的学生,他考上了清华大学,他是我们中学的骄傲。长大后,你也要进入清华大学读书,为我们家争光。我不知道清华是什么样子,但是我知道爱迪生和牛顿的故事。清华,大概就是可以把我造就成他们这种人的地方吧。我幼小的脑海里就想象出我能在清华做的事情……我的脸上浮现出笑容。我说我要实现这个“清华梦”。这就是清华梦的诞生。 小小
2014-12-15 16:55:33
5439
1
原创 windows驱动完整卸载的流程(解决卸载后,重新扫描或重启后,驱动仍然出现的问题)
彻底卸载的流程 1、删除C:\windows\inf\oem.inf路径下的所有oem文件 2、删除c:\windows\system32\drivers路径下对应的sys文件 3、(重要) 第一步:使用PsExec.exe 获取对注册表的administrator访问权限,PsExec.exe 下载地址 http://techne
2014-12-05 17:29:31
12736
1
转载 USB的四种传输模式的特点
USB的四种传输模式(1) 控制传输模式,控制传输用于在外设初次连接时对器件进行配置;对外设的状态进行实时检测;对控制命令的传送等;也可以在器件配置完成后被客户软件用于其它目的。Endpoint 0信道只可以采用控制传送的方式。 (2) 块传送模式(bulk),块传送用于进行批量的、非实时的数据传输。如一台 USB 扫描仪即可采用块传送的模式,以保证资料连续地、在硬件层次上的实
2014-02-21 10:28:48
5018
原创 USB HID设备读取数据问题
现有一个普通usb 设备(一个控制端口,两个bulk(批量)端口,分别为in,out),想将其模拟成标准的HID设备,并用标准的HID 接口来读、写数据。但是这时有另一个驱动模块也会通过HID 标准接口来读取同一个bulk口数据,一直没有想通如何区分开这两个请求,立贴为证,解决了第一时间来分享详细思路和解决方法,也请了解此方面的大神们,多多指教,不甚感激......
2013-11-05 17:14:51
7050
原创 C++中的前置声明(Forward Declaration)
今天写模块类文件的一个收获是,在定义头文件时,能依赖前置声明的就不要依赖定义,同时在适当的情况下应该用类型的前置声明来减少头文件的导入。例如,在头文件中定义类的一个指针成员时,该指针是工程中另外定义的类型classAccount的一种指针Account*m_Account;。那么在该头文件的类声明之前加上前置声明:[cpp] view plaincopyprint?
2013-03-26 13:51:30
993
转载 java synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchron
2013-02-16 13:46:28
543
转载 Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制。一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制。并且此种方式忽略了底层的数据存储实现,ContentProvider提供了一种统一的通过Uri实现数据操作的方式。其步骤为: 1. 在当前应用程序中定义一个ContentProvider。 2. 在当前应用程序的AndroidMani
2012-12-25 14:28:21
570
转载 Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data//shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的
2012-12-25 14:27:32
641
转载 Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特
2012-12-25 14:26:37
603
转载 Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider。 SQLite: SQLit
2012-12-25 14:25:24
600
转载 【转】Android学习笔记——hashmap、arraylist(vector)与listview的应用
有很多时候,我们只需要处理小量的数据,这个时候我们就不必要用SQLite啦,我们可以用hashmap来进行存储,然后用listview来显示。 首先。我们需要定义xml文件,在里面定义listview: 然后定义listview里面每一项的布局,即我这里的lvhashmap.xml文件: 然后再生成ArrayList或者vector对象,用来存储数据。ArrayLis
2012-07-26 10:09:26
925
原创 android中相对布局(realitive_layout)属性详解
第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android
2012-07-23 16:23:21
1444
原创 Android开发中wrap_content和fill_parent的区别
1、wrap_content:一般用于编辑框,主要指编辑框的大小随着内容的变化而变化,这样用来保证显示框中的所有内容。 2、fill_parent:指设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
2012-07-23 16:05:27
1058
原创 VC的调试中,AssertValid和Dump函数的应用(转)
VC的调试中,AssertValid和Dump函数的应用(转)标签:我记录我的校园学习公社分类:Technic概括的讲,AssertValid函数是用来判断表达式的合法性或正确性,如果不正确或不合法则终止程序并返回相应的提示信息 <br /> 如AssertValid(t==0);//用来判断t是否等于0,如果t!=0则终止程序 <br /> Dump函数一般用来显示debug信息的,其函数中的内容一般在debug时,在debug窗口中才能看到。 <br /> CObject::AssertVal
2011-03-20 10:18:00
512
转载 VC的调试中,AssertValid和Dump函数的应用(转)
VC的调试中,AssertValid和Dump函数的应用(转)标签:我记录我的校园学习公社分类:Technic概括的讲,AssertValid函数是用来判断表达式的合法性或正确性,如果不正确或不合法则终止程序并返回相应的提示信息 <br /> 如AssertValid(t==0);//用来判断t是否等于0,如果t!=0则终止程序 <br /> Dump函数一般用来显示debug信息的,其函数中的内容一般在debug时,在debug窗口中才能看到。 <br /> CObject::AssertVal
2011-03-20 10:15:00
504
原创 树形控件创建的一些基础知识
<br /><br />树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。MFC中使用CTreeCtrl类来封装树形控件的各种操作。通过调用<br />BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些树形控件的专用风格: <br /> <br />TVS_HASLINES 在父/子结点之间
2011-02-24 19:58:00
704
原创 MFC一路走来------路径层概念的理解
<br />MFC一路走来------路径层概念的理解<br />在MFC中,路径层主要运用于在窗口中绘图。 学过Photoshop的同学都知道,我们在设计一张海报时,可能会用到多张图片进行合成,而在合成之前是要对每张图片进行各自处理的。这个时候我们就要给每一张图片定制一个它独有的处理空间---路径层。在各个独立的空间---路径层上,我们对每张图片进行处理而互相不受影响。 类似地,MFC中,在一块窗口上我们也可以定制多个路径层并在各个路径层上进行绘图或输出字符的操作。 MFC中,我们利用CDC类
2010-10-26 18:02:00
1638
饭否 完整源代码 (android开发学习经典)
2012-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人