Partilhar via


.kdfiles (Definir mapa de substituição de 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

Arquivo de mapa
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.

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

Novo Driver
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 de NewDriver é a mesma da segunda linha após map 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.

Salvar arquivo
Especifica o nome do arquivo a ser criado.

-c
Exclui o mapa de substituição de driver existente. (Esta 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 no modo kernel

Destinos

Somente depuração ao vivo

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 do modo kernel, uma descrição do formato dos 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 de 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 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 de arquivo de mapa de substituição de driver correto, o depurador carregará o conteúdo do arquivo e o usará como o mapa de substituição de 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 de 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 de modo de usuário (também incluindo NTDLL e KnownDlls)
  • EXEs de modo de usuário que são uma imagem de processo principal para CreateProcess

Para usar o suporte a .kdfiles no modo de usuário, você precisa primeiro habilitar o carregamento de símbolos do kernel usando o !gflag +ksl comando debugger ou configurar os sinalizadores globais ksl no registro. Para obter mais informações sobre 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

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 combinar ntdll.dll (em vez de system32\ntdll.dll), caso contrário, o Wow64 NTDLL será substituído pelo nativo. 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á extrair arquivos do depurador até que uma tentativa falhe; Em seguida, o nome do arquivo que não foi 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 compilações anteriores, o mecanismo .kdfiles do modo de usuário fará uma tentativa (bem-sucedida ou não) de extrair 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 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 obter a lista .kdfiles antecipadamente, antes de serem referenciados pela primeira vez.

Esteja ciente das limitações de não poder substituir arquivos de disco já em uso, etc. Como muitas DLLs do sistema não serão facilmente trocáveis a quente depois de terem sido carregadas inicialmente, predefina a opção gflags +ksl e use .kdfiles para substituir qualquer binário do modo de usuário logo na inicialização.

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

O uso do 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.