Windows NT 设备驱动程序开发基础(8)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
1.4 驱动程序的编译链接,调试、安装和启动。 
  
      Windows NT下编写驱动程序的环境被称为为DDK(Device Driver Kit) For Micro 
soft Windows NT,这是一个命令行下的工作环境。但是在安装DDK之前需要安装Win32 
SDK(Software Development Kit)以及 Microsoft Visual C++。 
  
      编译链接器为Build.exe,他从配置文件Sources中读出待编译的程序的配置,包 
括源文件、目标文件等,从环境变量Include中得到引用文件的地址,然后调用Visual 
C++的编译链接器Nmake.exe进行实际的编译链接工作。日志文件build.log,build.wrn 
,build.err 中分别记录了编译链接中执行的命令行,遇到的错误,遇到的警告。编译 
完成后的文件后缀为.sys 
  
      安装过程分两步:第一,将编译成的.sys文件拷贝到Windows NT的System32/Dri 
vers/下;第二,在注册表的HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Service 
s/下创建与.sys文件同名的键,然后在之下创建名为Start,Type, ErrorControl的三 
个REG_DWORD类型的数值键。其中Start的键值控制该驱动程序在系统启动的哪个阶段被 
启动。小于3的数设定该驱动程序在系统启动的某个阶段被自动启动;3表示需要管理员 

手动启动;4表示该程序被禁用。设置完毕后需要重新启动系统。 
  
  手动启动和停止一个驱动程序需要使用控制面板(ControlPanel)中的设备(Device 
)图标。 
  
  由于驱动程序的结构比较复杂,而且调试内核模式的代码需要两台安装有Windows NT 
的计算机,比较麻烦,所以在编写一个较复杂的驱动程序的过程中应分步来进行测试。 
在完成任何一部分工作后都应进行测试,以便及早地发现错误。根据本人的经验,驱动 
程序中的大多数错误都是由于不正确地访问内存造成的。比如使用未被初始化的指针, 
释放已经被释放的内存,在DISPATCH_LEVEL或以上的运行级别引用分页的内存。 
  
  
-- 
Windows NT架构相关资料 Windows NT架构相关资料 文章目录Windows NT架构相关资料Windows NT架构——WikiWindows API——WikiWindow API分类微软Windows库文件——Wiki1. 内部组件1.1 HAL.DLL(未明确翻译)1.2 NTDLL.DLL2. Win32 API2.1 KERNEL32.DLL2.2 GDI32.DLL2.3 USER32.DLL2.4 ... 阅读详情

相关推荐

深入学习Windows WDM设备驱动开发指南

本文还有配套的精品资源,点击获取 简介:《Windows WDM 设备驱动程序开发》资料集深入探讨了在Windows操作系统下开发WDM设备驱动程序的方法,包括了Windows 2000驱动开发大全和WDM设备驱动程序开发指南。资料详细介绍了WDM驱动程序模型,驱动程序的基本概念,以及不同类型的驱动程序如函数驱动、过滤驱动和物理驱动的实现。同时,涵盖了硬件设备驱动程序编写、...

weixin_30591519的博客 1406

visual studio 2019 + WinDDK 7600.16385.0编写驱动

驱动版本WinDDK 7600.16385.0 IDE:visual studio 2019 新建空白项目 配置类型从exe改为生成文件 配置完后,配置属性中就只剩基础配置了,没有C/C++、链接器等配置,因为驱动程序需要通过ddk编译,所以其他配置也是没用,自己配置编译程序的命令行即可 添加makefile和source文件 makefile是默认的,不需要修改的 # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want .

youyudexiaowangzi的专栏 2851

微软Windows NT4的DDK开发包

微软Windows NT4的DDK开发包,欢迎下载!

NT DDK的安装以及设备驱动程序的编译

作者:程序员客栈提交者:eastvc 发布日期:2003-10-19 20:01:54原文出处:http://www.driverdevelop.com/经常有人问及如何安装DDK,如何编译第一个设备驱动程序以及如何消除掉编译驱动程序 时出现的大量错误信息.  其实, DDK的安装和驱动程序的编译是很简单的. 为了编译驱动程 序, 你必须首先打开一个DOS窗口, 并正确设置好所需的全部环境变量

2283

VC++编译驱动所需配置

一、编译NT式驱动 1> 建立一个win32应用程序工程。 2>修改工程属性。Project—>Setting—>C/C++中的Project Options内容替换成 /nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0x500 /D      DBG=1 /Fo"MyDriver_Check/" /Fd"

lbjayo的专栏 751

Windows驱动开发系列之一:小白入门经典

