Accueil > Forum > > > > RING0 ... petit soucis !
RING0 ... petit soucis !
vendredi 12 septembre 2003 à 12:49:38 |
RING0 ... petit soucis !

toto8966
|
Bonjour a tous ! J'ai implémenté le passage en Ring0 via un Callgate ... j'ai fait ca en Delphi, mais peu importe, il y a bcp plus de programmeurs C ... alors je pose ma question ici ! hi ! La programme tourne, je passe en Ring0, et j'en reviens, ca c'est certain. En fait, je suis parti du soft MASM de Chris_Hks (source disponible sur le forum). Le problème est que le code qui s'exécute en Ring0 plante l'ordi dans certaines conditions ... toutes simples. Si je place en Ring0 une suite d'instructions (privilégiées ou non, je suis en Ring0, tout passe sans me sortir d'exeption), pas de problème ! mais si je "reste" trop longtemps, par exemple, en placant une boucle (simplement décrémenter ecx et boucler) avec un grand nombre d'itération (ex:300.000), bein ca plante a chaque coup ... écran bleu grave ! On dirait que le système n'aime pas que je reste trop longtemps en Ring0 ... ! Le soft MASM de l'auteur Chris_Hks, présente le meme problème ... plantage memes conditions ! Je suis meme passé en "Real Time" avant le passage en Ring0, avec SetPriorityClass + SetThreadPriority. Et je passe effectivement en "Real Time ", en tout cas, tant que je suis en Ring3 c'est certain, j'ai vérifié. Normalement, je dois arriver en Ring0 avec le meme niveau de priorité ... normalement ! Dans ma routine Ring0, j'ai un " cli " et j'ai meme désactivé NMI via le port 70 ! ... mais ca plante toujours quand je place une "grande" boucle de temporisation en Ring0 ! Suis dans une impasse ! POURQUOI me code en Ring0 fait il planter l'ordi quand je "reste" trop longtemps en Ring0 ??? TOUTES les idées sont les bien venues. Si vous avez des questions, faut d'mander ... Tout grand merci a tous .
|
|
vendredi 12 septembre 2003 à 15:52:44 |
Re : RING0 ... petit soucis !

BruNews
|
J'avais deja signale cela mais je n'ai toujours pas de reponse valable sur le pourquoi. Tu fais bien de relancer cette reflexion. BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Bonjour a tous ! > J'ai implémenté le passage en Ring0 via un Callgate ... > j'ai fait ca en Delphi, mais peu importe, il y a bcp plus de programmeurs C ... alors je pose ma question ici ! hi ! > La programme tourne, je passe en Ring0, et j'en reviens, ca c'est certain. En fait, je suis parti du soft MASM de Chris_Hks (source disponible sur le forum). Le problème est que le code qui s'exécute en Ring0 plante l'ordi dans certaines conditions ... toutes simples. Si je place en Ring0 une suite d'instructions (privilégiées ou non, je suis en Ring0, tout passe sans me sortir d'exeption), pas de problème ! mais si je "reste" trop longtemps, par exemple, en placant une boucle (simplement décrémenter ecx et boucler) avec un grand nombre d'itération (ex:300.000), bein ca plante a chaque coup ... écran bleu grave ! On dirait que le système n'aime pas que je reste trop longtemps en Ring0 ... ! > Le soft MASM de l'auteur Chris_Hks, présente le meme problème ... plantage memes conditions ! > Je suis meme passé en "Real Time" avant le passage en Ring0, avec SetPriorityClass + SetThreadPriority. Et je passe effectivement en "Real Time ", en tout cas, tant que je suis en Ring3 c'est certain, j'ai vérifié. Normalement, je dois arriver en Ring0 avec le meme niveau de priorité ... normalement ! Dans ma routine Ring0, j'ai un " cli " et j'ai meme désactivé NMI via le port 70 ! ... mais ca plante toujours quand je place une "grande" boucle de temporisation en Ring0 ! Suis dans une impasse ! POURQUOI me code en Ring0 fait il planter l'ordi quand je "reste" trop longtemps en Ring0 ??? TOUTES les idées sont les bien venues. > Si vous avez des questions, faut d'mander ... > Tout grand merci a tous .
|
|
vendredi 12 septembre 2003 à 18:38:25 |
Re : RING0 ... petit soucis !

