首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无需Windows重启即可更新KMDF驱动程序

基础概念

KMDF(Kernel-Mode Driver Framework)是微软提供的一个驱动程序开发框架,用于简化内核模式驱动程序的开发。它提供了一套面向对象的编程接口,使得驱动程序开发者可以更快速、更简单地编写高质量的驱动程序。

无需Windows重启即可更新KMDF驱动程序的优势

  1. 减少停机时间:无需重启系统即可更新驱动程序,可以显著减少系统的停机时间,提高系统的可用性。
  2. 提高维护效率:可以随时更新驱动程序,而不需要等待系统重启,从而提高维护效率。
  3. 降低风险:在生产环境中,频繁重启系统可能会带来一定的风险,而无需重启即可更新驱动程序可以降低这种风险。

类型

KMDF驱动程序可以分为以下几类:

  1. 过滤驱动程序:用于监控或修改其他驱动程序的行为。
  2. 功能驱动程序:提供特定的硬件功能。
  3. 总线驱动程序:管理硬件设备的总线。

应用场景

KMDF驱动程序广泛应用于各种硬件设备的驱动开发,包括但不限于:

  • 网络适配器
  • 存储设备
  • 显示设备
  • 输入设备

更新KMDF驱动程序的步骤

  1. 停止设备:首先需要停止正在使用的设备。
  2. 卸载驱动程序:使用设备管理器或命令行工具卸载当前的驱动程序。
  3. 更新驱动程序:将新的驱动程序文件复制到系统目录中,并使用设备管理器或命令行工具安装新的驱动程序。
  4. 启动设备:重新启动设备,检查新的驱动程序是否正常工作。

遇到的问题及解决方法

问题:更新KMDF驱动程序后,设备无法正常工作

原因

  1. 驱动程序版本不兼容:新的驱动程序可能与当前系统或硬件不兼容。
  2. 驱动程序安装错误:驱动程序文件可能未正确安装或配置。
  3. 系统资源不足:系统可能没有足够的资源来加载新的驱动程序。

解决方法

  1. 检查驱动程序版本:确保新的驱动程序与当前系统和硬件兼容。
  2. 重新安装驱动程序:使用设备管理器或命令行工具重新安装驱动程序,确保所有步骤都正确执行。
  3. 检查系统资源:关闭不必要的应用程序,释放系统资源,然后重新启动设备。

示例代码

以下是一个简单的示例代码,展示如何使用KMDF框架创建一个基本的驱动程序:

代码语言:txt
复制
#include <ntddk.h>
#include <wdf.h>

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) {
    WDF_DRIVER_CONFIG config;
    WDFDRIVER hDriver;

    WDF_DRIVER_CONFIG_INIT(&config, NULL);
    config.DriverInitFlags |= WdfDriverInitNonPnpDriver;

    status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, &hDriver);
    if (!NT_SUCCESS(status)) {
        return status;
    }

    DriverObject->DriverUnload = MyDriverUnload;

    return status;
}

VOID MyDriverUnload(PDRIVER_OBJECT DriverObject) {
    // 卸载驱动程序的代码
}

参考链接

通过以上步骤和方法,可以有效地更新KMDF驱动程序,而无需重启Windows系统。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

原创Paper | Windows 驱动开发入门