Windows驱动程序开发比较复杂,我将带领大家一起领略内核模式下编程的奥妙。您将真正掌握内核编程的原理与技术,将技术水平提升一个档次,学会核心技术。您将掌握Windows驱动开发的基本技术;灵活应用IRP、IO堆栈、设备栈、派遣函数等;您将掌握Windows驱动的分层技术,了解WDM驱动的基本原理您将掌握Windows驱动开发中的各种回调例程:完成例程、取消例程、DPC例程、APC例程、等等。具体内容包括但不限于:Windows驱动开发小白入门,Windows内核架构与驱动开发的基本概念,VS2015+VMware(win10x64)双机调试驱动,Win10x64中安装WDM驱动,驱动程序的基本结构(NT,WDM)Windows内存管理,Windows内核函数,驱动程序的派遣函数,驱动程序的同步处理,IRP的同步,定时器,驱动程序调用驱动程序,分层驱动程序

Windows NT 设备驱动程序开发基础

一、背景介绍  1.1 Windows NT操作系统的组成  1.1.1 用户模式(User Mode)与内核模式(Kernel Mode)  从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0  ~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较  低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 848

Windows NT 设备驱动程序开发基础(8) ()

Windows NT 设备驱动程序开发基础(8) ()[@more@]1.4驱动程序的编译链接,调试、安装和启动。windowsNT下编写驱动程序的环境被称为为DDK(DevicedriverKit)ForM...

csd3176的博客 184

Windows NT 设备驱动程序开发基础(2)

1.2 Windows NT下内核模式设备驱动程序的结构和运行     一般来说,设备驱动程序的任务主要有二:第一,接受来自用户程序的读写请求,把 用户的数据传送给设备,或把从设备接收到的数据传送给用户;第二,轮询设备或处理 来自设备的中断请求,完成数据传输。     1.2.1 驱动程序与用户程序的通信     I/O管理器把每一个设备对上层都抽象成了文件,所以在Win32用户程序中只要通过以 

kingzeus的专栏 1648

Windows NT 设备驱动程序开发基础(1)

一、背景介绍     1.1  Windows NT操作系统的组成   1.1.1 用户模式(User Mode)与内核模式(Kernel Mode)   从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较 低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有ri

kingzeus的专栏 2747

最简单明了的驱动开发说明: Windows NT 设备驱动程序开发基础()

关键字 设备驱动程序 一、背景介绍 1.1 Windows NT操作系统的组成 1.1.1 用户模式(User Mode)与内核模式(Kernel Mode) 从Intel 80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0 ~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较 低级别的代码不能随意调用高级别的

阿木的专栏 2407

WindowsNT设备驱动程序开发基础

一、背景介绍 1.1WindowsNT操作系统的组成 1.1.1用户模式(UserMode)与内核模式(KernelMode)   从Intel80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有ring0层的代码可以直

xd1103121507的专栏 1328

Windows NT 设备驱动程序开发基础(4)

1.3.4 查找硬件信息       i) 系统自动搜索到的设备         在系统启动时,组件NTDETECT会自动地搜索计算机上已有的硬件,包括串、并行 口,键盘,鼠标,以及大多数PCI和EISA设备。并将它们的信息,包括总线类型,总线号 ,用到的端口号及数量、中断向量号、DMA通道号、占用内存等按一定格式添入注册表的 /HKEY_LOCAL_MACHINE/Hardware/descri

kingzeus的专栏 1619

Windows NT 设备驱动程序开发基础(2) ()

Windows NT 设备驱动程序开发基础(2) ()[@more@] ...

csd3176的博客 77

Neptune OS:基于seL4微内核的Windows NT兼容系统

Neptune OS:基于seL4微内核的Windows NT兼容系统 项目介绍 Neptune OS 是一个基于seL4微内核的Windows NT兼容系统。它实现了微软称之为“NT Executive”的Windows内核上层部分(NTOSKRNL.EXE),作为seL4微内核下的用户进程运行。NT Executive实现了WindowsNT Native API,这是Windows系统调用...

gitblog_00229的博客 1458

WINDOWS NT下的禁止关机

<br />WINDOWS NT下的禁止关机<br /><br />WINDOWS将核心代码封装,而仅仅提供接口API,也就是说,你只需要根据说明书来操作遥控板,而不需要自己去研究遥控板是怎么<br />实现的。<br />同样的,如果你想关机,那么流程如下:<br />    调用系统关机API--送入该API必要的参数--转由系统执行关机<br /><br />一、用OD载入c:/windows/system32/shutdown.exe后,可以看到它调用的相关API:<br />ExitWindows

ty1921的学习历程 2984
上一篇: Windows NT 设备驱动程序开发基础(6)
下一篇: ActiveX Scripting技术--简介
kingzeus
博客等级 码龄25年 12粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值