Condividi tramite


.kdfiles (Imposta mappa sostituzione driver)

Il comando .kdfiles legge un file e usa il relativo contenuto come mappa di sostituzione del driver.

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

Parametri

MapFile
Specifica il file di mapping di sostituzione driver da leggere.

-m
Aggiunge un'associazione di sostituzione driver all'elenco di associazioni corrente.

OldDriver
Specifica il percorso e il nome file del driver precedente nel computer di destinazione. La sintassi per OldDriver corrisponde a quella della prima riga dopo il mapping in un file di sostituzione del driver. Per altre informazioni su questa sintassi, vedere Mapping dei file del driver.

NewDriver
Specifica il percorso e il nome file del nuovo driver. Questo driver può trovarsi nel computer host o in un altro percorso di rete. La sintassi per NewDriver corrisponde a quella della seconda riga dopo il mapping in un file di sostituzione driver. Per altre informazioni su questa sintassi, vedere Mapping dei file del driver.

-s
Crea un file e scrive le associazioni di sostituzione del driver corrente in tale file.

SaveFile
Specifica il nome del file da creare.

-c
Elimina la mappa di sostituzione del driver esistente. Questa opzione non modifica il file di mappa stesso. Questa opzione cancella invece le impostazioni correnti della mappa del debugger.

Ambiente

Modalità

Solo modalità kernel

Destinazioni

Solo debug in tempo reale

Piattaforme

Processori basati su x86

Informazioni aggiuntive

Per altre informazioni ed esempi di sostituzione dei driver e sostituzione di altri moduli in modalità kernel, una descrizione del formato per i file di mapping di sostituzione dei driver e restrizioni per l'uso di questa funzionalità, vedere Mapping driver Files.

Osservazioni:

Se si usa il comando .kdfiles senza parametri, il debugger visualizza il percorso e il nome del file di mapping di sostituzione del driver corrente e il set corrente di associazioni di sostituzione.

Quando si esegue questo comando, il file MapFilespecificato viene letto. Se il file non viene trovato o se non contiene testo nel formato corretto, il debugger visualizza un messaggio che indica che "Impossibile caricare le associazioni di file".

Se il file specificato è nel formato di file della mappa di sostituzione del driver corretto, il debugger carica il contenuto del file e li usa come mappa di sostituzione del driver. Questa mappa rimane fino a quando non si esce dal debugger o fino a quando non si esegue un altro comando .kdfiles .

Dopo aver letto il file, la mappa di sostituzione del driver non è influenzata dalle successive modifiche apportate al file (a meno che queste modifiche non siano seguite da un altro comando .kdfiles ).

Sostituzione file in modalità utente

Sostituzione file in modalità utente è stata aggiunta nella versione 2004 di Windows. Questo supporto consente di sostituire i file in modalità utente seguenti con .kdfiles.

  • DLL in modalità utente (inclusi anche NTDLL e KnownDlls)
  • Exes in modalità utente che sono un'immagine di processo principale per CreateProcess

Per usare il supporto kdfiles in modalità utente, è necessario prima abilitare il caricamento dei simboli del kernel usando il !gflag +ksl comando debugger o configurare i flag globali ksl nel Registro di sistema. Per altre informazioni sul gflag, vedere !gflag.

Gli esempi seguenti illustrano l'utilizzo comune.

.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

La modalità utente .kdfiles ignora eventuali errori di corrispondenza con un file e non visualizza un messaggio di errore quando si verifica un errore.

Prestare attenzione a qualificare in modo appropriato i percorsi con estensione kdfiles per la modalità utente .kdfiles. Non è consigliabile trovare una corrispondenza con ntdll.dll (invece di system32\ntdll.dll) come altrimenti wow64 NTDLL verrà sostituito con quello nativo. Situazioni simili possono verificarsi con altre corrispondenze di sottostringa ambigue.

Dopo la build 20172, il meccanismo kdfiles in modalità utente tenterà di eseguire il pull dei file dal debugger fino a quando un tentativo non riesce; quindi, il nome del file che non è stato eseguito il pull non verrà provato di nuovo per la sessione di avvio, senza l'intervento manuale del debugger per modificare lo stato del sistema di destinazione. Nelle build precedenti, il meccanismo con estensione kdfiles in modalità utente eseguirà un tentativo (indipendentemente dal fatto che abbia esito positivo o negativo) di eseguire il pull di un determinato nome di file per ogni sessione di avvio. Questi criteri riducono il sovraccarico di comunicazione con il debugger per i file che non si trovano nell'elenco kdfiles o che non sono accessibili per la sostituzione, ad esempio a causa di violazioni di condivisione da processi che potrebbero aver già caricato un determinato file. A causa di questo comportamento, in genere è consigliabile configurare tutti i file per eseguire il pull dell'elenco con estensione kdfiles in anticipo, prima che venga fatto riferimento per la prima volta.

Tenere presente le limitazioni con l'impossibilità di sostituire già i file del disco in uso e così via. Poiché molte DLL di sistema non saranno facilmente scambiabili a caldo dopo che sono state caricate inizialmente, preimpostare l'opzione gflags +ksl e usare .kdfiles per sostituire i file binari in modalità utente direttamente all'avvio.

Per altre informazioni sull'abilitazione del debug di avvio, vedere BCDEdit /bootdebug.

L'uso del KD transport KD transport KDNET ad alta velocità/bassa latenza è consigliato per ridurre al minimo gli effetti sulle prestazioni del sistema.

Requisiti

Versione

Supportato in Windows XP e versioni successive del sistema operativo Windows.