toto8966
|
Ah bon, suis pas tout seul a avoir rencontré ce problème ? bien ! bonne nouvelle quelque part, hi ! Bein moi, j'ai une idée ... En fait, quand on passe en Ring0 par un Callgate, c'est du piratage ! Oui, on se retrouve en Ring0 ... mais 1) on est toujours en muti-taches et 2) l'OS ne le sait pas qu'on est en Ring0. Je veux dire par la que l'état de privilège 0 de notre code n'est pas repris dans le "plan" général de gestion de l'OS ... bein non, il n'est pas au courant, on lui a fait ca par derrière !!! Conclusion, pour lui, notre code est toujours repris comme code Ring3, aie ! Il va donc, quand il en a besoin, reprendre la "main" pour ses propres besoins et notamment pour switcher de taches ! et la , ca pose problème ! Car un soft ne peut interrompre un autre soft par IRQ que s'il posède un niveau de privilège supérieur ! Si le niveau de privilège est égal ou inférieur, ca provoque une exeption, et ca plante ! Quand l'OS regarde notre code, via les données de son descripteur, il se rend compte (pour la 1ere fois) qu'il s'adresse a du code Ring0 ... il ne le savait pas jusque la ! ... et Boum ! C'est l'écran bleu !!! avec qq infos et notemment j'ai vu : Interrupt_Less_or_equal ... hum ! Si notre code a une priorité de Class "Normal", ca arrive très vite. Si on place notre code Ring0 en "Real Time" ... on peut "trainer" en PL0 plus longtemps. Mais, ca bug quand meme après un certain temps, car Real Time ne veut pas dire "mode réel" ou "mono-tache" ... Meme en real time, l'os pointe son nez de temps en temps ! voila ! Alors, la solution ? J'ai une idée ... hi ! L' APIC, le controleur programmable des interruptions. Le mettre OFF ! on peut le disabl-er de 2 facons, une irréversible (jusqu'au prochain reset machine) et l'autre réversible ! Je dois pour ca accéder a son registre situé a l'adresse physique FEE000F0 ... je cherche... la, toutes les infos sont les bien venues ..
------------------------------- Réponse au message : -------------------------------
> J'avais deja signale cela mais je n'ai toujours pas de reponse valable sur le pourquoi. Tu fais bien de relancer cette reflexion. > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Bonjour a tous ! > > J'ai implémenté le passage en Ring0 via un Callgate ... > > j'ai fait ca en Delphi, mais peu importe, il y a bcp plus de programmeurs C ... alors je pose ma question ici ! hi ! > > La programme tourne, je passe en Ring0, et j'en reviens, ca c'est certain. En fait, je suis parti du soft MASM de Chris_Hks (source disponible sur le forum). Le problème est que le code qui s'exécute en Ring0 plante l'ordi dans certaines conditions ... toutes simples. Si je place en Ring0 une suite d'instructions (privilégiées ou non, je suis en Ring0, tout passe sans me sortir d'exeption), pas de problème ! mais si je "reste" trop longtemps, par exemple, en placant une boucle (simplement décrémenter ecx et boucler) avec un grand nombre d'itération (ex:300.000), bein ca plante a chaque coup ... écran bleu grave ! On dirait que le système n'aime pas que je reste trop longtemps en Ring0 ... ! > > Le soft MASM de l'auteur Chris_Hks, présente le meme problème ... plantage memes conditions ! > > Je suis meme passé en "Real Time" avant le passage en Ring0, avec SetPriorityClass + SetThreadPriority. Et je passe effectivement en "Real Time ", en tout cas, tant que je suis en Ring3 c'est certain, j'ai vérifié. Normalement, je dois arriver en Ring0 avec le meme niveau de priorité ... normalement ! Dans ma routine Ring0, j'ai un " cli " et j'ai meme désactivé NMI via le port 70 ! ... mais ca plante toujours quand je place une "grande" boucle de temporisation en Ring0 ! Suis dans une impasse ! POURQUOI me code en Ring0 fait il planter l'ordi quand je "reste" trop longtemps en Ring0 ??? TOUTES les idées sont les bien venues. > > Si vous avez des questions, faut d'mander ... > > Tout grand merci a tous . >
|
|
vendredi 25 juin 2004 à 09:41:38 |
Re : RING0 ... petit soucis !

