C++ Can';t在同一文件中包括wdm.h和ntifs.h

C++ Can';t在同一文件中包括wdm.h和ntifs.h,c++,wdk,C++,Wdk,我的编译器(vs2012)拒绝编译以下代码行。他为PEPROCESS和PETHREAD重新定义了符号。我如何解决这个问题?为什么不能同时使用两个标题 #include <wdm.h> #include <Ntifs.h> double hal_datetime_utc_now() { LARGE_INTEGER gmtTime; KeQuerySystemTime(&gmtTime); ULONG utc_now; RtlTimeT

我的编译器(vs2012)拒绝编译以下代码行。他为PEPROCESS和PETHREAD重新定义了符号。我如何解决这个问题?为什么不能同时使用两个标题

 #include <wdm.h>
 #include <Ntifs.h>

double hal_datetime_utc_now()
{
   LARGE_INTEGER gmtTime;
   KeQuerySystemTime(&gmtTime);

   ULONG utc_now;
   RtlTimeToSecondsSince1970(&gmtTime, &utc_now);
   return (double)utc_now;
}
#包括
#包括
双hal_datetime_utc_now()
{
大整数gmtTime;
KeQuerySystemTime(&gmtTime);
乌龙utc_现在;
RTLTIMETOSCONSSSINCE1970(&gmtTime,&utc\U now);
现在返回(双)utc_;
}

我自己找到了解决方案。在我的场景中,我可以删除wdm.h。因为KeQuerySystemTime也包含在ntifs.h中。所以我可以简单地删除wdm.h


编辑:打字:用ntifs.h替换wdm.h

我自己找到了解决方案。在我的场景中,我可以删除wdm.h。因为KeQuerySystemTime也包含在ntifs.h中。所以我可以简单地删除wdm.h


编辑:输入错误:将wdm.h替换为ntifs.h

您说了两次“wdm.h”。你的意思是“删除Ntifs.h”还是“也包括在Ntifs中”?你说了两次“wdm.h”。您的意思是“删除Ntifs.h”还是“也包括在Ntifs中”?