何时使用DLL_PROCESS_VERIFIER标志调用DllMain?

时间:2010-03-15 16:50:19

标签: c++ windows winapi dll dllmain

在Windows上,标准DLL入口点称为DllMain。第二个参数是DWORD,ul_reason_for_call

我在MSDN上查找了第二个参数的可能值。以下是显而易见的:

DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:

但是怎么样:

DLL_PROCESS_VERIFIER

何时使用此标志调用入口点?在DLL的“正常”操作期间我应该担心吗?

请注意,我只在Visual Studio 2005的头文件中看到DLL_PROCESS_VERIFIER,而不是2008。

3 个答案:

答案 0 :(得分:5)

我认为理论上微软可以在他们认为需要新的用法和标志时发明新的用法和标志。因此,简单的规则是确保您的代码容忍意外的值:即写入它来处理您需要处理的情况,并通过返回零来忽略其余的情况。

答案 1 :(得分:1)

这真的很模糊。它在the SDK中没有记录,也没有出现在SDK头文件中。 Google只会产生几次点击,大多数网站都会关闭或不受信任。我得到的唯一体面的打击是XBox代码,它只声明它但实际上并没有使用它。

我不太相信这是您在常规Windows程序中遇到过的真实代码。

答案 2 :(得分:0)

我认为如果它通过Application Verifier运行,它就会有价值。有点猜测:)