Freigeben über


Verwenden von BinPlace über die Befehlszeile

Wichtig In den Beispielen in diesem Thema wird die Verwendung des Makros BINPLACE_PLACEFILE und der BinPlace-Ortsdatei erläutert. Dieses Makro und die Datei sind in der Windows 7-Version des Windows Driver Kit veraltet und werden in zukünftigen Versionen des WDK möglicherweise nicht mehr unterstützt.

Dieses Thema enthält Beispiele für die Verwendung von BinPlace über die Befehlszeile.

Zunächst können Sie das Stammzielverzeichnis wie folgt festlegen:

set _NTTREE=d:\ProjectRoot

Anschließend können Sie den Pfad und Dateinamen der Ortsdatei wie folgt festlegen:

set BINPLACE_PLACEFILE=d:\mystuff\myplacefile.txt

Lassen Sie den Inhalt der Datei d:\mystuff\myplacefile.txt wie folgt aussehen:

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

Jetzt können Sie BinPlace mit dem folgenden Befehl ausführen:

binplace g:\somelocation\extra.cab

Da extra.cab keine ausführbare Datei ist, wird sie nur von BinPlace verschoben. Das Stammzielverzeichnis ist d:\projectroot. Das Klassenverzeichnis für diese Datei wird in der Ortsdatei als Anhang angegeben. Das Dateitypunterverzeichnis ist cab (die Dateinamenerweiterung der zu verschiebenden Datei). Daher wird diese Datei an den Speicherort d:\projectroot\appendix\cab\extra.cab kopiert.

Verwenden Sie nun BinPlace für die ausführbare Datei und deren Symboldatei. Dazu geben Sie den Namen der ausführbaren Datei an. BinPlace sucht die zugeordnete Symboldatei.

Wenn Sie einen ausführbaren Dateinamen an BinPlace übergeben, sucht es nach seinen Symboldateien im selben Verzeichnis wie die ausführbare Datei. Wenn sie dort nicht gefunden werden, wird der codeView-Eintrag gelesen, der in der ausführbaren Datei gespeichert ist. Wenn ein Symboldateipfad in diesem Datensatz gefunden wird, sucht es nach Symboldateien in diesem Pfad.

Hinweis Wenn Sie einen Symboldateinamen explizit angeben, wird er von BinPlace lediglich verschoben und nicht verarbeitet.

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

Die ausführbare Datei verwendet dasselbe Stammzielverzeichnis wie zuvor. Das Klassenverzeichnis ist files\bin. Daher wird es in d:\projectroot\files\bin\application.exe platziert.

Die Symboldatei wird an zwei Speicherorten platziert. Die vollständige Symboldatei (einschließlich privater und öffentlicher Symbole) wird zu g:\full\files\bin\exe\application.pdb. Die Entfernte Symboldatei (die nur öffentliche Symbole enthält) wird zu d:\stripped\files\bin\exe\application.pdb.

Verwenden Sie nun einen ähnlichen Befehl für commonmodule.dll:

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

Dieses Mal ist das Klassenunterverzeichnis retail. Für die ausführbare Datei ist dieser Verzeichnisname ein Code für "kein Klassenunterverzeichnis verwenden", sodass er in d:\projectroot\application.exe platziert wird. Die Symboldateien werden in g:\full\retail\dll\application.pdb und d:\stripped\retail\dll\application.pdb platziert.

Verwenden Sie schließlich BinPlace auf mydriver.sys, und lassen Sie den Schalter -n aus:

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

Hier lautet das Klassenunterverzeichnis */drivertree. Für die ausführbare Datei wird das Sternchen (*) durch den Prozessortyp ersetzt. Wenn Sie auf einem x86-Computer ausführen, wird die ausführbare Datei in d:\projectroot\i386\drivertree\application.exe platziert. Die entfernte Symboldatei wird in g:\full\drivertree\sys\application.pdb platziert, da das Sternchen für eine Symboldatei ignoriert wird. Da der Schalter -n ausgelassen wurde, wird die vollständige Symboldatei an keiner Stelle platziert.