LoadDriver和LoadLibrary两者都是加载DLL的,在PB帮助中说,LoadDriver还可以防止代码和数据被"paged out"。这里的"paged out"是什么意思,什么情况会发生所谓的"paged out"?
还有我发觉LoadDriver调用一个DLL的时候,程序并不会走该DLL的入口函数DLLEntry或(DLLMain),我在DLLEntry的DLL_PROCESS_ATTACH和DLL_PROCESS_DETACH中要求打出打印出信息,并没有打印出来?为什么,在用LoadDriver的时候,有办法让它走DLLEntry??
问题搞明白了,原来是DisableThreadLibraryCalls在作怪,如下,DisableThreadLibraryCalls屏蔽了DLL的如果函数的
DLL_PROCESS_ATTACH和DLL_THREAD_ATTACH的消息。
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls((HMODULE) hDllHandle);