Estoy tratando de obtener un nombre de proceso de su pid. El usuario se está ejecutando como administrador, UAC habilitado, no elevado.¿Cómo obtener un nombre de archivo de proceso de pid, si OpenProcess() falla con ACCESS_DENIED?
Algunos procesos del sistema, como services.exe
, tienen su seguridad configurada de tal manera que OpenProcess(PROCESS_QUERY_INFORMATION ...
falla con ERROR_ACCESS_DENIED
. Mismo resultado con acceso PROCESS_QUERY_LIMITED_INFORMATION
a la derecha. Sin embargo, puedo ver que Process Explorerpuede al menos enumerar todos estos procesos, junto con su pid y nombre de archivo (cuando se ejecuta como administrador no elevado).
Mi pregunta es, ¿cómo puedo hacer lo mismo (obtener el nombre de archivo de pid), dado que el administrador no elevado no puede seguir la ruta habitual de OpenProcess() + GetProcessImageFileName()?
Gracias Jim: fue una sugerencia brillante. Si alguien necesita ejemplo, aquí hay un [MSDN uno] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686701%28v=vs.85%29.aspx) – baderman