首頁 >後端開發 >Golang >本機 Windows 函數 IsTpmReady 拋出「對信號量發布了太多貼文」錯誤

本機 Windows 函數 IsTpmReady 拋出「對信號量發布了太多貼文」錯誤

王林
王林轉載
2024-02-09 16:21:30937瀏覽

本机 Windows 函数 IsTpmReady 抛出“对信号量发布了太多帖子”错误

php小編魚仔在使用本機 Windows 函數IsTpmReady時,遇到了一個錯誤,錯誤訊息為「對信號量發布了太多貼文」。這個錯誤可能導致程式無法正常運行,因此需要找到解決方法。以下將為大家介紹如何解決這個錯誤,希望能對大家有幫助。

問題內容

我正在嘗試從 windows 上包含的 tpmcoreprovisioning.dll 呼叫 tpmisready 函數。我沒有註意到程式碼有任何明顯的錯誤,但無論如何都會拋出錯誤。

這就是我所擁有的:

package windows

import (
    "errors"
    "log"
    "syscall"
    "unsafe"
)

var (
    TPMDLL   = syscall.NewLazyDLL("TpmCoreProvisioning.dll")
    TpmReady = TPMDLL.NewProc("TpmIsReady")
)

func IsTpmReady() (bool, error) {
    var enabled byte
    ptr := (uintptr)(unsafe.Pointer(&enabled))
    _, _, err := TpmReady.Call(ptr)
    if errors.Is(err, syscall.Errno(0)) {
        return enabled == 1, nil
    }
    if DEBUG {
        log.Printf("IsTpmReady: %v", err)
    }
    return false, err
}

我是否使用了錯誤的東西,或者沒有釋放資源?

解決方法

儘管這不是我的專業領域,因為 @Eelco 大多數時候都提到它應該與您的防毒軟體有關。 您可以繼續完成此清單:

  1. 停用您正在執行的所有防毒軟體,包括 Windows Defender
  2. 以管理員身份運行它(我假設您已經嘗試過此操作)
  3. 檢查您是否使用的是最新版本的 Windows

如果仍然不起作用,請嘗試執行乾淨啟動

  1. 按 windows R 並輸入「msconfig」

  2. 它應該打開“系統配置”,您必須從中導航到“服務選項卡”並選中“隱藏所有 Microsoft 服務框”,然後按停用按鈕

  3. 導航到啟動選項卡並以相同的方式停用所有程序,然後在關閉選項卡內的任務管理器視窗後點擊「應用」

  4. 繼續重新啟動電腦並再次執行程式

如果仍然不起作用,也許可以在安全模式下重新啟動電腦(使用網絡,因為在需要時更容易搜尋某些內容),然後重試。

如果它仍然不起作用:此時我不知道還有什麼可以起作用。但您可以嘗試在另一台電腦上運行它,看看錯誤是否仍然存在。您可以重置機器,但這會很不方便。檢查您是否有任何可能發生衝突或擴充功能的程式。

以上是本機 Windows 函數 IsTpmReady 拋出「對信號量發布了太多貼文」錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除