私の現在のプロジェクトでは、ntdll.dll と csrsrv.dll からエクスポートされたいくつかの関数が必要です。
ntdll のハンドルと関数へのポインタを取得することに問題はありません。しかし、csrsrv.dll 関数のハンドルを取得しようとすると、エラー コード「ファイルが見つかりません」で失敗します。ファイルへのフルパスを指定しようとしましたが、何も変わりません。
dll関数からのロード関数のコード:
PVOID GetFunctionFromDll(const std::string& _sModuleName,const std::string& _sFnName)
{
HMODULE hModule = NULL;
PVOID ptrFn = NULL;
if(!GetModuleHandleEx(0,_sModuleName.c_str(),&hModule))
{
return 0;
}
ptrFn = GetProcAddress(hModule, _sFnName.c_str());
FreeLibrary(hModule); // preventing handle leakage
return ptrFn;
}
csrsrv.dll で失敗する理由はありますか?