首页 > 系统相关 >Windows驱动开发之开发环境的搭建(一)

Windows驱动开发之开发环境的搭建(一)

时间:2023-05-30 14:11:06浏览次数:44  
标签:驱动程序 Windows WDK 开发 驱动 设备 搭建

一、简介

Windows驱动开发是指为Windows操作系统编写内核模式驱动程序的过程。驱动程序是操作系统与硬件设备之间的桥梁,它负责管理和控制硬件设备,使其能够与操作系统和应用程序进行交互。随着 windows 系统的更新迭代,windows 驱动开发技术也是不断的升级:从最早期的 VXD(Virtual X Driver)(已废弃)到 windows 2000 上推出的 WDM(Windows Driver Model)驱动模型,随后从 windows vista 推出的 WDF(Windows Driver Foudation)驱动模型,沿用至今;WDF 是 WDM 的升级版,并且在一定程度上兼容,WDF 是微软目前推荐的驱动开发模型。

以下是Windows驱动开发的一般步骤和相关概念:

  1. 确定需求:首先,确定需要开发的驱动程序的具体功能和目标设备。了解设备的特性和操作系统的要求,明确开发的目标。

  2. 驱动模型:Windows操作系统提供了多种驱动模型,如传统的设备驱动模型 (WDM),新的驱动模型 (KMDF) 和用户模式驱动框架 (UMDF)。选择适合的驱动模型,并理解其工作原理和特性。

  3. 开发环境:为了进行驱动开发,需要搭建合适的开发环境。这包括安装适当的Windows驱动开发工具包(如Windows Driver Kit)和配置相应的开发环境。

  4. 驱动程序结构:根据所选择的驱动模型,创建驱动程序的基本结构。这包括驱动程序入口函数(DriverEntry)、设备对象(Device Object)、驱动程序回调函数(如读取、写入、创建等操作的处理函数)等。

  5. 设备注册:驱动程序需要将自己注册到操作系统中,使其能够被加载和使用。这涉及注册设备接口、创建设备对象、设置设备属性等操作。

  6. 设备操作:实现设备操作的处理函数,如读取、写入、创建、关闭等。这些函数定义了设备的行为和与应用程序的交互方式。

  7. 内存管理:在驱动开发中,需要管理和分配内核内存。了解如何使用操作系统提供的内存管理函数和数据结构,避免内存泄漏和访问错误。

  8. 错误处理:合理处理错误情况,返回适当的错误代码,以便应用程序和操作系统能够正确处理驱动程序的异常情况。

  9. 调试和测试:驱动开发过程中进行适当的调试和测试是非常重要的。使用调试工具和技术来诊断和修复问题,确保驱动程序的稳定性和正确性。

  10. 部署和发布:完成驱动程序开发后,需要将驱动程序部署到目标系统上。这包括创建驱动程序安装程序、签名驱动程序、编写驱动程序文档等。

需要注意的是,Windows驱动开发属于内核模式开发,与传统的用户模式应用程序开发有所不同

二、开发环境搭建

若要开始操作,首先确保已安装 Microsoft Visual StudioWindows SDK 和 Windows 驱动程序工具包 (WDK)

1.安装VS2019

 下载Visual Studio Installer, 安装时工作负载选择 使用C++的桌面开发 。

由于WDK 默认启用了 Spectre 缓解,需要在单个组件中添加生成工具对应版本的 Spectre 缓解库 。(这里只下载了x64/x86处理器架构)

 安装Windows 10 SDK,版本为10.0.19041.0

 2.安装WDK

注意:下载的 WDK 需要与 VS 2019下载时的 Windows 10 SDK 版本对应

对于 WDF 驱动模型其开发环境叫 WDK(Windows Driver Kit)
对于 WDM 驱动模型其开发环境叫 DDK(Driver Development Kit)

 等待WDK下载安装完成,关闭时默认选择安装 WDK VS 扩展。

 

 VS2019和WDK安装成功后,可以到在 Windows设置-应用 中可以查看当前安装的SDK与WDK版本是否一致

 随后打开VS2019的的创建项目页面,就看到 KMDF/UMDF 等选项,表示 windows 驱动开发环境配置成功。

 

标签:驱动程序,Windows,WDK,开发,驱动,设备,搭建
From: https://www.cnblogs.com/QingYiShouJiuRen/p/17443087.html

