none
IO port/Memory access in Windos 7 64bit RRS feed

  • 問題

  • Dear all,

    查了一些資料,拿winio試過可以在XP底下執行,

    也可以讀取到正確資料,

    不過在win7底下卻不能,現在遇到瓶頸,

    不知道該往哪個方向查詢,

    只是想寫個單純自己使用的TOOL,用VB.NET實作可以讀取IO port跟memory資料,

    謝謝...Orz

     

     

     

    2012年1月21日 下午 02:47

解答

  • 這樣寫呢 ?

    <UnmanagedFunctionPointer(CallingConvention.StdCall)> _
    Private Delegate Function InitializeWinIoType() As Boolean

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Chung9527 2012年1月30日 下午 12:04
    2012年1月30日 上午 08:27
    版主
  • 我看Sample的宣告是 InitializeWinIoType() , 並非你用的 InitializeWinIo()
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Chung9527 2012年1月30日 下午 12:04
    2012年1月30日 上午 09:30
    版主
  • 選新增, 去增加新的平台


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Chung9527 2012年2月1日 上午 11:24
    2012年2月1日 上午 09:15
    版主
  • 沒有的話,請從「組態管理員中去新增Any CPU」,謝謝!


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    • 已編輯 亂馬客 2012年2月1日 上午 09:18
    • 已標示為解答 Chung9527 2012年2月1日 上午 11:24
    2012年2月1日 上午 09:17

所有回覆

  • 請試一下新的winIO哦!

     


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2012年1月21日 下午 02:56
  • 恩,我有下載新版WINIO來使用,

    不過在我的NB 64bit win 7 會跳出錯誤視窗,不能執行,

    拿去XP系統卻是可以執行。

     

    2012年1月22日 下午 05:08
  • 哪一種錯誤? 可否明確列出 ?
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2012年1月23日 上午 03:11
    版主
  • 應用程式有以系統管理員身份執行嗎?
    2012年1月23日 上午 08:29
  • 有參考說明文件中Using WinIO一章的說明了嗎?
    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度
    2012年1月23日 下午 04:53
  • 已經可以使用C#範例的WinIo是可以在Win7 64bit底下執行I/O port ,memory access,

    不過想把它轉成VB.NET 2010,

    Declare Function InitializeWinIo Lib "WinIo.dll" () As Boolean

    目前遇到一開始初始化 InitializeWinio() 時候,

    沒有回傳值。Orz...

    WinIo64.dll WinIo64.sys WinIo32.dll WinIo32.sys檔案也放在執行檔相同目錄底下。

    謝謝..

    2012年1月30日 上午 08:09
  • 這樣寫呢 ?

    <UnmanagedFunctionPointer(CallingConvention.StdCall)> _
    Private Delegate Function InitializeWinIoType() As Boolean

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Chung9527 2012年1月30日 下午 12:04
    2012年1月30日 上午 08:27
    版主
  • <UnmanagedFunctionPointer(CallingConvention.StdCall)> _   

    Private Delegate Function InitializeWinIo() As Boolean

        Private Declare Function LoadLibrary Lib "kernel32" _
                     Alias "LoadLibraryA" ( _
                     ByVal lpLibFileName As String) As Long

        Private Declare Function GetProcAddress Lib "kernel32" ( _
                         ByVal hModule As Long, _
                         ByVal lpProcName As Long) As Long
           ------------------------------------------------------------------------

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

     Dim pDll As IntPtr = LoadLibrary("WinIo64.dll")
            Dim pAddressofFunctiontoCall As IntPtr = GetProcAddress(pDll, "InitializeWinIo")
            Dim Winio As InitializeWinIo = DirectCast(Marshal.GetDelegateForFunctionPointer(pAddressofFunctiontoCall, GetType(InitializeWinIo)), InitializeWinIo)
            Dim result As Boolean = Winio()
            If result = False Then
                MsgBox("ERROR")
            Else
                MsgBox("Success")
            End If

     

    目前修改成這樣,MsgBox...都不會彈出來。Orz.

    2012年1月30日 上午 09:26
  • 我看Sample的宣告是 InitializeWinIoType() , 並非你用的 InitializeWinIo()
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Chung9527 2012年1月30日 下午 12:04
    2012年1月30日 上午 09:30
    版主
  • Dear Bill,

    我也有把InitializeWinIo改成InitializeWinIoType,兩者情形是一樣。

    Build success,也可以執行,

    不過執行時候,會出現下面兩個訊息..Orz

    A first chance exception of type 'System.BadImageFormatException' occurred in VBDumpMemory.exe
    A first chance exception of type 'System.OverflowException' occurred in mscorlib.dll

    2012年1月30日 上午 09:49
  • 謝謝Bill,

    解決囉。

    XD參考錯誤資料。修正後目前可以使用囉!

    2012年1月30日 下午 12:03
  • 不好意思,還有個延伸問題,XD

    我的環境是Win 7 64bit,使用 VS2010。

    我用VB.NET去編譯,Intptr.Size 得到是4 (32bit)。

    可是...

    我用WinIo的Source Code去編譯,Intptr.Size 得到是8 (64bit)。

     

    Orz..不知道是什麼原因..

    難道我的VB.NET只有32bit嗎?

    Thanks.

    2012年2月1日 上午 08:51
  • 那是因為你的目標編譯平台設定的關係吧 ? 你在組態管理員中, 將目標平台改成 AnyCPU 或 X64 再試試
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2012年2月1日 上午 08:55
    版主
  • VB.NET只有x86的選項。

    C#有AnyCPU、x86。

    Orz..需要額外安裝什麼才有嗎?

    2012年2月1日 上午 09:01
  • 選新增, 去增加新的平台


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Chung9527 2012年2月1日 上午 11:24
    2012年2月1日 上午 09:15
    版主
  • 沒有的話,請從「組態管理員中去新增Any CPU」,謝謝!


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    • 已編輯 亂馬客 2012年2月1日 上午 09:18
    • 已標示為解答 Chung9527 2012年2月1日 上午 11:24
    2012年2月1日 上午 09:17
  • >"<感謝
    2012年2月1日 上午 11:02