Windows (XP-7)에서 C++의 USB 플로피 드라이브와 USB 플래시 드라이브를 프로그램 방식으로 구별하는 안정적인 방법이 있습니까?Windows에서 USB 플로피 드라이브와 USB 플래시 드라이브를 프로그램 방식으로 구별
현재 Win32_LogicalDisk
인스턴스가 발견되면 WMI를 사용하여 업데이트를 얻은 다음 LogicalDisk 개체의 DriveType 특성을 사용하여 기본 형식을 파악합니다. 플로피 드라이브와 USB 플래시 드라이브가 모두 DriveType DRIVE_REMOVABLE
인 것을 제외하고는 (플로피와 플래시를 구분하기 위해) 장치를 핫 플러그 할 수 있는지 알아 내기 위해 IOCTL_STORAGE_GET_HOTPLUG_INFO
인터페이스를 사용하고 있습니다. 그것이 플로피 드라이브가 아니라 플로피 디스크라는 것을 의미하는 교장 선생님. 다시 말하지만 내부 플로피 드라이브의 경우이 방법이 상당히 효과적이라고 생각합니다 (정보를 얻으려면 WDK API와 WMI를 모두 사용하는 것이 좋습니다).하지만 불행히도 USB 플로피 드라이브는 많은 시간 동안 핫 플러그가 가능하므로 플래시와 USB 플로피 드라이브를 구분할 명확한 방법이 없습니다. 나는 이 일 수 있다는 것을 알고 있습니다. 예약 된 드라이브 A : 또는 B (편집 : 플로피 드라이브가 확실히있는 경우에만 - 관련 항목 : MS-KB: How to change drive letter assignments in Windows XP 참조)에 매핑되어 있는지 또는 설명을보고 있는지 확인하고 싶습니다. 정말 조금 더 안정적인 걸 좋아해.
오랜 설명에 대해 미안하지만 분명히하고 싶었습니다! 감사합니다.
A : 및 B :는 floppies_에 대해 _reserved입니까? 출처? – MSalters
Windows XP에서 [MS-KB : Windows XP에서 드라이브 문자 할당을 변경하는 방법] (http://support.microsoft.com/kb/307844)에서이 부분을 구할 수 있지만 그 내용도 나와 있습니다. , 컴퓨터에 플로피 드라이브가 없으면 다른 드라이브에도 사용할 수 있습니다. 틀림없이 잘못된 이름이며 플로피 드라이브인지 여부를 나타내는 것은 아닙니다. 질문을 조금 더 명확하게하기 위해 다시 말하겠습니다. – user82116
아, 그건 운전자를 수동으로 변경할 때의 사용자 관점에서입니다. 그렇다면 OS 관점에서 생각하고있었습니다. – MSalters