은 아마도 장치 드라이버 (I 확실히 생각하는)의 버그이지만, 그들은 모두 ... 같은 방식으로 NOT 작동하는 것처럼. 그래서이 시점에서 나는 마이크로 소프트 (아마도 가장 큰 개발자)가 당신이 (윈도우 7 마이크로 소프트 드라이버에서는 작동하지 않는다) 이런 방식으로 작동한다고 믿게 만들지라도 디바이스 드라이버 devlopers가 디바이스 특성을 바꾸도록 할 수 있다고 생각하지 않는다. SD 카드를 USB 장치에 삽입하면 WM_DEVICECHANGE 메시지가 나타나지 않습니다.
미디어 유형 장치에 SHChangeNotifyRegister를 사용하십시오. 그것은 레지스터 devicenotification을 요구하지 않습니다. 그리고 SHGetPathFromIDList를 통해 드라이브 문자를 얻을 수 있습니다. SHCNE_MEDIAINSERTED 및 SHCNE_MEDIAREMOVED를 사용하십시오. 만약 당신이 하드웨어 장치가 아닌 미디어 장치를 찾고 있습니다, 또는 당신이 당신의 자신의 장치 드라이버를 쓸 수있을 경우
사용 장치 ONDeviceNotify.
는 "변경 감시자 샘플을 통지"에
SHChangeNotifyRegister
의 사용의 아주 좋은 예입니다이 댓글의 코드
CodeProject - Trapping windows messages
이 질문을 확인하십시오. http://stackoverflow.com/questions/583593/how-can-i-detect-when-an-sd-card-is-plugged-in –
@Kirill : 질문에 대한 충분한 이유가 있습니다. 허용 된 대답이 없습니다. 그들은 "새 드라이브"와 "기존 드라이브의 볼륨 삽입"을 구별하지 못합니다. – MSalters