Heim >Backend-Entwicklung >Golang >Die native Windows-Funktion IsTpmReady löst den Fehler „Zu viele Beiträge zum Semaphor' aus

Die native Windows-Funktion IsTpmReady löst den Fehler „Zu viele Beiträge zum Semaphor' aus

王林
王林nach vorne
2024-02-09 16:21:30937Durchsuche

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

Der PHP-Editor Yuzai hat bei der Verwendung der nativen Windows-Funktion IsTpmReady einen Fehler festgestellt. Die Fehlermeldung lautete „Zu viele Beiträge wurden im Semaphor gepostet“. Dieser Fehler verhindert möglicherweise, dass das Programm ordnungsgemäß ausgeführt wird. Daher muss eine Lösung gefunden werden. Im Folgenden erfahren Sie, wie Sie diesen Fehler beheben können. Ich hoffe, dass es für Sie hilfreich ist.

Frageninhalt

Ich versuche, die tpmisready-Funktion aus der unter Windows enthaltenen tpmcoreprovisioning.dll aufzurufen. Ich bemerke offensichtlich nichts Falsches am Code, aber der Fehler wird trotzdem ausgegeben.

Das habe ich:

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
}

Verwende ich das Falsche oder gebe ich keine Ressourcen frei?

Lösung

Obwohl dies nicht wirklich mein Fachgebiet ist, wie @Eelco die meiste Zeit erwähnte, sollte es etwas mit Ihrem Antivirenprogramm zu tun haben. Sie können mit dieser Checkliste fortfahren:

  1. Deaktivieren Sie alle Antivirensoftware, die Sie ausführen, einschließlich Windows Defender
  2. Führen Sie es als Administrator aus (ich gehe davon aus, dass Sie dies bereits versucht haben)
  3. Überprüfen Sie, ob Sie die neueste Version von Windows verwenden

Wenn es immer noch nicht funktioniert, führen Sie einen sauberen Neustart durch

  1. Drücken Sie Windows + R und geben Sie „msconfig“ ein

  2. Es sollte „Systemkonfiguration“ geöffnet werden, von wo aus Sie zur Registerkarte „Dienste“ navigieren, das Kontrollkästchen „Alle Microsoft-Dienste ausblenden“ aktivieren und auf die Schaltfläche „Deaktivieren“ klicken müssen

  3. Navigieren Sie zur Registerkarte „Start“, deaktivieren Sie alle Programme auf die gleiche Weise und klicken Sie auf „Übernehmen“, nachdem Sie das Task-Manager-Fenster innerhalb der Registerkarte geschlossen haben

  4. Fahren Sie fort, starten Sie Ihren Computer neu und führen Sie das Programm erneut aus

Wenn es immer noch nicht funktioniert, starten Sie Ihren Computer möglicherweise im abgesicherten Modus neu (unter Verwendung des Netzwerks, da es bei Bedarf einfacher ist, nach etwas zu suchen) und versuchen Sie es erneut.

Wenn es immer noch nicht funktioniert: Ich weiß zum jetzigen Zeitpunkt nicht, was sonst noch funktionieren könnte. Sie können es jedoch auf einem anderen Computer ausführen und prüfen, ob der Fehler weiterhin besteht. Sie können die Maschine zurücksetzen, dies kann jedoch unpraktisch sein. Überprüfen Sie, ob Sie Programme haben, die möglicherweise Konflikte verursachen oder sich erweitern.

Das obige ist der detaillierte Inhalt vonDie native Windows-Funktion IsTpmReady löst den Fehler „Zu viele Beiträge zum Semaphor' aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen