Domanda

Ho qualche codice Linux che monitora il nostro hardware raccogliendo temperature, tensioni e velocità della ventola, dalla scheda madre utilizzando inb (), outb (), inl (), ecc basso livello i / o funzioni.

La mia sfida è quella di porta che il codice sopra per l'esecuzione sotto Windows come un semplice console app. Ma sono perplesso in quanto le funzioni di Win32 (o .NET) prevedono che mi permetta il permesso di porte mappate accesso di memoria diretta.

Non voglio in codice di un driver di sistema sia.

preferenza strumento Il mio Windows è VS2008. (FYI)

È possibile?

È stato utile?

Soluzione 3

Bene, dopo molte ricerche con alcuni tentativi ed errori, i due bit più utili che ho trovato per essere utile sono:

WinRing0 e IO.DLL .

Sono più o meno fare la stessa cosa, la differenza è i campioni di codice che troverete per aiutarti a iniziare il loro utilizzo.

Spero che questo aiuti per gli altri.

Altri suggerimenti

Il livello di protezione predefinito per le porte di I / O in Windows impedisce un programma in modalità utente di utilizzare inp e le istruzioni su qualsiasi porta. Il vostro programma morirà con un GPF. Ci sono diversi driver liberamente disponibili vicino che modifica tale livello di protezione in modo che il codice anello 3 può accedere alle porte. Che è bene se siete interessati a poke assassino.

La canonica è inpout32 .

La maggior parte delle posizioni hardware sono mappati in aree non accesible dallo userspace, in modo che si sta per necessità un driver di periferica che fornisce l'API desiderato.

Si può anche controllare il UNIX Application Guida alla migrazione annuncio MSDN.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top