Ir para conteúdo
Fórum Script Brasil
  • 0

Ler endereço o valor de memoria do slot PCI


Arnaldo Rafael Câmara Araújo

Pergunta

Me ajudem!

Tenho uma máquina que funciona com uma placa conectada em um dos slots PCI do computador, é uma placa de I/O(entradas e saídas) e preciso saber o status destas entradas e saídas, o programa foi feito em "C" no Visual Studio. Para isto preciso criar um código no qual consigo ler o valor do endereço de memória usado para a placa, os endereços eu consigo visualizar no Gerenciador de dispositivo, mas não sei como ler os valores contidos no endereço. Por exemplo 0x8cf6 é um dos endereços, como posso ler o seu valor?

Obrigado.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá, bom dia Arnaldo.

O você deseja fazer não é "legal" do ponto de vista do Sistema operacional, pois ele não é nenhum trouxa, e vai tentar te bloquear, pois caso contrário, você poderia ler tudo que existe na memória de um pc, o que seria uma falha de segurança grave, quando se trata de sistemas financeiros (bancários).

Para evitar essa falha o processo que tentar executar essa operação vai violar a memória e receberá um SIG SEGV e logo em seguida um KILL, ou seja, o S.O. vai matar o processo.

No entanto nada te impede de criar um ponteiro e determinar à qual região da memória esse ponteiro vai apontar.

exemplo:

volatile unsigned int *ponteiro = (volatile unsigned int *)0x000001;
/* volatile está sendo usado com o intuito de garantir que o valor passado ao ponteiro não
   seja uma cópia previamente possuída pelo programa, ou seja, garante que seu valor está
   sendo obtido diretamente da memória em cada acesso. */

até mais.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 09/11/2016 at 14:03, rickayron disse:

Olá, bom dia Arnaldo.

O você deseja fazer não é "legal" do ponto de vista do Sistema operacional, pois ele não é nenhum trouxa, e vai tentar te bloquear, pois caso contrário, você poderia ler tudo que existe na memória de um pc, o que seria uma falha de segurança grave, quando se trata de sistemas financeiros (bancários).

Para evitar essa falha o processo que tentar executar essa operação vai violar a memória e receberá um SIG SEGV e logo em seguida um KILL, ou seja, o S.O. vai matar o processo.

No entanto nada te impede de criar um ponteiro e determinar à qual região da memória esse ponteiro vai apontar.

exemplo:


volatile unsigned int *ponteiro = (volatile unsigned int *)0x000001;
/* volatile está sendo usado com o intuito de garantir que o valor passado ao ponteiro não
   seja uma cópia previamente possuída pelo programa, ou seja, garante que seu valor está
   sendo obtido diretamente da memória em cada acesso. */

até mais.

Ok valeu vou tentar aqui.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...