Question

J'ai un code Linux qui surveille notre matériel en collectant des températures, des tensions et des vitesses de ventilateur, de la carte mère à l'aide INB (), NUM.B (), INL (), etc. bas niveau i / fonctions o.

Mon défi est au port que le code sur pour exécuter sous Windows comme une application simple de la console. Mais suis perplexe dans quelles fonctions Win32 (ou .NET) qui me permettent de fournir l'autorisation d'accéder à la mémoire directe des ports cartographiés.

Je ne veux pas coder un pilote de système soit.

Ma préférence l'outil Windows est VS2008. (Fyi)

Est-ce possible?

Était-ce utile?

La solution 3

Eh bien, après beaucoup de recherches avec quelques essais et erreurs, les deux bits les plus utiles que je trouve être utiles sont:

WinRing0 et IO.DLL .

Ils font à peu près la même chose, la différence est les échantillons de code que vous trouverez pour vous aider à commencé à les utiliser.

Hope this helps pour d'autres.

Autres conseils

Le niveau de protection par défaut pour les ports d'E / S dans Windows empêche un programme en mode utilisateur d'utiliser InP et des instructions sur un port. Votre programme va mourir avec un GPF. Il y a plusieurs pilotes librement disponibles autour de ce changement que le niveau de protection de sorte que l'anneau 3 code peut accéder aux ports. Ce qui est bien si vous êtes intéressé par pokes tueuses.

Le canonique est inpout32 .

La plupart des emplacements de matériel sont mises en correspondance dans les zones non accesible depuis l'espace utilisateur, donc vous allez besoin un pilote de périphérique qui fournit l'API souhaité.

Vous pouvez également consulter le UNIX Migration des applications Guide de l'annonce MSDN.

scroll top