前言:在撰寫驅(qū)動程序設(shè)計的過程中,我們可以學(xué)習(xí)和借鑒他人的優(yōu)秀作品,小編整理了5篇優(yōu)秀范文,希望能夠為您的寫作提供參考和借鑒。
編者按:本論文主要從異步過程調(diào)用;事件方式;消息方式;異步I/O方式;事件方式等進行講述,包括了為了保證操作系統(tǒng)的安全性和穩(wěn)定性以及應(yīng)用程序的可移植性、Win32應(yīng)用程序創(chuàng)建一個事件的句柄、Win32應(yīng)用程序首先調(diào)用CreateFile()函數(shù)加載設(shè)備驅(qū)動程序、Win32應(yīng)用程序首先創(chuàng)建一個事件,然后將該事件句柄傳給設(shè)備驅(qū)動程序等,具體資料請見:
論文關(guān)鍵詞:設(shè)備驅(qū)動程序異步I/OVirtualDeviceDriver(VxD)WindowsDriverModel(WDM)
論文摘要:在目前流行的Windows操作系統(tǒng)中,設(shè)備驅(qū)動程序是操縱硬件的最底層軟件接口。為了共享在設(shè)備驅(qū)動程序設(shè)計過程中的經(jīng)驗,給出設(shè)備驅(qū)動程序通知應(yīng)用程序的5種方法,詳細(xì)說明每種方法的原理和實現(xiàn)過程,希望能夠給設(shè)備驅(qū)動程序的設(shè)計者提供一些幫助。
為了保證操作系統(tǒng)的安全性和穩(wěn)定性以及應(yīng)用程序的可移植性,Windows操作系統(tǒng)不允許應(yīng)用程序直接訪問系統(tǒng)的硬件資源,而是必須借助于相應(yīng)的設(shè)備驅(qū)動程序。設(shè)備驅(qū)動程序可以直接操作硬件,如果應(yīng)用程序和設(shè)備驅(qū)動程序之間實現(xiàn)了雙向通信,也就達(dá)到了應(yīng)用程序控制底層硬件設(shè)備的目的。它們之間的通信包括兩個方面:一方面是應(yīng)用程序傳送給設(shè)備驅(qū)動程序的數(shù)據(jù);另一方面是設(shè)備驅(qū)動程序發(fā)送給應(yīng)用程序的消息。前者的實現(xiàn)較容易,通過CreateFile()函數(shù)獲取設(shè)備驅(qū)動程序的句柄后,就可以使用Win32函數(shù),如DeviceIoControl()、ReadFile()或WriteFile()等實現(xiàn)應(yīng)用程序與設(shè)備驅(qū)動程序之間的通信。后者的實現(xiàn)遠(yuǎn)比前者復(fù)雜,同時介紹這方面情況的文章較少。這不等于說它不重要,相反,它在有些應(yīng)用場合發(fā)揮著重要的作用。設(shè)備驅(qū)動程序完成數(shù)據(jù)的采集工作后,需要馬上通知應(yīng)用程序,以便應(yīng)用程序能夠及時將數(shù)據(jù)取走并進行處理。諸如此類情況,不一而足。
鑒于設(shè)備驅(qū)動程序通知應(yīng)用程序的重要性,本人結(jié)合一些經(jīng)驗,對它進行了總結(jié),歸納出5種方法:異步過程調(diào)用(APC)、事件方式(VxD)、消息方式、異步I/O方式和事件方式(WDM)。下面分別說明這幾種方式的原理,并給出實現(xiàn)的部分源代碼。
1異步過程調(diào)用(APC)
摘要本文介紹了一個操作系統(tǒng)開發(fā)平臺-OSKit,它提供了一套用于架構(gòu)操作系統(tǒng)內(nèi)核的庫函數(shù)和一些組件。它的設(shè)計目標(biāo)是降低進入操作系統(tǒng)研究與開發(fā)領(lǐng)域的門檻。OSKit在設(shè)計時借用了COM的思想,把操作系統(tǒng)的各個部分設(shè)計成盡量獨立的組件,使開發(fā)者可以很方便地使用或替換這些組件來構(gòu)造自己的操作系統(tǒng)。
關(guān)鍵字組件重用操作系統(tǒng)OSKit
1引言
當(dāng)前,操作系統(tǒng)的功能不斷擴展,操作系統(tǒng)的類型呈現(xiàn)出多樣化的趨勢。一個小規(guī)模的開發(fā)小組已經(jīng)不可能完全從頭開始實現(xiàn)一個實用的操作系統(tǒng),而一般情況下,研究人員只對操作系統(tǒng)的一些特定領(lǐng)域感興趣,而對于另外一些元素,如啟動加載代碼、核心啟動代碼、設(shè)備驅(qū)動程序和內(nèi)存分配代碼等往往不感興趣,但是一個可運行的原型系統(tǒng)又必須包含這些內(nèi)容。編寫這些基礎(chǔ)結(jié)構(gòu)延緩了操作系統(tǒng)研究項目的進度,同時也增加了進行操作系統(tǒng)研究的代價。為了解決這一問題,猶他大學(xué)的FLUX研究小組開發(fā)了OSKit,它提供了一個框架和一組模塊化的、具有簡單接口的庫以及一組清晰的、可重用的OS組件。OSKit可以用來構(gòu)建操作系統(tǒng)內(nèi)核、外層服務(wù)和其他核心OS功能模塊。OSKit提供了各種功能模塊,諸如簡單自舉,一個可用于內(nèi)核的最小化POSIX環(huán)境、與物理內(nèi)存和其約束一致的內(nèi)存管理、廣泛的調(diào)試支持,以及高層子系統(tǒng)如協(xié)議棧和文件系統(tǒng)。開發(fā)者可以根據(jù)自己的研究興趣或所要考慮的性能來使用這些模塊,或用他們自己的模塊來替代標(biāo)準(zhǔn)的OSKit模塊。
OSKit公開了它內(nèi)部的實現(xiàn)細(xì)節(jié),允許用戶從成熟的操作系統(tǒng)中不加修改地提取代碼,然后通過一小部分經(jīng)過仔細(xì)設(shè)計的粘接代碼將它們合并到一起,隔離它們的依賴性,并輸出良好定義的接口。OSKit使用這一技術(shù)整合了許多穩(wěn)定而成熟的源代碼,包括設(shè)備驅(qū)動、文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等等。實踐表明,使用組件軟件架構(gòu)和重用技術(shù)會給操作系統(tǒng)實現(xiàn)領(lǐng)域帶來大的影響。
2組件技術(shù)簡介
摘要:高職計算機網(wǎng)絡(luò)設(shè)計教學(xué)的主要目標(biāo),在于培養(yǎng)學(xué)生利用計算機來解決問題的能力。教導(dǎo)學(xué)生一步步由了解問題、分析問題、擬定對策、撰寫程序、測試程序,最后解決問題。其教育上的意義不是要把學(xué)生都訓(xùn)練成程序設(shè)計師,而是要培養(yǎng)學(xué)生的邏輯思考和解決問題的能力。本文將主要探討基于任務(wù)驅(qū)動的高職計算機網(wǎng)絡(luò)技術(shù)課程體系的構(gòu)建。
關(guān)鍵詞:任務(wù)驅(qū)動高職計算機網(wǎng)絡(luò)技術(shù)課程體系
目前高職課程中雖然規(guī)劃了包括理論與實習(xí)在內(nèi)的專業(yè)科目,希望學(xué)生能夠理論與實務(wù)兼?zhèn)洹5趯嶋H教學(xué)上,理論課程的教學(xué)大多仍采取照本宣科的模式;實習(xí)課則多停留在模仿學(xué)習(xí)階段,即由教師示范操作過程,學(xué)生再按圖施工如法炮制一番;其教學(xué)目的僅在提高學(xué)生操作設(shè)備、儀器之機械熟練度,而在邏輯思考及問題解決能力的訓(xùn)練上,大多被忽略。
1當(dāng)前高職計算機網(wǎng)絡(luò)技術(shù)課程教學(xué)的現(xiàn)狀
在教學(xué)方式上,為使學(xué)生能融入問題解決的活動,深入探究問題,進而解決問題,任務(wù)活動為一種值得嘗試的教學(xué)方式。任務(wù)驅(qū)動教學(xué)是以一種以學(xué)生為中心的教學(xué)策略,不但可以培養(yǎng)學(xué)生的主動性,同時因為實作的對象是現(xiàn)實世界中的真實任務(wù),對大部份學(xué)生的學(xué)習(xí)而言,更可以引其學(xué)習(xí)動機。大部份老師上課時都是先透過教學(xué)廣播系統(tǒng)進行指令的介紹和說明,再配合課本上范例程序的講解與示范,然后由學(xué)生實際上機操作、執(zhí)行并驗證結(jié)果。在整個教學(xué)過程中,教學(xué)內(nèi)容實際上包含了程序語言介紹及程序邏輯推演等二個主題,而教學(xué)方式則包括了老師講解及學(xué)生上機實作二部份[1]。程序語言必需學(xué)會繁復(fù)的指令后,才能組合成小小的程序,但往往因為打字時的疏忽,或是指令的誤用,使得編譯或執(zhí)行時錯誤,造成學(xué)生很深的挫折感。許多學(xué)生對程序設(shè)計課程興趣缺乏,聽課時總是應(yīng)付了事,不求甚解,即使是在上機實作時,也只在老師所舉范例中,尋找可能的答案,老師提問,學(xué)生則報以不知所云、彷徨不安的神情。最后使老師也喪失了對教學(xué)的信心,即使準(zhǔn)備再充份,往往也無法得到相對的響應(yīng)。造成此種現(xiàn)象的原因一方面來自程序設(shè)計本身的復(fù)雜度:設(shè)計一個程序,除了必須熟悉所使用的程序語言外,對程序背后的算法也要十分清楚才行。易言之,學(xué)生在學(xué)習(xí)程序設(shè)計時是同時在學(xué)種東西,既要了解指令,又要弄清楚程序的邏輯,這對大多數(shù)學(xué)生是件極大的挑戰(zhàn)。另一方面,不當(dāng)?shù)慕虒W(xué)方式則又加深了學(xué)習(xí)的困難。以往的程序教學(xué),多數(shù)老師和學(xué)生把學(xué)習(xí)重點放在指令語法上,結(jié)果使得學(xué)生面對問題時不知如何下手。上課時大都是教師講、學(xué)生聽,雖然方便達(dá)到授業(yè)的目的,但易養(yǎng)成學(xué)生不愿思考的被動式學(xué)習(xí)態(tài)度,以致在解惑上就鮮有成效。
2基于任務(wù)驅(qū)動的高職計算機網(wǎng)絡(luò)技術(shù)課程體系的構(gòu)建
摘要該文從軟件可移植性的角度指出設(shè)計256色圖形用戶界面時應(yīng)當(dāng)注意的問題,在對SuperVGA產(chǎn)品進行分析的基礎(chǔ)上,提出了基于表格驅(qū)動的程序設(shè)計思想,并給出了范例。
隨著各種超級VGA的出現(xiàn),同時具有高分辨率和豐富色彩的圖形用戶界面已經(jīng)成為程序員和用戶共同追求的目標(biāo)。然而由于各制造商提供的VGA產(chǎn)品之間的差異,使得高分辨率256色圖形界面的兼容性受到影響,常常會出現(xiàn)這樣的情況:在一個顯示系統(tǒng)下運行良好的程序,在另一種顯示系統(tǒng)下變得面目全非,甚至根本不顯示。這表明程序員對程序的可移植性重視不夠,或?qū)Ω鞣N顯示設(shè)備缺乏足夠的了解。
軟件的可移植性是指軟件產(chǎn)品從一個硬件/軟件環(huán)境轉(zhuǎn)移到另一個硬件/軟件環(huán)境的難易與繁簡程度。它從軟件對新環(huán)境的適應(yīng)性這一方面,反映了軟件的質(zhì)量。為了提高軟件的可移植性,應(yīng)盡量使軟件與具體的設(shè)備無關(guān),即提高軟件的設(shè)備獨立性。對于256色圖形界面而言,就是要使程序不依賴于某種特定的顯示器。例如,程序員沒有任何理由假定用戶使用的是TVGA。為此,程序員必須提供顯示卡的常規(guī)檢測例程,并能根據(jù)檢測的結(jié)果決定圖形算法的具體實現(xiàn)。
提高軟件設(shè)備獨立性的方法有很多,表格驅(qū)動就是其中一種。所謂表格,就是根據(jù)需要設(shè)計的數(shù)據(jù)結(jié)構(gòu)。表格中的數(shù)據(jù)由檢測例程填寫。表格中包含哪些欄目,應(yīng)在對各制造商提供的SuperVGA產(chǎn)品足夠了解的基礎(chǔ)上取舍,欄目應(yīng)體現(xiàn)各產(chǎn)品之間的差異。
一、SuperVGA編程綜述
SuperVGA產(chǎn)品在體系結(jié)構(gòu)上和標(biāo)準(zhǔn)的IBMVGA有所不同。但編程思想基本上是一樣的,這些編程方法已有許多文章介紹,這里不再重復(fù)。
摘要該文簡要分析了目前流行的創(chuàng)作工具的特點,提出了一個集多媒體信息處理、劇本編輯及演播于一體的創(chuàng)作系統(tǒng)的總體結(jié)構(gòu)、設(shè)計方法及主要的實現(xiàn)技術(shù),最后給出了用VisualBasic語言編寫的播放圖形、圖像、動畫、聲頻、視頻(AVI、MOV及VCD小影碟)等多媒體信息的程序例程。
隨著多媒體技術(shù)的飛速發(fā)展,各種各樣的多媒體演示系統(tǒng)在信息領(lǐng)域中發(fā)揮著越來越大的作用。其豐富的表現(xiàn)力、生動的視覺及聲響效果,大大增強了所演示信息的吸引力。但是,多媒體作品的創(chuàng)作是一項費時費力的工作,不僅涉及到美術(shù)、傳播、教育、心理等多方面創(chuàng)作因素,而且更需一種能方便地將圖、文、聲、像等多媒體信息按某種特定要求編合在一起進行表現(xiàn)的方法。為節(jié)省多媒體作品的創(chuàng)作時間,需要一種相對簡單、集成、高效的創(chuàng)作工具來輔助多媒體作品的創(chuàng)作開發(fā)與演播。
本文簡要分析了目前流行的多媒體創(chuàng)作工具的特點,提出了一種多媒體創(chuàng)作工具的功能結(jié)構(gòu)、設(shè)計方法及實現(xiàn)技術(shù),最后給出一個用VisualBasic語言編寫的播放多媒體信息的程序例程。
一、現(xiàn)有多媒體創(chuàng)作工具的類型
目前,最流行的多媒體創(chuàng)作工具主要分為以下三類。
1.描述性語言式