大神们帮小弟我看一下,小弟我的代码错在什么地方? 加载成功,卸载就蓝屏了.
发布时间:2010-06-14 17:46:02 文章来源:www.iduyao.cn 采编人员:星星草
大神们帮我看一下,我的代码错在什么地方? 加载成功,卸载就蓝屏了....
/*
**************************************************************************************************
*= = 文件名称:HelloDRIVER.h
*= = 文件描述:HelloDRIVER 头文件
**************************************************************************************************
*/
#ifndef _HELLODRIVER_H_
#define _HELLODRIVER_H_
// *=================================================================================================
// *= = 包含相关文件
// *=================================================================================================
#include <ntddk.h>
// *=================================================================================================
// *= = 预处理定义
// *=================================================================================================
#define PAGEDCODE code_seg("PAGE")
#define LOCKDCODE code_seg()
#define INITCODE code_seg("INIT")
// *=================================================================================================
// *= = 结构体
// *=================================================================================================
typedef struct _DEVICE_EXTENSION
{
PDEVICE_OBJECT pDeviceExtObject;
UNICODE_STRING ustrDeviceExtName;
UNICODE_STRING ustrsymLinkExtName;
}DEVICE_EXTENSION,*PDEVICE_EXTENSION;
// *=================================================================================================
// *= = 函数声明
// *=================================================================================================
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT pDriverObject,
IN PUNICODE_STRING pRegistryPath
);
NTSTATUS DefaultDispatch(
IN PDEVICE_OBJECT pDeviceObject,
IN PIRP pIrp
);
VOID DriverUnload(
IN PDRIVER_OBJECT pDriverObject
);
// *=================================================================================================
// *= = 文件结束
// *=================================================================================================
#endif
/*
**************************************************************************************************
*= = 文件名称:HelloDRIVER.c
*= = 文件描述:驱动程序 HelloDRIVER 源文件
**************************************************************************************************
*/
// *=================================================================================================
// *= = 包含相关文件
// *=================================================================================================
#include "HelloDRIVER.h"
// *=================================================================================================
// *= = 函数名称:DriverEntry
// *= = 功能描述:驱动程序入口函数
// *= = 入口函数:pDriverObject,pRegistryPath
// *= = 出口函数:NTSTATUS
// *=================================================================================================
#pragma INITCODE
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT pDriverObject,
IN PUNICODE_STRING pRegistryPath
)
{
NTSTATUS status;
PDEVICE_OBJECT pDeviceObject;
PDEVICE_EXTENSION pDeviceExtension;
UNICODE_STRING ustrsymLinkName;
UNICODE_STRING ustrdeviceName;
DbgPrint("驱动程序开始加载......\n");
UNREFERENCED_PARAMETER(pRegistryPath);
//创建设备名称
RtlInitUnicodeString(&ustrdeviceName,L"\\Device\\EmptyDriver");
//处理派遣例程
pDriverObject->MajorFunction[IRP_MJ_CREATE]=DefaultDispatch;
pDriverObject->MajorFunction[IRP_MJ_CLOSE]=DefaultDispatch;
pDriverObject->MajorFunction[IRP_MJ_WRITE]=DefaultDispatch;
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
在驱动开发中出现 'struct' type redefinition 应该怎么办?? 大神们告诉小弟一下...
下面是我写的代码:
#pragma once
//**********...
-
大神们帮我看一下,我的代码错在什么地方? 加载成功,卸载就蓝屏了....
/*
*******************************************************...
-
sigma8653很罕见的问题
SOS!
sigma8653板子插上卡,上电后可以识别SD卡,然后软重启(reboot)就无法识别了!
奇怪的时,继续软重启一次又可...
-
Cancel自旋锁 起了什么作用?
发现IoCancelIrp 函数中
获取了Cancel自旋锁
设置了Irp->Cancel
调用了OnCancelIo函数
但是进入了On...
-
windows下 pnp设备的即插即用功能是怎么实现的?
看到 windows内核情景分析里说
加载驱动有三种方式 前两种是静态 分别是引导...
-
取消当前 IRP 执行的过程是怎样的?
#pragma code_seg("PAGE")
NTSTATUS MyWdmRead(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
...
-
vs2008中,link2001错误的问题,代码如下
vs2008中,link2001错误的问题,代码如下
#include <ntddk.h>
VOID OnUnload(IN PDRIVER_OBJ...
-
什么是内核缓冲区,用户缓冲区
比如网卡的内核缓冲区,那这个缓冲区是在pc内存还是在网卡的芯片上呢?
------解决方案---------------...
-
如果在一个函数中有提升IRQL的语句 是不是整个函数都不能放在分页内存中 ?
如果我在一个函数前使用了 #pragma code_seg("PAGE") ...
-
请教Linux下dm9000网卡驱动程序问题
应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用...