विंडोज़ (एक्सपी -7) पर यूएसबी फ्लॉपी ड्राइव और यूएसबी फ्लैश ड्राइव के बीच प्रोग्रामेटिक रूप से भिन्नता, क्या सी ++ में यूएसबी फ्लॉपी ड्राइव और यूएसबी फ्लैश ड्राइव के बीच प्रोग्रामेटिक रूप से अंतर करने का एक विश्वसनीय तरीका है?विंडोज़
फिलहाल, मैं अपडेट प्राप्त करने के लिए डब्लूएमआई का उपयोग कर रहा हूं जब नए Win32_LogicalDisk
उदाहरण पाए जाते हैं, और फिर मूल प्रकार को जानने के लिए लॉजिकलडिस्क ऑब्जेक्ट के ड्राइवटाइप विशेषता का उपयोग करते हैं। यह बहुत अच्छी तरह से काम करता है, सिवाय इसके कि फ्लॉपी ड्राइव और यूएसबी फ्लैश ड्राइव ड्राइवटाइप DRIVE_REMOVABLE
दोनों हैं, इसलिए उन (फ्लॉपी बनाम फ्लैश) के बीच अंतर करने के लिए, मैं IOCTL_STORAGE_GET_HOTPLUG_INFO
इंटरफ़ेस का उपयोग कर रहा हूं यह पता लगाने के लिए कि डिवाइस हॉटप्लगेबल है या नहीं, प्रिंसिपल पर इसका मतलब था कि यह एक फ्लैश ड्राइव था और फ्लॉपी नहीं था। दोबारा, मुझे लगता है कि यह आंतरिक फ्लॉपी ड्राइव के मामले में काफी अच्छी तरह से काम करता है (अगर थोड़ा अक्षम, डब्लूडीके एपीआई और डब्ल्यूएमआई दोनों जानकारी प्राप्त करने के लिए), लेकिन दुर्भाग्य से यूएसबी फ्लॉपी ड्राइव भी बहुत समय से हॉटप्लगेबल हैं, इसलिए वहां फ़्लैश और यूएसबी फ्लॉपी ड्राइव के बीच अंतर करने का कोई स्पष्ट तरीका नहीं है, जिसे मैं देख सकता हूं। मुझे पता है कि काम कर सकते हैं, जैसे कि आरक्षित ड्राइव पर मैप किया गया है या नहीं: (संपादित करें: मशीन के पास निश्चित रूप से प्रासंगिक है अगर मशीन में निश्चित रूप से फ्लॉपी ड्राइव है - MS-KB: How to change drive letter assignments in Windows XP देखें), या विवरण को देखते हुए, लेकिन मैं वास्तव में कुछ और अधिक विश्वसनीय पसंद है।
लंबी व्याख्या के बारे में खेद है, लेकिन बस स्पष्ट होना चाहता था! धन्यवाद
ए: और बी: floppies_ के लिए _reserved हैं? स्रोत? – MSalters
मुझे यह मिला [एमएस-केबी: विंडोज एक्सपी में ड्राइव लेटर असाइनमेंट कैसे बदलें] (http://support.microsoft.com/kb/307844), और जिस तरह से वे इसे वाक्यांश देते हैं, लेकिन जैसा कि यह भी बताता है , अगर मशीन में फ्लॉपी ड्राइव नहीं है, तो उन्हें अन्य ड्राइव्स के लिए इस्तेमाल किया जा सकता है, इसलिए तर्कसंगत रूप से यह एक गलत नामक है, और निश्चित रूप से फ्लॉपी ड्राइव होने के कारण ड्राइव का संकेत नहीं है। मैं इसे थोड़ा स्पष्ट बनाने के लिए सवाल दोहरा दूंगा। – user82116
आह, यह उपयोगकर्ता दृष्टिकोण से है, जब आप मैन्युअल रूप से ड्राइवलेटर्स बदल रहे हैं। तब समझ में आता है, मैं एक ओएस दृष्टिकोण से सोच रहा था। – MSalters