Windows驱动笔记
+ -

ntifs.h(85) : error C2371:PEPROCES: redefinition; different basic types Wdm.h、Ntddk.h 和 Ntifs.h头文件包含结构

2023-04-12 45 0

在做windows驱动时,有时由于引用头文件不当,会引起头文件中的重定义而引起编译失败。

'PEPROCESS' : redefinition; different basic types
c:winddk6000incddktifs.h(85) : error C2371: 'PEPROCESS' : redefinition; different basic types
c:winddk6000incddktifs.h(86) : error C2371: 'PETHREAD' : redefinition; different basic types

此类错误是因为ntddk.h和ntifs.h冲突,因为ntifs.h已经包含了ntddk的定义,所以包含了ntifs.h就不必包含ntddk.h。

DRIVERTYPE=FS时才能包含ntifs.h

Wdm.h、Ntddk.h 和 Ntifs.h头文件包含结构
在 Windows Vista 版本的 WDK 之前,比如DDK3600,用于驱动程序开发的主要头文件为 Wdm.h、Ntddk.h 和 Ntifs.h,但这些头文件中包含很多重复的声名。

wdm.h一般用于即插即用驱动。
ntddk.h 一般用于非即插即用驱动,如我们常说的NT架构驱动。这类驱动一般用于无硬件支持的系统内核服务。
从 Windows Vista 版本的 WDK 开始,Wdm.h、Ntddk.h 和 Ntifs.h 将按层次结构来组织并且不包含重复信息。上层的文件将包含下层的文件。较高级别的文件包括较低级别的文件。每个函数和结构声明只出现一次。

Ntifs.h 包含 Ntddk.h,而 Ntddk.h 又包含 Wdm.h。下图显示了此结构
驱动头文件结构
101542466145

0 篇笔记 写笔记

COM开发时使用的Win32 SDK头文件、宏定义和HRESULT
Win32 SDK提供的头文件Unknwn.h 标准接口IUnknown和IClassFacatory的IID及接口成员函数的定义Wtypes.h 包含COM使用的数据结构的说明Objidl.h ......
KMDF驱动库及头文件组件
KMDF作为WDK的一部分进行发布,它包含头文件、库、示例驱动程序、开发工具、公用调试符号及跟踪格式文件。默认情况下,KMDF安装在WDK安装根目录的WDF子目录中。基于KMDF的驱动程序内置于WDK生成环境中。下表列出了作为WDF的一部分进行安装的KMDF组件。组 件位 置描述......
ntifs.h(85) : error C2371:PEPROCES: redefinition; different basic types Wdm.h、Ntddk.h 和 Ntifs.h头文件包含结构
在做windows驱动时,有时由于引用头文件不当,会引起头文件中的重定义而引起编译失败。'PEPROCESS' : redefinition; different basic typesc:winddk6000incddktifs.h(85) : error C2371: &am......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!