注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

简单的NT驱动代码  

2012-03-12 18:39:04|  分类: window驱动学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include <ntddk.h>


VOID DriverUnload(IN PDRIVER_OBJECT pDriverObject)
{

 UNICODE_STRING symLinkName;
 PDEVICE_OBJECT pDevObj;

 pDevObj = pDriverObject->DeviceObject;
 IoDeleteDevice(pDevObj);

 RtlInitUnicodeString(&symLinkName,L"\\??\\HelloDDK");

 IoDeleteSymbolicLink(&symLinkName);
DbgPrint("DriverUnload Load...\n");

return ;
}

NTSTATUS HelloDDKDispatchRoutine(IN PDEVICE_OBJECT pDevObj,IN PIRP pIrp)
{
pIrp->IoStatus.Status = STATUS_SUCCESS;
pIrp->IoStatus.Information = 0;

IoCompleteRequest(pIrp,IO_NO_INCREMENT);

return STATUS_SUCCESS;
}




NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject,IN PUNICODE_STRING pRegistryPath)
{

NTSTATUS ntStatus;
PDEVICE_OBJECT pDevObj;
/*创建设备名称*/
UNICODE_STRING devName;
UNICODE_STRING symLinkName;
RtlInitUnicodeString(&devName,L"\\Device\\MyDDKDevice");

/*创建设备*/
ntStatus = IoCreateDevice(pDriverObject,
NULL,
&devName,
FILE_DEVICE_UNKNOWN,
0,
TRUE,
&pDevObj);


if (!NT_SUCCESS(ntStatus))
{
DbgPrint("Create Device Failed...\n");
return ntStatus;
}
else
{
DbgPrint("Create Device SuccessFully...\n");
return ntStatus;
}

pDevObj->Flags |= DO_BUFFERED_IO;

RtlInitUnicodeString(&symLinkName,L"\\??\\HelloDDK");
ntStatus = IoCreateSymbolicLink(&symLinkName,&devName);

if (!NT_SUCCESS(ntStatus))
{
DbgPrint("Create SymbolicLink Failed...\n");
IoDeleteDevice(pDevObj);
return ntStatus;
}
else
{
DbgPrint("Create SymbolicLink Successfully...\n");
}

pDriverObject->MajorFunction[IRP_MJ_CREATE] = HelloDDKDispatchRoutine;
pDriverObject->MajorFunction[IRP_MJ_CLOSE] = HelloDDKDispatchRoutine;
pDriverObject->MajorFunction[IRP_MJ_WRITE] = HelloDDKDispatchRoutine;
pDriverObject->MajorFunction[IRP_MJ_READ] = HelloDDKDispatchRoutine;

pDriverObject->DriverUnload = DriverUnload;

return STATUS_SUCCESS;
}


  评论这张
 
阅读(80)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017