?? csdn_文檔中心_vxd技術漫談(2).htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0052)http://www.csdn.net/develop/Read_Article.asp?id=2834 -->
<!--內容開始//--><HTML><HEAD><TITLE>CSDN_文檔中心_VXD技術漫談(2)</TITLE>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK
href="CSDN_文檔中心_VXD技術漫談(2).files/csdn.css" rel=stylesheet></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<DIV align=center>
<STYLE>.title0 {
COLOR: #ffffff; FONT-FAMILY: arial; FONT-SIZE: 17px; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A.title2:link {
COLOR: #000000; TEXT-DECORATION: none
}
A.title2:visited {
COLOR: #000000; TEXT-DECORATION: none
}
A.title2:active {
COLOR: #ff0000; TEXT-DECORATION: none
}
A.title2:hover {
COLOR: #ff0000; TEXT-DECORATION: none
}
</STYLE>
<SCRIPT language=JavaScript>
<!--
function submitlog(sign)
{
var types=document.alogon.type.options[document.alogon.type.selectedIndex].value;
if (document.alogon.name.value!="" && document.alogon.pass.value!="")
{
if (types!="1")
document.alogon.action="http://www.csdn.net/member/logon.asp";
else
document.alogon.action="http://expert.csdn.net/member/logon.asp";
if(sign)
document.alogon.submit();
//return true;
}
else
{
if (document.alogon.name.value=="")
alert("請輸入用戶名!");
if (document.alogon.pass.value=="")
alert("請輸入密碼");
return false;
}
return true;
}
function GetMyPass()
{
if (document.alogon.name.value!="")
{
document.alogon.action="http://www.csdn.net/member/getpass.asp";
document.alogon.submit();
}
else
{
alert("請在姓名輸入框里輸入用戶名或注冊EMAIL!");
}
}
// -->
</SCRIPT>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD bgColor=#004d99 height=25 width=20></TD>
<TD bgColor=#004d99> <A
href="http://www.csdn.net/member/login.asp"><FONT color=#ffff33>登
錄..</FONT></A> <A href="http://www.csdn.net/member/zc.asp"
target=_blank><FONT color=#ffff33>[注 冊]</FONT></A> <A
href="http://www.csdn.net/member/login.asp"><FONT
color=#ffff33>忘記密碼</FONT> </A> <A
href="http://www.csdn.net/member/logonout.asp"><FONT
color=#ffff33>注銷登錄</FONT> </A></TD>
<TD align=right bgColor=#990000 width=20><IMG height=25
src="CSDN_文檔中心_VXD技術漫談(2).files/top_1.gif" width=20></TD>
<FORM action=http://www.csdn.net/search_ok.asp method=post target=_blank>
<TD align=right bgColor=#009999 width=250><FONT color=#ffffff><FONT
color=#ffffff><INPUT class=FormText_1 name=search size=15> <SELECT
class=FormText_1 name=type> <OPTION selected value=1>新聞標題</OPTION>
<OPTION value=2>軟件名稱</OPTION> <OPTION value=3>商品名稱</OPTION> <OPTION
value=4>文檔標題</OPTION> <OPTION value=6>職位名稱</OPTION></SELECT> </FONT><INPUT class=td3 name=Submit type=submit value="搜 索">
</FONT></TD></FORM></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD align=middle height=70 width=150><IMG height=60
src="CSDN_文檔中心_VXD技術漫談(2).files/csdn.gif" width=120></TD>
<TD align=middle width=470>
<SCRIPT language=javascript>
var rand = Math.random().toString();
var ordval = parseInt(rand.substring(2,4));
function Showad(width)
{
if(width=='468')
{
document.write("<a href='http://www.dearbook.com.cn/' target='_blank'><OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' WIDTH=468 HEIGHT=60><PARAM NAME=movie VALUE='/adv//468x60.swf'> <PARAM NAME=quality VALUE=high> <EMBED src='/adv//468x60.swf' quality=high border=0 WIDTH=468 HEIGHT=60 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'></EMBED></OBJECT></a>");
return;
}
if(width=='120')
{
document.write("<a href='http://www.csdn.net/csdn/csdnClick.aspx?ad=Oracle-button1&adurl&adurl=http://www.oracle.com/global/cn/documentation/10g/index.html?content.html' target='_blank'><img src='/adv/develop/grid_computing_120x60_text1.gif' width=120 HEIGHT=60 border=0></a>");
return;
}
return;
}
Showad('468')</SCRIPT>
</TD>
<TD align=middle width=150>
<SCRIPT>Showad('120')</SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD align=middle bgColor=#000000 colSpan=2 height=1 width=770></TD></TR>
<TR>
<TD align=middle bgColor=#004d99 height=28 width=150><FONT
class=title0>csdn.net</FONT></TD>
<TD align=middle width=620>
<SCRIPT src="CSDN_文檔中心_VXD技術漫談(2).files/navigation1.js"></SCRIPT>
</TD></TR>
<TR>
<TD align=middle bgColor=#000000 colSpan=2 height=1
width=770></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD bgColor=#f3f9fc height=23 width=10></TD>
<TD bgColor=#f3f9fc>
<MARQUEE onmouseout=this.start() onmouseover=this.stop() scrollAmount=5
scrollDelay=80>
<SCRIPT src="CSDN_文檔中心_VXD技術漫談(2).files/marquee.htm"></SCRIPT>
</MARQUEE></TD>
<TD align=right bgColor=#f3f9fc width=101>
<SCRIPT>document.write("<img src=http://count.csdn.net/count/pageview1.asp?columnid=4&itemid=11 border=0 width=0 height=0>");</SCRIPT>
<B>
<SCRIPT language=JavaScript>
<!--
document.ns = navigator.appName == "Netscape"
tmpDate = new Date();
date = tmpDate.getDate();
month= tmpDate.getMonth() + 1 ;
if(document.ns)
{
year1=tmpDate.getYear()
year= year1.toString().substr(1,2);
}
else
year= tmpDate.getYear();
document.write(year);
document.write(".");
document.write(month);
document.write(".");
document.write(date);
// -->
</SCRIPT>
</B> </TD></TR>
<TR bgColor=#999999>
<TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
<SCRIPT src="CSDN_文檔中心_VXD技術漫談(2).files/microsoft.js"></SCRIPT>
</TD>
<TD align=middle width=620>
<TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
<TBODY>
<TR bgColor=#ffffff>
<TD align=middle height=10 width=50></TD>
<TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A
href="http://www.csdn.net/develop/">文檔中心</A> - <FONT
color=#003399>Visual C++</FONT> </TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>標題</FONT></TD>
<TD><B> VXD技術漫談(2)</B> silver(轉貼)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>關鍵字</FONT></TD>
<TD width=500> VXD技術漫談(2)</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>出處</FONT></TD>
<TD height=10> <A
href="http://home.kzinfo.net/getc/200012/20001227034.htm">http://home.kzinfo.net/getc/200012/20001227034.htm</A></TD></TR>
<TR>
<TD align=middle height=10></TD>
<TD height=10></TD></TR></TBODY></TABLE><!--文章說明信息結束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>
<DIV align=center><FONT size=2><B><FONT
size=3>VXD技術漫談(2)</FONT></B></FONT></DIV>
<DIV><!--jcstart--> VxD的明天依然美好嗎?<BR><BR> 1996年的Windows
Hardware Engineering
Conference(WinHEC)會議上,Microsoft宣布了一種新的Windows設備驅動程序模型——Win32 Driver
Model(WDM)。這種新的設備驅動程序模型將成為Windows 2000(即Windows NT
5.0)的核心。<BR><BR> 這個消息令從事Windows設備驅動程序(VxD)開發的人感到沮喪(雖然大家早已預料到Windows系列與Windows
NT系列最終將走到一起)。WDM的浮出水面把一個吃盡苦頭的VxD開發者又推到了一個新的起跑線上。如果你曾去DDK的匯編代碼里觀光過,你一定可以體會這個消息對VxD開發者是個沉重的打擊,而對于Windows
NT設備驅動程序(Kernel Mode Driver)者來說,卻是另一番心情——因為WDM基本等于Kernel Mode
Driver+Plug and
Play。<BR><BR> VxD將讓位于WDM,現在令我們欣慰的是Microsoft宣布Windows 98(Windows
98支持VxD)可能會堅持到200X年,Windows
2000的誕生也許在2000年之后。在這期間,掌握VxD技術的你還是可以主動要求老板給你加薪的。即使到了WDM一統天下之時,也不用灰心,因為無論是VxD還是WDM,都要求開發人員對計算機硬件有著全面而細致的了解。通過VxD的鍛煉,你至少熟悉了計算機的硬件資源并對保護模式有了比較深刻的認識,這些東西都是將來從事WDM開發的硬功夫。<BR><BR> 好了,該說說Windows
NT了。在Windows NT中,80386保護模式的“保護”比Windows
95中更堅固,這個“鍍金的籠子”更加結實,更加難以打破。在Windows 95中,至少應用程序I/O操作是不受限制的,而在Windows
NT中,我們的應用程序連這點權限都被剝奪了。<BR><BR> Windows NT的驅動程序模型與Windows
3.1、Windows 95是截然不同的。所以說,如果有人告訴你,他的運行Windows
NT的機器被CIH破壞了,你可以充一回專家,教訓教訓他:“這是不可能的,記住,CIH利用的是VxD技術,而VxD在Windows
NT中是跑不動的”。<BR><BR> 在Windows NT中,存在三種Device
Driver:<BR><BR> 1.“Virtual device Driver” (VDD)。通過VDD,16位應用程序,如DOS
和Win16應用程序可以訪問特定的I/O端口(注意,不是直接訪問,而是要通過VDD來實現訪問)。<BR><BR> 2.“GDI
Driver”,提供顯示和打印所需的GDI函數。<BR><BR> 3.“Kernel Mode
Driver”,實現對特定硬件的操作,比如說CreateFile, CloseHandle (對于文件對象而言), ReadFile,
WriteFile, DeviceIoControl 等操作。“Kernel Mode Driver”還是Windows
NT中唯一可以對硬件中斷和DMA進行操作的Driver。SCSI miniport Driver和 網卡NDIS
Driver都是Kernel Mode Driver的一種特殊形式。<BR><BR>好了,就說到這里吧,對于Kernel Mode
Driver我也知之甚少。<BR><BR> 如果你對Windows設備驅動程序開發有興趣的話,建議你去如下的Web站點去逛逛。<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#6<BR><BR>
Vireo Software (VtoolsD) home
page<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#7<BR><BR>
Dan Norton"s DDK resource
page<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#8<BR><BR>
Microsoft home
page<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#9<BR><BR>
O"Reilly Associates home
page<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#10<BR><BR>
Nu-Mega Technologies (Soft-ICE) home
page<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#11<BR><BR>
Windows Hardware Technical Information for IHVs and
OEMs<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#12<BR><BR>
Blue Water Systems (WinRT) home
page<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#13<BR><BR>
Universal Serial Bus Home
Page<BR><BR> http://hejiasheng.363.net/tppmsgs/msgs0.htm#14<BR><BR>
DDK
annotations</DIV><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>對該文的評論</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文檔中心_VXD技術漫談(2).files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要評論</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你沒有登陸,無法發表評論。 請先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=2834">登陸</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注冊</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">網站簡介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">廣告服務</A> - <A
href="http://www.csdn.net/map/map.shtm">網站地圖</A> - <A
href="http://www.csdn.net/help/help.asp">幫助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">聯系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文檔中心_VXD技術漫談(2).files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百聯美達美公司 版權所有 京ICP證020026號</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--內容結束//--><!--結束//--></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -