通过GetModuleHandle使用Windows内核函数

时间:2016-02-16 16:01:37

标签: c++ windows kernel-module

我想使用FsRtlIsDbcsInExpression(https://msdn.microsoft.com/en-us/library/windows/hardware/ff546803(v=vs.85).aspx)来进行外卡检查,与Windows本机完全相同,而无需在我的程序中重新实现它。当我使用时:

auto module = GetModuleHandle(TEXT("NtosKrnl.exe"));

模块变为空。从我在互联网上可以找到的内容来看,因为这是一个内核模式函数,所以需要KernelGetModuleBase。但是,这个函数似乎没有自动解决,并且没有msdn文档,所以我怀疑这是解决方案。有没有人有关于如何使用函数的指针?

1 个答案:

答案 0 :(得分:2)

ntoskrnl的GetModuleHandle将失败,因为它没有加载到你的内存空间。您只能从内核调用此类函数。

您可能想尝试使用PathMatch规范(https://msdn.microsoft.com/en-us/library/windows/desktop/bb773727%28v=vs.85%29.aspx)。它似乎做同样的工作。