Archive for 01月, 2007
-
Windows 文件过滤驱动经验总结
星期二, 01月 30th, 2007
看了 ChuKuangRen 的第二版《文件过滤驱动开发教程》后,颇有感触。我想,交流都是
建立在平等的基础上,在抱怨氛围和环境不好的同时应该先想一想自己究竟付出了多少?
只知索取不愿付出的人也就不用抱怨了,要怪也只能怪自己。发自己心得的人无非是两种
目的,一是引发一些讨论,好纠正自己错误的认识,以便从中获取更多的知识使自己进步
的更快。二是做一份备忘,当自己遗忘的时候能够马上找到相关资料。我这里也总结了近
几年做文件过滤驱动时所积累下来的一些小小经验,这分笔记也是看了 ChuKuangRen 的
教程后,临时想到的一小部分而已,是想到哪写到哪,不是很全,如果以后再回想起什么
也会不断补充。因其工作原因,近段时间在 SOLARIS 驱动与 Linux 内核方面投入的精
力比较多,Windows 下的文件过滤驱动一直也没有怎么去碰,所以最后还是那句老话
FIXME。
1、获得文件全路径以及判断时机
除在所有 IRP_MJ_XXX 之前自己从头创建 IRP 发送到下层设备查询全路径外,
不要尝试在 IRP_MJ_create 以外的地方获得全路径,因为只有在 IRP_MJ_create
中才会使用 ObcreateObject() 来建立一个有效的 FILE_OBJECT。而在 IRP_READ
IRP_WRITE 中它们是直接操作 FCB (File Control Block)的。
2、从头建立 IRP 发送关注点
无论你建立什么样的 IRP,是 IRP_MJ_create 也好还是 IRP_MJ_DIRECTORY_CONTROL
也罢,最要提醒的就是一些标志。不同的标志会代来不同的结果,有些结果是直接
返回失败。这里指的标志不光是 IRP->Flags,还要考虑 IO_STACK_LOCATION->Flags
还有其它等等。尤其是你要达到一些特殊目的,这时候更需要注意,如 IRP_MN_QUERY_DIRECTORY,
不同的标志结果有很大的不同。
3、从头建立 IRP 获取全路径注意点
自己从头建立一个 IRP_MJ_QUERY_INFORMATION 的 IRP 获取全路径时需要注意,
不仅在 IRP_MJ_create 要做区别处理,在 IRP_MJ_CLOSE 也要做同样的处理,
否则如果目标是 NTFS 文件系统的话可能产生 deadlock。如果是 NTFS 那么在
IRP_MJ_CLEANUP 的时候也需要对 FO_STREAM_FILE 类型的文件做同样处理。
4、获得本地/远程访问用户名(域名/SID)
方法只有在 IRP_MJ_create 中才可用,那是因为 [...] -
帮朋友写的招聘信息
星期六, 01月 27th, 2007
(1)1个设计师
1. 学历不限;
2. 良好的敬业精神,学习能力和沟通能力;
3. 两年以上大型网站架构经验;
4. 有很强电子商务安全意识;
5. 有大型网站架构能力,
6. 沟通能力强,刻苦、敬业、有上进心,有良好的团队合作精神,富有编写项目预研、规划、投标等文档的编写经验。
(2)1个专门美工
1. 学历不限;
2. 良好的敬业精神,学习能力和沟通能力;
3 [...] -
Windows内核技术的精华站点
星期四, 01月 25th, 2007
Windows内核技术的精华站点
[code]
Web站点:
www.osronline.com,技术含量很高的Windows驱动开发站点,该站点的list基本上覆盖了所有Windows驱动开发的常见问题,强烈推荐;
www.microsoft.com/whdc,微软的驱动开发资源主页,可以获取很多官方资料;
www.wd-3.com/,该站点收集了一些比较好的Windows驱动开发方面的文章和示例代码;
www.sysinternals.com/,Inside Windows 2000的作者之一创建的站点,有很多内核方面的工具和示例代码;
[s]
www.driverdevelop.com/forum[/s],国内最大的驱动开发技术论坛;
www.rootkit.com,顾名思义,该站点上有很多Windows内核rootkit的文章和代码;
www.ndis.com,NDIS驱动开发的资源站点;
www.pcausa.com,NDIS的各类驱动的相关资源;
www.wdmaudiodev.com/,WDM 音频驱动开发的资源站点。
个人站点:
blogs.msdn.com/doronh/,A Hole In My Head
www.sysinternals.com/Blog/,大名鼎鼎的Windows Internals的作者Mark的BLOG
kernelmustard.com/category/ddk/,A blog by Steve Dispensa about Microsoft Windows development, focused on kernel-mode driver development, the Windows DDK, WDK, and related tools.
blogs.msdn.com/peterwie/,Peter Wieland’s thoughts on Windows driver development
[/code] -
冷冷清清,一片萧条.
星期四, 01月 25th, 2007
闲着无聊,把UBUNTU装上了圆体字,删除了微软雅黑!
==========================================
[code]
wget http://download.ubuntu.org.cn/software/VeraSansYuanTi.tar.gz
tar -xzvf VeraSansYuanTi.tar.gz
sudo mv VeraSansYuanTi /usr/share/fonts/
sudo fc-cache -f
sudo cp /etc/fonts/fonts.conf /etc/fonts/fonts.conf.old
sudo cp /usr/share/fonts/VeraSansYuanTi/fonts.conf /etc/fonts/
重启X
[/code] -
Smarty配置
星期二, 01月 2nd, 2007
资料来源: php.smarty.dev开发组
原语言:英文/English
原作者:jmartinez@controlaircorp.com
最简明教程”。按照这个教程,智商大于零的用户都能顺利配置好Smarty!
本文适用平台: Windows系统+IIS/APACHE+PHP4/PHP5
在开始本文之前,首先得确定你的web服务器和PHP已经配置完毕并工作正常。
1、下载Smarty包
可以从官方站点下载:http://smarty.php.net
2、解压缩Smarty包并找到合适的位置存放.解压之后文件夹名可能是Smarty.x.x.x,把它修改成smarty(此处只为将来使用方便起见,并非必须),然后将含有Smarty文件的文件夹拷贝到某一个目录下(建议不要放在你的网站目录下,这样别人可以通过路径访问到这些文件,如果非要放在网站目录下,那最好目录的名字起的生僻一些。这些文件即使被别人访问到,也未必造成安全问题,但是一切都为了以防万一)。
在文章的下面内容中,我们都是假设你的文件放在了d:\smarty下。
3、找到你的php.ini配置文件(可以通过运行phpinfo()查看此文件路径,但一般都放在系统目录下)修改php.ini的include_path选项,把sma
rty的库文件路径加上,比如:
include_path = “.;d:\smarty\libs”
提醒一下,php.ini中一共有两处include_path,一处是Unix下使用的,一处是windows下使用的,要修改windows下使用的:
————————————————————-
; Windows: “\path1;\path2″
include_path = “.;c:\php4\includes;d:\smarty\libs”
————————————————————–
4、重新启动IIS/APACHE,重新启动的目的是使刚才的修改生效。
重新启动的方法很简单,APACHE直接restart即可。对于IIS,可以用net stop iisadmin命令关闭iis,然后用net start w3svc命令启动,就
完成了重新启动。如果实在不会重启,就干脆重新启动计算机,这样最省事。
5、将第2步中解压缩的文件Smarty做WEB共享或者将WEB目录的路径径直指向Smarty目录下:
然后再在这个Smarty目录下创建2个文件夹,templates和configs。
创建完成之后如下:
(你的网站目录)/Smarty/templates (这个目录用来存放模版)
(你的网站目录)/Smarty/configs (这个目录用来存放一些配置信息)
注意:你的网站目录建议设置为绝对路径。
6、再在Smarty目录下再创建两个文件夹,名字分别叫:smarty_cache和smarty_templates_c。为什么刚才不一起创建呢?因为这个步骤在原来的官方资料中没有,而我在配置过程中发现,如果没有这两个文件夹,smarty将无法工作。……
版本有出入的原因。但是只要配置这两个目录,Smarty便可以顺利工作。因此建议进行配置。
7、这时候你别忘了把我们上面从一开始到现在创建的四个文件夹的权限设置好。当然还包括存放smarty的文件夹d:\smarty的权限,因为有的NTFS格式的系统有严格的权限规定,你的目录创建之后还得有足够的权限才能让web程序访问。一般来说win2000和win2003下采用NTFS分区格式的系统需要做这样的设定,具体方法是在文件夹上点击右键,在“属性”中打开“安全”标签,在里面列出了可以访问这个目录的用户列表,如果没有web访问权限,则需要添加,把Internet来宾帐户和启动IIS进程帐户两个帐户都添加上即可。如果觉得麻烦,可以直接将Everyone用户组添加上,允许任何用户访问。
8、这时候安装工作基本完成,可以进行第一个简单例子的测试:
在你的网站目录下建立 index.php文件,并且在smarty/templates/下建立index.tpl文件,分别输入以下代码
index.php