2012-08-16 12 views
6

DISKPART कमांड लाइन उपयोगिता का उपयोग करके, मुझे "स्थान पथ" कहा जाता है जो मुझे चाहिए जो मुझे चाहिए, मुझे कमांड diskpart में अपनी डिस्क का चयन करने के बाद इसे देखकर देख सकते हैं।मैं किसी दिए गए डिस्क के लिए SATA चैनल कैसे निर्धारित कर सकता हूं?

ऐसा प्रतीत होता है कि मैं इस वर्ग के माध्यम से प्रोग्राम के यह जानकारी प्राप्त कर सकते हैं: MSFT_Disk

मैं कैसे इस वर्ग का एक उदाहरण प्राप्त करने के लिए लेकर अनिश्चित हूं। मैं WMI वर्गों के लिए एक ManagementObjectSearcher का उपयोग कर के कुछ उदाहरण है, लेकिन है कि विधि मेरे लिए काम नहीं कर रहा है, मैं भी MSFT_Disk के विंडोज 7 में उपलब्धता को लेकर अनिश्चित हूं रूप में पृष्ठ का उल्लेख करता है कि इस Windows 8 के लिए है

किसी को भी करता है SATA चैनल जानकारी या डिस्क के "स्थान पथ" को प्राप्त करने के लिए एक अच्छा तरीका पता है?

+0

आप शायद [VDS] का उपयोग करना होगा .net freamwork की System.Management.dll के संदर्भ (जोड़े http://msdn.microsoft .com/en-us/पुस्तकालय/विंडोज़/डेस्कटॉप/bb986750% 28v = vs.85% 29.aspx)। .NET से इसका उपयोग करने के तरीके पर बहुत कुछ नहीं मिल रहा है लेकिन मुझे यह पता चला [यह] (http://esotericalstuff.wordpress.com/2010/11/18/vds-activities-under-c-2/) जो लगता है कुछ कार्यों के माध्यम से जाने के लिए। आप इसके माध्यम से अपने रास्ते को भी पेंच कर सकते हैं। –

+0

क्या आपने 'HKLM \ SYSTEM \ CurrentControlSet \ Enum \ IDE \ device \ id: locationInformation' की गणना करने के बारे में सोचा है? इसमें इस तरह की जानकारी शामिल है ** चैनल 4, लक्ष्य 0, लून 0 ** – vane

उत्तर

0

यदि आप Windows 8 की आवश्यकता नहीं चाहते हैं, मेरा मानना ​​है कि WMI जाने का रास्ता है:

using System; 
using System.Linq; 
using System.Management; 

namespace DiskScanPOC 
{ 
    class Program 
    { 
     static void Main() 
     { 
      var managementScope = new ManagementScope(); 

      //get disk drives 
      var query = new ObjectQuery("select * from Win32_DiskDrive"); 
      var searcher = new ManagementObjectSearcher(managementScope, query); 
      var oReturnCollection = searcher.Get(); 

      //List all properties available, in case the below isn't what you want. 
      var colList = oReturnCollection.Cast<ManagementObject>().First(); 
      foreach (var property in colList.Properties) 
      { 
       Console.WriteLine("Property: {0} = {1}", property.Name, property.Value); 
      } 

      //loop through found drives and write out info 
      foreach (ManagementObject oReturn in oReturnCollection) 
      { 
       Console.WriteLine("Name : " + oReturn["Name"]); 
       Console.WriteLine("Target Id: " + oReturn["SCSITargetId"]); 
       Console.WriteLine("Port: " + oReturn["SCSIPort"]); 
      } 
      Console.Read(); 
     } 
    } 
} 

मैं sata बंदरगाह संख्या सत्यापित करने के लिए मेरे मामले खोलने दरार नहीं था, लेकिन इसके बाद के संस्करण एप्लिकेशन की तरह दिखता है यह 3 SATA हार्ड ड्राइव के साथ मेरी मशीन पर उचित परिणाम देता है।

0

यदि आप स्थान पथ प्राप्त करना चाहते हैं, तो SetupDiGetDeviceRegistryProperty वह फ़ंक्शन है जिसे आप ढूंढ रहे हैं। संपत्ति मान को SPDRP_LOCATION_INFORMATION पर सेट करें।

मुझे लगता है कि आप पहले ही जानते हैं कि DeviceInfoSet और DeviceInfoData प्राप्त करने के लिए डिवाइसों की गणना कैसे करें।

0
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

using System.Management; 

namespace Hard_Disk_Interface 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void btnCheck_Click(object sender, EventArgs e) 
     { 
      WqlObjectQuery q = new WqlObjectQuery("SELECT * FROM Win32_IDEController"); 
      ManagementObjectSearcher res = new ManagementObjectSearcher(q); 
      lblHDDChanels.Text = string.Empty; 
      foreach (ManagementObject o in res.Get()) 
      { 
       string Caption = o["Caption"].ToString(); 

       lblHDDChanels.Text += Caption + "\n\n"; 
       if (Caption.Contains("Serial")) 
       { 
        lblInterface.Text = "S-ATA"; 
       } 
      } 
     } 
    } 
} 

This is demo...

नोट: सबसे पहले 4.0

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

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