资源简介

《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\linkList\
     目录           0  2016-12-05 19:06  Windows驱动开发技术详解(pdf书+源代码)\Windows驱动开发技术详解\chapter05\linkList\NT_Driver\
     目录           0  2016-12-05 19:06  Windows驱动开发技术详解(pdf书+源代码)\Windows驱动开发技术详解\chapter05\linkList\NT_Driver\2\
     目录           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个文件信息

评论

共有 条评论