Share via


.kdfiles (definir mapa de substituição do driver)

O comando .kdfiles lê um arquivo e usa seu conteúdo como o mapa de substituição do driver.

.kdfiles MapFile
.kdfiles -m OldDriver NewDriver
.kdfiles -s SaveFile
.kdfiles -c
.kdfiles

Parâmetros

Mapfile
Especifica o arquivo de mapa de substituição do driver a ser lido.

-M
Adiciona uma associação de substituição de driver à lista de associações atual.

OldDriver
Especifica o caminho e o nome do arquivo do driver anterior no computador de destino. A sintaxe do OldDriver é a mesma da primeira linha após o mapa em um arquivo de substituição de driver. Para obter mais informações sobre essa sintaxe, consulte Mapeando arquivos de driver.

NewDriver
Especifica o caminho e o nome do arquivo do novo driver. Esse driver pode estar no computador host ou em algum outro local de rede. A sintaxe do NewDriver é a mesma da segunda linha após o mapa em um arquivo de substituição de driver. Para obter mais informações sobre essa sintaxe, consulte Mapeando arquivos de driver.

-s
Cria um arquivo e grava as associações de substituição de driver atuais nesse arquivo.

Savefile
Especifica o nome do arquivo a ser criado.

-C
Exclui o mapa de substituição de driver existente. (Essa opção não altera o arquivo de mapa em si. Em vez disso, essa opção limpa as configurações de mapa atuais do depurador.)

Ambiente

Modos

Somente modo kernel

Destinos

Somente depuração dinâmica

Plataformas

Processadores baseados em x86

Informações adicionais

Para obter mais informações e exemplos de substituição de driver e a substituição de outros módulos de modo kernel, uma descrição do formato para arquivos de mapa de substituição de driver e restrições para usar esse recurso, consulte Mapeando arquivos de driver.

Comentários

Se você usar o comando .kdfiles sem parâmetros, o depurador exibirá o caminho e o nome do arquivo de mapa de substituição do driver atual e o conjunto atual de associações de substituição.

Quando você executa esse comando, o arquivo MapFileespecificado é lido. Se o arquivo não for encontrado ou se ele não contiver texto no formato adequado, o depurador exibirá uma mensagem informando"Não é possível carregar associações de arquivo".

Se o arquivo especificado estiver no formato correto de arquivo de mapa de substituição de driver, o depurador carregará o conteúdo do arquivo e os usará como o mapa de substituição do driver. Esse mapa permanece até que você saia do depurador ou até que você emita outro comando .kdfiles .

Depois que o arquivo for lido, o mapa de substituição do driver não será afetado por alterações subsequentes no arquivo (a menos que essas alterações sejam seguidas por outro comando .kdfiles ).

Substituição de arquivo no modo de usuário

A Substituição de Arquivo no Modo de Usuário foi adicionada na versão 2004 do Windows. Esse suporte permite que os seguintes arquivos de modo de usuário sejam substituídos por .kdfiles.

  • DLLs do modo de usuário (incluindo também NTDLL e KnownDlls)
  • EXEs de modo de usuário que são uma imagem de processo main para CreateProcess

Para usar o suporte ao modo de usuário .kdfiles, primeiro você precisa habilitar o carregamento de símbolos de kernel usando o comando depurador !gflag +ksl ou configurar os sinalizadores globais ksl no registro. Para obter mais informações sobre o gflag, consulte !gflag.

Os exemplos a seguir ilustram o uso comum.

.kdfiles -m system32\userdll C:\myfiles\my_native_userdll.dll
.kdfiles -m system32\userdll \\server\share\my_native_userdll.dll
.kdfiles -m syswow64\ntdll.dll \\server\share\my_x86_wow64_ntdll.dll
.kdfiles -m system32\userbase.dll \\server\share\my_native_userbase.dll

O modo de usuário .kdfiles ignora quaisquer falhas para corresponder a um arquivo e não exibe uma mensagem de erro quando ocorre uma falha.

Tenha cuidado para qualificar adequadamente os caminhos .kdfiles para o modo de usuário .kdfiles. É uma má ideia apenas corresponder ntdll.dll (em vez de system32\ntdll.dll), caso contrário, a NTDLL Wow64 será substituída pela nativa. Situações semelhantes podem surgir com outras correspondências de subcadeia de caracteres ambíguas.

Após o build 20172, o mecanismo .kdfiles do modo de usuário tentará efetuar pull de arquivos do depurador até que uma tentativa falhe; em seguida, o nome do arquivo que não pôde ser extraído não será tentado novamente para a sessão de inicialização, sem intervenção manual do depurador para modificar o estado do sistema de destino. Em builds anteriores, o mecanismo .kdfiles do modo de usuário fará uma tentativa (com êxito ou não) de efetuar pull de um determinado nome de arquivo por sessão de inicialização. Essas políticas reduzem a sobrecarga de comunicação com o depurador para arquivos que não estão na lista de kdfiles ou que estão inacessíveis para substituição, como devido a violações de compartilhamento de processos que podem já ter carregado um determinado arquivo. Devido a esse comportamento, geralmente é aconselhável configurar todos os arquivos para efetuar pull na lista .kdfiles antecipadamente, antes que eles sejam referenciados pela primeira vez.

Esteja ciente das limitações por não poder substituir arquivos de disco já em uso, etc. Como muitas DLLs do sistema não serão facilmente alternadas depois de carregadas inicialmente, predefinir a opção gflags +ksl e usar .kdfiles para substituir os binários do modo de usuário diretamente na inicialização.

Para obter mais informações sobre como habilitar a depuração de inicialização, consulte BCDEdit /bootdebug.

O uso da KDNET de transporte KD de alta velocidade/baixa latência é recomendado para minimizar os impactos no desempenho do sistema.

Requisitos

Versão

Com suporte no Windows XP e versões posteriores do sistema operacional Windows.