精华内容
下载资源
问答
  • 我将带领大家学习WDM驱动开发,包括重要的理论与实践。 我们逐步深入,在系列一和二的基础上慢慢推进,开始学习WDF驱动模型,包括面向对象和事件机制、重要的WDF对象,具体章节包括: 1)WDF编程框架:面向对象和...
  • 用实例详细讲解PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序的开发,归纳了多种调试驱动程序的高级技巧,如用WinDBG和VMWARE软件对驱动进行源码级调试,深入Windows操作系统的底层和内核,透析Windows驱动开发的...
  • 文档描述windows驱动开发环境搭建的过程
  • 本章向读者呈现两个最简单的Windows驱动程序,一个是NT式的驱动程序,另一个是WDM式的驱动程序。这两个驱动程序没有操作具体的硬件设备,只是在系统里创建了虚拟设备。在随后的章节中,它们会作为基本驱动程序框架,...
  • 一:安装驱动时,提示:驱动程序不适合该平台 极有可能在生成的时候,平台没有选对。 解决方案:你安装在哪个平台,在上图中就要选择哪个平台。我安装驱动的位置是虚拟机的64位win7,所以要选择好。 二:安装...

    自己环境是VS2013+WDK8.1

    一:安装驱动时,提示:驱动程序不适合该平台

    极有可能在生成的时候,平台没有选对。

    解决方案:你安装在哪个平台,在上图中就要选择哪个平台。我安装驱动的位置是虚拟机的64位win7,所以要选择好。

    二:安装设备时出现了一个错误,系统找不到指定的文件。

    很可能是签名没弄好。

    解决方案:右击项目,点击属性

    要设置签名,把警告风险设置为最低,就基本上解决了。

    展开全文
  • Windows驱动开发环境搭建之Hello World

    千次阅读 2017-09-08 16:39:56
    驱动程序的生成[个人配置]win7_x64 vs2015 WDK10按照书上的例子进行编写,只包含了类似下面 ntxxx.h 的头文件,都无法找着:#include #include ...第一反应是vs中的包含目录中没有驱动头文件的目录,其默认包含...

    驱动程序的生成

    [个人配置]

    win7_x64
    vs2015
    WDK10

    按照书上的例子进行编写,只包含了类似下面 ntxxx.h 的头文件,都无法找着:

    #include <ntddk.h>
    #include <ntifs.h>
    ...

    第一反应是vs中的包含目录中没有驱动头文件的目录,其默认包含如下

    vs_VC++ include目录

    然而在对应的版本中并没有发现有对应的目录:

    km

    在对应的include版本下,有多个版本,尝试着从前一个版本(10.0.14393.0中)复制一个km目录到当前版本(10.0.15063.0)的include中:
    km

    再次回到 vs中发现 include都能找到头文件,然后进行编译,又出错了: LINK : fatal error LNK1181: 无法打开输入文件“C:\Program Files (x86)\Windows Kits\10\lib\10.0.15063.0\km\x86\cfg_support_v1.lib

    网上有资料说:安装的 windows10 sdk 与 wdk10 的版本号不一致的情况下会出现这样的问题。 经过检查确认 自己机器上的版本是一直的。。

    老办法从前一个版本中找到对应的目录,复制一份到新版本的目录中,这次编译生成驱动文件。

    驱动程序的运行

    [安装驱动主机配置]

    win7 x86

    以管理员权限启动 DbgView, 加载驱动程序,发现DbgView中没有任何消息。

    • 解决方案:
      • 1.打开注册表
      • 2.[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
      • 3.建立[Debug Print Filter]这个新键。
      • 4.新增加一个“DEFAULT”的DWORD值,将其内容设置0x0f,如下图所示:
      • 5.重启OS后生效

    再次加载驱动——–成功打印出消息

    展开全文
  • Windows驱动开发之第一个驱动程序

    万次阅读 2016-07-05 10:18:09
    一个简单的驱动程序

    转载请注明来源:
    enjoy5512的博客 : http://blog.csdn.net/enjoy5512
    GitHub : https://github.com/whu-enjoy

    为了整理方便,可以在一个合适的路径下建立一个专门的文件夹用于保存源代码.打开桌面的x86 Checked Build Enviroment快捷方式,进到源代码所在文件夹下,可以看到每个程序至少有三个文件,一个源代码文件,一个是makefile,一个sources,头文件是可选的
    这里写图片描述


    头文件

    /////////////////////////////////////////////////////////////////////////////
    //  文件名 : fitst.h
    //  工程 : first 
    //  作者 : enjoy5512   修改者 : enjoy5512   最后优化注释者 : enjoy5512
    //  个人技术博客 : blog.csdn.net/enjoy5512
    //  个人GitHub   : github.com/whu-enjoy
    //  描述 : 第一个驱动程序的头文件
    //  版本 : 最终确定版  完成日期 : 2016年7月5日 09:25:30
    //  修改 :
    //  参考文献 :
    //       <<Windows内核安全与驱动开发>> 谭文 陈铭霖 编著
    //////////////////////////////////////////////////////////////////////////////
    
    #ifndef __FIRST_H__
    #define __FIRST_H__
    
    
    //////////////////////////////////////////////////////////////////////////////
    //*= = 头文件声明
    //////////////////////////////////////////////////////////////////////////////
    #include <ntddk.h>
    
    //////////////////////////////////////////////////////////////////////////////
    //*= = 宏与结构体
    //////////////////////////////////////////////////////////////////////////////
    
    //////////////////////////////////////////////////////////////////////////////
    //*= = 函数声明
    //////////////////////////////////////////////////////////////////////////////
    NTSTATUS
    DriverEntry(
        __in PDRIVER_OBJECT DriverObject,
        __in PUNICODE_STRING RegistryPath
        );
    
    VOID
    DriverUnload(
        __in PDRIVER_OBJECT DriverObject
        );
    
    #endif //End of __FIRST_H__

    源代码

    /////////////////////////////////////////////////////////////////////////////
    //  文件名 : fitst.c
    //  工程 : first 
    //  作者 : enjoy5512   修改者 : enjoy5512   最后优化注释者 : enjoy5512
    //  个人技术博客 : blog.csdn.net/enjoy5512
    //  个人GitHub   : github.com/whu-enjoy
    //  描述 : 第一个驱动程序
    //  主要函数 :
    //      VOID DriverUnload(PDRIVER_OBJECT driver) 卸载函数
    //      NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) 入口函数
    //  版本 : 最终确定版  完成日期 : 2016年7月5日 09:36:17
    //  修改 :
    //  参考文献 :
    //       <<Windows内核安全与驱动开发>> 谭文 陈铭霖 编著
    /////////////////////////////////////////////////////////////////////////////
    
    #include "first.h"
    
    //程序说明开始
    //==================================================================================
    //  功能 : 驱动程序入口函数
    //  参数 :    __in PDRIVER_OBJECT DriverObject, in PUNICODE_STRING RegistryPath
    //  (入口)  __in PDRIVER_OBJECT DriverObject  : 驱动对象
    //          __in PUNICODE_STRING RegistryPath : 驱动在注册表中的键值
    //  (出口)  无
    //  返回 :  NTSTATUS
    //  主要思路 : 先设置一个int3断点,然后输出一句话,设置卸载函数
    //  调用举例 : 
    //  日期 : 2016年7月5日 09:32:32
    //==================================================================================
    //程序说明结束
    NTSTATUS 
    DriverEntry(
        __in PDRIVER_OBJECT DriverObject, 
        __in PUNICODE_STRING RegistryPath
        )
    {
        #if DBG
            _asm int 3
        #endif
    
        DbgPrint("first : hello ,load server!!\n");
    
        DriverObject->DriverUnload = DriverUnload;
    
        return STATUS_SUCCESS;
    }
    
    //程序说明开始
    //==================================================================================
    //  功能 : 驱动程序卸载
    //  参数 :    __in PDRIVER_OBJECT DriverObject
    //  (入口)  __in PDRIVER_OBJECT DriverObject  : 驱动对象
    //  (出口)  无
    //  返回 :  VOID
    //  主要思路 : 输出一句话
    //  调用举例 : 
    //  日期 : 2016年7月5日 09:35:59
    //==================================================================================
    //程序说明结束
    VOID 
    DriverUnload(
        __in PDRIVER_OBJECT driver
        )
    {
        DbgPrint("firts:Our driver is unloading!!\r\n");
    }

    makefile文件

    这个文件是固定的,内容不变

    !IF 0
    
    Copyright (C) Microsoft Corporation, 1999 - 2002
    
    Module Name:
    
        makefile.
    
    Notes:
    
        DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want to add a new source
        file to this component.  This file merely indirects to the real make file
        that is shared by all the components of Windows NT (DDK)
    
    !ENDIF
    
    !INCLUDE $(NTMAKEENV)\makefile.def
    
    

    sources文件

    TARGETNAME=first
    TARGETTYPE=DRIVER
    SOURCES=first.c

    在源代码路径下,使用build命令编译驱动程序
    这里写图片描述

    将编译好的first.sys复制到虚拟机中
    将程序符号文件路径加到windbg符号路径中
    这里写图片描述

    设置源代码路径
    这里写图片描述

    启动服务,可以看到虚拟机卡住了,windbg在int3处中断了,然后便可以开始调试运行了
    这里写图片描述

    展开全文
  • Windows驱动开发如何入门

    千次阅读 2018-11-07 09:53:24
    Windows驱动开发是一件痛苦的事情,特别是初学Windows驱动开发。有的人觉得Windows驱动开发就是把开发包WDK下载下来,然后只要掌握了C/C++语言,接下来无非就是类库调来调去,像调用MFC、QT之类的库那样,看着书和...

    搞Windows驱动开发是一件痛苦的事情,特别是初学Windows驱动开发。有的人觉得Windows驱动开发就是把开发包WDK下载下来,然后只要掌握了C/C++语言,接下来无非就是类库调来调去,像调用MFC、QT之类的库那样,看着书和MSDN上的文档来就行了。等真正接触以后才发现根本不是那么一回事,痛苦源于以下几点:

    痛苦一:中文资料太少
    讲Windows驱动开发的,无论是中文书籍还是网上的中文资料,都很少,手把手从零到精通的更是不用说了。仅有的少量中文资料,有的还比较旧,讲的是DDK、NT式驱动,新手拿着WDK8.1、WDK10面对Win8、Win10系统很难跟着学习,而且现在的WDK,在WDM上又出现了了WDF,而WDF又分KMDF(内核模式驱动)和UMDF(用户模式驱动),对于UMDF(用户模式驱动)中文资料就更少了。而且驱动开发不像应用开发,需要先对操作系统原理有一定了解,不然遇到“I/O管理器”、“输入输出请求包”、“软件中断”、“符号链接”、”派遣函数“等名词和概念都不知所云,是寸步难行的。

    解决方法:
    ①其实MSDN上已经提供了大量的文档和示例程序,对KMDF、UMDF等进行了详细的讲解,甚至还提供了手把手教你来的视频教程,可惜它们都是英文的,对于我等英语不好的程序员来说真是坐车不买票——白搭。最近越来越觉得英语不好是阻碍一个程序员进步最大的绊脚石,我们不谈什么算法,不谈什么数学功底了,首先要成为一个合格的码农,需要熟练使用各种编程语言和对应的各种工具库,而大部分的库都只有英文文档,不能流畅阅读这些文档的话,寸步难行。在成为了合格的码农,能熟练使用各种现成的工具库搭积木般的开发出应用程序后,才能去谈各种算法,各种数学知识的代入,才能去谈如何从一个码农升级为软件工程师。显然,当前摆在我面前最迫切的问题是如何成为一个合格的码农,先养活自己,再去考虑如何为社会主义做贡献,如何推动人类科技进步。学习英语确实应该赶快提上日程并立即执行、坚持执行了。英语好的人真的是把WDK拿来就像用MFC那样轻松,看着文档和示例程序,那些个API调来调去,一个完整的驱动程序就出来了。这不是吹牛,我之前在一家公司工作的时候,公司有个项目的一个模块需要在Ring0上实现,需要编写Windows内核驱动,然而公司里没有一个人会,于是老大将这个模块交给了他的一个朋友去做。他的这个朋友是中国人,在美国微软总部工作,英语水平怎么样就不用说了,总之人家以前从来没搞过驱动开发,看了文档和示例代码后,利用3天的业余时间就完成了这个模块,拿到了15K RMB的报酬,着实让人佩服,让人羡慕。真的,学好英语,不说“听说写”,只要能流畅阅读各种英文技术资料,完全是另一个世界,学什么、做什么都得心应手。
    MSDN上的驱动开发资料入口:https://msdn.microsoft.com/zh-cn/windows/hardware
    MSDN上手把手教你来的视频教程:https://msdn.microsoft.com/zh-cn/windows/hardware/gg454522

    ②抓住仅有的几本中文书籍,细细研读。关于Windows驱动开发的中文书籍大概有那么几本:
    《Windows驱动开发技术详解》(强烈推荐先看这本)
    《WindowsWDM设备驱动程序开发指南》(比较老了,2000年出版的,以win98、win2000为目标系统)
    《Windows设备驱动程序WDF开发》(为数不多讲WDF的)
    《Windows 7设备驱动程序开发》(为数不多讲WDF的,且比较新,这本书的英文版是2010年出版的,中文译版是2012年出版的)
    《竹林蹊径:深入浅出windows驱动开发》
    《寒江独钓:Windows内核安全编程》
    《天书夜读:从汇编语言到Windows内核编程》
    《Windows内核安全与驱动开发》(是《天书夜读》和《寒江独钓》的合订本以及升级版)
    后面的这四本其实不太适合作为入门书籍,而适合作为进阶书籍,对一些基础的概念和原理的讲解没有《Windows驱动开发技术详解》那么多

    痛苦二:开发工具链不好用
    对于我等刚学编程时用的就是VisualStudio以及各种智能提示智能感知的插件,甚至还有代码生成器的辅助的程序员来说,习惯了VisualStudio傻瓜化的一切,代码可以自动生成,窗体应用程序可以拖控件,甚至连网页都能拖控件。很难接受只有文本编辑器和命令行工具的开发环境,很多时候连代码编辑器不能智能提示都无法忍受,更不说手动调用cl.exe link.exe,写起代码来就像有一万只蚂蚁在身上爬。
    在之前很长的一段时间里,VC6.0和VisualStudio里是没有创建驱动项目的选项的,更没有直接由IDE生成的HelloWorld,如果不想手动cl.exe link.exe,如果想在IDE中写代码,需要自己建一个空项目,然后手动配置编译器指令、链接器指令、包含目录、库目录等等,然后把书上的HelloWorld复制过来,然后可能还会遇到各种问题。生成好驱动程序文件后,还要手动拷贝到虚拟机中,借助工具或inf文件手动安装,然后要改系统配置,进入内核调试模式,然后要设置调试接口,比如使用COM串口调试的话要在虚拟机上设置,把COM串口映射到主机的命名管道,然后还不能在VC中调试,只能用Windbg来调试。总之每修改一下代码,需要手工进行很多步骤才能开始调试,非常麻烦。而且即便照着网上或书上的步骤来配置,在不同的环境下也会遇到各种奇怪的问题,搞起来颇为头疼。

    解决方法:
    ①有个名为VisualDDK的第三方软件,使得这个事情方便了很多。VisualDDK装好后会给VisualStudio安装一个插件,使得在VisualStudio中可以通过这个插件新建驱动项目,并且自带HelloWorld,然后把VisualDDK Monitor装到虚拟机中,两边配置一下,接下来只要在VisualStudio这边生成驱动文件,VisualDDK会自动传给虚拟机中的系统进行安装,并且可以直接在VisualStudio中下断点调试了。不过这个软件在安装和配置过程中,也需要不少步骤,有时候也会出现一些配置不对的问题,偶尔也略感头疼,且稳定性和兼容性不是非常好。此方式适用于VisualStudio2010及以下版本,WDK7.1及以下版本。对于更高的版本,不建议用VisualDDK,因为可以继续往下看,下面有更激动人心的办法。
    VisualDDK官网:http://visualddk.sysprogs.org/
    VS2010+VMWare8+VisualDDK1.5.6配置教程:http://techird.blog.163.com/blog/static/1215640362011112385241568/

    ②激动人心的就是,从VisualStudio2012开始,从WDK8.0开始,微软在里面整合了一套类似VisualDDK但比VisualDDK好用很多的工具。从那以后,开发Windows驱动程序就和开发Windows应用程序一样方便了,只需在虚拟机中安装一个EXE,然后在VisualStudio中输入它的IP、用户名、密码就OK了,接下来你只需新建一个WDK项目,点生成,VisualStudio会自动把驱动文件传给虚拟机中的系统并自动安装,然后点调试,就能在VisualStudio中单步调试了。是不是爽爆了,而且配置和设置都不复杂,MSDN上还有手把手教你配置的高清视频教程!
    具体可以看我写的另一篇文章:
    《Win8.1+VS2013+WDK8.1+VirtualBox or VMware驱动开发环境配置》:http://blog.csdn.net/charlessimonyi/article/details/50904956

    痛苦三:没有库可用
    假如有一天老板叫你开发一个软件,允许你使用你擅长的任意一门语言,C/C++/C#/JAVA/Python等。但是附加了一个条件:不能使用任何第三方库,不能使用标准库!你有什么感想。What!标准库都不能用?那还写个毛。是的,没错,开发Windows驱动程序,几乎什么库都用不了,包括标准库。因为我们平时常用的第三方库或标准库,它的实现其实都是调用系统API,在Windows上调用的是Window API,即uer32.dll、kernel32.dll、gdi32.dll等等提供的API函数。但是这些API函数属于应用层API,无法在驱动程序中使用,因为驱动程序跑在内核层。所以只要一个库的实现上调用了系统API,就无法在驱动程序中使用。少数库还是可以使用的,比如math.h中的各种数值计算函数。不过仅剩的可用的库太少了,很多时候你都需要从新发明轮子。甚至连C语言中的malloc、free,C++中的new、delete,你都需要自己去实现。

    解决方法:
    ①自己发明轮子就自己发明轮子,虽然没有现成库可用,但有内核层下的系统API可用,很多和应用层的API很相似,你想要的功能基本都可以通过这些API实现。

    ②咬咬牙,把苦水往肚子里咽。搞驱动开发的人很少,苦尽甘(qian)来


    本文由CharlesSimonyi发表于CSDN博客:http://blog.csdn.net/charlessimonyi/article/details/50904854转载请注明出处
    --------------------- 
    作者:charlessimonyi 
    来源:CSDN 
    原文:https://blog.csdn.net/CharlesSimonyi/article/details/50904854 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Windows CE下GPIO是端口扩展器,当微控制器缺乏足够的I/O端口时,GPIO能够提供额外的...本文分析了基于流驱动的GPIO驱动开发原理,以SC36410的GPM端口为例详细叙述了GPIO驱动开发过程,并给出了驱动程序的配置方法。
  • 搭建Windows驱动开发环境[2]. 第一个驱动程序[3]. 双机调试参考总结 什么是驱动程序? 驱动(Driver)可以简单理解为设备的操作程序,通常驱动是要符合操作系统规范的。 情景一:没有操作系统的情况(裸机) 应用通过...
  • windows驱动pcie浅析.pptx

    2019-06-21 15:11:19
    该文件是对windows驱动的入门的简单解析,包括框架的搭建,一些代码的解析等 该文件是对windows驱动的入门的简单解析,包括框架的搭建,一些代码的解析等
  • Windows驱动开发环境搭建:VS2013+WDK8.1

    千次阅读 2020-03-15 19:12:21
    尽管网上已经有很多帖子在介绍如何搭建Windows驱动开发环境,Jungle照着这些帖子仍旧折腾了很长时间。在终于搭建成功后记录下环境搭建过程,方便大家使用。 1.安装包准备 Visio Studio2013:...
  • 2.5 Windows驱动开发模型 29 2.6 WDK编程中的特殊点 30 2.6.1 内核编程的主要调用源 30 2.6.2 函数的多线程安全性 30 2.6.3 代码的中断级 32 2.6.4 WDK中出现的特殊代码 32 第3章 字符串与链表 35 3.1 字符...
  • Windows驱动开发技术详解》学习笔记

    万次阅读 多人点赞 2019-02-13 17:34:19
      如果推荐 Windows 驱动开发的入门书,我强烈推荐《Windows驱动开发技术详解》。但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文搜集了大部分的工具,并在 win10X64 上安装开发...
  • WindowsWDM设备驱动程序开发指南
  • Windows驱动开发之入门篇(一)

    万次阅读 多人点赞 2017-11-09 12:51:18
    本文主要介绍“如何入门Windows驱动开发”和“新手需要掌握哪些知识和动手技能”,大部分是本人探索Windows驱动开发近一月时间的经验之谈。大致包括如下几个方面: 1,开发工具、调试工具和调试手段; 2,Windows...
  • windows驱动开发-内存管理

    千次阅读 2018-06-03 18:08:03
    参考博客:第二十七篇:Windows驱动中的PCI, DMA, ISR, DPC, ScatterGater, MapRegsiter, CommonBuffer, ConfigSpace 系统空间的中虚拟内存与物理内存之间的联系通过IoAllocateMdl与MmBuildMdlForNonPagedPool建立...
  • Windows下USB驱动开发入门小结

    万次阅读 多人点赞 2018-08-20 11:01:06
    今年刚从学校毕业,来到公司后学了学画板子然后经理便给了我了一块板子,需要用到USB传输数据,让我学习一下Windows驱动程序开发并将这个USB驱动解决。当时一脸懵逼,便将开发板通过USB接口插上电脑后发现显示的未...
  • 转载:windows驱动开发入门

    千次阅读 2018-08-03 17:46:30
    Windows驱动开发是一件痛苦的事情,特别是初学Windows驱动开发。有的人觉得Windows驱动开发就是把开发包WDK下载下来,然后只要掌握了C/C++语言,接下来无非就是类库调来调去,像调用MFC、QT之类的库那样,看着书和...
  • 本书由浅入深、循序渐进地介绍了Windows驱动程序的开发方法与调试技巧。本书共分23章,内容涵盖了 Windows操作系统的基本原理、NT驱动程序与WDM驱动程序的构造、驱动程序中的同步异步处理方法、驱 动程序中即插即...
  • Windows驱动开发入门系列教程

    千次阅读 2016-03-28 11:27:41
    前几天,一个朋友问到我怎么学习Windows驱动开发,我就想到把我学习Windows驱动开发过程分享一下,也算我的一点总结。 我总结了一下,大概分为这么几部分内容: 第一讲:开发环境与工具篇 主要讲述驱动...
  • 1.开发工具-虚拟机。 2.调试工具:debugview。
  • 在Win10环境下开发Windows驱动程序需要依赖WDK,微软在”WDK7600“以后就不再提供独立的内核驱动开发包了,而是必须首先安装微软集成开发环境VisualStudio。本文将介绍如何在Win10环境下配置Visual Studio 2015 + ...
  • 记录windows驱动开发inf文件详解

    千次阅读 2017-04-08 21:29:07
    Windows驱动程序开发相关 1. 驱动的注册表位置: 1. 硬件子键: HKEY_LOCATION_MACHINE\SYSTEM\ControlSet001\Enum 指明硬件的HID,VID,DID等跟硬件和硬件厂商相关的信息。 2. 服务子健: HKEY_LOCATION_...
  • Windows打印机驱动开发

    千次阅读 2019-11-16 12:21:40
    开发打印机驱动程序通常有两种途径:一是开发一个完整的驱动程序,二是利用微软提供的通用...开发一个完整的驱动程序工作量大且过程复杂,因此我们采用通用打印机驱动程序+小型驱动程序来开发打印机驱动程序。 ...
  • windows虚拟网卡驱动开发

    千次阅读 热门讨论 2017-04-06 19:05:24
    by fanxiushu 2017-04-06 转载或...很早前的文章介绍过windows和linux平台的虚拟网卡技术, 详见 http://blog.csdn.net/fanxiushu/article/details/8526708 http://blog.csdn.net/fanxiushu/article/details/8526
  • by fanxiushu 2017-10-27 转载或引用请注明原始作者。...于是决定重新开发macbook pro 2017触摸板的windows驱动。 请稍后关注 GITHUB和CSDN提供的源代码和驱动程序。 如下连接, http://blog.csdn.net
  • Windows驱动开发:用C还是C++

    千次阅读 2016-03-28 11:46:45
    在做windows驱动程序开发之前,首先要确定开发的语言。在常见的编程语言中,我们可以选择C、C++、汇编语言甚至Delphi。不过由于 微软提供的DDK开发环境所提供的文件和链接用的库只支持C和C++语言。所以一般都采用C...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,516
精华内容 54,606
关键字:

windows驱动开发流程