Delen via


BinPlace gebruiken vanaf de opdrachtregel

Belangrijk In de voorbeelden in dit onderwerp wordt het gebruik van de BINPLACE_PLACEFILE macro en het binplace-locatiebestand besproken. Deze macro en dit bestand zijn verouderd in de Windows 7-versie van de Windows Driver Kit en worden mogelijk niet ondersteund in toekomstige versies van de WDK.

Dit onderwerp bevat voorbeelden van het gebruik van BinPlace vanaf de opdrachtregel.

Allereerst kunt u de hoofd doelmap als volgt instellen:

set _NTTREE=d:\ProjectRoot

Vervolgens kunt u het pad en de bestandsnaam van het plaatsbestand op de volgende manier instellen:

set BINPLACE_PLACEFILE=d:\mystuff\myplacefile.txt

Laat de inhoud van het bestand d:\mystuff\myplacefile.txt als volgt zijn:

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

U kunt Nu BinPlace uitvoeren met de volgende opdracht:

binplace g:\somelocation\extra.cab

Omdat extra.cab geen uitvoerbaar bestand is, verplaatst BinPlace het alleen. De hoofdmap van het doel is d:\projectroot. De klassemap voor dit bestand wordt opgegeven in het plaatsbestand als bijlage. De submap van het bestandstype is cab (de bestandsnaamextensie van het bestand dat wordt verplaatst). Dit bestand wordt dus gekopieerd naar de locatie d:\projectroot\appendix\cab\extra.cab.

Gebruik nu BinPlace op het uitvoerbare bestand en het bijbehorende symboolbestand. Hiervoor geeft u de naam van het uitvoerbare bestand op. BinPlace vindt het bijbehorende symboolbestand.

Wanneer u een uitvoerbare bestandsnaam doorgeeft aan BinPlace, wordt gezocht naar de symboolbestanden in dezelfde map als het uitvoerbare bestand. Als ze daar niet worden gevonden, wordt de CodeView-record gelezen die is opgeslagen in het uitvoerbare bestand; als er een symboolbestandspad in die record wordt gevonden, zoekt het naar symboolbestanden in dat pad.

Opmerking Als u expliciet een naam voor het symboolbestand opgeeft, zal BinPlace deze alleen verplaatsen, niet verwerken.

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

Het uitvoerbare bestand maakt gebruik van dezelfde hoofdmap als voorheen. De directory van de klasse is bestanden\bin. Het wordt dus in d:\projectroot\files\bin\application.exegeplaatst.

Het symboolbestand wordt op twee locaties geplaatst. Het volledige symboolbestand (inclusief zowel persoonlijke als openbare symbolen) gaat naar g:\full\files\bin\exe\application.pdb. Het gestreepte symboolbestand (met alleen openbare symbolen) gaat naar d:\stripped\files\bin\exe\application.pdb.

Gebruik nu een vergelijkbare opdracht op commonmodule.dll:

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

Dit keer is de klasse-submap retail. Voor het uitvoerbare bestand is deze mapnaam een code voor 'geen submap van een klasse gebruiken', dus deze wordt in d:\projectroot\application.exegeplaatst. De symboolbestanden worden geplaatst in g:\full\retail\dll\application.pdb en d:\stripped\retail\dll\application.pdb.

Gebruik ten slotte BinPlace op mydriver.sys en laat de -n-schakelaar weg:

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

Hier is de submap van de klasse */drivertree. Voor het uitvoerbare bestand wordt het sterretje (*) vervangen door het processortype. Ervan uitgaande dat u op een x86-computer werkt, wordt het uitvoerbare bestand in d:\projectroot\i386\drivertree\application.exegeplaatst. Het gestreepte symboolbestand wordt in g:\full\drivertree\sys\application.pdb geplaatst, omdat het sterretje wordt genegeerd voor een symboolbestand. Omdat de schakeloptie -n is weggelaten, wordt het volledige symboolbestand nergens geplaatst.