Maison >développement back-end >Golang >La fonction native Windows IsTpmReady génère l'erreur 'Trop de messages dans le sémaphore'
L'éditeur php Yuzai a rencontré une erreur lors de l'utilisation de la fonction native Windows IsTpmReady. Le message d'erreur était "Trop de messages ont été publiés sur le sémaphore". Cette erreur peut empêcher le programme de fonctionner correctement, une solution doit donc être trouvée. Ce qui suit vous expliquera comment résoudre cette erreur, j'espère que cela vous sera utile.
J'essaie d'appeler la fonction tpmisready à partir du tpmcoreprovisioning.dll inclus sur Windows. Je ne remarque rien d'anormal dans le code, mais l'erreur est générée malgré tout.
Voici ce que j'ai :
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 }
Est-ce que j'utilise la mauvaise chose ou je ne libère pas de ressources ?
Bien que ce ne soit pas vraiment mon domaine d'expertise comme @Eelco l'a mentionné la plupart du temps, cela devrait être quelque chose à voir avec votre antivirus. Vous pouvez continuer grâce à cette checklist :
Si cela ne fonctionne toujours pas, essayez d'effectuer un démarrage en mode minimal
Appuyez sur Windows + R et tapez « msconfig »
Il devrait ouvrir « Configuration du système » à partir duquel vous devez accéder à « Onglet Services » et cocher « Masquer tous les services Microsoft » et appuyer sur le bouton Désactiver
Accédez à l'onglet Démarrage et désactivez tous les programmes de la même manière et cliquez sur Appliquer après avoir fermé la fenêtre du Gestionnaire des tâches à l'intérieur de l'onglet
Allez-y, redémarrez votre ordinateur et exécutez à nouveau le programme
Si cela ne fonctionne toujours pas, redémarrez peut-être votre ordinateur en mode sans échec (en utilisant le réseau car il est plus facile de rechercher quelque chose si nécessaire) et réessayez.
Si cela ne fonctionne toujours pas : à ce stade, je ne sais pas quoi d'autre pourrait fonctionner. Mais vous pouvez essayer de l'exécuter sur un autre ordinateur et voir si l'erreur persiste. Vous pouvez réinitialiser la machine, mais cela peut être gênant. Vérifiez si vous avez des programmes susceptibles d’être en conflit ou en extension.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!