相关文章

  • 【2023 · CANN训练营第一季】初识新一代开发者套件Atlas 200I DK A2之模型适配工具
    初识新一代开发者套件Atlas200IDKA2之模型适配工具模型适配工具是一款集成数据集管理、模型训练、模型打包为一体的开发者工具套件。通过此工具,可以降低开发者在模型开发过程中对AI专业知识、深度学习框架的学习成本,极大降低开发的难度、复杂度。1.功能介绍工具预置了4个典型模......
  • 【2023 · CANN训练营第一季】昇腾AI入门课(PyTorch)之AI应用开发入门
    图片googlenet分类样例首先在华为云上购买一台弹性云服务器,远程登陆到服务器上。#修改HwHiAiUser的shell为bashvim/etc/passwd切换为HwHiAiUser用户su-HwHiAiUser下载sample样例库gitclonehttps://gitee.com/ascend/samples.git获取此应用中所需要的原始网络模型#进入模型......
  • Chirpstack服务器简介和搭建教程
    LoRaWAN网络主要优势体现在低成本、广域连接和低功耗,同时具有较多的开源平台可供使用。使用Chirpstack服务器可以快速搭建本地LoRaWAN网络。本文重点介绍一下Chirpstack服务器是做什么的和Chirpstack服务器的安装教程:Chirpstack是一款多组件的、部署简单的开源服务器,同时也是使用最......
  • Chirpstack服务器简介和搭建教程
    LoRaWAN网络主要优势体现在低成本、广域连接和低功耗,同时具有较多的开源平台可供使用。使用Chirpstack服务器可以快速搭建本地LoRaWAN网络。本文重点介绍一下Chirpstack服务器是做什么的和Chirpstack服务器的安装教程:Chirpstack是一款多组件的、部署简单的开源服务器,同时也是使用......
  • servlet中的注解式开发
    1. 分析oa项目中的web.xml文件   33  - 现在只是一个单标的CRUD,没有复杂的业务逻辑,很简单的一丢丢功能。web.xml文件中就有如此多的配置信息。如果采用这种方式,对于一个大的项目来说,这样的话web.xml文件会非常庞大,有可能最终会达到几十兆。  - 在web.xml文件中进行servle......
  • 智能社原生的力量——原生JavaScript开发高级
    智能社原生的力量——原生JavaScript开发高级download:3w51xuebccomSpringBoot3:打造高效的Java应用程序SpringBoot是一个由Pivotal团队开发的开源框架,它基于Spring框架,旨在使Spring应用程序的开发变得更加容易和快速。最新的SpringBoot版本是3.0.0,它带来了许多新特性和功能,让我......
  • flutter开发Nuget.exe not found, trying to download or use cached version解决方法
    问题:Nuget.exenotfound,tryingtodownloadorusecachedversion解决方法:首先确保VisualStudio安装,这个是flutter构建Window应用必须的,并且安装了对应的WindowsSDK,通过VisualStudioInstaller安装管理员身份运行cmd窗口,然后执行wingetinstallMicrosoft.NuGet安装NuG......
  • 【掌握接口开发技巧 打造可靠的API接口】按关键字搜索商品
    作为一名程序员,在开发过程中经常需要开发API接口来实现数据的传输和交互等功能。本文将介绍程序员如何开发API接口,并提供一些实用的技巧。第一步:设计接口文档在开发API之前,我们需要先设计接口文档。接口文档包括接口名称,参数名称和类型,返回值格式等信息。接口文档可以帮助我们更好......
  • hi3861设备开发试验记录(一)
       经过一段时间的学习积累,想尝试做做产品。也许结果又是一次探索,但是带着问题去解决问题能更好的学习。      最初在Hi3516上使劲,但是很难搞,需要写u-boot,还要自己写驱动,进步艰难就先放一下。在Hi3861上一些简单设想更容易实现一些,Hi3861芯片是内置SRAM和Flash......
  • 【Haxe】(一)VSCode 搭建 Haxe 开发环境
    前言咱换工作啦!新工作这边需要用到的开发语言是Haxe,最近大概会写几篇笔记。Haxe的介绍就不写了,打算记录点有用的学习内容,先从搭建开发环境开始吧!当前适用版本:VSCode:CurrentLatestVersionHaxe版本:4.3.1文章最近更新日期:2023.05.30 环境配置先去Haxe官网下载语......