|
|
@ -153,20 +153,22 @@ SHMProcess::SHMProcess(vector <memory_info> & known_versions)
|
|
|
|
char exe_link_name [256];
|
|
|
|
char exe_link_name [256];
|
|
|
|
char target_name[1024];
|
|
|
|
char target_name[1024];
|
|
|
|
int target_result;
|
|
|
|
int target_result;
|
|
|
|
|
|
|
|
do
|
|
|
|
|
|
|
|
{
|
|
|
|
// get server and client mutex
|
|
|
|
// get server and client mutex
|
|
|
|
d->DFSVMutex = OpenMutex(SYNCHRONIZE,false, "DFSVMutex");
|
|
|
|
d->DFSVMutex = OpenMutex(SYNCHRONIZE,false, "DFSVMutex");
|
|
|
|
if(d->DFSVMutex == 0)
|
|
|
|
if(d->DFSVMutex == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
d->DFCLMutex = OpenMutex(SYNCHRONIZE,false, "DFCLMutex");
|
|
|
|
d->DFCLMutex = OpenMutex(SYNCHRONIZE,false, "DFCLMutex");
|
|
|
|
if(d->DFCLMutex == 0)
|
|
|
|
if(d->DFCLMutex == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!attach())
|
|
|
|
if(!attach())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// All seems to be OK so far. Attached and connected to something that looks like DF
|
|
|
|
// All seems to be OK so far. Attached and connected to something that looks like DF
|
|
|
@ -182,7 +184,7 @@ SHMProcess::SHMProcess(vector <memory_info> & known_versions)
|
|
|
|
d->DFSVMutex = 0;
|
|
|
|
d->DFSVMutex = 0;
|
|
|
|
CloseHandle(d->DFCLMutex);
|
|
|
|
CloseHandle(d->DFCLMutex);
|
|
|
|
d->DFCLMutex = 0;
|
|
|
|
d->DFCLMutex = 0;
|
|
|
|
return;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!bridgeOK)
|
|
|
|
if(!bridgeOK)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -194,7 +196,7 @@ SHMProcess::SHMProcess(vector <memory_info> & known_versions)
|
|
|
|
d->DFSVMutex = 0;
|
|
|
|
d->DFSVMutex = 0;
|
|
|
|
CloseHandle(d->DFCLMutex);
|
|
|
|
CloseHandle(d->DFCLMutex);
|
|
|
|
d->DFCLMutex = 0;
|
|
|
|
d->DFCLMutex = 0;
|
|
|
|
return;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* get the PID from DF
|
|
|
|
* get the PID from DF
|
|
|
@ -263,9 +265,10 @@ SHMProcess::SHMProcess(vector <memory_info> & known_versions)
|
|
|
|
d->DFSVMutex = 0;
|
|
|
|
d->DFSVMutex = 0;
|
|
|
|
CloseHandle(d->DFCLMutex);
|
|
|
|
CloseHandle(d->DFCLMutex);
|
|
|
|
d->DFCLMutex = 0;
|
|
|
|
d->DFCLMutex = 0;
|
|
|
|
return;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} while (0);
|
|
|
|
full_barrier
|
|
|
|
full_barrier
|
|
|
|
// at this point, DF is attached and suspended, make it run
|
|
|
|
// at this point, DF is attached and suspended, make it run
|
|
|
|
detach();
|
|
|
|
detach();
|
|
|
|