2010-12-08 60 views

Répondre

6

Il n'existe pas de méthode universelle pour ce faire, car les configurations du BIOS varient d'un fournisseur à l'autre. Le mappage des différents emplacements de mémoire CMOS est unique à la révision de la carte mère, du BIOS et du BIOS. Vous devrez trouver cette information auprès de votre fournisseur particulier, et votre application ne sera pas très portable. De plus, même une fois que vous avez dépassé cet obstacle, Windows ne vous permettra pas d'accéder au BIOS (ou de faire des E/S de port) à partir d'une application en mode utilisateur. Vous devrez écrire un pilote en mode noyau pour pouvoir le faire. Et bien sûr, vous ne pouvez pas écrire de pilotes en mode noyau en C# parce que l'exécution s'exécute en mode utilisateur. Vous devrez écrire quelque chose comme ça en C.

+0

Juste comme une brève remarque ... avec un BIOS UEFI, changer l'ordre de démarrage devrait être plus facile à faire de façon portable. Cependant, oui, vous aurez toujours besoin d'au moins un peu de mode noyau pour le changer. –

+0

Presque toutes les cartes mères grand public utilisent un BIOS basé sur UEFI. A propos du seul endroit que vous trouverez maintenant sur les machines Macintosh et Itanium. Peut-être que l'industrie finira par changer, mais vous pouvez difficilement compter sur le fait que c'est le cas actuellement. –

+0

C'est vrai, peu de BIOS grand public peuvent actuellement démarrer un système d'exploitation EFI, même si de mon point de vue, de nombreux fabricants ne proposent actuellement qu'une option UEFI pour les nouvelles plates-formes. J'ai aussi vu un certain nombre de conseils qui ont l'UEFI sous le capot mais qui ne sont pas capables de démarrer un système d'exploitation EFI, donc je ne pense pas que ce sera trop long avant que l'industrie ne bascule. Je serai certainement heureux pour l'interrupteur quand cela arrive, cependant! –