如何将SATA HBA与物理磁盘关联


2

诚然,我对整个WMI“事物”都很陌生。这个“事情”是压倒性的,我现在还没有找到答案。我已经找到了系统中驱动器的最佳信息Win32_DiskDrive。该PNPDeviceID字段甚至似乎编码特定SATA驱动器为其HBA连接的端口#。但是,如何将特定驱动器链接到其HBA?Win32_DiskDrive该类中的所有字段似乎都不包含此信息。我知道它附在我的MB上的英特尔HBA上。例如,PNPDeviceID我的启动盘的字段:

PNPDeviceID IDE\DISKWDC_WD2500AAKS-00L9A0___________________0956____\6&C07A520&0&0.1.0

有趣的是,WMI类将此驱动器识别为IDE驱动器,因为它是SATA,但我并不在乎。更有趣的是,如何将此驱动器映射到其HBA?是否有一个WMI类具有我感兴趣的特定字段?

另外一个问题,在上面的文字中,如何解释第二个\字符后的值?


3
移植者,请解释如何正确使用Device Manager API在“硬件和电源用户”网站上!
Ben Voigt

Answers:


0

你必须看看父母。我不确定它是如何在WMI中公开的,但是设备管理器API提供了CM_Get_Parent


谢谢你的指点。正如我所提到的,我对此很陌生。你能提供一个如何使用它的例子吗?我正在寻找到目前为止我能找到的任何东西,但我并不完全确定我需要的一切。看起来已成定局,我将不得不P / Invoke大量的东西。

0

当Dependent是具有给定PNPDeviceID的Win32_PNPEntity的实例时,CIM_ControlledBy应该将控制器作为Antecedent提供,即

select DeviceID from Win32_PNPEntity where PNPDeviceID = '...'
associators of {Win32_PNPEntity.DeviceId = '...'} where AssocClass = CIM_ControlledBy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.