- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 第三章 系统运作机制
对于运行在 IRQL 等于或者大于dpc dispatch leve 的code 有两个规则必须遵守:1) 不能等待任何一个object。 因为这个操作会触发系统的scheduler去选择另外一个thread执行,但是系统的scheduler也是在dpc dispatch le
2011-07-26 15:41:40
687
原创 第二章 系统架构
1) Widnows的环境子系统一共有三个: os/2,POSIX,和widnows。 其中windows子系统是最常用的。 csrss.exe就是windows子系统运行在的user mode的进程,win32k.sys是运行在Kernel mode的部分。 2) csrss是
2011-07-19 15:17:52
542
原创 XP embedded 如何从零开始?
一个基本的原则: 一切起始于 windows PE 和 tap.exe. windows PE 是windows 预安装环境,就是一个不用安装就可以运行起来的windows 操作系统,一般从光盘启动,但是也可以通过ultraISO做成U盘启动。 网上有很多winPE 的ISO镜像文件可以下载,基本上都是个人基于微软标准的winPE二次开发定制的,定制winPE的工具是微软的AI
2011-06-20 14:02:00
1382
原创 如何在map文件中生成行信息?
<br /> <br /> <br />在 VC 中,我们可以按下 Alt+F7 ,打开“Project Settings”选项页,选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要选择 Link 选项卡,在最下面的 Project Options 里面输入: /mapinfo:lines 和 /map:PROJECT_NAME.map 。最后按下 F7 来编译生成 EXE 可执行文件和 MAP 文件。 <br /> <br /> <br />/Zd
2011-05-16 17:43:00
704
原创 如何在map文件中生成行信息?
<br /> <br /> <br />在 VC 中,我们可以按下 Alt+F7 ,打开“Project Settings”选项页,选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要选择 Link 选项卡,在最下面的 Project Options 里面输入: /mapinfo:lines 和 /map:PROJECT_NAME.map 。最后按下 F7 来编译生成 EXE 可执行文件和 MAP 文件。 <br /> <br /> <br />/Zd
2011-05-16 17:43:00
829
原创 pdb文件与dll/exe文件的关联。
基本知识:在build dll/exe文件和pdb文件的时候,会有一个GUID被写入dll/exe文件和pdb文件中去,调试器根据这个GUID来判断二者是否匹配。每次重新build的时候,GUID都会不同,即使源代码没有变化。对于一个dll或者exe文件,调试器是如何寻找对应的pdb文件的呢? 他并不是寻找具有相同文件名的pdb文件,而是在PE头里面寻找。每一个dll/exe文件都有一个PE头,其中有一项是规定了pdb文件的名称的。最简单的方法是用一个二进制编辑器打开dll/exe文件,搜索pdb即可。当
2011-05-12 12:03:00
5263
原创 windows 平台如何实现snmp agent?
<br /> <br />snmp agent 就是snmp的 service,也就是被管理的那台设备上要跑的一个服务。<br /> <br /> <br />当需要自己的某台设备上,可能是windows 主机,也可以能是嵌入式设备(wince),需要实现一些自定义的mib库的时候。可以有两种方法:<br /> <br />1) windows本身就自带snmp agent,而且提供了扩展接口(agent extension)。我们自己只需要按照它规定的接口实现一个dll就可以了。但是到目前为止只支持nat
2011-04-25 19:52:00
2457
原创 c#如何操作excel ?
<br /> <br />根据我目前的了解,基本上有两种方法:<br /><br /><br />1) 自己按照excel文件的格式写文件。这种方法需要知道excel文件的存储格式,比较麻烦。但是其中最简单的是csv文件,也就是逗号分隔的文件,缺点是只能是纯文本文件。<br /><br /><br />2) 第二种方法是使用互操作类,Microsoft.Office.Interop.Excel,这个不是。net自带的,需要安装vsto,也就是vistual studio tools for office。
2011-04-22 12:17:00
1539
原创 how to get callstack at runtime?
<br />相关的api : getthreadcallstack<br /> <br />如何把函数地址传换成函数名: 参考:C:/WINCE600/PRIVATE/WINCEOS/COREOS/SHELL/mapfile.c<br /><br />
2011-04-15 17:59:00
605
原创 程序员的晚餐
下午6:19分,已经过了下班时间,程序员木子还在专心致志的盯着电脑屏幕。 “吃饭了”,从背后传来了托托的喊声。“嗯“,木子只是答应了一声,并没有回头,显然他的思绪还沉浸在对code的分析之中,不能完全对托托做出响应。“走吧,吃完饭在解bug,一样的“,托托在身后拍了拍木子的肩膀,顺便扫了一眼满屏的c#代码。“好的“,木子终于转身,看了一下托托,说,“就你一个人啊,他们呢“。“我
2010-01-02 03:13:00
1094
转载 Event ID 1041 source userenv
Question:Hello Can anyone make sense of this error. I searched Ms support site and didnt find anything that pertained to this ID number. Here is the full error The description for Event ID (
2007-07-01 21:37:00
2893
原创 WinCE 5.0 内核启动过程
本文简单描述一下wince5.0内核的启动流程,以mips cpu为例。msdn有一篇文章叫做Microsoft Windows CE 5.0 Board support Package,Boot Loader,and Kernel Startup Sequence非常不错,可以参考。1. startup.首先,内核最先执行的代码位于oal当中,叫做startup,这段代码由微软留给开发者定制
2007-06-29 12:57:00
5336
1
转载 How to get a handle to a device driver returned by device manager?
Q:Hi, all.I have a question that is if a driver was loaded by calling ActivateDevice() in device manager, and then I want to unload it in my app by calling DeActivateDevice(), how to get the
2005-09-22 11:08:00
1594
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人