나는 파일이 어떤 물리적 미디어인지 (파일 이름 또는 핸들에 의해) 알아 내고 싶다.파일이 어떤 물리적 드라이브에 있는지 어떻게 알 수 있습니까?
나는 DeviceIoControl
호출로 지정된 파티션 핸들의 실제 드라이브를 확인할 수있는 here을 읽었습니다.
하지만 파일 이름에서 파티션 핸들을 얻으려면 어떻게해야합니까? (NTFS는 폴더에 파티션을 마운트 할 수 있기 때문에 단순히 드라이브 문자로 이동할 수는 없습니다.)
내가 비난하는 이유는 비동기 메서드를 사용할 때 파일을 다른 실제 드라이브에 복사하는 것이 가장 빠르기 때문입니다. 동일한 드라이브가 더 큰 버퍼와 동 기적으로 완료되면 가장 빠릅니다. 내가 주어진 파일과 대상에 대한 최적의 복사 알고리즘을 결정하는 함수를 작성하고 싶다.
내가 기대 당신은 Windows를 유지하지 않는 한, 파일에 대한 모든 연결된 미디어를 검색해야한다고 파일 이름을 볼륨 문자에 매핑하는 테이블 –
* 논리적 * 드라이브를 의미합니다. 예를 들어, SQL Server는 RAID5로 실행되는 3 개의 SAS 15K 드라이브에 기본 데이터 저장소를 가지고 있습니다. RAID에 저장된 파일은 * 모든 드라이브에 있습니다. – WhozCraig
@WhozCraig 예.하지만 두 개의 논리 드라이브가 동일한 실제 드라이브에있는 경우 동기식 복사를 사용하고 싶습니다 (가능한 경우). –