Delphi - 在Windows中枚举SATA IO端口号

时间:2009-03-21 06:53:35

标签: delphi io port pascal sata

新的一个给你。我准备帮助另一个程序员将​​他的程序从C#移植到Delphi。我不能真正阅读C#,也不是他在这一点上给了我实际的来源,所以从讨论开始我认为我将从一个时间的角度来解决大部分问题。

我需要能够获得连接到系统的所有SATA设备(我相信我指的是设备)的IO端口号。我知道WMI不会这样做,所以我不知道从哪里开始。我知道这个应用程序的C#版本使用的C#类基本上解析了注册表。我总是对直接从注册表中读取而感到icky。我觉得如果可能的话,从windows api或相关信息中获取信息在Windows版本之间更可靠。

1 个答案:

答案 0 :(得分:2)

如果原件正在读取注册表,并且您正在移植该功能,那么阅读注册表看起来对我来说是一个非常有效的解决方案?

顺便说一句,Delphi有单元registry.pas中的TRegistry类。您可以使用它来读取和写入注册表。默认情况下,您要求vista上的所有权限(读/写..)这可能是一个问题,因此如果您打算只读,请务必打开readonly。

关键值:

KEY_READ
KEY_WRITE 
KEY_EXECUTE
KEY_ALL_ACCESS

这些实际上是由基本值组成的集合:

KEY_QUERY_VALUE       
KEY_SET_VALUE         
KEY_CREATE_SUB_KEY    
KEY_ENUMERATE_SUB_KEYS
KEY_NOTIFY     
KEY_CREATE_LINK
KEY_WOW64_32KEY
KEY_WOW64_64KEY
KEY_WOW64_RES