Я считаю, что вы должны использовать NTDLL.DLL. Насколько мне известно, это то, что все инструменты, отслеживающие процессы, обрабатывает и другую системную информацию, должны использовать в конце концов под Windows. Я использовал его в небольшом инструменте Win32, однако никогда не приходилось перечислять дескрипторы.
Проверьте здесь хорошее введение в эту библиотеку и связанное с вашим вопросом. http://forum.sysinternals.com/howto-enumerate-handles_topic18892.html
Также функция GetObjectName в первом посте http://forum.sysinternals.com/enumerate-opened-files_topic3577.html
Доступ к такой информации в Windows может показаться трудоемким и выглядит пугающе, потому что Microsoft не хочет ее поддерживать, но вы увидите, что когда «простой» API не дает вам то, что вам нужно, вы надо копать до NTDLL. Это то, что инструменты вроде ProcessExplorer используют в конце. Это не так сложно в использовании: загрузите DLL, получите правильные указатели на функции, чтобы заполнить структуры, которые вы объявите сами, тем, что вы найдете в сети.