freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

usb接口芯片pdiusbd12與單片機at89c51通信系統(tǒng)-資料下載頁

2025-06-25 23:10本頁面
  

【正文】 e driver)依靠I/O允許屏蔽位來控制端口操作,它必須仿真硬件操作,以方便那些在一個裸機上,直接對硬件操作的應(yīng)用程序。內(nèi)核態(tài)驅(qū)動程序這個分支包含了很多子分支,其中PnP驅(qū)動程序用來管理Windows2000的即插即用協(xié)議;一個WDM驅(qū)動程序是添加了電源管理協(xié)議,并且在Windows98和Windows2000中相兼容的一類PnP驅(qū)動程序。在WDM驅(qū)動程序中,有很多不同的類驅(qū)動程序,類驅(qū)動程序管理一類定義好的設(shè)備。而微驅(qū)動程序提供了廠商關(guān)于某類設(shè)備的特定驅(qū)動;顯示驅(qū)動程序是對顯示和打印的內(nèi)核驅(qū)動,它們的主要特征是顯示可視化數(shù)據(jù);文件系統(tǒng)驅(qū)動程序在本地硬盤或者網(wǎng)絡(luò)上實現(xiàn)標準的PC文件系統(tǒng)模型(它包括一個層次結(jié)構(gòu)的目錄和文件名);遺留設(shè)備驅(qū)動程序是一類可以直接控制硬件設(shè)備而不需要其它驅(qū)動程序介入的內(nèi)核驅(qū)動程序,它主要包括那些在Windows NT的以前版本中開發(fā)的,現(xiàn)在仍在Windows2000中運行的驅(qū)動程序。 WDM驅(qū)動程序結(jié)構(gòu)模型Windows 32模式驅(qū)動程序模型可以在Windows 98, Windows ME, Windows2000下使用。WDM是Microsoft全力推出的新驅(qū)動程序模式,目的是提供一種靈活的方式簡化驅(qū)動程序開發(fā),實現(xiàn)對新硬件的即插即用,減少并降低驅(qū)動程序開發(fā)的數(shù)量和復(fù)雜性。WDM驅(qū)動程序可以看作是在Windows ,它和NT驅(qū)動程序有很多相似的地方,這兩種類型的驅(qū)動程序都采用層次結(jié)構(gòu),能處理系統(tǒng)發(fā)出的IRP請求,IRP結(jié)構(gòu)基本相同,操作系統(tǒng)中為支持NT驅(qū)動程序提供的服務(wù)也適合于WDM驅(qū)動程序。但是WDM驅(qū)動程序提供了許多支持新硬件設(shè)備的結(jié)構(gòu)。 USB設(shè)備驅(qū)動程序?qū)哟谓Y(jié)構(gòu)WDM重新定義了驅(qū)動程序的分層,以適應(yīng)即插即用,各個不同層次的驅(qū)動程序構(gòu)成了設(shè)備的驅(qū)動程序棧。如圖42所示。WDM驅(qū)動模型中每個硬件至少有兩個驅(qū)動程序。一個是功能驅(qū)動程序,即通常硬件設(shè)備的驅(qū)動程序,負責初始化1/O操作,處理UO操作完成時帶來的中斷,提供設(shè)備適合的控制方式。另一個是總線驅(qū)動程序,負責管理硬件與計算機的連接。同時還存在各種類型的過濾驅(qū)動程序,它是一個中間層的驅(qū)動程序,可以截獲并處理經(jīng)過它的I/O請求,變更標準設(shè)備驅(qū)動程序的行為,但不重寫總線驅(qū)動程序或類驅(qū)動程序,僅修改感興趣的動作,過濾驅(qū)動程序是相對于一個特定的驅(qū)動程序?qū)佣嬖诓推渫瓿梢恍┹o助功能。上層類過濾驅(qū)動程序上層設(shè)備過濾驅(qū)動程序功能驅(qū)動程序低層類過濾驅(qū)動程序低層設(shè)備過濾驅(qū)動程序總線過濾驅(qū)動程序過濾驅(qū)動程序圖42 設(shè)備驅(qū)動程序棧WDM中驅(qū)動程序和設(shè)備對象的層次關(guān)系如圖43所示。圖的左側(cè)是一個設(shè)備對象的堆棧,設(shè)備對象是系統(tǒng)創(chuàng)建的一種數(shù)據(jù)結(jié)構(gòu),軟件通過它來管理硬件。對一個物理上的硬件來說,可以對應(yīng)很多的設(shè)備對象。堆棧中最底層的設(shè)備對象稱為物理設(shè)備對象(PDO, physical device object),堆棧中間底稱為功能設(shè)備對象(FDO,functional device object),在FDO的上下存在一些過濾設(shè)備對象的驅(qū)動程序,在FDO之上的稱之為上層過濾設(shè)備對象,在FDO之下,PDO之上的稱之為下層過濾設(shè)備對象。功能驅(qū)動程序是驅(qū)動程序完成控制設(shè)備操作功能最主要的部分,這個層位于總線驅(qū)動程序上面。驅(qū)動程序在功能驅(qū)動程序?qū)觿?chuàng)建一個功能設(shè)備對象,放在驅(qū)動程序設(shè)備棧中,在這個功能驅(qū)動程序分層之上,還可能會有多個功能驅(qū)動程序分層,以完成相應(yīng)任務(wù)??偩€驅(qū)動程序控制對總線上所有設(shè)備的訪問。如果想要訪問USB設(shè)備,必須使用USB總線驅(qū)動程序??偩€驅(qū)動程序負責枚舉它的總線,即發(fā)現(xiàn)總線上的全部設(shè)備和檢測設(shè)備何時被添加和刪除??偩€創(chuàng)建一個PDO代表它發(fā)現(xiàn)的設(shè)備。一些總線驅(qū)動程序簡單控制對總線的訪問,一旦有了控制權(quán),就可以對總線做任何想做的事情。IRPFDO上層過濾驅(qū)動程序功能設(shè)備驅(qū)動程序下層過濾驅(qū)動程序總線驅(qū)動程序FDOFDOFDO圖43 WDM中設(shè)備對象和驅(qū)動程序?qū)哟谓Y(jié)構(gòu)在其它情況下,總線驅(qū)動程序為我們處理總線上的所有事務(wù)。功能驅(qū)動程序知道如何控制設(shè)備的主要功能,它分層在總線驅(qū)動程序的上面。功能設(shè)備驅(qū)動程序創(chuàng)建一個FDO,放在設(shè)備棧中。在USB情況下,功能驅(qū)動程序必須使用USB類驅(qū)動程序訪問它的設(shè)備。但在其余情況下,一旦總線驅(qū)動程序接管,功能驅(qū)動程序可以直接訪問硬件。各種類型的過濾驅(qū)動程序可以插在設(shè)備棧內(nèi)。對總線上的所有設(shè)備,下層過濾驅(qū)動程序被加在總線驅(qū)動程序之上;對一個特定類的所有功能驅(qū)動程序,上層過濾驅(qū)動程序被添加在功能驅(qū)動程序之上。任何用戶請求總是從設(shè)備棧的頂部進入的。假設(shè)用戶程序標識了一個它想訪問的功能設(shè)備,UO管理器保證它的全部請求被發(fā)送到設(shè)備棧的頂部,這樣任何高層的過濾驅(qū)動程序或功能驅(qū)動程序就得到首先處理這些請求的機會。Windows系統(tǒng)提供了許多標準總線驅(qū)動程序和類驅(qū)動程序,作為系統(tǒng)中總線驅(qū)動程序和功能驅(qū)動程序的通用驅(qū)動程序。通常,標準驅(qū)動程序和支持實際硬件設(shè)備接口的另一個驅(qū)動程序或另一類驅(qū)動程序一起使用來操作實際硬件設(shè)備。這些輔助的另一個驅(qū)動程序或另一類驅(qū)動程序通常稱為小類驅(qū)動程序或者是小端口驅(qū)動程序。系統(tǒng)提供的標準總線驅(qū)動程序和類驅(qū)動程序,有以下幾類:1. 人工輸入設(shè)備(HID)類驅(qū)動程序。HID類驅(qū)動程序提供了輸入設(shè)備一個抽象視圖,實際輸入硬件可以使用不同的方法和系統(tǒng)鏈接,這些具體鏈接方法通過HID類驅(qū)動程序?qū)崿F(xiàn)。2. USB總線驅(qū)動程序。USB總線驅(qū)動程序可以枚舉和控制低速USB總線,USB客戶驅(qū)動程序使用各種IOCTL通過USB類驅(qū)動程序來訪問它們的硬件設(shè)備。3. 靜態(tài)圖像體系結(jié)構(gòu)。確切地說,靜態(tài)圖像體系結(jié)構(gòu)不是馳動程序,而是使用小驅(qū)動程序獲得掃描儀和靜態(tài)圖像的一種手段,STI目前支持SCSI設(shè)備、串行設(shè)備、并行設(shè)備和USB設(shè)備。4. 流類驅(qū)動程序。這類驅(qū)動程序提供了訪問高帶寬、時間關(guān)鍵的視頻音頻數(shù)據(jù)基礎(chǔ),通過流類小驅(qū)動程序的使用,可以接到實際硬件。5. 端口類驅(qū)動程序。使用端口類,可以很容易地將硬件不同部分表示成不同的子設(shè)備,音頻端口類驅(qū)動程序使COM標志這些子設(shè)備,子設(shè)備和小端口驅(qū)動程序用于控制實際硬件。6. IEEE1394總線驅(qū)動程序。IEEE1394總線驅(qū)動程序枚舉和控制IEEF1394的高速總線,這個總線驅(qū)動程序使用端口驅(qū)動程序訪問IEEE1394控制電路。7. SCSI類馳動程序和CDROM/DVD類驅(qū)動程序。SCSI和CDROM/DVD驅(qū)動程序用于訪問硬盤、軟盤、光盤和DVD.8. ACPI總線驅(qū)動程序。ACPI是高級配置和電源接口總線驅(qū)動程序,它和PCACPI BIOS打交道,枚舉系統(tǒng)中的設(shè)備并控制這些設(shè)備的功率使用。9. PCI總線驅(qū)動程序。PCI是外設(shè)組件互聯(lián)總線驅(qū)動程序,用來枚舉和配置PCI總線上的設(shè)備。10. PnPISA總線驅(qū)動程序。PnPISA總線驅(qū)動程序,對可以使用即插即用配置的工業(yè)標準體系結(jié)構(gòu)ISA設(shè)備作枚舉和配置。 WDM驅(qū)動程序的結(jié)構(gòu)WDM驅(qū)動程序采用入口點模型,驅(qū)動程序由驅(qū)動程序入口點和一系列分發(fā)例程組成。在NT驅(qū)動程序中入口點函數(shù)為DriverEntry(),此函數(shù)完成驅(qū)動程序的一切初始化驅(qū)動工作和設(shè)備所需要的資源信息,為每個查找到的設(shè)備創(chuàng)建設(shè)備對象,通過驅(qū)動程序?qū)ο筝敵龇峙珊瘮?shù)入口點。而在WDM驅(qū)動程序模型中,在其入口點方面,主要增加了兩個重要的入口點:一個是AddDeviceU入口點,指向這個入口點的指針存放在DriverObject DriverExtensionAddDevice()里。另一個是處理即插即用IRP_MJ_PNP輸入/輸出請求包的分派入口點,指向這個分派入口點的指針應(yīng)該存放在DriverObject MajorFunction[IRP_MJ_PNP]里。在WDM驅(qū)動程序中,以前在NT驅(qū)動程序入口點函數(shù)DriverEntry()中完成的功能,被分為三個不同的部分,由不同的入口點來完成。①同初始化驅(qū)動程序自身相關(guān)的工作。這些工作,如輸出入口點等仍然在DriverEntry()中完成。②同查找驅(qū)動程序支持的設(shè)備相關(guān)的工作。這些工作包括創(chuàng)建設(shè)備對象等,在驅(qū)動程序入口點AddDevice()中執(zhí)行。③同設(shè)備資源和設(shè)備初始化相關(guān)的工作。同設(shè)備硬件自身相關(guān)的工作,實際上要等到調(diào)用IRP_MJ_PNP輸入/輸出請求包和微函數(shù)IRP_MJ_START_DEVICE時,才會進行處理。對于這部分工作,只是將其簡單地連接到中斷服務(wù)例程中去處理。WDM驅(qū)動程序按其功能可分為以下幾個模塊:(1)初始化驅(qū)動程序自己。(2)創(chuàng)建和刪除設(shè)備。(3)處理Windows32打開和關(guān)閉文件句柄的請求。(4)處理Windows32輸入/輸出請求。(5)串行化對設(shè)備的訪問。(6)訪問硬件。(7)調(diào)用其它驅(qū)動程序。(8)取消I/O請求。(9)超時I/O請求。(10)處理一個可熱拔插的設(shè)備被加入或者刪除的情況。(11)使用電源管理請求。(12)使用WMI和NT事件向系統(tǒng)管理員報告。在剛開始PnP就有一個對“根總線”的內(nèi)嵌“驅(qū)動程序”,這個“根總線”實際并不存在,它在概念上包括所有的連到計算機上但不能通過電子的方式表明自己存在的硬件一包括最初的硬件總線(如PCI總線)。根總線驅(qū)動程序從系統(tǒng)的安裝過程中取得信息,系統(tǒng)安全程序通過檢測硬件并詢問用戶相應(yīng)的信息,從而得到關(guān)于這個計算機的信息。因此,根總線驅(qū)動程序有足夠的信息可以創(chuàng)建主總線的PDO。主總線的功能驅(qū)動程序這時可以枚舉它們自己的硬件。如PCI總線,它對每一個連到總線上的設(shè)備保留一個特殊的配置空間,這個配置空間包括了對設(shè)備的描述和對資源的需求。當總線驅(qū)動程序枚舉硬件時,它好像是一個普通的功能驅(qū)動程序,一旦檢測到一個硬件,驅(qū)動程序就轉(zhuǎn)換了角色:它變成了一個總線驅(qū)動程序并為這個硬件創(chuàng)建了一個PDO, PnP管理器為這個設(shè)備的PDO裝入驅(qū)動程序。也可能功能設(shè)備驅(qū)動程序枚舉到多個硬件,這時上述過程遞歸調(diào)用。此時總線設(shè)備驅(qū)動程序堆棧分支成其它的設(shè)備驅(qū)動程序堆棧,這些堆棧對應(yīng)于連接到這個總線上的硬件。Windows使用驅(qū)動程序枚舉可用的硬件,枚舉是指查找并列出任何可用的設(shè)備,然后使用仲裁器調(diào)整所有的資源請求。對每個設(shè)備查找合適的驅(qū)動程序,然后告訴這些驅(qū)動程序使用哪些資源,并運行這些驅(qū)動程序。例如,枚舉從最低層開始,PC中的根設(shè)備查找主板上的基本芯片。它查找任何簡單的設(shè)備,如內(nèi)置的串行口和鍵盤,它還查找PCI適配器(控制PCI總線的電路)。然后,PCI總線驅(qū)動程序枚舉和配置它所發(fā)現(xiàn)的所有硬件。首先,它發(fā)現(xiàn)到ISA總線的橋,它的驅(qū)動程序然后發(fā)現(xiàn)一個PnP ISA聲卡,并裝入該聲卡的驅(qū)動程序。PCI總線驅(qū)動程序不像其他的硬件驅(qū)動程序通過硬件抽象層(HAL)訪問它的硬件,USB的驅(qū)動程序依賴于它的總線驅(qū)動程序()。為了發(fā)送一個請求給設(shè)備,驅(qū)動程序要創(chuàng)建一個USB請求包(URB,USB request block),并將它發(fā)送給USB總線驅(qū)動程序。例如為了配置一個USB設(shè)備,驅(qū)動程序需要遞交幾個URB,以讀取配置和發(fā)送命令。,并將它們發(fā)送到總線上。根據(jù)USB協(xié)議的規(guī)定,每一個USB設(shè)備都可以有一個或多個配置,它們控制著設(shè)備的行為。設(shè)備的每一種配置可以包含一個或多個接口,這個接口描述軟件操作硬件的方式。對于支持相同接口的設(shè)備,它們的軟件是可以互相替換的,因為相同的接口規(guī)定了相同的命令和方法。同時,接口也有一個可選設(shè)置,以適應(yīng)不同帶寬的需要。每一個設(shè)備的接口可以有很多的端點,每一個端點代表著一個管道。Windows提供了幾個系統(tǒng)驅(qū)動程序,用其支持USB總線。它們包括了一個主機控制器的驅(qū)動(),一個集線器驅(qū)動(),一個被控制器驅(qū)動所用的類驅(qū)動程序()。因此我們所要做的USB驅(qū)動程序就是根據(jù)系統(tǒng)方案和USB協(xié)議,構(gòu)筑不同的URB,并將其通過內(nèi)部IOCTL的方式,發(fā)送給USB的總線驅(qū)動程序()。圖44 USB的WDM接口框圖 USB驅(qū)動的開發(fā)環(huán)境 驅(qū)動的開發(fā)工具本設(shè)計采用Visual C++、Win DDK 2600和 DriverStudio 。其中DriverStudio為主要開發(fā)工具。DriverStudio是設(shè)備驅(qū)動程序開發(fā)工具中的極品 。這套革新的軟件包括久經(jīng)考驗的工具SoftICE、DriverWorks、VtoolsD和DriverAgent,以及基于應(yīng)用層技術(shù)的新的設(shè)備驅(qū)動程序工具。目前又最新推出了針對網(wǎng)絡(luò)驅(qū)動程序開發(fā)的工具DriverNetworks。這就構(gòu)成了一整套工具軟件,它們加快了設(shè)備驅(qū)動程序的開發(fā)、調(diào)試、測試、調(diào)諧以及部署。DriverStudio把高質(zhì)量的工具和現(xiàn)代的軟件工程實踐帶給了一度被忽視的設(shè)備驅(qū)動程序編程領(lǐng)域。由于采用了即插即用、電源管理和新的WDM驅(qū)動程序體系結(jié)構(gòu)等技術(shù),開發(fā)和測試哪怕最簡單的設(shè)備驅(qū)動程序也變得比任何時候都復(fù)雜。DriverStudio采用新的WDM類、即插即用消息的缺省處理,以及可以揭示W(wǎng)indows 2000內(nèi)核真實運行狀況的全面追蹤功能。這就使Windows 2000驅(qū)動程序的開發(fā)工作,從設(shè)計到部署,都得到了簡化。DriverStudio提供的視窗系統(tǒng)設(shè)備驅(qū)動程序開發(fā)工具可以提高開發(fā)速度,改善測試方法,增強可靠性。不管你的專業(yè)技術(shù)水平如何,不管你處于哪個開發(fā)階段,也不管你現(xiàn)在選用的是什么工具,DriverStudio都會使你在開發(fā)設(shè)備驅(qū)動程序時感到更輕松。DriverStudio中的DriverWorks工具為開發(fā)Windows NT、Windows 2000和Windows 98 WDM設(shè)備驅(qū)動程序提供了一個自動化的方法,這個產(chǎn)品包括改進的DriverWizard。DriverWorks提供獨特的DriverWizard可以自動生成代碼,可以引導(dǎo)開發(fā)人員完成設(shè)備驅(qū)動程序開發(fā)的全過程,并能根據(jù)你的硬件種類自動生成設(shè)備驅(qū)動程序源代碼。類庫把常用的操作封裝起來,大大減少了你的編碼工作。精心制作的類庫減少了對簡單接口的復(fù)雜操作,而且在模仿基本操作系統(tǒng)的面向?qū)ο筇匦詴r,甚至比微軟的DDK所提供的程序性基于C語言的接口做得更好。 驅(qū)動開發(fā)環(huán)境的安裝與設(shè)置開發(fā)驅(qū)動程序之前,先要安裝和設(shè)置開發(fā)環(huán)境。安裝開發(fā)
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1