天天看点

如何获取AHCI base address?

本人c#新手,因公司打游击战被迫从android临时转成做c#做工厂notebook测试项目。现在跟大家分享一下如何获取AHCI BASE ADDRESS,网上这种资料我查了几乎是没有,所以希望看到我这篇文章的人少走一些弯路。

private string getAhciBaseAddress()

        {

            string output = ""; //输出字符串      

            ProcessStartInfo StartInfo = new ProcessStartInfo();

            StartInfo.FileName = @"C:\pciutils-3.2.0\lspci.exe";

            StartInfo.Arguments = "-v -s.2";//“/C”表示执行完命令后马上退出      

            StartInfo.UseShellExecute = false;//不使用系统外壳程序启动      

            StartInfo.RedirectStandardInput = false;//不重定向输入      

            StartInfo.RedirectStandardOutput = true; //重定向输出 

            StartInfo.CreateNoWindow = true; //不创建窗口 

            StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

            Process myProcess = null;

            try

            {

                myProcess = Process.Start(StartInfo);

                while (!myProcess.HasExited)

                {

                    myProcess.WaitForExit(3000);

                }

                output = myProcess.StandardOutput.ReadToEnd();//读取进程的输出 

                Console.WriteLine("output==" + output);

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.StackTrace);

            }

            finally

            {

                if (myProcess != null)  myProcess.Close();    

            }

            string key = "Memory at ";

            int index = output.IndexOf(key);

            string addressString = "";

            int length = IntPtr.Size == 4 ? 8 : 16;

            if (index!= -1)

            {

                addressString = output.Substring(index + +key.Length, length);

            }

            return addressString;

        }

关于这个第三方的pciutils-3.2.0 包,给个链接给你.http://download.csdn.net/detail/shmily453397/6480299。你把它下载下来,如果代码不想改动就放在C盘根目录底下。

关于achi 地址的问题,操作有个前提。首先你得先把硬盘模式改为AHCI。这个网上有教程,大致是两个步骤,改注册表某值为0,然后重启后进bios,讲ide改成AHCI.再开机即可。

另外,我现在还遇到一个困难,就是我要根据achi base address来读出相应的value。可是winio不支持读取超过2G以外内存,我还在想办法。希望好心人帮忙!

放个最后弄好的AHCI 图!丑了点,不过很happy!

继续阅读