このコードを制限付きユーザーとして実行するとクラッシュするのに、マシンの管理者として実行するとクラッシュしないのはなぜですか?
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance,
DWORD dwReason,
LPVOID lpReserved)
{
hInstance;
m_hInstance=hInstance;
return _AtlModule.DllMain(dwReason, lpReserved);
}
戻り時にコードがクラッシュしています...理由はわかりません。
私は得ています:
The instruction at "0x7c90100b" referenced memory at "0x00000034".
The memory could not be "read".
さらに、_AtlModule.DLLMain は次のようになります。
inline BOOL WINAPI CAtlDllModuleT<T>::DllMain(DWORD dwReason, LPVOID lpReserved) throw()
{
#if !defined(_ATL_NATIVE_INITIALIZATION)
dwReason; lpReserved;
#pragma warning(push)
#pragma warning(disable:4483)
using namespace __identifier("<AtlImplementationDetails>");
#pragma warning(pop)
if (dwReason == DLL_PROCESS_ATTACH)
{
ATLASSERT(DllModuleInitialized == false);
}
return TRUE;
#else
return _DllMain(dwReason, lpReserved);
#endif
}
ATL DLL をインポートし、静的リンクも試みましたが、うまくいきませんでした。
アップデート
ProcMon を使用すると、ここでバッファ オーバーフローが発生します。
RegQueryValue HKU\S-1-5-21-448539723-854245398-1957994488-1005\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cache BUFFER OVERFLOW 長さ: 144
これは何を意味するのでしょうか?