Я пытаюсь внедрить библиотеку DLL и перечислить домены приложений в целевом процессе:
void EnumAppDomains()
{
HRESULT hr = 0;
ICorPublish *pPublish = NULL;
ICorPublishProcess *pProcess = NULL;
ICorPublishAppDomainEnum *pDomainEnum = NULL;
ICorPublishAppDomain *appDomains[1];
hr = CoCreateInstance(CLSID_CorpubPublish, NULL, CLSCTX_INPROC_SERVER, IID_ICorPublish, (LPVOID*)&pPublish);
if (!SUCCEEDED(hr))
{
DbgPrint(L"CoCreateInstance(): 0x%X\n", hr);
return;
}
hr = pPublish->GetProcess(GetCurrentProcessId(), &pProcess);
if (!SUCCEEDED(hr))
{
DbgPrint(L"ICorPublishProcess::GetProcess(): 0x%X\n", hr);
return;
}
...
Всегда происходит сбой при hr = pPublish->GetProcess(GetCurrentProcessId(), &pProcess);
:
[4016] ICorPublishProcess::GetProcess(): 0x80070057
Ошибка недействительна параметр, что может go здесь не так?