2009-11-21 4 views
6

주어진 프로세스의 모든 파일 핸들을 가져 오는 방법이 필요합니다.주어진 프로세스의 파일 핸들 얻기

예를 들어 winword.exe 프로세스 핸들이 주어진다면 해당 프로세스 (doc 파일 등)의 파일 핸들 목록을 얻고 싶습니다.

저는 C#/pInvoke를 통해 Win32 API를 사용하고 있습니다.

감사합니다.

답변

8

쉬운 해결책은 handle.exe을 사용하고 출력을 읽는 것입니다. 또 다른 해결책은 NtQuerySystemInformation 기능으로 P/Invoke를 사용하는 것입니다. Thisthis SysInternals의 게시판에는 CodeProject에 대한 자세한 내용과 article이 있습니다. 커널 주소 공간을 읽는 드라이버를 작성해야하므로 관리 코드에서 수행하는 것은 매우 어려울 수 있습니다.

관리 코드에서 호출 할 수있는 Win32 함수에 필요한 기능을 제공하는 것이 좋습니다.

대린의 대답 보완에
+0

는보기 STDERR 및 STDOUT을 handle.exe 수 있습니까? 'handle.exe -a -p 1234'를 실행하면 출력되는 가장 낮은 핸들 번호는 4이지만 STDERR은 # 2가 맞습니까? –

관련 문제