OpenProcess / QueryFullProcessImageName INVALID_HANDLE_VALUE
-
Hi,
ich öffne einen laufenden Prozess mit OpenProcess().
Bei manchen Images wie bspw. svchost.exe liefert GetLastError nach dem Aufruf von QueryFullProcessImageName INVALID_HANDLE_VALUE zurück.Die Frage ist, wie kann das Handle INVALID sein, wenn es das bei OpenProcess noch nicht war?
[cpp]
HANDLE processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | SYNCHRONIZE, false, pid);wchar_t *buffer = new wchar_t[ MAX_PATH + 100 ];
DWORD size = MAX_PATH + 100;
if( processHandle != INVALID_HANDLE_VALUE )
{
if( !QueryFullProcessImageName( processHandle, 0x00, imagename, &size ) )
{
int err = GetLastError();
// err --> INVALID_HANDLE_VALUE
}
}
delete[] buffer;
-
Sorry cpp end tag vergessen:
HANDLE processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | SYNCHRONIZE, false, pid); wchar_t *buffer = new wchar_t[ MAX_PATH + 100 ]; DWORD size = MAX_PATH + 100; if( processHandle != INVALID_HANDLE_VALUE ) { if( !QueryFullProcessImageName( processHandle, 0x00, imagename, &size ) ) { int err = GetLastError(); // err --> INVALID_HANDLE_VALUE } } delete[] buffer;
-
Vermutlich hast Du zu wenig Berechtigungen...
-
Zu wenig Berechtigungen würden 0x5 - ERROR_NO_ACCESS geben.
Mein Fehler ist, dass ich auf INVALID_HANDLE_VALUE und nicht auf NULL prüfe.Gerade entdeckt. Greetz.