Como os sistemas operacionais baseados no Windows NT lidam com dispositivos?

9

Estou confuso com notação como

multi(0)disk(0)rdisk(0)partition(1)\...

e

\Device\HardDisk1\DR1
\Device\Video0

Eu vejo esses endereços somente no contexto de sistemas operacionais baseados no Windows NT, como Windows XP e Windows 7. O que esses endereços significam e como eles são usados para se referir a dispositivos como discos rígidos, adaptadores gráficos, interface humana dispositivos (teclados, mouses, etc.), adaptadores de rede e outros hardwares?

    
por bwDraco 08.07.2011 / 05:14

2 respostas

9

Ao contrário da crença popular, o kernel do Windows tem um sistema de arquivos com raiz ("file"). No * nix, a raiz é / e no Windows é \ . O subsistema Win32 não expõe, no entanto. Você pode explorá-lo com WinObj .

Alguns nomes de dispositivos NT (possivelmente familiares) ( M e N são apenas inteiros):

  • \Device\HarddiskM\DRN : discos
  • \Device\HarddiskVolumeN : partições
  • \Device\CdRomN : unidades de disco óptico
  • \Device\KeyboardClassN : teclados
  • \Device\MountPointManager : não é um dispositivo, mas controla os dispositivos de armazenamento
  • \Device\Null : Recebe dados e gera valores nulos (zeros)

\Device\HardDisk1\DR1 é o nome true do disco para o Windows , e multi(0)disk(0)rdisk(0)partition(1) é legado - não tem nada a ver com o Windows refere-se a dispositivos, mas como o carregador de boot se refere ao disco. Como funciona, eu não tenho idéia ( esta página explica partes dela ), mas não é realmente algo que o Windows se preocupa depois de iniciar a inicialização.

As versões mais recentes do Windows usam o BCD (Boot Configuration Data), que é um arquivo chamado BCD cujo formato é semelhante ao do registro, em vez de Boot.ini . Ele geralmente usa identificadores exclusivos (GUIDs) para se referir a volumes em vez de letras de unidade ou caminhos do sistema de arquivos, e é o que as versões mais recentes do Windows usam.

    
por 08.07.2011 / 05:44
1

A primeira linha, que foi tornada obsoleta pelo BCD (armazenamento de dados de configuração de inicialização) no Windows Vista, Windows 7 e Server 2008, é de um arquivo boot.ini para Windows XP ou Server 2003 e está localizada em o diretório raiz da unidade do sistema. Isso informa ao Windows para onde ir (que disco e partição) encontrar os arquivos de sistema necessários para inicializar.

Veja aqui para obter uma explicação detalhada sobre "multi" e "rdisk". O resto significa que olhe para o disco 0 (eles começam em 0 e sobem a partir daí, e você pode ver seus números no gerenciador de disco), partição 1 (ao contrário dos discos, eles começam a ser numerados em 1 e sobem). / p>

link

No que diz respeito à enumeração de dispositivos, trata-se de um assunto de programação muito complicado, que é explicado aqui se você quiser que sua cabeça exploda. O formato que você deu é como o dispositivo é endereçado como um ID de hardware no registro.

Como uma questão prática, você pode olhar para essa chave de registro

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum

para corresponder a qualquer erro que você pode chegar a um valor de "ID de hardware" em uma das subchaves para determinar exatamente a qual dispositivo o erro pode se referir.

    
por 08.07.2011 / 05:45

Tags