版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、什么什么(shn me)是設(shè)備驅(qū)動程序是設(shè)備驅(qū)動程序第1頁/共80頁第一頁,共80頁?!耙话阋话?ybn)”驅(qū)動程序開發(fā)的理解驅(qū)動程序開發(fā)的理解 必須使用匯編語言對端口進行讀寫 設(shè)備驅(qū)動程序是操作系統(tǒng)的一部分,難于開發(fā)與調(diào)試(dio sh)。 設(shè)備驅(qū)動程序控制硬件 中斷比較難于處理第2頁/共80頁第二頁,共80頁。必須使用必須使用(shyng)匯編語言讀寫端口匯編語言讀寫端口 CEDDK.dll 提供 APIs與硬件進行通信 HalGetBusData READ_PORT_UCHAR WRITE_REGISTER_ULONG 對于(duy)邏輯設(shè)備驅(qū)動程序,采用Win32 APIs 從硬件獲取
2、數(shù)據(jù)第3頁/共80頁第三頁,共80頁。設(shè)備驅(qū)動程序是操作系統(tǒng)的一部分,難于開發(fā)設(shè)備驅(qū)動程序是操作系統(tǒng)的一部分,難于開發(fā)(kif)與與調(diào)試調(diào)試 對于UNIX或者(huzh)是 Windows 9x,設(shè)備驅(qū)動程序是與操作系統(tǒng)映像連接的,并運行于系統(tǒng)內(nèi)核態(tài)。 對于windows CE,大多數(shù)的設(shè)備驅(qū)動程序運行于用戶態(tài),簡單的來說就是一個DLL文件。第4頁/共80頁第四頁,共80頁。設(shè)備設(shè)備(shbi)驅(qū)動程序控制硬件驅(qū)動程序控制硬件 大多數(shù)的設(shè)備(shbi)驅(qū)動程序用來控制硬件。 對于某些硬件,是沒有驅(qū)動的。 CPU 內(nèi)存 對于虛擬設(shè)備(shbi)驅(qū)動程序,沒有物理設(shè)備(shbi)。 文件系統(tǒng)驅(qū)動程
3、序 RAM disk第5頁/共80頁第五頁,共80頁。中斷有時中斷有時(yush)難于處理難于處理 Windows CE提供邏輯中斷 (SYSINTRs) 中斷由一個(y )用戶態(tài)的線程進行處理 (IST)第6頁/共80頁第六頁,共80頁。為什么應(yīng)當(dāng)為什么應(yīng)當(dāng)(yngdng)寫驅(qū)動程序?寫驅(qū)動程序? 當(dāng)我們(w men)設(shè)計硬件時,就需要提供這一硬件的驅(qū)動軟件。 硬件OEM廠商不提供基于Windows CE的硬件驅(qū)動,但是提供硬件的規(guī)格說明。 對于一個現(xiàn)有硬件驅(qū)動的功能進行擴展。第7頁/共80頁第七頁,共80頁。驅(qū)動驅(qū)動(q dn)分類分類整體整體 Windows CE 整體(zhngt)上將
4、設(shè)備驅(qū)動分為三種: 內(nèi)置驅(qū)動 總線 流接口第8頁/共80頁第八頁,共80頁。內(nèi)置驅(qū)動內(nèi)置驅(qū)動(q dn) 硬件所必須的驅(qū)動程序,這些驅(qū)動程序通常由設(shè)計OEM廠商進行設(shè)計。 如:鍵盤,觸摸屏,音頻設(shè)備。 可能不支持一般的驅(qū)動接口,也有可能帶有擴展的接口或者完全提供一個用戶自定義的接口。 內(nèi)置驅(qū)動通常需要針對具體( jt)的操作系統(tǒng)進行小幅改動。第9頁/共80頁第九頁,共80頁??偩€總線(zn xin)驅(qū)動驅(qū)動 管理系統(tǒng)總線(zn xin)如PCI總線(zn xin)等。PCMCIA與 CompactFlash也在其列。 負(fù)責(zé)處理總線(zn xin)上硬件的詢問,以及資源的分配。 同時也請求設(shè)備管
5、理器為總線(zn xin)上的硬件安裝適當(dāng)驅(qū)動程序。第10頁/共80頁第十頁,共80頁。驅(qū)動驅(qū)動(q dn)分類分類 詳細(xì)詳細(xì)Audio Drivers Battery Drivers Block Drivers Bluetooth HCI Transport Driver Direct3D Device Driver Interface DirectDraw Display Drivers Display Drivers DVD-Video Renderer IEEE 1394 Drivers Keyboard Drivers Notification LED Drivers Paralle
6、l Port Drivers PC Card Drivers Printer Drivers Serial Port Drivers Smart Card Drivers Stream Interface Drivers Touch Screen Drivers USB Drivers 第11頁/共80頁第十一頁,共80頁。驅(qū)動驅(qū)動(q dn)的加載過程的加載過程 大多數(shù)的設(shè)備驅(qū)動(q dn)由設(shè)備管理器(Device.exe)進程在系統(tǒng)啟動時進行加載。 另一方面,其中一部分內(nèi)置驅(qū)動(q dn)程序由GWES.exe進行加載。這些驅(qū)動(q dn)包括顯示器驅(qū)動(q dn) (DDI.dll)、
7、鍵盤驅(qū)動(q dn)、鼠標(biāo)驅(qū)動(q dn)、觸摸屏驅(qū)動(q dn)等。第12頁/共80頁第十二頁,共80頁。驅(qū)動驅(qū)動(q dn)的加載過程的加載過程1.當(dāng)Device.exe對設(shè)備驅(qū)動程序進行安裝時將在注冊表的HKEY_LOCAL_ MACHINEDrivers項下檢查一個字符串,其值為 RootKey,傳統(tǒng)地,其名字為 BuiltIn 。2.然后設(shè)備管理器在進行初始化時使用注冊信息檢查器為它需要(xyo)安裝的各個驅(qū)動讀取值為RootKey的鍵。 第13頁/共80頁第十三頁,共80頁。驅(qū)動驅(qū)動(q dn)的加載過程的加載過程第14頁/共80頁第十四頁,共80頁。驅(qū)動驅(qū)動(q dn)的加載過程
8、的加載過程3.安裝DLL,給每一個驅(qū)動創(chuàng)建一個Active 鍵,然后調(diào)用ActivateDevice 或者 ActivateDeviceEx將DLL注冊(zhc)為系統(tǒng)中的一個設(shè)備驅(qū)動程序。 4.ActivateDevice在 HKEY_LOCAL_MACHINEDriversActive下創(chuàng)建一個新的鍵值。第15頁/共80頁第十五頁,共80頁。驅(qū)動驅(qū)動(q dn)的加載過程的加載過程第16頁/共80頁第十六頁,共80頁。驅(qū)動驅(qū)動(q dn)加載加載API 設(shè)備驅(qū)動程序也能通過(tnggu)應(yīng)用程序進行手動的安裝,這是ActivateDeviceEx的一個首選的功能。 安裝驅(qū)動一個更老的方法是
9、使用RegisterDevice 與 DeregisterDevice 第17頁/共80頁第十七頁,共80頁。主要主要(zhyo)內(nèi)容內(nèi)容第18頁/共80頁第十八頁,共80頁。什么什么(shn me)是流接口是流接口 流接口驅(qū)動包括所有提供流接口函數(shù)的驅(qū)動程序,不管(bgun)由這個驅(qū)動控制的設(shè)備是什么類型。 典型的流接口驅(qū)動程序有: 文件系統(tǒng)驅(qū)動 (iostream, fstream) COM, LPT第19頁/共80頁第十九頁,共80頁。使用使用(shyng)流接口流接口hSer = CreateFile(TEXT(“COM1:”), GENERIC_READ, 0, NULL, OPEN
10、_EXSITING, 0, NULL);rc = ReadFile(hSer, &ch, 1, &cBytes, NULL);TransmitCommChar(hSer, a);CloseHandle(hSer);第20頁/共80頁第二十頁,共80頁。創(chuàng)建創(chuàng)建(chungjin)一個流驅(qū)動程序一個流驅(qū)動程序1.寫一個導(dǎo)出具體流接口的DLL2.編譯(biny)設(shè)備驅(qū)動程序3.對注冊表進行配置第21頁/共80頁第二十一頁,共80頁。流接口函數(shù)流接口函數(shù)函數(shù)名函數(shù)名說明說明XXX_Close關(guān)閉以hOpenContext標(biāo)識的設(shè)備上下文。XXX_Deinit由設(shè)備管理器調(diào)用來刪除對某
11、一設(shè)備的初始化信息。XXX_Init由設(shè)備管理器調(diào)用來對某一設(shè)備進行初始化。XXX_IOControl向設(shè)備發(fā)送命令XXX_Open打開一個設(shè)備以進行讀、寫或者既讀又寫。當(dāng)應(yīng)用調(diào)用CreateFile來打開某一個設(shè)備文件名時將間接地調(diào)用這一個函數(shù)。XXX_PowerDown停止向設(shè)備供電。只有在軟件控制下關(guān)機的設(shè)備上才可用。XXX_PowerUp恢復(fù)向設(shè)備供電XXX_Read從設(shè)備讀取數(shù)據(jù)XXX_Seek在設(shè)備中移動數(shù)據(jù)指針XXX_Write向設(shè)備寫數(shù)據(jù)第22頁/共80頁第二十二頁,共80頁。構(gòu)建構(gòu)建(u jin)設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序 構(gòu)建(u jin)設(shè)備驅(qū)動程序與構(gòu)建(u jin)一個
12、DLL一樣簡單。 可以使用Platform Builder與EVC+。只需創(chuàng)建一個Windows CE DLL項目, 輸出適當(dāng) 的入口點,然后編寫代碼。 常犯的一個錯誤是沒有將入口點聲明為 extern C,因此 C+編譯器就不能處理輸出的函數(shù)名。第23頁/共80頁第二十三頁,共80頁。注冊表設(shè)置注冊表設(shè)置(shzh) 在 Project.reg中:HKEY_LOCAL_MACHINEDriversBuiltInSample Dll = mydriver.Dll Prefix = DEM Index = dword:1 Order = dword:0 FriendlyName = Demo D
13、river Ioctl = dword:0第24頁/共80頁第二十四頁,共80頁。注冊表設(shè)置注冊表設(shè)置(shzh) Order 給所有的驅(qū)動設(shè)置相對安裝順序。Order 為0的驅(qū)動先安裝,依次安裝Order為1,2,的驅(qū)動。Oder可以讓開發(fā)者保證有相到依賴關(guān)系的多個驅(qū)動以適當(dāng)?shù)捻樞蜻M行安裝。 Index 指定在文件系統(tǒng)中的驅(qū)動名的數(shù)字部分。在默認(rèn)(mrn)情況下,帶有前綴COM的驅(qū)動在文件系統(tǒng)中分配名字為 COM1,下一個即為COM2。為了保證驅(qū)動總是安裝成COM2,必須提供Index = 2。第25頁/共80頁第二十五頁,共80頁。演示演示 :使用使用emulator編寫一個編寫一個(y
14、)流接口驅(qū)動程序并使用它流接口驅(qū)動程序并使用它第26頁/共80頁第二十六頁,共80頁。驅(qū)動是如何驅(qū)動是如何(rh)工作的工作的1.When CE啟動時, Device.exe根據(jù)注冊表中的設(shè)置安裝(nzhung)所有的驅(qū)動程序。2.當(dāng)安裝(nzhung)mydriver.dll時, device.exe 調(diào)用 DEM1_Init。3.Application程序調(diào)用CreateFile(“DEM1”)第27頁/共80頁第二十七頁,共80頁。驅(qū)動驅(qū)動(q dn)是如何工作的是如何工作的(2)4.Coredll.dll 處理(chl)API調(diào)用并切換到 device.exe5.Device.exe
15、調(diào)用mydriver.dll 的DEM1_Open。6.CreateFile返回DEM1_Open的retval第28頁/共80頁第二十八頁,共80頁。設(shè)備設(shè)備(shbi)功能棧功能棧第29頁/共80頁第二十九頁,共80頁。第30頁/共80頁第三十頁,共80頁。驅(qū)動驅(qū)動(q dn)架構(gòu)架構(gòu)第31頁/共80頁第三十一頁,共80頁。驅(qū)動驅(qū)動(q dn)的類型的類型第32頁/共80頁第三十二頁,共80頁。內(nèi)置與流安裝內(nèi)置與流安裝(nzhung)機制機制 通常內(nèi)置驅(qū)動(q dn)程序根據(jù)注冊鍵值安裝在 GWES進程空間 總線驅(qū)動(q dn)由Device.exe根據(jù)鍵值進行安裝 可安裝的流驅(qū)動(q d
16、n)或其它驅(qū)動(q dn)由Device.exe根據(jù)總線驅(qū)動(q dn)或注冊檢查器進行安裝。第33頁/共80頁第三十三頁,共80頁。設(shè)備設(shè)備(shbi)管理器管理器 用戶級進程繼續(xù)運行 與內(nèi)核、注冊表交互的單獨應(yīng)用程序,以及流接口( ji ku)驅(qū)動DLL。 提供ActivateDevice 與 DeactivateDevice API。第34頁/共80頁第三十四頁,共80頁。設(shè)備設(shè)備(shbi)管理器管理器 包括IO資源管理器 安裝注冊表檢查器(RegEnum.dll) ,并由這一個注冊表檢查器根據(jù)(gnj)注冊表進行驅(qū)動的安裝 提供電源通知回調(diào)函數(shù) 跟蹤所有已安裝的驅(qū)動程序,給設(shè)備接口發(fā)
17、出拉入或刪除的通知第35頁/共80頁第三十五頁,共80頁。設(shè)備設(shè)備(shbi)管理器管理器 設(shè)備驅(qū)動程序的安裝(nzhung)過程DEVICE.EXEI/O Resource Manager(part of Device.exe)REGENUM.DLLPCIBUS.DLL第36頁/共80頁第三十六頁,共80頁。注冊表枚舉注冊表枚舉(mi j)器器注冊枚舉器是RegEnum.dllDevice.exe根據(jù)HKEY_LOCAL_MACHINEDriversRootKey安裝注冊枚舉器注冊枚舉器給每一個要安裝的驅(qū)動程序掃描表項注冊枚舉器是可重入的,并支持分級(fn j)使用當(dāng)注冊枚舉器卸載時,同時也
18、御載它安裝的所有信息注冊枚舉器根據(jù)Order,檢查緊挨著傳給它的鍵的下一級鍵值。注冊枚舉器對每一個找到的子鍵調(diào)用ActivateDeviceEx第37頁/共80頁第三十七頁,共80頁。ActivateDeviceEx由Device.exe提供總線驅(qū)動程序當(dāng)安裝設(shè)備驅(qū)動時調(diào)用ActivateDeviceExActivateDeviceEx也在RAM工作區(qū)鎖定流接口(ji ku)驅(qū)動程序這可以防止代碼頁被丟棄注冊檢查器對找到的每一個內(nèi)置子鍵調(diào)用ActivateDeviceExActivateDeviceEx安裝驅(qū)動并更新注冊表第38頁/共80頁第三十八頁,共80頁。接口類接口類驅(qū)動程序的接口有以下
19、特征每一個Iclass有一個GUID,一個名字GUID描述類設(shè)備接口Name 描述接口的實例COM1:, DSK1: 等等提供一個驅(qū)動接口在注冊表中的Iclass子鍵驅(qū)動程序發(fā)布接口 AdvertiseInterface應(yīng)用程序訪問(fngwn)接口 RequestDeviceNotifications每個已有的接口的預(yù)定義GUIDA32942B7-920C-486b-B0E6-92A702A99B35 第39頁/共80頁第三十九頁,共80頁。I/O 資源管理資源管理(IORM)IORM是設(shè)備管理器必備的部分跟蹤可用I/O資源 (IRQ與I/O基地址)OEM為內(nèi)置設(shè)備預(yù)分配的資源當(dāng)在總線上安裝
20、一個客戶驅(qū)動時,總線驅(qū)動請求資源ResourceReleaseResourceRequestResourceCreateList當(dāng)存在沖突時IORM調(diào)用(dioyng) ResourceRequest失敗第40頁/共80頁第四十頁,共80頁。注冊表幫助注冊表幫助(bngzh)例程例程從注冊表中讀取資源(zyun)初始化信息OpenDeviceKeyDDKReg_GetIsrInfoDDKReg_GetWindowInfoDDKReg_GetPciInfo在COREDLL的API在 and 的函數(shù)原型在publiccommonoakdrivers中的例子wavedevpddes1371wavep
21、dd.cpp - GetRegistryConfig第41頁/共80頁第四十一頁,共80頁。電源電源(dinyun)管理管理 電源管理(gunl)器 靈活的系統(tǒng)級與外設(shè)級電源管理(gunl) 使設(shè)備智能化地管理(gunl)它們的電源 在設(shè)備與系統(tǒng)或應(yīng)用之間充當(dāng)協(xié)調(diào)者 使OEM修改調(diào)用PowerOffSystem()的相關(guān)代碼第42頁/共80頁第四十二頁,共80頁。電源電源(dinyun)管理管理系統(tǒng)(xtng)級電源狀態(tài)設(shè)備(外設(shè))級電源狀態(tài)第43頁/共80頁第四十三頁,共80頁。電源電源(dinyun)管理器架構(gòu)管理器架構(gòu)第44頁/共80頁第四十四頁,共80頁。物理物理(wl)內(nèi)存內(nèi)存第45
22、頁/共80頁第四十五頁,共80頁。虛擬地址空間虛擬地址空間(kngjin)第46頁/共80頁第四十六頁,共80頁。內(nèi)存管理內(nèi)存管理(gunl)函數(shù)函數(shù) 設(shè)備驅(qū)動程序是用戶(yngh)態(tài)模塊 必須將物理內(nèi)存映射成虛擬內(nèi)存 VirtualAlloc, VirtualFree: 預(yù)留,釋放虛擬內(nèi)存 MEM_RESERVE VirtualCopy: 將一個物理內(nèi)存區(qū)域映射到一個虛擬內(nèi)存區(qū)域 PAGE_NOCACHE PAGE_PHYSICAL第47頁/共80頁第四十七頁,共80頁。驅(qū)動驅(qū)動(q dn)的內(nèi)存訪問與映射的內(nèi)存訪問與映射 MapPtrToProcess 將一個地址空間(kngjin)的指針
23、映射成另外一個指針 GetCurrentProcess / SetProcPermissions 重新找回進程ID用于MapPtrToProcess函數(shù) MmMapIoSpace 將一個物理地址空間(kngjin)映射成一個不分頁的,由進程決定的地址空間(kngjin)第48頁/共80頁第四十八頁,共80頁。CEDDKCE v2.1x 以及(yj)后來的版本支持獨立于平臺的I/O配置讓OEM以及(yj)驅(qū)動開發(fā)人員使用它們CEDDK.DLL總線管理 內(nèi)存管理I/O管理從NTDDK拿來的CEDDK API直到V2.12以后的版本才有文檔但在大多數(shù)V2.00版中都有第49頁/共80頁第四十九頁,共
24、80頁。CEDDK 簡介簡介(jin ji)設(shè)備驅(qū)動使用(shyng)CEDDK正常開發(fā)的驅(qū)動是跨平臺二進制兼容的跨CPU的源代碼兼容第50頁/共80頁第五十頁,共80頁。CEDDK 內(nèi)容內(nèi)容(nirng)第51頁/共80頁第五十一頁,共80頁。中斷中斷(zhngdun)架構(gòu)架構(gòu)中斷只是異常處理的一部分在內(nèi)核代碼中被獲取在恢復(fù)到用戶態(tài)之間進行處理但是硬件是獨立于操作系統(tǒng)的CE使用二階段中斷服務(wù)(fw)模式少量的代碼進行中斷的記錄調(diào)度中斷服務(wù)(fw)程序代碼進行處理操作系統(tǒng)提供API來使能IRQ信號,設(shè)置中斷的優(yōu)先級,等等。與硬件有關(guān)的操作在OAL,以及設(shè)備驅(qū)動代碼中進行。第52頁/共80頁第五
25、十二頁,共80頁。關(guān)于關(guān)于ISR與與IST的一些的一些(yxi) 解釋解釋 IST是老的用戶模式代碼 有完整的CE .NET API與CRT庫 CE .NET調(diào)度程序根據(jù)線程的優(yōu)先級控制IST的執(zhí)行 運行態(tài)綁定到SYSINTR 從異常處理函數(shù)調(diào)用ISR 沒有操作系統(tǒng)服務(wù) 堆棧(duzhn)空間大小有限 可設(shè)置為可重入的 (在OAL進行設(shè)置) MIPS, SHx匯編語言第53頁/共80頁第五十三頁,共80頁。ISRIRQ 優(yōu)先級的設(shè)定依賴于不同CPU的系統(tǒng)架構(gòu)在x86上由PIC硬件進行設(shè)置在MIPS上用OAL的IntrPriority, IntrMask 進行設(shè)置通過讓IST進程推斷ISR服務(wù),
26、OAL能夠增加實時性。在CE 3.0中,所有的ISR代碼都是OAL的一部分沒有特殊的擴展(kuzhn)IRQ綁定到OEMInit的事件ID沒有支持PNP, 共享IRQ (PCI總線)CE .NET 通過IRS(IISR)鏈解決了這些限制。第54頁/共80頁第五十四頁,共80頁。CE .NET 可安裝可安裝(nzhung)ISRCE 3.0 ISR 架構(gòu)的首選擴展DLL 代碼,在運行時進行綁定源代碼可以是獨立于CPU的一般用C編寫有一些限制不能調(diào)用CRT, Windows API, 或其它的DLL不可推斷的ISR,或 IST發(fā)布支持硬件(yn jin)共IRQ共享從同一個IRQ關(guān)聯(lián)的不同SYSI
27、NTR ID第55頁/共80頁第五十五頁,共80頁。CE .NET中斷中斷(zhngdun)處理處理第56頁/共80頁第五十六頁,共80頁。中斷中斷(zhngdun)服務(wù)線程服務(wù)線程是內(nèi)置設(shè)備的驅(qū)動程序的作戶態(tài)線程進行( jnxng)實際的中斷處理調(diào)用CreateEvent 創(chuàng)建一個與邏輯中斷相關(guān)聯(lián)的事件對象IST在大多數(shù)時間里都是處于空閑狀態(tài),以內(nèi)核用信號通知事件對象時被喚醒IST通常運行的優(yōu)先級高于普通優(yōu)先級,其優(yōu)先級由 CeSetThreadPriority函數(shù)設(shè)定第57頁/共80頁第五十七頁,共80頁。中斷中斷(zhngdun)服務(wù)線程服務(wù)線程InterruptInitialize調(diào)用
28、InterruptInitialize將事件與ISR的中斷標(biāo)識符關(guān)聯(lián)(gunlin)起來WaitForSingleObject用來等待一個用信號通知的事件這一調(diào)用通常放在一個循環(huán)中,以使和中斷處理時,IST可以回到這一個調(diào)用等待下一個要處理的中斷InterruptDone中斷數(shù)據(jù)處理完以后,IST必須調(diào)用 InterruptDone函數(shù)使內(nèi)核使能與這一個線程相關(guān)的中斷第58頁/共80頁第五十八頁,共80頁。典型典型(dinxng)的的IST啟動啟動第59頁/共80頁第五十九頁,共80頁。典型典型(dinxng)的的IST啟動啟動設(shè)置IST的優(yōu)先級與以前的事件斷開(dun ki)與ISR關(guān)聯(lián)第6
29、0頁/共80頁第六十頁,共80頁。典型典型(dinxng)的的IST啟動啟動第61頁/共80頁第六十一頁,共80頁。典型典型(dinxng)的的IST結(jié)束結(jié)束設(shè)置一個會導(dǎo)致IST退出(tuch)的標(biāo)志第62頁/共80頁第六十二頁,共80頁。總線總線(zn xin)驅(qū)動概覽驅(qū)動概覽 PCMCIA I82365 (ISA) TI-1250 (PCI) USB Host 多主控制器 OHCI 與 UHCI (PCI)第63頁/共80頁第六十三頁,共80頁。PCMCIA HostPCMCIA總線驅(qū)動有三個主要的線程 狀態(tài)改變線程 (卡的插入與移除) 中斷線程(處理卡的功能性中斷請求) 回調(diào)線程 (通知
30、事件相關(guān)的設(shè)備卡) 總線驅(qū)動支持Card Serv消息的一個子集,從回調(diào)線程中用回調(diào)函數(shù)發(fā)送中斷以回調(diào)的形式發(fā)送到客戶端驅(qū)動對新插入的卡進行掃描以確定是否(sh fu)PnP元組,并與注冊表中的相關(guān)項進行比較如果沒有發(fā)現(xiàn)相匹配的信息,則候選的驅(qū)動程序就運行與卡相關(guān)的“detect”例程對卡進行識別可能顯示出一個對話框詢問DLL的名字第64頁/共80頁第六十四頁,共80頁。USB Host兼容USB 1.1版完全支持OHCI與UHCI支持所有的傳輸類型Isoch, bulk, interrupt, controlUSBD支持多個HC的復(fù)用總線設(shè)備驅(qū)動典型地采用LoadDriver進行安裝,使用(shyng)USBD操作與HC進行通信總線設(shè)備驅(qū)動能可選地調(diào)用ActivateDeviceEx()以提供一個流接口給應(yīng)用程序檢測并識別新裝設(shè)備按照注冊表中的描述安裝驅(qū)動可能顯示一個對話框詢問DLL的名字第65頁/共80頁第六十五頁,共80頁。第66頁/共80頁第六十六頁,共80頁。編程模型編程模型第67頁/共80頁第六十七頁,共80頁。第68頁/共80頁第六十八頁,共80頁。USB 驅(qū)動驅(qū)動(q dn)傳輸類型傳輸類型 控制傳輸 USB 打印機, USB數(shù)碼相機 同步傳輸 USB 網(wǎng)絡(luò)電話(wn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年外研版選修3地理下冊階段測試試卷含答案
- 二零二五年度美容院員工持股計劃股份購買合同4篇
- 2025年度木模板木方綠色認(rèn)證與采購合同4篇
- 二零二五年度圍欄行業(yè)規(guī)范制定與實施合同2篇
- 二零二五版跨境電商進口商品質(zhì)量保證實務(wù)合同范本3篇
- 2025版寧波慈溪編制城市社區(qū)規(guī)劃與建設(shè)合同4篇
- 二零二五版嬰幼兒奶粉行業(yè)培訓(xùn)與專業(yè)人才培養(yǎng)合同3篇
- 樂器采購合同標(biāo)準(zhǔn)版可打印
- 2025年農(nóng)機作業(yè)托管與收益分配合同4篇
- 2025版木材出口業(yè)務(wù)代理采購合同范本4篇
- 湖北省黃石市陽新縣2024-2025學(xué)年八年級上學(xué)期數(shù)學(xué)期末考試題 含答案
- 硝化棉是天然纖維素硝化棉制造行業(yè)分析報告
- 央視網(wǎng)2025亞冬會營銷方案
- 《00541語言學(xué)概論》自考復(fù)習(xí)題庫(含答案)
- 《無砟軌道施工與組織》 課件 第十講雙塊式無砟軌道施工工藝
- 江蘇省南京市、鹽城市2023-2024學(xué)年高三上學(xué)期期末調(diào)研測試+英語+ 含答案
- 2024新版《藥品管理法》培訓(xùn)課件
- 《阻燃材料與技術(shù)》課件 第7講 阻燃橡膠材料
- 爆炸物運輸安全保障方案
- 借名買車的協(xié)議書范文范本
- 江蘇省南京市2025屆高三學(xué)業(yè)水平調(diào)研考試數(shù)學(xué)試卷(解析版)
評論
0/150
提交評論