2011-12-15 15 views
10

यह पहचानने के लिए कैसे करें कि यह IMAPI2 के बारे में मेरे अन्य प्रश्न से आया है कि यह पहचानना संभव है कि कोई डीवीडी/सीडी ड्राइव आभासी है और भौतिक नहीं है?किसी ड्राइव को वर्चुअल या भौतिक

+0

@ एलबीबी ओपी राज्य, डीवीडी/सीडी ड्राइव आभासी बनाम आभासी है; यानी ... क्या यह MagicISO की तरह कुछ के माध्यम से घुड़सवार है या यह डिवाइस का एक भौतिक घटक है। –

उत्तर

2

वर्चुअल ड्राइव का उद्देश्य भौतिक मीडिया के बिना, इसके भौतिक समकक्ष के रूप में कार्य करना है। दोनों प्रकार के ड्राइव ऑपरेटिंग सिस्टम के साथ डिवाइस ड्राइवर के समान तरीके से काम करते हैं। मुझे अत्यधिक संदेह है कि उनके बीच का अंतर Win32 एपीआई के भीतर दिखाई देगा। यह आभासी ड्राइव के उद्देश्य के प्रति उलझन में होगा।

मैंने डब्लूएमआई (जो सी # में पहुंच योग्य है) द्वारा प्रदान की गई जानकारी को देखा और कुछ ब्याज पाया। मेरे वर्चुअल ड्राइव की डिवाइस आईडी 'एससीएसआई' के साथ शुरू हुई, जबकि मेरे भौतिक सैटा ड्राइव की डिवाइस आईडी 'आईडीई' से शुरू हुई। मेरा मानना ​​है कि अधिकांश (वर्चुअल ड्राइव सॉफ़्टवेयर) एससीएसआई ड्राइव का अनुकरण करता है; मुझे यकीन नहीं है। आम तौर पर, उपयोगकर्ता के पास आईडीई या सैटा ऑप्टिकल ड्राइव होता है, जिसमें दोनों आईडी 'आईडीई' से शुरू होते हैं।

Virtual Drive Device: "SCSI\CDROM&VEN_ELBY&PROD_CLONEDRIVE&REV_1.4\1&00000000&0&000000" 
Real Drive Device: "IDE\CDROMASUS_DRW-24B1ST_________________________1.03____\5&295AF142&0&5.0.0" 

मेरे उदाहरण डिवाइस आईडी में नोटिस कि आभासी ड्राइव स्पष्ट रूप से क्लोन ड्राइव सॉफ़्टवेयर के रूप में पहचाना जाता है। आप वर्चुअल ड्राइव सॉफ़्टवेयर की ज्ञात सूची के विरुद्ध निर्माता और उत्पाद का नाम देख सकते हैं। यह बहुत सारे झूठे नकारात्मक पैदा कर सकता है और बनाए रखने के लिए बहुत कठिन हो सकता है।

किसी भी तरह से, मुझे विश्वास नहीं है कि डिवाइस आईडी में सुविधाओं की खोज एक बेहद विश्वसनीय समाधान होगा। वर्चुअल ड्राइव हो सकते हैं जो खुद को अलग-अलग पहचानते हैं। मैंने केवल आपके प्रश्न की खोज में क्लोन ड्राइव और डेमॉन उपकरण का परीक्षण किया।

यदि आप कॉपीराइट संरक्षण के लिए इस दृष्टिकोण का उपयोग करना चाहते थे (आप इसके लिए और क्या उपयोग करेंगे?) तो आपको यह विचार करना होगा कि झूठी आभासी ड्राइव निर्धारण का मौका आपके ग्राहकों को परेशान करने के लायक है या नहीं।

WMI का उपयोग करके ड्राइव का निरीक्षण करने और डिवाइस आईडी तक पहुंचने के लिए सी # कोड यहां दिया गया है। आपको सिस्टम का संदर्भ देना होगा। प्रबंधन असेंबली।

string driveLetter = "F"; 
ManagementObjectSearcher diskQuery = new ManagementObjectSearcher(String.Format("SELECT * FROM Win32_CDROMDrive WHERE Drive='{0}:'", driveLetter)); 
ManagementObject diskResult = diskQuery.Get().OfType<ManagementObject>().SingleOrDefault(); 
string deviceID = null; 
if (diskResult != null) 
    deviceID = (string)diskResult["DeviceID"]; 
-4

एक तरीका है अपनी कंप्यूटर निर्देशिका पर नेविगेट करना, सी:/ड्राइव और हटाने योग्य हार्ड डिस्क वाला एक। एक भौतिक हार्ड ड्राइव के साथ यदि आप मीडिया पर राइट क्लिक और एक्जेक्ट करते हैं तो सीडी/डीवीडी ट्रे स्लाइड हो जाएगी; हालांकि, वर्चुअल ड्राइव ड्राइव पर संग्रहीत डेटा को साफ़ कर देगा, लेकिन लैपटॉप/कंप्यूटर पर ट्रे को स्लाइड नहीं करेगा।

+2

-1 ओपी सी # –

+2

के माध्यम से एक व्यवहार्य समाधान की तलाश में है, यह बता नहीं सकता कि क्या ट्रोलिंग या गलतफहमी है ... – RichK

+0

आप यह भी समझ सकते हैं कि आप WMI से परिचित हैं ..? कई उदाहरणों के लिए गूगल – MethodMan

0

"ड्राइवइन्फो" में देखें ... इसकी ड्राइवटाइप संपत्ति को देखें।

System.IO.DriveInfo di = new System.IO.DriveInfo ("X: \");

संबंधित मुद्दे