Windows equivalente a inb (), outb (), E/S de baixo nível
-
25-09-2019 - |
Pergunta
Eu tenho algum código Linux que monitora nosso hardware coletando temperaturas, tensões e velocidades do ventilador, da placa -mãe usando as funções de E/S inb (), outb (), inl (), etc.
Meu desafio é portar esse código para ser executado no Windows como um aplicativo simples de console. Mas estou intrigado com quais funções o Win32 (ou .NET) fornece que me permitem permissão para acessar portas mapeadas de memória direta.
Também não quero codificar um driver do sistema.
Minha preferência da ferramenta do Windows é vs2008. (Para sua informação)
Isso é possível?
Solução 3
Outras dicas
O nível de proteção padrão para as portas de E/S no Windows impede que um programa de modo de usuário use as instruções INP e out em qualquer porta. Seu programa morrerá com um GPF. Existem vários drivers disponíveis gratuitamente em torno dessa alteração desse nível de proteção, para que o código Ring 3 possa acessar as portas. O que está tudo bem se você estiver interessado em cravos assassinos.
O canônico é inpout32.
A maioria dos locais de hardware é mapeada em áreas não acessíveis do espaço do usuário, então você vai precisar um driver de dispositivo que fornece a API desejada.
Você também pode verificar o Guia de migração de aplicativos Unix ad msdn.