开发者

When will DllMain be called with the DLL_PROCESS_VERIFIER flag?

On Windows, the standard DLL entry point is called DllMain. The second parameter is a DWORD, ul_reason_for_call.

I have looked up the possible values for this second parameter on M开发者_如何转开发SDN. The following are obvious:

DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:

But what about:

DLL_PROCESS_VERIFIER

When will the entry point be called with this flag? Should I worry about it during 'normal' operation of the DLL?

Note that I only see DLL_PROCESS_VERIFIER in header files from Visual Studio 2005, not 2008.


I guess in theory Microsoft could invent new usages and flags any time they feel they need a new one. So the simple rule is to ensure that your code tolerates unexpected values: i.e. write it to handle the cases that you need to handle and ignore the rest, by returning zero.


This is really obscure. It is not ever documented in the SDK and doesn't appear in the SDK header files. Google produces only a few hits, most sites are down or untrusted. The only decent hit I get is XBox code, it only declares it but doesn't actually use it.

I'm not sufficiently convinced that this is a real code that you'd ever encounter in a regular Windows program.


I think it can have then value if it is run through Application Verifier. Kind of guessing :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