주어진 프로세스의 모든 파일 핸들을 가져 오는 방법이 필요합니다.주어진 프로세스의 파일 핸들 얻기
예를 들어 winword.exe 프로세스 핸들이 주어진다면 해당 프로세스 (doc 파일 등)의 파일 핸들 목록을 얻고 싶습니다.
저는 C#/pInvoke를 통해 Win32 API를 사용하고 있습니다.
감사합니다.
주어진 프로세스의 모든 파일 핸들을 가져 오는 방법이 필요합니다.주어진 프로세스의 파일 핸들 얻기
예를 들어 winword.exe 프로세스 핸들이 주어진다면 해당 프로세스 (doc 파일 등)의 파일 핸들 목록을 얻고 싶습니다.
저는 C#/pInvoke를 통해 Win32 API를 사용하고 있습니다.
감사합니다.
쉬운 해결책은 handle.exe을 사용하고 출력을 읽는 것입니다. 또 다른 해결책은 NtQuerySystemInformation 기능으로 P/Invoke를 사용하는 것입니다. This 및 this SysInternals의 게시판에는 CodeProject에 대한 자세한 내용과 article이 있습니다. 커널 주소 공간을 읽는 드라이버를 작성해야하므로 관리 코드에서 수행하는 것은 매우 어려울 수 있습니다.
관리 코드에서 호출 할 수있는 Win32 함수에 필요한 기능을 제공하는 것이 좋습니다.
대린의 대답 보완에
는보기 STDERR 및 STDOUT을 handle.exe 수 있습니까? 'handle.exe -a -p 1234'를 실행하면 출력되는 가장 낮은 핸들 번호는 4이지만 STDERR은 # 2가 맞습니까? –