从安全焦点看到的。
作者:ilsy
ntddk.h如果直接include进来会有问题的,应该这样做:
namespace NT {
extern "C" {
#pragma warning(disable: 4005) // macro redefinition
#pragma warning(disable: 4201) // nonstandard extension
#include <ddk/ntddk.h> // wre
#include <tdikrnl.h>
#pragma warning(default: 4005)
#pragma warning(default: 4201)
NTSYSAPI
NTSTATUS
NTAPI
ZwQuerySystemInformation(
IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
OUT PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength OPTIONAL
);
下面是一些函数原型和其他定义
}
}
using NT::NTSTATUS;
以后引用里面定义的函数可以这样使用:
NT::ZwQuerySystemInformation()
这样就可以include进ntddk.h了,
或者把呢所有需要的定义自己定义一个.h文件不用ntddk.h。