2011-04-07 2 views

답변

1

내 대답은 the question에 게시 된 코드를 살펴보십시오. 질문의 저자는 질문의 텍스트를 많은 시간과 텍스트의 마지막 버전을 분명하게 변경했거나 원래의 문제가 무엇인지 분명하게 변경하지 못했습니다.

here을 다운로드 할 수있는 C 소스 코드 예제에서 다른 Windows API를 사용하여 로컬 드라이브에 대한 많은 종류의 정보를 얻는 방법을 보여줍니다. 당신이 필요로하는 중요한 점은 다음과 같은

DeviceType: 7, DeviceNumber: 5, PartitionNumber: 1 

같은 (IOCTL_STORAGE_GET_DEVICE_NUMBER 수신)되는 DeviceType 및 DeviceNumber 같은 몇 가지 이름 변환이 운영 체제에서 고유와 같은 장치를 식별하는 데 사용될 수 있다는 것입니다. 당신이 IOCTL_STORAGE_GET_DEVICE_NUMBER 제어 코드의 문서에서 찾을 수있는 문에 C 참조 : STORAGE_DEVICE_NUMBER 구조

값은 장치가 제거됩니다 때까지 변경되지 않은 상태로 유지 보장 또는 시스템이 다시 시작 입니다. 장치가 다시 시작될 때마다 이 지속되거나 시스템을 다시 시작하면 이 다시 시작될 수도 있습니다.

그런데 \\.\SCSI0 기기와 \\.\PhysicalDrive0을 비교하고 해당 통신문을 찾을 수 있습니다.

+0

올레그, 귀하의 회신에 많은 감사드립니다. 나는 가능한 한 빨리 그것을 시도 할 것이다. –

+0

'IOCTL_STORAGE_GET_DEVICE_NUMBER'가 실패하고 GetLastError가 ERROR_INVALID_FUNCTION이라고하기 때문에'\\. \ SCSI' 장치에'STORAGE_DEVICE_NUMBER' 데이터를 얻는 것은 간단한 일이 아닌 것 같습니다. –

+0

@Ilya Matvejchikov : 아마도'\\. \ SCSI'가 아닌'\\. \ SCSI0' 또는'\\. \ SCSI1'을 의미 할 것입니다. [WinObj] (http://technet.microsoft.com/en-us/sysinternals/bb896657)를 사용하여 컴퓨터에 어떤 장치가 있는지 확인할 것을 권장합니다. 처음에는'GLOBAL ?? '을보십시오. – Oleg

관련 문제