Не следует использовать другие, чем те функции kernel32.dll из DllMain:Загрузка/вызова Ntdll из DllMain
От MS документации:
Поскольку Kernel32.dll гарантированно будет загружается в адресное пространство процесса при вызове функции точки входа, вызывающие функции в Kernel32.dll не приводят к тому, что DLL используется до того, как был выполнен код инициализации. Поэтому функция entry-point может вызывать функции в Kernel32.dll, которые не загружают другие DLL. Например, DllMain может создавать объекты синхронизации, такие как критические разделы и мьютексы, и использовать TLS. К сожалению, в Kernel32.dll нет исчерпывающего списка безопасных функций.
...
Функции вызова, требующие DLL, отличные от Kernel32.dll, могут привести к проблемам, которые трудно диагностировать. Например, вызов функций User, Shell и COM может вызвать ошибки в доступе, поскольку некоторые функции загружают другие компоненты системы. И наоборот, вызывающие функции, подобные этим при завершении, могут вызывать ошибки нарушения доступа, поскольку соответствующий компонент уже может быть выгружен или не инициализирован.
Мой вопрос:
Но документация не упоминает ntdll.dll. - Могу ли я позвонить LoadLibrary для "Ntdll" и использовать функции в Ntdll из DllMain:
1) во время DLL_PROCESS_ATTACH (загрузка и использование Функции NTDLL)?
2) во время DLL_PROCESS_DETACH (используйте функции ранее загруженного ntdll)?
Кроме того, пожалуйста, что кто-то с 1500+ репутацией хотел создать новый тег под названием «DllMain»?
В нем не упоминается файл ntdll.dll, так как это намеренно недокументированная DLL. Он содержит код пользовательского режима для собственной операционной системы. Вызов LoadLibrary() для него никогда не может быть проблемой, поскольку программа не может запускаться без ntdll. Хотя гарантия трудно найти, она недокументирована;) Является ли вызов недокументированной функции из ntdll в DllMain() проблемой, вам нужно будет найти трудный путь, вы не задокументировали недокументированный вами документ пытаются позвонить. –
Спасибо, я думаю, это считается ответом ... –