2010-01-02 5 views

답변

11

Windows 2000 이상에서는 커널 모드 드라이버를 사용하지 않으면이 작업을 수행 할 수 없습니다. Process Explorer 및 기타 유사한 도구가 드라이버를 자동으로로드하여이를 수행합니다. 이는 파일 핸들이 커널 공간에 있고 사용자 모드 응용 프로그램 (EXE 파일)에서 액세스 할 수 없기 때문입니다.

정말 관심이 있으시면 this project을 참조하십시오.

+0

프로세스 탐색기가'System' 프로세스의 DLL을보고 드라이버를로드하고있는 것을 볼 수 있습니다; 당신은'PROCEXP113.SYS'와 비슷한 드라이버를 보게 될 것입니다. –

3

MSDN에서 승인 한 방법은 IFileIsInUse::GetAppName()입니다. 비스타가 필요합니다.

+0

이것은 파일을 열었던 프로그램과 협력해야하는 것 같습니다. 이것은 요청되는 것과 같지 않습니다. – Mehrdad

+0

이것은 가장 정보가 풍부한 방식이므로, 먼저 시도해야합니다. – MSalters

+1

물론, 시도하는 데 아무런 해가 없습니다.하지만 작동 가능성은 매우 낮으므로 OP에 관계없이 대체로 필요합니다. – Mehrdad

관련 문제