Driver Development
Driver Development
书接上回,今天继续分析双误异常导致的蓝屏。上次说到因为发生双误,CPU动用硬件的任务切换机制,切换到了专门用于处理双误异常的新线程。在分析了TSS结构和栈回溯中的TSS信息后,我们找到了切换回本来触发双误线程的方法,也就是执行.tss 28命令。
0: kd> .tss 28eax=f655d5d4 ebx=af0d4180 ecx=00000000 edx=af0d2081 esi=80460dd0 edi=f655d7d4eip=aebc6af2 esp=f655cfb8 ebp=f655d7dc
更多...
在从Hibernate恢复时,发生D1蓝屏,蓝屏的基本信息为:
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)An attempt was made to access a pageable (or completely invalid) address at aninterrupt request level (IRQL) that is too high. This is usuallycaused by drivers using improper addresses.If
更多...
在Vista之前,NTLDR是Windows操作系统的加载程序,它负责将CPU从实模式切换为保护模式,加载内核文件和启动类型的驱动程序,然后把执行权交给内核文件的入口函数,即KiSystemStartup。
从要完成的任务角度来看,NTLDR内部又分为两个部分,一部分负责接受执行权,做模式切换,硬件检查,即启动的准备工作,这部分通常称为boot;另一部分负责加载内核文件,并为内核的运行做必要的准备,通常称为OsLoader。
Vista将以上两个部分分成两个独立的程序文件,即BootMgr和WinLoad.exe。下图描述了BootMgr和WinLoad的相互关系和它们在启动过程中的作用。
更多...
Alex是ReactOS的设计者之一。以下是ReactOS网站上他的简介(http://www.reactos.org/wiki/index.php/Alex_Ionescu):
Early Life
Alex Ionescu was born on April 26th, 1986, in the city of Bucharest, RomaniaSon of a doctor and an engineer, he took up a passion with computers at
更多...
每个线程的内核态栈与用户态栈有着很多不同。内核栈是分配在内核地址空间中的,这注定其大小要受到很多限制。
How do I keep my driver from running out of kernel-mode stack?
The kernel-mode stack is a limited storage area that is often used for information that is passed from one function to another as
更多...
想知道关于WinFS开发的一些内幕信息么?想了解WinFS开发的最新情况么?WinFS团队的BLOG是寻找这些问题答案的不二选择。
以下两篇特别值得推荐:
Monday, June 26, 2006 8:26 PM
Update to the Update
Hi. Wow there has been a lot of, let’s say, interest in the posting Friday. I knew there would be interest, and I knew
更多...
我想通过上面这个标题,记下调试中的一些趣事或有意义的细节。因为时间关系,这些小文章可能很简短,只是个简单的记录还来不及寻求更多深层的原因。
Detach Kernel Debugger
因为我经常是用我的笔记本电脑(Debugger)来调试另一台机器(Debugge). 所以每天下班时,如果调试还没有结束. 我就只好把Debugger detach下来, 第二天再继续. 有两种方法可以把WinDbg和被调试的机器分离开.
一种方法是让Debuggee在那里"死等"一夜. 具体做法是通过WinDbg的Debug菜单上的Detach
更多...
Where do "checked" and "free" come from?
By Larry Osterman
People who have MSDN or the DDK know that Windows is typically built in two different flavors, "Checked" and "Free". The primary difference between the two is that the "checked" build
更多...
大家知道,DDK公开了两个内核API用于产生BSOD,分别是KeBugCheck()和KeBugCheckEx()。其原型分别如下:
VOID KeBugCheck(IN ULONG BugCheckCode );
VOID KeBugCheckEx(IN ULONG BugCheckCode, IN ULONG_PTR BugCheckParameter1,
更多...
对于从事Windows驱动开发的朋友,或者是对Windows内核感兴趣的朋友,以下几个BLOG值得经常看看!
1,Kernel Mustard by Steve Dispensa link: http://kernelmustard.com/category/ddk/
他以前的BLOG地址为:http://msmvps.com/blogs/kernelmustard/default.aspx
2,Larry Osterman's WebLog - Confessions of an
更多...
今年一月份起,Channel9陆续访谈了一些微软内部的高级设计师和架构师,每次探讨Windows内核的一个方面。尽管录像和采访水准比.NetShow差很多,但是正因为采访的场合就在办公室,气氛也很随意,又很有针对性,因此谈的内容还是很值得一看的。建议大家茶余饭后边听边消遣一下。
Surendra Verma: Vista Transactional File System
42:35
12/2/2005
8
9,379
Singularity Revisited
更多...