Como detectar se um disco rígido está no PIO ou no DMA da linha de comando, ou programaticamente?

1

Eu trabalho para uma empresa que tem muitas máquinas em todo o mundo na posse de clientes de que precisamos para obter diagnósticos contínuos. Um dos problemas é ocasionalmente os discos rígidos das máquinas caírem no modo PIO, mas é claro que tudo o que o cliente vê é uma desaceleração maciça do sistema.

Estou procurando uma maneira de detectar se um disco rígido SATA caiu para o modo PIO por meio de nossas ferramentas de diagnóstico. Isso pode ser uma ferramenta ou um comando que podemos executar e armazenar a saída para depois agrupar em um dump que recebemos por e-mail pelo cliente, ou programaticamente por meio de uma API do Windows.

Ele precisa ser o mais automático possível. Eu tentei usar 'devcon.exe' (gerenciador de dispositivo de linha de comando), mas eu não encontrei como ser capaz de produzir essa informação, mesmo se eu estou recebendo informações sobre os controladores de disco rígido.

Alguma idéia?

    
por NaimK 17.04.2012 / 09:10

2 respostas

0

(Isso está usando o PowerShell no Windows 7, mas você deve conseguir fazer as mesmas coisas no Windows XP depois de instalar o PowerShell.)

Obtendo o objeto WMI associado a um dispositivo IDE específico (tanto o PATA quanto o SATA são tratados como IDE nesse nível):

$ide = new-object "system.management.managementobject" 'Win32_IDEController.DeviceID="PCIIDE\IDECHANNEL\4&5ECF4F&0&0"'

(Nesse caso, usei devmegmt.msc para obter o "Caminho da Instância do Dispositivo" para um canal SATA com um disco conectado, mas isso pode ser consultado.)

Mas este objeto Win32_IDEController não tem nada sobre o PIO Configuração de DMA. A caça nas associações WMI também não mostra nada (para alguns níveis).

Parece não haver nada no WMI que reflita o conteúdo da guia "Configurações avançadas" do gerenciador de dispositivos no WMI.

No entanto, usando o último elemento do caminho abve ( 4&5ECF4F&0&0 ) eu posso no registro em:

HKLM:\SYSTEM\CurrentControlSet\Enum\PCIIDE\IDEChannel&5ecf4f&0&0\Device Parameters\Target0
Valores

(mais notavelmente DeviceType ) que diferem aqui para uma unidade PATA DVD-RW no modo PIO. Mas não consigo encontrar rapidamente uma definição para esses valores.

    
por 17.04.2012 / 11:02
0

Talvez isso o ajude a criar o VBScript para resolver seu problema e onde haja uma explicação de como o DMA é revertido para o PIO com possíveis soluções.

E também você pode conferir um pouco sobre comandos do Windows wmic , por exemplo " wmic dmachannel obter / valor " para recuperar suas informações e colocá-las em um comando "shell" para seu código e para uma possível automação para sua API do Windows.

    
por 17.04.2012 / 11:57