Когда DllMain будет вызываться с флагом DLL_PROCESS_VERIFIER?

StackOverflow https://stackoverflow.com/questions/2448879

Вопрос

В 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?

Обратите внимание, что я вижу только DLL_PROCESS_VERIFIER в файлах заголовков Visual Studio 2005, а не 2008.

Это было полезно?

Решение

Я предполагаю, что теоретически Microsoft может изобрести новые способы использования и флаги в любой момент, когда почувствует, что им нужны новые.Поэтому простое правило — убедиться, что ваш код допускает неожиданные значения:то естьнапишите его, чтобы обрабатывать те случаи, которые вам нужно обработать, и игнорируйте остальные, возвращая ноль.

Другие советы

Это действительно неясно.Это никогда не документируется в SDK и не отображается в файлах заголовков SDK.Google производит лишь несколько обращений, большинство сайтов не работают или не заслуживают доверия.Единственный приличный успех, который я получаю, - это код XBox, он только объявляет его, но на самом деле не использует.

Я недостаточно убежден, что это реальный код, который вы когда-либо могли встретить в обычной программе Windows.

Я думаю, что это может иметь ценность, если оно будет пройдено. Верификатор приложений.Типа догадалась :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top