1. 程式人生 > >驅動框架理解

驅動框架理解

  • 概述

API在某個標頭檔案中定義,被封裝在某個DLL中,而這個DLL會進一步被封裝在ntdll.dll中(它裡面的API叫native api),比如,ReadFile在ntdll.dll中就對應著ntReadFile;然後這個API會通過sysenter的方式進入核心層。

那麼,比如對於CreateFile的執行引數,必須告知核心,而這些引數就被封裝在IRP中。IRP是一個結構體,它封裝了應用層傳下的命令和資料。

驅動拿到IRP並進行處理,並把處理結果返回給應用層。

現在隨意附加到一個程序當中,看看它的CreateFile呼叫。

先用windbg連上虛擬機器:

然後break下來,執行命令。載入完符號表之後,使用!process 0 0 命令

列出所有程序資訊

相關推薦

驅動框架理解

概述 API在某個標頭檔案中定義,被封裝在某個DLL中,而這個DLL會進一步被封裝在ntdll.dll中(它裡面的API叫native api),比如,ReadFile在ntdll.dll中就對應著ntReadFile;然後這個API會通過sysenter的方式進入核心層。 那麼,比如對於Cre

linux設備驅動之misc驅動框架源碼分析(一)

linux驅動開發misc設備驅動 1、misc設備驅動框架源碼部分是由內核開發者實現提供的,主要是創建misc類和為驅動開發者提供misc_register函數,來進行創建misc設備。 這部分的源碼在/drvier/char/misc.c裏,代碼如下:/* * linux/drivers/c

linux設備驅動之misc驅動框架源碼分析(二)

linux驅動開發misc設備驅動1、misc_open函數分析 該函數在driver/char/misc.c中,misc.c是驅動框架實現的,這裏面的misc_Open函數是misc驅動框架為應用層提供的一個打開misc設備的一個接口。 1、首先我們要知道在misc.c中的misc_init函數

linux驅動摸索 --驅動框架初始化(結合韋東山視頻教程)

boa kernel cde targe 一個 自動 comm argv ops 一.驅動框架 初始化:insmod 加載 1.確定主設備號: 分為靜態和動態分配,其中LED_GPIO_SIZE 表示支持的次設備號數目,一般默認為1. 相關

I2C子系統驅動框架及應用 (轉)

sent cal fcm tran 中一 table same print style I2C子系統驅動框架: 應用程序層(app層) ——————————————————————————————————– i2c driver層: 從設備驅動層(TS Senso

Hibernate 框架理解

pin persist 編寫 映射 一個 無需 單位 hiberna 包裝   Hibernate框架簡化了java應用程序與數據庫交互的開發。Hibernate是一個開源,輕量級的ORM(對象關系映射)工具。   ORM工具簡化瀏覽數據的創建,數據處理和數據訪問。它是將對

Lind.DDD敏捷領域驅動框架~介紹

原創 bbb dnn art pdh dtd 刪除 too nim Lind.DDD敏捷領域驅動框架~介紹 qq 2589406800 qq1399494644 qq2128543647 qq2890083872 qq3235634116 qq3381945576 q

SPI驅動框架-1(DM8127 Linux2.6.37為例)

orm span remove mac 設備 single 隊列 drive for 一、驅動程序結構 1、platform_device 文件:/arch/arm/mach-omap2/device.c static struct omap2_mcspi_platfor

Scrapy 框架理解

mage down 沒有 包括 構圖 domain 信息 控制 dom scrapy的架構圖: 組件 Scrapy Engine 引擎負責控制數據流在系統中所有組件中流動,並在相應動作發生時觸發事件。 調度器(Scheduler) 調度器從引擎接受reque

5.4.1.何謂驅動框架

特殊 1.2 調用 解釋 所有 出接口 如果 標準化 開發工程師 本節主要解釋了什麽是驅動框架,為什麽需要驅動框架,基於驅動框架寫驅動有什麽優勢等問題。 5.4.1.1、驅動是誰寫的 (1)驅動開發工程師 (2)內核維護者 5.4.1.2、驅動編程協作要求 (1)接口標準化

5.7.5.framebuffer驅動框架總覽

這就是我 write lcd 是什麽 sun 設備 詳細 png 定義 參考http://www.cnblogs.com/EaIE099/p/5175979.html 本節對內核的framebuffer驅動框架做整體介紹,各部分涉及哪些文件,每個文件是誰寫的,具體功能是什麽

5.7.6.framebuffer驅動框架分析1

iop 之間 write ioctl 程序 硬件 struct 於平 完成 http://www.mamicode.com/info-detail-1209620.html 5.7.6.1、fbmem_init函數[driver/video/fbmem.c] (1)#ifd

linux驅動開發(三) 字符設備驅動框架(自動創建設備節點)

The module __line__ mage fail goto div on() sys 代碼如下 #include <linux/init.h> #include <linux/module.h> #include <linux/ke

ssm框架理解

配置 數據 ESS 相同 共同點 清空 pat ioc 對比 SpringSpring就像是整個項目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數去調用實體類的構造方法來實例化對象。Spring的核心思想是IoC(控制反轉),即不再需要程序員去顯式地new一個對

46.Linux-分析rc紅外遙控平臺驅動框架,修改內核的NEC解碼函數BUG(1)

進入 checksum 開始 紅外遙控 中斷函數 height clas margin 復習 內核版本 : Linux 3.10.14 rc紅外接收類型: GPIO 類型的NEC紅外編碼 本章內容 1) rc體系結構分析 2)

SpringMVC框架理解

ola ans sub character XML toad this 轉發 org JavaEE體系結構包括四層,從上到下分別是應用層、Web層、業務層、持久層。Struts和SpringMVC是Web層的框架,Spring是業務層的框架,Hibernate和MyBati

clk子系統 - 驅動框架

clk子系統負責為整個系統硬體提供時鐘訊號,這個要和linux的時鐘系統區別開來;現在的ASoC上包含許多clk模組,比如晶振,pll,divider等,那麼clk子系統就把這些模組抽象出來,並形成一個驅動框架,這樣對於其他驅動開發人員來說,只需要呼叫通用的介面就能操作各自裝置的

linux音訊子系統 - 驅動框架

音訊相關術語 PCM(Pulse Code Modulation) 脈衝編碼調製,對連續變化的模擬訊號進行抽樣、量化和編碼,在驅動中一般音訊流裝置都稱為pcm裝置 I2S I2S是對PCM格式的資料進行規範化,可以說是PCM的子集,I2S只有左右兩通道資料 T

linux裝置驅動模型 - 驅動框架

linux驅動模型框架如圖所示: 1. kernfs 驅動最終是提供給使用者層使用,那麼其中的介面就是通過kernfs檔案系統來註冊,kernfs是一個通用的核心虛擬檔案系統 2. sysfs/kobject sysfs是裝置驅動檔案系統,裝置之間的各種關係會在在/

wifi驅動理解(4)——usb介面在wifi模組中的角色

         轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!          還有1天就到2017年了,回顧整個2016年至此,都沒發表過一篇技