DevNul
|
Pour evité ça, essay de ne créer qu'un loader... tu passe en Ring0 et tu lance une application en R0... elle ne devrait pas planter si elle est déclarer ;)
De toute les chose que j'ai perdu... Celle qui me manque le plus... C'est mon esprit.
|
|
Cette discussion est classée dans : problème, reste, passe, plante, ring0
Répondre à ce message
Sujets en rapport avec ce message
Problème de syles Windows XP [ par Nemesis ]
Suite à une mauvaise manipulation (c toujours comme ça que ça arrive), j'ai perdu le style de Windows XP (fenètres bleues, etc...) et je retrouve la v
Problème d'adresse effective [ par Ihlianov ]
Hi,J'ai un problème avec NASM, qui me rend cinglé.Je code un .Com (16 bits) et il me revoit une erreur sur l'instruction suivante : mov ax, [d
Petit problème pour le nul en assembleur que je suis Merci d'avance [ par rgc50 ]
Trouver parmis les 5 nombres 67, 79, 15, e3, 72 le nombre le pls élevé, on le stockera le résultat en 0100 (en assembleur 68000 (MOTOROLA)).
problème avec le port 0x60 qui fait des faire des beeps [ par prunkdump ]
voilà lorsque j'utilise le port I\O 0x60 pour voir l'etat du clavier d'abord tout fonctionne bien puis au bout d'un moment le pc fait des beeps, comme
problème en assembleur 8085 [ par Facoli ]
Bonjour je suis un étudiant en 2 èm année tronc commun informatique j' ais des problèmes sur L'assembleur du processeur Intel 8085 en utilisant l'asse
Passer en RING0 sous Windows XP ! [ par toto8966 ]
Hello, Pour pouvoir placer du code en mode Ring0 jutilise jusqu'a présent le Driver TVicHW32. ( http://www.entechtaiwan.com/tvichw32.htm ) Ca fonction
Problème avec tlink de Borland [ par did2604 ]
Bonsoir,Je crée mon programme en asm, je tape sous dos "tasm nomduprog" (ok) puis tlink "nomdu prog" et là il m'indique : "no program entry point". Qu
aide sur fond d'ecran [ par knetus12 ]
comment faire un fond d'ecran sans que les divers edit passe en dessous. je l'ai fait avec VerticalTile et le bmp passe en premier plan...
Problème sur les thèmes XP [MASM32] [ par frobinet ]
Bonjour,je recherche des infos pour appliquer les thèmes XP en assembleur pour les boutons...J'ai vu qu'il faut utiliser les fonctions OpenThemeData,D
Question Asm/C++ [ par Lelys ]
Bonjour,Je voudrai faire un OS, mais le problème c'est que je ne m'en sort pas en ASM...Je suis plus allese en C/C++.Mais le problème est que les syst
Livres en rapport
|
Derniers Blogs
WP7 5K BELGIUM CHALLENGEWP7 5K BELGIUM CHALLENGE par junarnoalg
Microsoft Belgique a le plaisir de vous annoncer le lancement du
Challenge Windows Phone 7
. Celui-ci se déroule du 12 juillet au 30 novembre 2010 et vous donne l'opportunit...
Cliquez pour lire la suite de l'article par junarnoalg LES MONADES POUR LES NULSLES MONADES POUR LES NULS par mdufourneaudravel
Avec l'annonce de F#, je me suis intéressé de plus en plus à la programmation fonctionnelle, je suis donc rapidement tombé sur les " monades ", mais malgré la lecture de plusieurs articles, j'étais resté perméable à leur concept. C'est désormais fini, grâ...
Cliquez pour lire la suite de l'article par mdufourneaudravel [WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7 par Audrey
L'émulateur Windows Phone 7, fourni avec la version Beta des outils développeurs n'inclut aucune image dans sa bibliothèque. Pas très pratique de tester son application lorsque l'on souhaite que l'utilisateur puisse choisir une image présente dans le télé...
Cliquez pour lire la suite de l'article par Audrey VIVE LES MOCKS ET LES POCOSVIVE LES MOCKS ET LES POCOS par vLabz
J'observe régulièrement autour de moi de la confusion à propos de ces deux termes et j'aimerais juste rappeler ce qu'ils signifient. Je ne suis bien sûr pas le mieux placé pour faire une leçon mais je vais faire de mon mieux pour mettre en valeur ce q...
Cliquez pour lire la suite de l'article par vLabz [WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5)[WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5) par JeremyJeanson
Vendredi dernier Microsoft a publié le quatrième épisode des bonnes pratiques pour coder ses activités custom dans WF4 : endpoint.tv - Workflow and Custom Activities - Best Practices (Part 4) . Tout comme pour les précédents épisodes, j'ai pris le temps d...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Crystal Report (11)CRYSTAL REPORT (11)Crystal Reports est un outil de reporting souple et puissant, vous pouvez très facilement consult... Cliquez pour télécharger Crystal Report Academy System (12.0.2.0)ACADEMY SYSTEM (12.0.2.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft iPod Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPOD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPod Vidéo Convertisseur est un outil puissant de conversion d'iPod, facile à utiliser. ... Cliquez pour télécharger Xilisoft iPod Vidéo Convertisseur 6 Xilisoft iPhone Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPHONE VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPhone Vidéo Convertisseur est le meilleur logiciel de conversion iPhone qui peut facile... Cliquez pour télécharger Xilisoft iPhone Vidéo Convertisseur 6 Xilisoft iPad Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPAD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Il s'agit d'un logiciel polyvalent pour convertir les formats vidéo/audio populaires en formats p... Cliquez pour télécharger Xilisoft iPad Vidéo Convertisseur 6
|