📄 过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.htm
字号:
a58117 = ContentsTree.AddNode(a0, "Com技术", "article_58117.html");a58353 = ContentsTree.AddNode(a0, "软件工程", "article_58353.html");a58355 = ContentsTree.AddNode(a58353, "UML", "article_58355.html");a58356 = ContentsTree.AddNode(a58353, "设计模式", "article_58356.html");a58586 = ContentsTree.AddNode(a0, "心情日记", "article_58586.html");a84044 = ContentsTree.AddNode(a0, "汉化破解", "article_84044.html");a101427 = ContentsTree.AddNode(a0, "Mobile开发", "article_101427.html"); p3428 = ContentsTree.AddNode(p0, "GG收藏", "photo_3428.html"); f10642 = ContentsTree.AddNode(f0, "Linux下载大全", "links_10642.html");f7671 = ContentsTree.AddNode(f0, "音乐娱乐影视", "links_7671.html");f7672 = ContentsTree.AddNode(f0, "java精华站点", "links_7672.html");f9939 = ContentsTree.AddNode(f0, "ONLINE手册", "links_9939.html");f10693 = ContentsTree.AddNode(f0, "EBooks下载", "links_10693.html");f7729 = ContentsTree.AddNode(f0, "blog地址", "links_7729.html");f7668 = ContentsTree.AddNode(f0, "视频下载链接", "links_7668.html");f10709 = ContentsTree.AddNode(f0, "VC++ study websites", "links_10709.html");f10871 = ContentsTree.AddNode(f0, "汇编语言学习站点", "links_10871.html");f12315 = ContentsTree.AddNode(f0, "软件下载", "links_12315.html");f12474 = ContentsTree.AddNode(f0, "北京生活", "links_12474.html");f13021 = ContentsTree.AddNode(f0, "日语学习网站", "links_13021.html");f13536 = ContentsTree.AddNode(f0, "软件外包", "links_13536.html");f14823 = ContentsTree.AddNode(f0, "图片", "links_14823.html"); //document.write(ContentsTree.GetHTMLCode());document.getElementById("lefttree").innerHTML=ContentsTree.GetHTMLCode();</SCRIPT>
</TD></TR>
<TR>
<TD height=5></TD></TR></TBODY></TABLE><BR><A
href="http://blog.chinaunix.net/u/rss.php?id=21790"><IMG alt=""
src="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/xmlrss.gif" border=0></A>
<BR><BR></TD>
<TD width=10></TD>
<TD vAlign=top width=685>
<TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0
width="100%" align=center border=0>
<TBODY>
<TR>
<TD align=middle bgColor=#bbf0ff><BR><FONT style="FONT-SIZE: 14pt"
color=#000066><B>过滤驱动开发学习的收获(一) </B></FONT></TD>
<TR>
<TD>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#bbf0ff
cellSpacing=1 cellPadding=0 width="100%" border=1>
<TBODY>
<TR>
<TD align=middle>
<TABLE
style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word"
cellSpacing=0 cellPadding=0 width=650 border=0>
<TBODY>
<TR>
<TD align=middle>
<TABLE
style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word"
cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=650>
<DIV id=art style="MARGIN: 15px">
<DIV>
<P><STRONG><SPAN
style="FONT-SIZE: 14pt">开发环境搭建:</SPAN></STRONG></P>
<P>1、虚拟机里的XP(因为怕自己电脑被搞崩溃,呵呵,毕竟刚接触)<BR>2、IFS DDK
for Windows 2003(过去自己一直死脑筋,认为一定要用XP下的IFS
DDK,哪知网上找了半天,都没找到可以下的链接。后来才知道:2003的IFS
DDK里已经包含2K和XP的了,里面还有2K和XP的BUILD环境)自己从电驴上拖吧:<A
tabIndex=-1
href="http://board.verycd.com/t135114.html"><FONT
color=#0000ff>http://board.verycd.com/t135114.html</FONT></A><BR></P>
<P><FONT color=#0000ff></FONT> </P>
<P><STRONG><SPAN
style="FONT-SIZE: 14pt">一些细枝末节:</SPAN></STRONG>【但往往不知道就很容易混淆】</P>
<P>1、IFS
DDK与DDK的关系:IFS=DDK+文件系统驱动支持,所以IFS下载后就不需要DDK了。(结果我们看的都是《Windows驱动开发技术详解》,里面只介绍了要安装DDK,白忙活了半天。。。不过也好,体验了一下HelloDDK和HelloWDM的编译和安装)<BR>2、DDK与WDM的关系:<BR>DDK
是指设备驱动程序开发包。<BR>WDM(Win32 Driver
Model),即Win32驱动程序模型,旨在通过提供一种灵活的方式来简化驱动程序的开发。(简而言之,我的看法就是提供给了你一种框架)<BR></P>
<P> </P>
<P><STRONG><SPAN
style="FONT-SIZE: 14pt">编译安装sfilter:</SPAN></STRONG></P>
<P>1、编译:Build Environments ->Windows Server
2003->Windows Server 2003 Checked (free)Build
Environment打开命令行窗口后,转到sfilter目录(里面有makefile和source文件),直接执行build命令。<BR><IMG
id=Code_Open_Image_214513 style="DISPLAY: none"
onclick="this.style.display='none'; document.getElementById('Code_Open_Text_214513').style.display='none'; getElementById('Code_Closed_Image_214513').style.display='inline'; getElementById('Code_Closed_Text_214513').style.display='inline';"
height=16
src="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/ExpandedBlockStart.gif"
width=11 align=top>
<DIV class=cnblogs_code><IMG
id=Code_Closed_Image_214607 style="DISPLAY: none"
onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_214607').style.display='none'; document.getElementById('Code_Open_Image_214607').style.display='inline'; document.getElementById('Code_Open_Text_214607').style.display='inline';"
height=16
src="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/ContractedBlock.gif"
width=11 align=top><IMG id=Code_Open_Image_214607
style="DISPLAY: inline"
onclick="this.style.display='none'; document.getElementById('Code_Open_Text_214607').style.display='none'; getElementById('Code_Closed_Image_214607').style.display='inline'; getElementById('Code_Closed_Text_214607').style.display='inline';"
height=16
src="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/ExpandedBlockStart.gif"
width=11 align=top><SPAN
class=cnblogs_code_Collapse
id=Code_Closed_Text_214607
style="DISPLAY: none">我的编译信息</SPAN><SPAN
id=Code_Open_Text_214607
style="DISPLAY: inline"><BR><SPAN
style="COLOR: #000000">C:\WINDDK\</SPAN><SPAN
style="COLOR: #800080">3790</SPAN><SPAN
style="COLOR: #000000">\src\filesys\filter\sfilter</SPAN><SPAN
style="COLOR: #000000">></SPAN><SPAN
style="COLOR: #000000">build<BR>BUILD: Adding </SPAN><SPAN
style="COLOR: #000000">/</SPAN><SPAN
style="COLOR: #000000">Y to COPYCMD so xcopy ops won</SPAN><SPAN
style="COLOR: #800000">'</SPAN><SPAN
style="COLOR: #800000">t hang.</SPAN><SPAN
style="COLOR: #800000"><BR></SPAN><SPAN
style="COLOR: #000000">BUILD: Object root </SPAN><SPAN
style="COLOR: #0000ff">set</SPAN><SPAN
style="COLOR: #000000"> to: </SPAN><SPAN
style="COLOR: #000000">==></SPAN><SPAN
style="COLOR: #000000"> objchk_wnet_x86<BR>BUILD: Compile and Link </SPAN><SPAN
style="COLOR: #0000ff">for</SPAN><SPAN
style="COLOR: #000000"> i386<BR>BUILD: Loading C:\WINDDK\</SPAN><SPAN
style="COLOR: #800080">3790</SPAN><SPAN
style="COLOR: #000000">\build.dat<IMG alt=""
src="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/dot.gif"><BR>BUILD: Computing Include file dependencies:<BR>BUILD: Examining c:\winddk\</SPAN><SPAN
style="COLOR: #800080">3790</SPAN><SPAN
style="COLOR: #000000">\src\filesys\filter\sfilter directory </SPAN><SPAN
style="COLOR: #0000ff">for</SPAN><SPAN
style="COLOR: #000000"> <BR><BR>files t<BR>o compile.<BR> c:\winddk\</SPAN><SPAN
style="COLOR: #800080">3790</SPAN><SPAN
style="COLOR: #000000">\src\filesys\filter\sfilter </SPAN><SPAN
style="COLOR: #000000">-</SPAN><SPAN
style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #800080">2</SPAN><SPAN
style="COLOR: #000000"> source files (</SPAN><SPAN
style="COLOR: #800080">6</SPAN><SPAN
style="COLOR: #000000">,</SPAN><SPAN
style="COLOR: #800080">551</SPAN><SPAN
style="COLOR: #000000"> lines)<BR>BUILD: Saving C:\WINDDK\</SPAN><SPAN
style="COLOR: #800080">3790</SPAN><SPAN
style="COLOR: #000000">\build.dat<IMG alt=""
src="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/dot.gif"><BR>BUILD: Compiling c:\winddk\</SPAN><SPAN
style="COLOR: #800080">3790</SPAN><SPAN
style="COLOR: #000000">\src\filesys\filter\sfilter directory<BR>Compiling </SPAN><SPAN
style="COLOR: #000000">-</SPAN><SPAN
style="COLOR: #000000"> sfilter.rc </SPAN><SPAN
style="COLOR: #0000ff">for</SPAN><SPAN
style="COLOR: #000000"> i386<BR>Compiling </SPAN><SPAN
style="COLOR: #000000">-</SPAN><SPAN
style="COLOR: #000000"> sfilter.c </SPAN><SPAN
style="COLOR: #0000ff">for</SPAN><SPAN
style="COLOR: #000000"> i386<BR>BUILD: Linking c:\winddk\</SPAN><SPAN
style="COLOR: #800080">3790</SPAN><SPAN
style="COLOR: #000000">\src\filesys\filter\sfilter directory<BR>Linking Executable </SPAN><SPAN
style="COLOR: #000000">-</SPAN><SPAN
style="COLOR: #000000"> objchk_wnet_x86\i386\sfilter.sys </SPAN><SPAN
style="COLOR: #0000ff">for</SPAN><SPAN
style="COLOR: #000000"> i386<BR>BUILD: Done<BR><BR> </SPAN><SPAN
style="COLOR: #800080">3</SPAN><SPAN
style="COLOR: #000000"> files compiled </SPAN><SPAN
style="COLOR: #000000">-</SPAN><SPAN
style="COLOR: #000000"> </SPAN><SPAN
style="COLOR: #800080">2183</SPAN><SPAN
style="COLOR: #000000"> LPS<BR> </SPAN><SPAN
style="COLOR: #800080">1</SPAN></SPAN></DIV>2、安装:直接运行sfilter目录下的sfilterInstall.cmd,然后选择一下sfilter.sys就可以了。<BR>
<P></P>
<P> </P>
<P><STRONG><SPAN
style="FONT-SIZE: 14pt">过滤驱动基本流程:</SPAN></STRONG></P>
<P>1、生成一个控制设备对象CDO<BR>2、设置IRP 分发例程<BR>3、设置FAST IO
分发例程<BR>4、编写SfFsNotification
回调例程<BR>5、调用IoRegisterFsRegistrationChange
注册SfFsNotification 回调例程<BR></P>
<P> </P>
<P>时间太忙,先写到这了!</P></DIV></DIV></TD></TR></TBODY></TABLE>
<P style="MARGIN: 5px; LINE-HEIGHT: 150%"></P></TD></TR>
<TR>
<TD height=25><FONT color=#000066> 发表于:
2008-12-15,修改于: 2008-12-15
23:06 已浏览215次,有评论0条</FONT> <A id=star title=推荐这篇文章
onclick="NewWindows(this.href);return false;"
href="http://blog.chinaunix.net/u2/star.php?blogid=21790&artid=1722292">推荐</A>
<A id=complaint title=投诉这篇文章
onclick="NewWindows(this.href);return false;"
href="http://blog.chinaunix.net/u2/complaint.php?blogid=21790&artid=1722292">投诉</A>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#bbf0ff cellSpacing=0
cellPadding=0 width="100%" align=center border=1>
<TBODY>
<TR>
<TD background="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/bg_line.gif"
height=28> <B>网友评论</B></TD></TR>
<TR>
<TD align=middle>
<TABLE style="COLOR: #0066cc; BORDER-COLLAPSE: collapse"
cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#bbf0ff cellSpacing=0
cellPadding=0 width="100%" align=center border=1>
<TBODY>
<TR>
<TD background="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/bg_line.gif"
height=28> <B>发表评论</B></TD></TR>
<TR>
<TD bgColor=#ffffff height=1></TD></TR>
<TR>
<TD align=middle bgColor=#ffffff><IFRAME name=comment
src="过滤驱动开发学习的收获(一) - 驱动开发 - 私のウェブサイト.files/comment.htm"
frameBorder=0 width=600
height=160></IFRAME></TD></TR></TBODY></TABLE><BR><BR></TD>
<TD width=10></TD></TR></TBODY></TABLE>
<TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=950
align=center border=0>
<TBODY>
<TR>
<TD height=50></TD></TR>
<TR>
<TD align=middle><BR>
<P>Copyright © 2001-2006 ChinaUnix.net All Rights Reserved<BR>
<P>感谢所有关心和支持过ChinaUnix的朋友们 <BR>页面生成时间:0.02043
<P><A href="http://www.miibeian.gov.cn/" target=_blank>京ICP证041476号</A>
</P></TD></TR></TBODY></TABLE></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -