Windows驱动程序的加载

NT式驱动程序的加载

1. 用DriverMonitor工具加载NT式驱动

2. 在注册表中填写相应的字段,Windows对NT式驱动程序的加载,是基于服务的方式加载的,类似于Windows服务程序的加载。设备驱动程序的动态加载主要是基于服务控制程序(Service Control Manager,SCM)系统组件完成的。

SCM组件为Windows中运行的组件提供许多服务,例如,启动,停止,控制等服务。服务类似于Linux中的守护进程。编写加载驱动程序,主要是操作SCM组件。


WDM式驱动程序的加载

和NT是驱动程序的不同,WDM式驱动程序不能被当做服务程序进行加载,因此不能靠简单的修改注册表来进行加载。WDM式驱动程序的加载需要依靠一个以INF为后缀名的文本文件来描述驱动程序的加载过程。

WDM驱动程序相比较NT式驱动程序增加了即插即用的功能,因此在安装的时候需要一个INF文件来提供支持以提供必要的信息。

系统首先会定位INF文件,根据INF文件上的指示,系统会将驱动程序(sys文件)相关的文件拷贝到相应的系统目录下,修改相应的注册表。同时通知PnP管理器,I/O管理器创建新设备,并执行驱动程序的入口函数DriverEntry,INF文件提供了WDM驱动程序所需要的所有信息,包括需要新建和修改的注册表和需要拷贝的文件等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

北京市(朝阳区)(西城区)(海定区)正则表达式(代码保存)

