Pregunta

Tengo algo de código de Linux que los monitores de nuestro hardware mediante la recopilación de las temperaturas, voltajes y velocidad de los ventiladores, de la placa base mediante INB (), outb (), INL (), etc. bajo nivel de E / S funciones.

Mi reto es que el código de puerto a ejecutar bajo Windows como una simple aplicación de consola. Pero en lo que desconcierta funciones de Win32 (o .NET) establecen que me permite el permiso de puertos asignados acceso directo a memoria.

Yo no quiero código de un controlador del sistema, ya sea.

Mi preferencia herramienta de Windows es VS2008. (FYI)

¿Es esto posible?

¿Fue útil?

Solución 3

Bueno, después de mucho buscar con un poco de ensayo y error, los dos bits más útiles que resultó ser útiles son:

WinRing0 y IO.DLL .

Ellos prácticamente hacer lo mismo, la diferencia es las muestras de código que se encuentra a ayudarle a empezar a usarlos.

Espero que esto ayude a los demás.

Otros consejos

El nivel de protección predeterminado para los puertos de E / S en Windows impide que un programa en modo usuario de usar INP y las instrucciones en cualquier puerto. Su programa morirá con un GPF. Hay varios pilotos disponibles libremente en torno a ese cambio que el nivel de protección para que el código anillo 3 puede tener acceso a los puertos. Lo cual está bien si usted está interesado en asoma asesinas.

La canónica es inpout32 .

La mayoría de las ubicaciones de hardware se asignan en áreas no accesibles desde el espacio de usuario, por lo que van a necesidad un controlador de dispositivo que proporciona la API deseada.

También puede comprobar el UNIX Guía de migración de aplicaciones anuncio de MSDN.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top