天天看點

如何擷取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!

繼續閱讀