資源簡介
《Windows驅動開發技術詳解》完整清晰版+源碼
代碼片段和文件信息
/************************************************************************
*?文件名稱:Driver.cpp?????????????????????????????????????????????????
*?作????者:張帆
*?完成日期:2007-11-1
*************************************************************************/
#include?“Driver.h“
/************************************************************************
*?函數名稱:DriverEntry
*?功能描述:初始化驅動程序,定位和申請硬件資源,創建內核對象
*?參數列表:
??????pDriverobject:從I/O管理器中傳進來的驅動對象
??????pRegistryPath:驅動程序在注冊表的中的路徑
*?返回?值:返回初始化驅動狀態
*************************************************************************/
#pragma?INITCODE
extern?“C“?NTSTATUS?DriverEntry?(
IN?PDRIVER_object?pDriverobject
IN?PUNICODE_STRING?pRegistryPath )?
{
NTSTATUS?status;
KdPrint((“Enter?DriverEntry\n“));
//注冊其他驅動調用函數入口
pDriverobject->DriverUnload?=?HelloDDKUnload;
pDriverobject->MajorFunction[IRP_MJ_CREATE]?=?HelloDDKDispatchRoutine;
pDriverobject->MajorFunction[IRP_MJ_CLOSE]?=?HelloDDKDispatchRoutine;
pDriverobject->MajorFunction[IRP_MJ_WRITE]?=?HelloDDKDispatchRoutine;
pDriverobject->MajorFunction[IRP_MJ_READ]?=?HelloDDKDispatchRoutine;
//創建驅動設備對象
status?=?CreateDevice(pDriverobject);
KdPrint((“DriverEntry?end\n“));
return?status;
}
/************************************************************************
*?函數名稱:CreateDevice
*?功能描述:初始化設備對象
*?參數列表:
??????pDriverobject:從I/O管理器中傳進來的驅動對象
*?返回?值:返回初始化狀態
*************************************************************************/
#pragma?INITCODE
NTSTATUS?CreateDevice?(
IN?PDRIVER_object pDriverobject)?
{
NTSTATUS?status;
PDEVICE_object?pDevObj;
PDEVICE_EXTENSION?pDevExt;
//創建設備名稱
UNICODE_STRING?devName;
RtlInitUnicodeString(&devNameL“\\Device\\MyDDKDevice“);
//創建設備
status?=?IoCreateDevice(?pDriverobject
sizeof(DEVICE_EXTENSION)
&(UNICODE_STRING)devName
FILE_DEVICE_UNKNOWN
0?TRUE
&pDevObj?);
if?(!NT_SUCCESS(status))
return?status;
pDevObj->Flags?|=?DO_BUFFERED_IO;
pDevExt?=?(PDEVICE_EXTENSION)pDevObj->DeviceExtension;
pDevExt->pDevice?=?pDevObj;
pDevExt->ustrDeviceName?=?devName;
//創建符號鏈接
UNICODE_STRING?symlinkName;
RtlInitUnicodeString(&symlinkNameL“\\??\\HelloDDK“);
pDevExt->ustrSymlinkName?=?symlinkName;
status?=?IoCreateSymboliclink(?&symlinkName&devName?);
if?(!NT_SUCCESS(status))?
{
IoDeleteDevice(?pDevObj?);
return?status;
}
return?STATUS_SUCCESS;
}
/************************************************************************
*?函數名稱:HelloDDKUnload
*?功能描述:負責驅動程序的卸載操作
*?參數列表:
??????pDriverobject:驅動對象
*?返回?值:返回狀態
*************************************************************************/
#pragma?PAGEDCODE
VOID?HelloDDKUnload?(IN?PDRIVER_object?pDriverobject)?
{
PDEVICE_object pNextObj;
KdPrint((“Enter?DriverUnload\n“));
pNextObj?=?pDriverobject->Deviceobject;
while?(pNextObj?!=?NULL)?
{
PDEVICE_EXTENSION?pDevExt?=?(PDEVICE_EXTENSION)
pNextObj->DeviceExtension;
//刪除符號鏈接
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\NT_Driver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\NT_Driver\1\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\NT_Driver\2\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\WDM_Driver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\WDM_Driver\1\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\WDM_Driver\2\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter01\WDM_Driver\2\MyDriver_Check\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter03\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter03\LoadNTDriver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter03\LoadNTDriver\MyDriver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter03\LoadNTDriver\Test\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter04\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter04\NT_Driver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter04\NT_Driver\2\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter04\WDM_Driver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter04\WDM_Driver\2\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\FileTest\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\FileTest\NT_Driver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\FileTest\NT_Driver\2\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\li
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\li
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\li
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\Lookaside\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\Lookaside\NT_Driver\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\Lookaside\NT_Driver\2\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\RegTest\
?????目錄???????????0??2016-12-05?19:06??Windows驅動開發技術詳解(pdf書+源代碼)\Windows驅動開發技術詳解\chapter05\RegTest\NT_Driver\
............此處省略944個文件信息
- 上一篇:并行立體匹配論文合集
- 下一篇:Gephi-0.9.1 windows版本
評論
共有 條評論