Condividi tramite


Uso di BinPlace dalla riga di comando

Importante Gli esempi di questo argomento illustrano l'uso della macro BINPLACE_PLACEFILE e del file del postoBinPlace. Questa macro e il file sono obsoleti nella versione di Windows 7 di Windows Driver Kit e potrebbero non essere supportati nelle versioni future di WDK.

Questo argomento fornisce esempi di uso di BinPlace dalla riga di comando.

Prima di tutto, è possibile impostare la directory di destinazione radice come indicato di seguito:

set _NTTREE=d:\ProjectRoot

È quindi possibile impostare il percorso del file di posizione e il nome del file nel modo seguente:

set BINPLACE_PLACEFILE=d:\mystuff\myplacefile.txt

Lasciare che il contenuto del file d:\mystuff\myplacefile.txt essere il seguente:

; This is a simple place file.
commonmodule.dll   retail
application.exe    files\bin
mydriver.sys       *\drivertree
extra.cab          appendix

È ora possibile eseguire BinPlace con il comando seguente:

binplace g:\somelocation\extra.cab

Poiché extra.cab non è un file eseguibile, BinPlace lo sposta solo. La directory di destinazione radice è d:\projectroot. La directory di classe per questo file viene specificata nel file di posizione come appendice. La sottodirectory di tipo file è cab (l'estensione del nome file del file da spostare). Pertanto, questo file viene copiato nel percorso d:\projectroot\appendix\cab\extra.cab.

Usare Ora BinPlace nel file eseguibile e nel relativo file simbolo. A tale scopo, specificare il nome del file eseguibile - BinPlace troverà il file simbolo associato.

Quando si passa un nome file eseguibile a BinPlace, cerca i file simbolo nella stessa directory del file eseguibile. Se non li trova, legge il record CodeView archiviato nel file eseguibile; se trova un percorso del file di simboli in tale record, cerca i file di simboli in tale percorso.

Nota Se si specifica un nome di file di simboli in modo esplicito, BinPlace lo sposta semplicemente, non elaborarlo.

binplace -a -x -s d:\stripped -n g:\full g:\builddir\application.exe

Il file eseguibile usa la stessa directory di destinazione radice di prima. La directory della classe è files\bin. Pertanto, viene inserito in d:\projectroot\files\bin\application.exe.

Il file di simboli viene posizionato in due posizioni. Il file di simboli completo (inclusi simboli privati e pubblici) passa a g:\full\files\bin\exe\application.pdb. Il file di simboli rimosso (contenente solo simboli pubblici) passa a d:\stripped\files\bin\exe\application.pdb.

Usare ora un comando simile in commonmodule.dll:

binplace -a -x -s d:\stripped -n g:\full g:\builddir\commonmodule.dll

Questa volta, la sottodirectory della classe è al dettaglio. Per il file eseguibile, questo nome della directory è un codice per "non usare una sottodirectory della classe", quindi viene inserito in d:\projectroot\application.exe. I file di simboli vengono inseriti in g:\full\retail\dll\application.pdb e d:\stripped\retail\dll\application.pdb.

Infine, usare BinPlace in mydriver.sys e omettere l'opzione -n :

binplace -a -x -s d:\stripped g:\builddir\mydriver.sys

Qui la sottodirectory della classe è */drivertree. Per il file eseguibile, l'asterisco (*) viene sostituito con il tipo di processore. Supponendo di essere in esecuzione in un computer x86, il file eseguibile viene inserito in d:\projectroot\i386\drivertree\application.exe. Il file di simboli rimosso viene inserito in g:\full\drivertree\sys\application.pdb, perché l'asterisco viene ignorato per un file di simboli. Poiché l'opzione -n è stata omessa, il file di simboli completo non viene posizionato ovunque.