作者:0x7F@知道创宇404实验室 日期:2023年4月18日 0x00 前言 参考资料 随着 windows 系统的更新迭代,windows 驱动开发技术也是不断的升级:从最早期的 VXD(Virtual...在运行测试前,我们需要在本机(即开发主机)上打开测试模式(重启生效),使得操作系统可以加载我们编译的驱动程序,使用管理员权限打开 powershell: # 打开测试模式 bcdedit /set testsigning...on 重启主机后,使用管理员权限打开 powershell,通过 sc.exe 命令为驱动程序创建服务(命令详解请参考:https://learn.microsoft.com/en-us/windows-server...\Debug\kmdf_test\kmdf_test.sys # 使用 queryex 查看创建的服务信息 sc.exe queryex test 创建服务如下: 随后便可以使用 sc.exe 命令启动驱动程序运行...test # 停止运行驱动程序 sc.exe stop test 运行如下: 当我们更新了驱动代码、编译项目后,可以再次 start/stop 这个服务,便可以快捷的进行驱动程序代码的测试和调试。

1K41

Windows 11 来了 !无需安装即可体验 !

自从微软宣布发布Windows11以来,很多小伙伴都跃跃欲试,无奈有些朋友的电脑配置可能并不支持安装Windows11。...由于这个项目原本是纯英文的,可能很多朋友玩着不太习惯,你可以直接通过浏览器的翻译功能转换为中文(废了不少时间找改中文方法) 进到 Windows 11 网页版后即可开始体验,无需注册任何东西:开始选单一样位于中间...,上方提供的应用程序图示,有些点击之后会启用网页版或你 Windows 电脑内建的软件,如:我按 Spotify 会开启 Spotify 网页版、按 Mail 则会启用我电脑的邮件应用程序。...点击即可使用体验。 点击“搜索”按钮,可以搜索本地应用 点击“浏览器”,可以直接使用必应搜索功能。

1.1K30
  • 操作系统:Windows 11 来了 !无需安装即可体验 !

    自从微软宣布发布Windows11以来,很多小伙伴都跃跃欲试,无奈有些朋友的电脑配置可能并不支持安装Windows11。...由于这个项目原本是纯英文的,可能很多朋友玩着不太习惯,你可以直接通过浏览器的翻译功能转换为中文(废了不少时间找改中文方法 ) 进到 Windows 11 网页版后即可开始体验,无需注册任何东西:开始选单一样位于中间...,上方提供的应用程序图示,有些点击之后会启用网页版或你 Windows 电脑内建的软件,如:我按 Spotify 会开启 Spotify 网页版、按 Mail 则会启用我电脑的邮件应用程序。...点击即可使用体验。 点击“搜索”按钮,可以搜索本地应用 点击“浏览器”,可以直接使用必应搜索功能。

    69910

    使用 WDK 示例

    Windows Driver Kit (WDK) 包含各种驱动程序的示例源代码。这些示例可在您编写自己的驱动程序时提供有用指导。在安装 WDK 时,示例将安装到 \src 目录的子目录中。...包括使用用户模式驱动程序框架 (UMDF)、内核模式驱动程序框架 (KMDF) 和 Windows 驱动模型 (WDM) 接口的驱动程序。 src\input 键盘和鼠标类筛选器驱动程序。...包括基于 UMDF 的驱动程序和基于 KMDF驱动程序。 src\video 示例显示驱动程序和镜像驱动程序。 有关 WDK 示例的更多信息,请参见 Windows Driver Kit 示例。...如果正在编写存储筛选器驱动程序,则使用示例存储筛选器驱动程序。 确保更新驱动程序的示例 INF 文件。特别是,确保硬件的设备 ID 与 INF 文件中指定的设备 ID 匹配。...Write a UMDF driver based on a template Write a KMDF Hello World driver Write a KMDF driver based on

    1.5K40

    Win10下VS2015(WDK10)驱动开发环境配置

    WDF提供了两个框架:KMDF(内核模式驱动程序框架)和UMDF(用户模式驱动程序框架)。...内核模式驱动程序通常为分层结构。KMDFWindows系统底层驱动,文件名为:*.SYS。...WDF将驱动程序与操作系统内核之间进行了分离,驱动程序与操作系统交互工作交给框架内封装的方法(函数)完成,这样驱动开发者只需专注处理硬件的行为即可。...而KMDF内核模式驱动程序中的错误会损坏系统地址空间,并可能会导致计算机失败。...由于这些驱动模型的特点,在构建驱动程序的开发调试环境是也会有所区别,一般在做KMDF驱动的开发调试时都选择双机或搭建虚拟机环境进行,而UMDF驱动可以进行单机调试,下面的环境搭建主要以更为复杂的KMDF

    4.3K62

    基于WDF的PCIPCIe接口卡Windows驱动程序(2)-开发者需要了解的WDF中的一些重要的概念

    但有些特殊的情况,代码是不允许被交换到硬盘上的,否则导致操作系统蓝屏或者自动重启; 7、驱动开发一定要关注warnning!!!...如果框架可以处理IRP,则不会涉及到KMDF驱动程序;如果框架处理不了就通过调用KMDF驱动程序来实现事件处理程序来获取帮助; 10、WDK中的头文件包含的条件语句指定编程元素仅在某些版本的Windows...好吧,还没有写完~ 1、创建驱动程序时,可以指定Windows 7为基本的目标操作系统,在这种情况下,驱动程序会在Win7或更高的Windows上运行; 2、KMDF驱动程序提供基于对象的接口,对象接口包括...) 3、每个基于框架的驱动程序都包括:一个DriverEntry例程,可在加载驱动程序时调用,一组事件回调函数,框架将在发生特定于对象的事件时调用这些函数; 4、基于 Windows驱动程序分为三种类型.../zh-cn/library/windows/hardware/ff544309(v=vs.85).aspx 9、驱动程序项目是生成驱动程序二进制文件(如 .sys 文件)以及可能驱动程序的 INF 文件的

    1.7K20

    谈WDM与WDF (windows驱动开发)

    现在WDF则将驱动程序与操作系统内核之间进行了分离,驱动程序与操作系统交互工作交给框架内封装的方法(函数)完成,这样驱动开发者只需专注处理硬件的行为即可。...5、 两种模式的驱动程序KMDF、UMDF)都使用同一环境进行构建,这一环境称为WDK。 即KMDF,UMDF的开发环境为WDK。...它组合了Windows DDK和Hardware Compatibility Test (HCT) kits(硬件兼容性测试工具),同时提供了微软内部用来测试Windows操作系统稳定性和可靠性的测试套件...6、 虽然经过封装并引入基于对象的技术,所开发的驱动程序在执行效率上并不比原来逊色。 WDF和WDM的关系有点类似于MFC和Windows SDK的关系。...至于移植,请参看 How to Port WDM Drivers to KMDF [749 KB] 关于WDF的书目前只有两本:一本是微软的,一本是OSR的。

    3.1K30

    基于WDF的PCIPCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建

    WDF是UMDF(User Mode Driver Framework,用户模式驱动程序框架)和KMDF(Kernel Mode Driver Framework,内核模式驱动程序框架)的总和。...由于本课题基于PCIe硬件设备进行驱动开发,涉及到内存读写等内核操作,所以使用KMDF框架来编写驱动程序。...1.4 开发环境搭建 Windows 驱动程序开发工具包 (WDK) 与 Microsoft Visual Studio 和用于 Windows 驱动程序的调试工具相集成。...WDK8.1 更新与 Microsoft Visual Studio2013 集成。开发者需要首先在微软的官方网站上下载并安装 Visual Studio 2013,然后安装WDK 8.1 更新。...微软声明不再对WDK8.0提供支持,也不再对WDK 8.0做任何更新,WDK8.0也不支持Windows8.1的驱动程序开发。所以本课题选用WDK8.1作为开发工具包。

    2.2K21

    有显卡的windows机器如果担心显卡驱动自动更新影响稳定性,可以设置系统更新排除更新驱动程序

    Windows更新,可根据业务需要选择完全禁止,还是部分禁止 完全禁止的话,把windows update服务从services.msc列表设置开机启动为禁止即可 图片 部分禁止的话,运行control.../name microsoft.windowsupdate 可以设置暂停多少天停止更新,担心新驱动影响的话,还可以排除更新驱动程序(参考https://docs.microsoft.com/zh-cn.../windows/deployment/update/waas-configure-wufb) 图片 图片 图片 .....HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\Global\CoProcManager\AutoDownload,它是用于控制 NVIDIA 协处理器驱动程序的自动下载的...如果您不需要控制 NVIDIA 协处理器驱动程序的自动下载,可以将 AutoDownload 的值设置为 0 来禁用它。

    1K40

    驱动开发:配置Visual Studio驱动开发环境

    图片 为了能测试驱动程序运行状态,读者需安装VMWare虚拟机,双击附件中的VMware-workstation-full-16.2.4-20089737.exe安装程序一直点击下一步即可,需要注意的是在如下选项中请在增强型键盘驱动程序上打对勾...Tools工具很容易,只需要点击安装菜单,后会在虚拟机中出现DVD驱动器,此时双击驱动器并按照要求安装即可,安装完成后重启系统,此时则具备了拖拽上传功能; 图片 当这些都做好以后,建议用户关闭虚拟机,...\kmdf\1.13 C:\Program Files (x86)\Windows Kits\8.1\Include\wdf\umdf\2.0 C:\Program Files (x86)\Windows...Files (x86)\Windows Kits\8.1\Lib\win7\km\x64 C:\Program Files (x86)\Windows Kits\8.1\Lib\wdf\kmdf\x64...,并以管理员身份打开Windows 64Signer.exe,使用该工具对驱动程序进行签名,如下图所示; 图片 签名完成后将我们的驱动文件WinDDK.sys,拖入到KmdManager.exe驱动加载工具中

    1.6K50

    驱动开发:配置Visual Studio驱动开发环境

    为了能测试驱动程序运行状态,读者需安装VMWare虚拟机,双击附件中的VMware-workstation-full-16.2.4-20089737.exe安装程序一直点击下一步即可,需要注意的是在如下选项中请在增强型键盘驱动程序上打对勾...Tools工具很容易,只需要点击安装菜单,后会在虚拟机中出现DVD驱动器,此时双击驱动器并按照要求安装即可,安装完成后重启系统,此时则具备了拖拽上传功能; 当这些都做好以后,建议用户关闭虚拟机,并点击...\kmdf\1.13 C:\Program Files (x86)\Windows Kits\8.1\Include\wdf\umdf\2.0 C:\Program Files (x86)\Windows...Files (x86)\Windows Kits\8.1\Lib\win7\km\x64 C:\Program Files (x86)\Windows Kits\8.1\Lib\wdf\kmdf\x64...,并以管理员身份打开Windows 64Signer.exe,使用该工具对驱动程序进行签名,如下图所示; 签名完成后将我们的驱动文件WinDDK.sys,拖入到KmdManager.exe驱动加载工具中

    1K20

    驱动程序模型:wddm2.0_编写一个简单的驱动

    WDF驱动程序开发 1. 引言 设备驱动程序是硬件设备连接到计算机系统的软件接口,任何设备都必须有相应的驱动程序才能在计算机系统上正常工作。...WDF(Windows Driver Foundation)是微软提出的下一代全新的驱动程序模型,它是在WDM(windows Driver Model)的基础上发展而来的,支持面向对象、事件驱动的驱动程序开发...WDF提供了两个框架:KMDF(内核模式驱动程序框架)和UMDF(用户模式驱动程序框架)。本文只介绍KMDF的设计与实现。 2....WDF对象模型 KMDF框架支持面向对象、事件驱动的驱动程序模型。它定义了一系列的对象用来表示设备、驱动、中断等,每个对象有对应的属性、方法和事件。驱动程序利用这些方法创建对象、设置属性和响应事件。...WDF设备驱动程序的结构 与WDM驱动程序一样,WDF驱动程序得标准入口函数是DriverEntry。

    92720

    基于WDF的PCIPCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)

    11-58行定义了DriverEntry函数,每个 KMDF 驱动程序必须有一个 DriverEntry 例程,当操作系统检测到有新硬 件设备插入后,会查找它对应的驱动程序,找到这个驱动程序中的 DriverEntry...KMDF将会将设备所有的请求发送到默认I/O队列, 12 然后它会调用驱动程序的EvtIoDefault来将每一个请求递交给驱动程序。...Windows 2000及其以后的操作系统都是以I/O请求包的形式与驱动程序进行通信的。...当Windows操作系统收到一个从应用程序传送过来的I/O请求后,I/O管理器将它封装成I/O请求包发送给设备驱动程序。...Windows设备驱动程序WDF开发 孔鹏. 基于WDF的光纤传输卡PCIe接口驱动的研究和实现 杨阿锋基于WDF的PCIe接口高速数据传输卡的驱动程序开发

    2.4K31

    激活工具散播锁首病毒“麻辣香锅“ 诱导用户退出安全软件

    心跳包信息 7)Wdlogin.exe Wdlogin.exe模块的主要功能是寻找C:\Windows\minidump目录下的以dmp结尾的dump文件,并压缩上传到服务器,相关代码及网络信息如下图所示...更新时会读取%windir%目录下的filt(KMDF_LOOK版本信息)和sytl(KMDF_Protect版本信息)文件内容,之后将两个文件中记录的驱动模块版本信息和其他系统信息(包括:系统平台版本...在发送请求后,C&C服务器会返回相应驱动模块的更新下载地址,最后下载驱动模块。相关代码,如下图所示: ? 更新驱动模块 发送加密数据相关代码,如下图所示: ?...发送数据内容 最初被下载到本地的驱动模块名分别为kmdf_look_temp和kmdf_protect_temp,在完成更新流程后,驱动文件被重命名为随机名驱动文件(如:EYVKRTAM.sys)。...创建wrme.exe、wuhost.exe、wdlogin.exe进程 二、溯源分析 通过火绒监测发现,此套恶意锁首程序主要来自http://windows.shibojiab.cn网站下的三款激活工具

    3.1K21

    制作Windows自定义镜像实现新购机器自动设置静态DNS和hostname自动生效无需人为重启机器

    自定义镜像购买机器,有一些业务逻辑需要实现但又不能使用RunInstances接口的userdata参数,业务需求: 1、hostname需要自动生效,不想人为重启机器生效(如果能用userdata,在...userdata里加重启机器的代码即可) #以管理员身份运行 Set-ExecutionPolicy -Scope CurrentUser Unrestricted -forc...180.76.76.76','119.29.29.29')) 2>$null; exit } 放好setdns.ps1后,按如下步骤进行制作镜像(如果无设置dns的需求,以上步骤全部忽略即可.../wget64.exe',' c:\windows\wget.exe') wget.exe http://windows-1251783334.cos.ap-shanghai.myqcloud.com/...,做好镜像后买新机器时可以指定新密码 过程中可能远程断开后远程不了,因为密码变了,按net user Administrator "密码" 里的密码可以远程,或者耐心等待几分钟就已关机了,然后做镜像即可

    83830
    领券