原创 Windows內核函數(2) - 內核模式下的文件操作
轉載自;http://mzf2008.blog.163.com/blog/static/35599786201011124648756/ 1. 文件的創建 對文件的創建或者打開都是通過內核函數ZwCreateFile
原创 派遣函數(1) - 初識派遣函數
轉載自;http://mzf2008.blog.163.com/blog/static/3559978620101114103859212/ IRP與派遣函數< xmlnamespace prefix ="o" ns ="urn:
原创 Windows內存管理(1)--分配內核內存 和 使用鏈表
轉載自;http://mzf2008.blog.163.com/blog/static/3559978620101110101314696/ 1. 分配內核內存 Windows驅動程序使用的內存資源非常珍貴,分配內存時要儘量
原创 Windows內存管理(3)--檢查內存可用性,結構化異常處理 和 ASSERT
轉載自:http://mzf2008.blog.163.com/blog/static/355997862010111052745960/ 1. 檢查內存可用性 在驅動程序開發中,對內存的操作要格外小心。如果某段內存是隻讀的,
原创 快速系統調用
轉載自:http://mzf2008.blog.163.com/blog/static/35599786201121011337777/ 用戶層: 首先Windows還是調用R3層的函數NtReadFile(),不過此函數相對以前
原创 線程同步(2) - 內核模式下的線程同步
轉載自:http://mzf2008.blog.163.com/blog/static/355997862010112041821953/ 1.內核模式下的等待 NTSTATUS KeWaitForSingleObjec
原创 Windows內核函數(3) - 內核模式下的註冊表操作
轉載自:http://mzf2008.blog.163.com/blog/static/355997862010111313716234/ 註冊表裏的幾個概念: 1. 創建關閉註冊表項 NTSTATUS
原创 Windows內核函數(1) - 字符串處理函數
轉載自:http://mzf2008.blog.163.com/blog/static/3559978620101112115510592/ 1.ASCII字符串和寬字符串 打印一個ASCII字符串: CHAR* string
原创 IRP的同步
轉載自:http://mzf2008.blog.163.com/blog/static/355997862010112412048667/ 同步操作設備 如果需要同步操作設備,那麼在打開設備的時候就要指定以“同步”的方式打開
原创 定時器
轉載自:http://mzf2008.blog.163.com/blog/static/355997862010112622923357/ 1. I/O定時器 I/O定時器是DDK提供的一種定時器,使用這種定時器時,每間
原创 派遣函數(2) - 設備對象的3種讀寫方式
轉載自:http://write.blog.csdn.net/postedit 讀寫操作 設備對象一共可以有三種讀寫方式,分別是緩衝區方式讀寫,直接方式讀寫,其他方式讀寫。這三種方式的Flags分別對應爲DO_BUFFERED_
原创 派遣函數(3) - IO設備控制操作
轉載自:http://mzf2008.blog.163.com/blog/static/35599786201011162265581/ 1.DeviceIoControl與驅動交互 除了用ReadFile(讀設備)和WriteF
原创 SysEnter Hook
#include <ntddk.h> ULONG g_OldKiFastCallEntry; // Original value of ntoskrnl!KiFastCallEntry VOID OnUnload( IN PDRIVE
原创 線程同步(1) - 用戶模式下的線程同步
轉載自:http://mzf2008.blog.163.com/blog/static/355997862010111731141289/ (1) 用戶模式的等待 DWORD WaitForSingleObject(
原创 WDM式驅動程序的基本結構
轉載自;http://mzf2008.blog.163.com/blog/static/35599786201011973648864/ WDM式驅動程序的基本結構 對於WDM驅動程序來說,一般都是基於分層的。也就是