1. 程式人生 > >Windows CE 5.0:驅動程式---裝置管理器

Windows CE 5.0:驅動程式---裝置管理器

釋出日期: 11/1/2004 | 更新日期: 11/1/2004

裝置管理器是在 Windows CE 作業系統下執行的程序,它跟蹤已載入的驅動程式和它們的介面。它連續不斷地執行並且從核心中啟動。裝置管理器可以在裝置介面變得可用和不可用時通知使用者。使用者或系統本身可以使裝置介面變得可用或不可用。另外,裝置管理器通知核心裝置介面支援檔案操作(例如,CreateFile)訪問公開流介面的裝置。裝置管理器向裝置驅動程式傳送電源通知回撥並提供電源管理服務。有關詳細資訊,請參閱 Power Management

裝置管理器控制登錄檔中的 Active 項。只有裝置管理器應當訪問 Active 項以獲取讀取或寫入訪問許可權。您可以通過裝置驅動程式的初始化函式的引數間接訪問 Active

項。

裝置管理器搜尋 HKEY_LOCAL_MACHINE/Drivers/RootKey 登錄檔項,以確定用於開始驅動程式載入過程的項。RootKey 的預設值是 Drivers,但是它通常等於 Drivers/BuiltIn。裝置管理器呼叫 ActivateDeviceEx 以載入由 Dll 子項的值(它位於由 RootKey 值指定的項中)指定的驅動程式。Dll 子項的值預設情況下為 BusEnum.dll(也稱為匯流排列舉器)。載入 BusEnum.dll 會使所有裝置驅動程式載入。由 ActivateDeviceEx 載入的裝置可以從它的 Active 登錄檔項中讀取它的啟用控制代碼。

當裝置管理器載入時,它還載入 I/O 資源管理器,以便從登錄檔中讀取可用資源的列表。有關 I/O 資源管理器的詳細資訊,請參閱 I/O Resource Manager

裝置管理器將匯流排名稱與驅動程式相關聯。未命名的裝置也可以具有匯流排名稱,因為即使應用程式可能無法訪問驅動程式,驅動程式也可能被其他驅動程式或系統實體(例如,電源管理器)訪問。匯流排名稱可以具有與正規裝置名稱不同的 ACL。

裝置管理器跟蹤由驅動程式公佈的介面,並且支援基於全域性唯一識別符號 (GUID) 搜尋驅動程式。IClass 介面可以將介面 GUID 與驅動程式的舊式名稱、$device 名稱或 $bus 名稱(例如,“COM1 :”、“$device/com1”或“$bus/pci_0_3_0”)相關聯。

驅動程式可以通過呼叫 DMAdvertiseInterface 以程式設計方式公佈介面。DMAdvertiseInterface 使驅動程式能夠將更多可搜尋的 GUID 新增到它們的關聯列表中。DMAdvertiseInterface 由 Devmgr.dll 公開,後者還實現了大多數裝置管理器功能。因為只有裝置管理器可以載入 Devmgr.dll,所以只有裝置驅動程式可以呼叫 DMAdvertiseInterface。如果裝置驅動程式在解除安裝時沒有公佈它的介面的不可用性,則裝置管理器會自動清除介面公佈通知。

裝置管理器元件

裝置管理器由 Device.exe 和 Devmgr.dll 組成。Device.exe 包含 Devmgr.dll,後者實現了核心裝置管理器功能。因為裝置管理器由兩個單獨的模組組成,所以裝置驅動程式可以直接與裝置管理器連結並呼叫特定的函式(例如,DMAdvertiseInterface),而不會引起系統呼叫的開銷。

下表顯示了裝置管理器的元件。

元件 說明

devcore

提供核心裝置管理器功能。

iorm

提供 I/O 資源管理器功能。Iorm 是必需的元件且無法移除。

nopmif

pmif

Pmif 提供了電源管理器 DLL 入口點的介面。

Nopmif 提供了電源管理器入口點的存根版本。

另請參閱

 

相關推薦

Windows CE 5.0驅動程式---裝置管理

釋出日期: 11/1/2004 | 更新日期: 11/1/2004 裝置管理器是在 Windows CE 作業系統下執行的程序,它跟蹤已載入的驅動程式和它們的介面。它連續不斷地執行並且從核心中啟動。裝置管理器可以在裝置介面變得可用和不可用時通知使用者。使用者或系統本身可以使裝置介面變得可用或不可用。另外

Windows CE 5.0驅動程式---裝置介面

裝置介面 釋出日期: 11/1/2004 | 更新日期: 11/1/2004 裝置介面類是應用程式可用來訪問裝置驅動程式的功能的方法。它們向收到通知的任何一方表明特定介面存在。裝置驅動程式可以具有多個裝置介面類,也可以沒有任何裝置介面類。 IClass 登錄檔子項引用裝置介面和它們的關聯 GUID。宣

windows ce 5.0 直接連線區域網內 sql2005資料庫

前段時間做windows mobile 開發 VS2008+ mobile 6.0 + compact framework3.5 能連線上sql2005資料庫 近幾天買了臺wince5.0的裝置,放上以前的程式發現沒辦法連線資料庫了 提示:“無法找到 p

VS2005 無法進行 Windows Mobile 5.0 程式開發

已經安裝 VS2005 及智慧裝置開發的模組,如下圖:   提示錯誤資訊如下:   由於前面的錯誤,Smart Device Configuration Package ({D245F354-3F45-4516-B1E6-04608DA126CC})未載

