How to enumerate process' handles?

nothrow picture nothrow · Apr 9, 2009 · Viewed 28.2k times · Source

Is there any way how to enumerate process with given PID in windows, and get list of all his opened handles(locked files, etc.)?

EDIT: I dont care about language. If it is in .NET, I'd be glad, if in WinApi (C), it won't hurt. If in something else, I think I can rewrite it :-)

Answer

aJ. picture aJ. · Apr 15, 2009

I did a deep googling and found this article. This article gave a link to download source code:

I tried method in NtSystemInfoTest.cpp ( downloaded source code ) and it worked superbly.

void ListHandles( DWORD processID, LPCTSTR lpFilter )

The code has following declaimer:

// Written by Zoltan Csizmadia, [email protected]
// For companies(Austin,TX): If you would like to get my resume, send an email.
//
// The source is free, but if you want to use it, mention my name and e-mail address
//
//////////////////////////////////////////////////////////////////////////////////////
//

I hope this helps you.