“ String str “北京市(朝阳区)(西城区)(海定区)”; String ptr “.*?(?\()”; Pattern p Pattern.compile(ptr); Matcher matcher p.matcher(str); if(matcher.find()){ System.out.println(matcher.group()); } “

上升子序列

SubmitStatisticProblem Description 一个只包含非负整数的序列bi&#xff0c;当b1 < b2 < ... < bS的时候&#xff0c;我们称这个序列是上升的。对于给定的一个序列{a1, a2, ...,aN}&#xff0c;我们可以得到一些上升的子序列{ai1, ai2, ..., aiK}&#xff0c;这里1 …

设备对象

设备对象的结构体中有3个域 &#xff08;1&#xff09;DriverObject。这个比较好理解。就是这个设备对象所属的驱动对象。毕竟设备对象是由驱动对象创建的。 &#xff08;2&#xff09;NextDevice。指向下一个设备对象。这里的指向&#xff1a;指的是由同一个驱动对象的创建的设…

Resources.getResourceAsStream用法

Resources&#xff08;com.ibatis.common.resource.*&#xff09; Resources 类为从类路径中加载资源&#xff0c;提供了易于使用的方法。处理 ClassLoader 是一项 富于挑战的工作&#xff0c;尤其是应用服务器/容器的情况下。 Resources 类试图简化这些工作&#xff0c;Res…

阿里面试回来,想和Java程序员谈一谈

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 目录(?)[-] 引言第一个问题阿里面试都问什么社招面试如何准备对于Java程序猿学习的建议结语 引言 其实本来真的没打算写这篇文章&#xff0c;主要是LZ得记忆力不是很好&#xff0c;不像一些记忆力强…

jquery添加div实现消息聊天框

上代码 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> &l…

数据结构实验之链表一:顺序建立链表

Problem Description 输入N个整数&#xff0c;按照输入的顺序建立单链表存储&#xff0c;并遍历所建立的单链表&#xff0c;输出这些数据。Input 第一行输入整数的个数N&#xff1b; 第二行依次输入每个整数。Output 输出这组整数。Example Input 8 12 56 4 6 55 15 33 62 Exam…

VS调试启动编辑并继续功能

在VS调试的过程中&#xff0c;可能需要进行源代码的修改&#xff0c;一般的做法是先停止当前的调试&#xff0c;然后重新编译再进行调试&#xff0c;哪怕做的一点点小的改动&#xff0c;这样做很浪费时间&#xff0c;尤其是当项目比较大&#xff0c;程序的启动和初始化需要较长…

IRP和IO_STACK_LOCATION

当一个应用程序调用函数去操作某个设备时&#xff0c;比如调用createFile,deviceIOControl,等等时&#xff0c;I/O管理器为此函数创建一个IRP数据结构对象和一个IRP_STACK_LOCATION数据结构对象数组。 &#xff08;数组个数等于驱动程序堆栈上驱动的个数&#xff09;。IRP对象中…

IRQL

转自&#xff1a;http://blog.csdn.net/changsha2011/article/details/6895529 最近开始入门windows 驱动开发&#xff0c;遇到一个IRQL。不知道何解&#xff0c;于是找了些资料&#xff0c;顺带记录下。下面的东西可能有不准确&#xff0c;如发现错误之处请指正&#xff0c;以…

#pragma code_seg(INIT)/code_seg(PAGE)

转自&#xff1a;http://blog.chinaunix.net/uid-24504987-id-161192.html Windows规定有些虚拟内存可以交换到文件中&#xff0c;这类内存被称为分页内存 有些虚拟内存 永远不会交换到文件中&#xff0c;这些内存叫非分页内存 #define PAGEDCODE code_seg(“PAGE”);//分页内…

JSON.stringify() 方法

JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串&#xff0c;如果指定了replacer是一个函数&#xff0c;则可以替换值&#xff0c;或者如果指定了replacer是一个数组&#xff0c;可选的仅包括指定的属性。 语法 JSON.stringify(value[, repla…

师--链表的结点插入

Problem Description 给出一个只有头指针的链表和 n 次操作&#xff0c;每次操作为在链表的第 m 个元素后面插入一个新元素x。若m 大于链表的元素总数则将x放在链表的最后。Input 多组输入。每组数据首先输入一个整数n(n∈[1,100])&#xff0c;代表有n次操作。接下来的n行&…

BeanUtils工具的使用(转载)

原文章地址&#xff1a;https://www.cnblogs.com/vmax-tam/p/4159985.html BeanUtils工具 什么是BeanUtils工具 BeanUtils工具是一种方便我们对JavaBean进行操作的工具&#xff0c;是Apache组织下的产品。 BeanUtils工具一般可以方便javaBean的哪些操作&#xff1f; 1&…

线程可警告状态以及APC队列

转自&#xff1a;http://blog.csdn.net/qq_22423659/article/details/53425828 一、线程可警告状态的真实含义 1、通过另一些方法让线程"暂停"(非SuspendThread方法&#xff0c;比如SleepEx&#xff0c;wait函数族等)&#xff0c;并可以进入一种称之为 Alterable的状…

数据结构实验之链表三:链表的逆置

Problem Description 输入多个整数&#xff0c;以-1作为结束标志&#xff0c;顺序建立一个带头结点的单链表&#xff0c;之后对该单链表的数据进行逆置&#xff0c;并输出逆置后的单链表数据。Input 输入多个整数&#xff0c;以-1作为结束标志。Output 输出逆置后的单链表数据。…

DBUtils使用详细示例(转载)

https://www.cnblogs.com/smyhvae/p/4085684.html

APC异步过程调用

转自&#xff1a;http://blog.sina.com.cn/s/blog_c2ef450f010192hx.html APC 异步过程调用 记得第一次看见这个名词的时候&#xff0c;觉得云里雾罩&#xff0c;然而上网看了下它的介绍&#xff0c;感觉说的都是没头没脑的 然而今天&#xff0c;我再次接触了它&#xff0c;我将…

张小龙:如何把产品做简单

今天从一个小故事开始讲&#xff1a;为什么苹果的手机只有一个按钮&#xff1f; &#xff08;台下&#xff1a;我觉得对于用户来说&#xff0c;只有一个按钮不会有太多的干扰&#xff0c;只要从这里开始&#xff0c;其它的菜单都在这里面了&#xff0c;这是我个人的一些想法。&…

数据结构实验之链表九:双向链表

Problem Description 学会了单向链表&#xff0c;我们又多了一种解决问题的能力&#xff0c;单链表利用一个指针就能在内存中找到下一个位置&#xff0c;这是一个不会轻易断裂的链。但单链表有一个弱点——不能回指。比如在链表中有两个节点A,B&#xff0c;他们的关系是B是A的后…