Linux中斷(interrupt)子系統之四驅動程式介面層 & 中斷通用邏輯層

轉載地址:https://blog.csdn.net/DroidPhone/article/details/7497787 在本系列文章的第一篇:Linux中斷(interrupt)子系統之一:中斷系統基本原理,我把通用中斷子系統分為了4個層次,其中的驅動程式介面層和中斷通用邏輯層的界限實際上不

5. 嵌入式linux驅動-linux裝置分類

1. Linux裝置分類   Linux 系統中的裝置可以分為字元裝置、塊裝置和網路裝置這3 類。 字元裝置:字元裝置是能夠像位元組流一樣被訪問的裝置,當對字元裝置發出讀寫請求,相應的I/O 操作立即發生。Linux 系統中很多裝置都是字元裝置,如字元終端、串

如何解決 Windows 7 中安裝印表機驅動程式時,出現錯誤資訊"找不到指定模組"或"XXX.dll 檔案丟失"

文章簡介 在Windows7中安裝驅動程式時,出現錯誤資訊“找不到指定模組”或“XXX.dll 檔案丟失”,您可以參考本文的步驟嘗試解決問題 應用軟體執行時一般都是優先從自己的安裝目錄中呼叫所需的模組(.dll)檔案,如沒有所需檔案再到 Windows\System

vmware 安裝 windows 找不到任何驅動程式

vmware install windows: “No device drivers were found. Make sure that the installation media contains

linux驅動由淺入深系列驅動程式的基本結構概覽之一(第一個驅動程式

本系列導航: 提到linux驅動程式,首先應該知道它是linux的核心模組。那麼想要編寫驅動程式,就要首先認識一下linux的核心模組機制。Linux核心模組是使得複雜而龐大的linux核心條理清晰、可裁剪、高相容性的重要特性。 Linux核心模組的特點: 1, 

ROS原始碼閱讀(5ROS程式的初始化——對ros:init()的總結

https://blog.csdn.net/wanghuiquan0712/article/details/78052093 回顧 ros::init()是ROS程式呼叫的第一個函式,用於對ROS程式的初始化。該函式主要呼叫了以下五個函式對ROS程式進行初始化: network::init(

韋東山嵌入式Linux學習筆記之——第12課第8節 字元裝置驅動程式之定時防抖動

注:本文部分內容摘自《魚樹學員筆記》。 當按鍵按得比較快的時候,這裡出現了兩次中斷值,也即產生了抖動。 這裡產生了“抖動”,按鍵是機械開關,按下鬆開時裡面的金屬彈片可能抖動了好幾次。這種抖動產生了多次“脈衝”導致多次中斷。 方法: 使用定時器來防抖動。

Visual Studio 2005中配置Windows Mobile 5.0開發環境

Visual Studio 2005無疑是開發Windows Mobile的最佳工具,其本身就集成了Windows Mobile開發環境,.Net Compact Framework也同時升級到了2.0,只是它自身所帶的模擬器是Windows CE 2003的,有些落後時代了

有關 Windows Mobile 5.0 模擬器的網路配置

Step 1:配置面板-〉網路連線-〉右鍵點選Local Area Connection圖示-〉屬性。進入(圖一)配置介面。 Step 2:如果已經存在紅線標示的服務,則點選解除安裝,將其解除安裝掉。 Step 3:安裝虛擬網絡卡驅動netsvwrap.msi,可以到MS的

pentaho data-integration CE 5.0.1-stable ( kettle ) 使用 mysql 建立資源庫 (repository )

首先要啟動mysql. mysql的安裝和啟動可參考此文 http://blog.csdn.net/duchang110/article/details/17797595 1. 啟動kettle 切換到kettle目錄 cd /usr/local/pdi/ 2.啟動kett

ArcGIS Runtime SDK for Android 入門(5顯示移動裝置當前位置

    本文主要講解如何使用ArcGIS Runtime SDK for Android 在地圖中顯示移動裝置的當前位置。 1.建立Android專案    2.新增Runtime SDK依賴    3.新增許可權及OpenGL ES支援 在AndroidMani

基於Visual C++之Windows核心程式設計程式碼分析(1)實現裝置管理列舉裝置

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

4412下的pwm驅動程式-暫存形式

這是一個操作暫存器的pwm驅動,關於pwm這一塊可以看晶片手冊,這些暫存器至於為什麼要這樣設定,手冊裡都有說明 #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h

ElasticSearch6.5.0 【安裝IK分詞

不得不誇獎一下ES的周邊資源,比如這個IK分詞器,緊跟ES的版本,盧本偉牛逼!另外ES更新太快了吧,幾乎不到半個月一個小版本就釋出了!!目前已經發了6.5.2,估計我還沒怎麼玩就到7.0了。 下載 分詞器:GitHub 點選release,下載對應的版本,他這個跟ES是一一對應的。 安裝 他這個

springBoot 2.0.3 + SpringSecurity 5.0.6 + thymeleaf + boostrap 許可權管理案例

1、 工於成其實,必先搭建springboot工程,配置我們pom.xml 所需的jar依賴          <!-- thymeleaf 模板依賴 -->     

解讀ASP.NET 5 & MVC6系列(5Configuration配置資訊管理

在前面的章節中,我們知道新版的MVC程式拋棄了原來的web.config檔案機制,取而代替的是config.json,今天我們就來深入研究一下配置檔案的相關內容。 基本用法 新版的配置資訊機制在Microsoft.Framework.ConfigurationModel名稱空間下進行了重寫,重寫以後不僅支援X