Je me demandais s'il était possible d'écrire un programme C pour changer la quantité de mémoire partagée entre la RAM et une carte GFX, ou en général comment puis-je contacter le Les paramètres du BIOS?Modifier les paramètres du BIOS en utilisant le langage C
Répondre
Réponse courte: Non
de Réponse longue: Ne jouez pas avec le BIOS de l'utilisateur. Il y a une raison pour laquelle il n'y a pas d'API ou similaire pour le faire. Mon ordinateur, mes paramètres.
Vous pouvez accéder aux paramètres du BIOS via les ports d'E/S 70h et 71h. (Certains chipsets ont également un CMOS étendu à 72/73 ou similaire.)
Quel système d'exploitation utilisez-vous? Si vous exécutez Windows, vous ne pourrez pas faire d'E/S de port directement à partir d'une application, vous devrez écrire un pilote en mode noyau ou utiliser une boîte à outils tierce comme WinIO. Sous Linux, vous pouvez utiliser/dev/nvram pour obtenir les paramètres CMOS. (En supposant que le pilote Linux nvram prend en charge votre chipset, sinon utilisez/dev/port.)
Une fois que vous aurez atteint les bits CMOS, la prochaine tâche consistera à déterminer quel emplacement dans CMOS correspond au paramètre de mémoire vidéo.
est ici un (lamentablement incomplète) carte des emplacements de mémoire CMOS: http://ivs.cs.uni-magdeburg.de/~zbrog/asm/cmos.html
La carte des emplacements CMOS est extrêmement spécifique à la carte mère, BIOS et BIOS rev. (La carte CMOS peut changer entre les tours du BIOS lorsque de nouvelles options de menu sont ajoutées/supprimées.) Votre fournisseur de carte mère peut peut-être vous fournir une carte CMOS. Ils ont les outils pour générer une telle carte (cela fait partie du processus de compilation du BIOS), mais ils peuvent ne pas vouloir le partager.
Sans carte, il existe d'autres méthodes pour déterminer quels bits dans CMOS représentent la taille de la mémoire vidéo. Essayez de supprimer les paramètres CMOS avec différentes tailles de mémoire et déterminez les bits qui changent.
Quelques autres détails:
En dehors de quelques bits de CMOS « standard », la plupart d'entre eux sont extrêmement dépendant de la plateforme, je l'espère vous ne prévoyez pas de faire une application à usage général de cette .
Il existe des totaux de contrôle pour certains décalages dans CMOS. Après avoir modifié la valeur CMOS, vous devrez corriger la somme de contrôle pour refléter les modifications.
Une fois que vous modifiez le paramètre, il ne prendra pas effet au redémarrage suivant (lorsque le BIOS lit les paramètres CMOS et initialise le chipset).
Est-ce un chipset Intel? Les cœurs graphiques Intel ont une fonction magique appelée DVMT (Dynamic Video Memory Technology) qui ajuste l'utilisation de la mémoire vidéo en fonction de l'intensité de l'application en cours d'exécution. http://www.intel.com/support/graphics/sb/cs-010488.htm Je ne suis pas sûr si d'autres fournisseurs de chipsets ont une technologie similaire.
Jeter tout cela sur la fenêtre sur un système UEFI moderne, qui utilise généralement une partition de stockage non volatile dans la puce flash du BIOS pour les paramètres. (Certains endroits CMOS sont peuplées de compatibilité héritée sur un système UEFI.)
- 1. Comment faire pour modifier les options de démarrage du BIOS pour USB-HDD en C#?
- 2. Comment puis-je obtenir le fabricant du BIOS et le modèle en C++ sans utiliser WMI?
- 3. Comment obtenir les informations de température du processeur à partir de Bios en utilisant C#?
- 4. C++ modifier les paramètres de proxy Opera
- 5. Modifier les paramètres d'une fonction Javascript en utilisant GreaseMonkey
- 6. Obtenez le temps du BIOS dans LINGO
- 7. Extension du langage C#?
- 8. Modifier les paramètres du navigateur par script
- 9. 0xFFFF0 et le BIOS
- 10. Comment modifier les paramètres du code en eclipse
- 11. Modifier le nom du processus en C#?
- 12. Obtention du numéro de série du BIOS
- 13. Qui charge le code dans le BIOS lors du démarrage?
- 14. modifier les autorisations en C en utilisant exec()
- 15. délimiteurs d'impression en langage c
- 16. Affichage de données à l'aide du BIOS dans C
- 17. Extraire les paramètres du modèle C++
- 18. modifier le texte du lien en HTML en utilisant JavaScript
- 19. Apprendre le langage C++
- 20. conversion html en texte en utilisant le langage python
- 21. Modifier le type de paramètres d'authentification de l'utilisateur du registre
- 22. Modifier les paramètres de clickonce prereq
- 23. modifier les paramètres web.config dans le code derrière
- 24. Modifier l'étiquette du bouton dans le ruban en utilisant VBA
- 25. Comment modifier les paramètres du référentiel dans Redmine?
- 26. modifier les paramètres d'axe matplotlib
- 27. modifier fichier Xml en utilisant C#
- 28. Prise en charge du langage C++ Visual Studio 2008?
- 29. Comment modifier le contenu d'IDictionary en utilisant LINQ (C# 3.0)
- 30. Façon courante d'obtenir des informations sur le BIOS via C
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.vc .langue et tid = f5c02216-01e2-46d4-8c99-ac6a5981313c & cat = & lang = & cr = & sloc = & p = 1 – Xinus
Je pense que ce n'est pas bon de faire cela, "Ne fais pas ça" –
Potentiellement dangereux pour la santé des machines. Ne fais pas ça. – ty812