摘 要:隨著我國科字技術(shù)體系的不斷健全,Windows操作系統(tǒng)應(yīng)用體系也在不斷的健全,在該系統(tǒng)應(yīng)用過程中,是運(yùn)用設(shè)備驅(qū)動(dòng)程序來滿足計(jì)算機(jī)的某些功能模塊的,為了更好的進(jìn)行設(shè)備驅(qū)動(dòng)程序的有效應(yīng)用,需要通過諸多的方法展開探究,從而實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)體系的優(yōu)化,以滿足當(dāng)下工作的開展,實(shí)現(xiàn)其各個(gè)方法的相關(guān)串聯(lián),提升綜合運(yùn)作效益,以滿足當(dāng)下工作的需要。
關(guān)鍵詞:設(shè)備驅(qū)動(dòng)程序;應(yīng)用模塊;探究應(yīng)用;分析總結(jié)
1 設(shè)備驅(qū)動(dòng)程序應(yīng)用環(huán)節(jié)的分析
為了確保操作系統(tǒng)的整體安全性及其穩(wěn)定性的提升,我們要進(jìn)行應(yīng)用程序可移植性的剖析,這就是進(jìn)行與之對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序的應(yīng)用,這是因?yàn)槭艿?Windows操作系統(tǒng)的程序應(yīng)用限制,這些硬件資源的調(diào)動(dòng)需要操作者運(yùn)作設(shè)備驅(qū)動(dòng)程序。通過對(duì)設(shè)備驅(qū)動(dòng)程序的應(yīng)用,可以實(shí)現(xiàn)硬件的有效操作,實(shí)現(xiàn)應(yīng)用程序與設(shè)備驅(qū)動(dòng)程序之間的良好通信,確保程序控制底層硬件設(shè)備應(yīng)用效率的優(yōu)化。這需要我們進(jìn)行相關(guān)具體應(yīng)用模塊的分析。
在該模式應(yīng)用過程中,需要通過對(duì)應(yīng)用程序的應(yīng)用,進(jìn)行設(shè)備驅(qū)動(dòng)程序與應(yīng)用程序的協(xié)調(diào)應(yīng)用。同時(shí)我們也要確保設(shè)備驅(qū)動(dòng)程序與應(yīng)用程序的協(xié)調(diào)。在上述環(huán)節(jié)的應(yīng)用過程中,為了達(dá)到我們的應(yīng)用需要,需要進(jìn)行相關(guān)函數(shù)的設(shè)置,從而確保設(shè)備驅(qū)動(dòng)程序的正常應(yīng)用,在該模塊中,我們可以利用好Win32函數(shù)進(jìn)行有效應(yīng)用,實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序與應(yīng)用程序之間的良好協(xié)調(diào),提升其通信的質(zhì)量效率。在應(yīng)用過程中,我們也要為其創(chuàng)造一個(gè)良好的應(yīng)用條件,確保其不同應(yīng)用環(huán)節(jié)的正常效能的發(fā)揮。在設(shè)備驅(qū)動(dòng)程序進(jìn)行相關(guān)數(shù)據(jù)采集工作之后,我們需要進(jìn)行相關(guān)應(yīng)用程序的應(yīng)用,保證這些數(shù)據(jù)的積極處理,以滿足當(dāng)下工作的需要,提升其應(yīng)用效率。
為了更好的進(jìn)行設(shè)備驅(qū)動(dòng)程序應(yīng)用程序的優(yōu)化,我們也要進(jìn)行相關(guān)工作模塊的協(xié)調(diào),積極做好異步過程調(diào)用程序、事件應(yīng)用程序、消息應(yīng)用程序等的協(xié)調(diào),通過對(duì)不同應(yīng)用模式的協(xié)調(diào),實(shí)現(xiàn)其現(xiàn)實(shí)工作模塊的正常開展。在異步過程調(diào)用模塊中,Win32應(yīng)用程序需要應(yīng)用到特殊的函數(shù)動(dòng)態(tài)模式,進(jìn)行設(shè)備驅(qū)動(dòng)程序的積極加載,從而實(shí)現(xiàn)回調(diào)函數(shù)的積極定義,這需要我們進(jìn)行回調(diào)函數(shù)的具體地址的參考,確保設(shè)備驅(qū)動(dòng)程序的綜合應(yīng)用效益的提升。在設(shè)備驅(qū)動(dòng)程序獲得回調(diào)函數(shù)的相關(guān)地址后,在進(jìn)行全局變量的保存。
為了更好的進(jìn)行上述工作環(huán)節(jié)的優(yōu)化,我們也要運(yùn)用函數(shù)進(jìn)行應(yīng)用程序線程句柄的保存。當(dāng)具備一定的條件時(shí),我們就可以進(jìn)行設(shè)備驅(qū)動(dòng)程序的調(diào)用,確保Win32應(yīng)用程序的有效應(yīng)用。該函數(shù)帶需要滿足具體的參數(shù)需要。通過對(duì)參數(shù)的設(shè)置進(jìn)行回調(diào)函數(shù)地址的應(yīng)用。在第二個(gè)參數(shù)應(yīng)用過程中,要確保回調(diào)函數(shù)信息的良好應(yīng)用。
鑒于設(shè)備驅(qū)動(dòng)程序通知應(yīng)用程序的重要性,本人結(jié)合一些經(jīng)驗(yàn),對(duì)它進(jìn)行了總結(jié),歸納出5種方法摘要:異步過程調(diào)用、事件方式、消息方式、異步I/O方式和事件方式(WDM)。下面分別說明這幾種方式的原理,并給出實(shí)現(xiàn)的部分源代碼。
為了滿足當(dāng)下工作的開展,進(jìn)行事件方式的優(yōu)化是非常必要的,這需要我們通過Win32應(yīng)用程序的應(yīng)用,進(jìn)行事件的句柄的確立。在通過虛擬設(shè)備驅(qū)動(dòng)程序的應(yīng)用,進(jìn)行該事件句柄的創(chuàng)建。做好上述應(yīng)用環(huán)節(jié)中,在利用一些函數(shù)進(jìn)行未公開的動(dòng)態(tài)鏈接庫的加載,確保其動(dòng)態(tài)鏈接庫的句柄的獲得,這需要我們利用好函數(shù)的相關(guān)特點(diǎn),進(jìn)行動(dòng)態(tài)鏈接庫位置的選擇,從而實(shí)現(xiàn)對(duì)該事件的句柄的有效轉(zhuǎn)換,確保Win32應(yīng)用程序的有效應(yīng)用。假如加載成功,則調(diào)用DeviceIoControl()函數(shù)將Ring0事件句柄傳給VxD;同時(shí),創(chuàng)建一個(gè)輔助線程等待信號(hào)變成有信號(hào)狀態(tài),本身則可去干其它的事情。當(dāng)條件成熟時(shí),VxD置Ring0事件為有信號(hào)狀態(tài),調(diào)用_VWIN32_SetWin
32Event()函數(shù),這馬上觸發(fā)對(duì)應(yīng)的Ring3事件為有信號(hào)狀態(tài)。一旦Ring3事件句柄為有信號(hào)狀態(tài),Win32應(yīng)用程序的輔助線程就對(duì)這個(gè)消息進(jìn)行相應(yīng)的處理。
在消息方式運(yùn)作模式中,我們要進(jìn)行Win32應(yīng)用程序的積極調(diào)用,從而確保虛擬設(shè)備驅(qū)動(dòng)程序的積極加載,提升其加載的效益。在完成該環(huán)節(jié)中,我們要進(jìn)行窗體句柄的積極傳送,確保窗體的相關(guān)消息的發(fā)出,在利用好相關(guān)的函數(shù)進(jìn)行Win32應(yīng)用程序消息的發(fā)送,確保該函數(shù)的應(yīng)用成功。在利用一些手段進(jìn)行消息模塊的積極定義,以滿足現(xiàn)實(shí)工作的需要。要在消息循環(huán)中使用ON_MESSAGE()來定義消息對(duì)應(yīng)的消息處理函數(shù),以便消息產(chǎn)生時(shí),能夠調(diào)用消息處理函數(shù)。SHELL_PostMessage()函數(shù)的第一個(gè)參數(shù)為Win32窗體句柄,第二個(gè)參數(shù)為消息ID號(hào),第三、四個(gè)參數(shù)為發(fā)送給消息處理函數(shù)的參數(shù),第五、六個(gè)參數(shù)為回調(diào)函數(shù)和傳給它的參數(shù)。Win32應(yīng)用程序收到消息后,對(duì)消息進(jìn)行處理。
2 關(guān)于異步I/O方式及其事件應(yīng)用模式的分析
在日常工作過程中,為了保證 Win32加載設(shè)備驅(qū)動(dòng)應(yīng)用程序的正常開展,我們需要做好相關(guān)函數(shù)的調(diào)用工作,確保各個(gè)參數(shù)之間的良好設(shè)置,以滿足現(xiàn)實(shí)工作的需要。進(jìn)行文件的重疊I/O操作控制,確保設(shè)備驅(qū)動(dòng)程序文件的有效應(yīng)用。在初始態(tài)的創(chuàng)建過程中,要進(jìn)行手動(dòng)復(fù)位模式的應(yīng)用,進(jìn)行相關(guān)類型數(shù)據(jù)結(jié)構(gòu)的積極傳送,確保該模塊中,參數(shù)與函數(shù)的不同模塊的傳送。在該設(shè)備驅(qū)動(dòng)應(yīng)用模塊中,其會(huì)將其設(shè)置為掛起狀態(tài),在該模塊中,如果IRP隊(duì)列為空,就可以將IRP放到IRP隊(duì)列中去,從而確保設(shè)備驅(qū)動(dòng)程序的正常工作。在Win32應(yīng)用程序工作中,其與待IRP處理模塊并不能完全實(shí)現(xiàn)同步化,這就需要確保gia模塊的設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)的優(yōu)化。
在返回值的判定過程中,我們也要進(jìn)行IRP處理環(huán)節(jié)的優(yōu)化,實(shí)現(xiàn)IRP工作程序的優(yōu)化,為了滿足該環(huán)節(jié)工作,要進(jìn)行主程序與其他應(yīng)用程序的協(xié)調(diào),確保該模塊中各個(gè)函數(shù)的信號(hào)狀態(tài)的保持,進(jìn)行設(shè)備驅(qū)動(dòng)程序的綜合利用效率的提升,從而實(shí)現(xiàn)IRP程序的有效開展,確保其處理效益的提升。這需要我們進(jìn)行函數(shù)的應(yīng)用,保證Overlapped事件中信號(hào)狀態(tài)的保持,從而確保Win32應(yīng)用程序的正常相應(yīng),以滿足現(xiàn)實(shí)工作的開展,確保事件復(fù)位的無信號(hào)狀態(tài)的保持,利用一些函數(shù)來滿足我們的應(yīng)用需要。函數(shù)獲取IRP的處理結(jié)果。
在事件應(yīng)用模塊中,我們可以利用Win32應(yīng)用程序進(jìn)行事件的創(chuàng)建,將事件句柄進(jìn)行設(shè)備驅(qū)動(dòng)程序的傳送,確保輔助線程的積極創(chuàng)建。當(dāng)然,在該模塊應(yīng)用過程中,要進(jìn)行等待事件的信號(hào)狀態(tài)的保持。這樣方便下序設(shè)備驅(qū)動(dòng)程序應(yīng)用過程中的事件句柄的轉(zhuǎn)換,以方便后續(xù)程序應(yīng)用的開展。
3 結(jié)束語
Windows操作系統(tǒng)運(yùn)作環(huán)節(jié)中,通過對(duì)設(shè)備驅(qū)動(dòng)程序的應(yīng)用,可以實(shí)現(xiàn)操縱硬件的最底層軟件接口模塊的優(yōu)化。從而進(jìn)行I/O、硬件中斷、DMA和內(nèi)存訪問等操作。通過對(duì)上述模塊的應(yīng)用,將應(yīng)用程序和硬件細(xì)節(jié)屏蔽開來,使軟件不依靠于硬件并且可在多個(gè)不同的平臺(tái)之間移植,以滿足現(xiàn)實(shí)工作條件的需要。
參考文獻(xiàn)
[1]韓海力,郭云峰. 用DDK開發(fā)win2000/xp下USB設(shè)備驅(qū)動(dòng)程序[J].微型電腦應(yīng)用,2005.
[2]向麗萍,熊文龍.Windows環(huán)境下USB驅(qū)動(dòng)程序的開發(fā)[J].交通與計(jì)算機(jī),2006.
[3]王維,郭婷,王 ,等.Linux2.6內(nèi)核下基于PCI總線的DSP設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)[J].艦船電子工程,2009.