Megosztás a következőn keresztül:


BinPlace használata a parancssorból

Fontos A jelen témakör példái a BINPLACE_PLACEFILE makró és a BinPlacehelyfájl használatát ismertetik. Ez a makró és fájl elavult a Windows Illesztőprogram-készlet Windows 7-es verziójában, és a WDK későbbi verzióiban nem támogatott.

Ez a témakör példákat tartalmaz a BinPlace parancssorból való használatára.

Először a következő módon állíthatja be a fő célkönyvtárat:

set _NTTREE=d:\ProjectRoot

Ezután a helyfájl elérési útját és fájlnevét a következő módon állíthatja be:

set BINPLACE_PLACEFILE=d:\mystuff\myplacefile.txt

Hagyja, hogy a d:\mystuff\myplacefile.txt fájl tartalma a következő legyen:

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

Most már futtathatja a BinPlace parancsot a következő paranccsal:

binplace g:\somelocation\extra.cab

Mivel extra.cab nem végrehajtható fájl, a BinPlace csak áthelyezi. A fő célkönyvtár a d:\projectroot. A fájl osztálykönyvtára a helyfájlban van megadva függelékként. A fájltípus alkönyvtára "cab" (az áthelyezett fájl fájlnévkiterjesztése). Így ezt a fájlt a rendszer a d:\projectroot\appendix\cab\extra.cabhelyre másolja.

Most használja a BinPlace parancsot a végrehajtható fájlon és annak szimbólumfájlján. Ehhez meg kell adnia a végrehajtható fájl nevét – a BinPlace megkeresi a társított szimbólumfájlt.

Amikor átad egy végrehajtható fájlnevet a BinPlace-nak, a rendszer a végrehajtható fájllal megegyező könyvtárban keresi meg a szimbólumfájlokat. Ha nem találja őket ott, beolvassa a végrehajtható fájlban tárolt CodeView rekordot; ha talál egy szimbólumfájl elérési útját a rekordban, az adott elérési úton keresi a szimbólumfájlokat.

Jegyzet Ha explicit módon ad meg egy szimbólumfájlnevet, a BinPlace csak áthelyezi, és nem dolgozza fel.

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

A végrehajtható fájl ugyanazt a gyökér célkönyvtárat használja, mint korábban. Osztálykönyvtára az files\bin. Így a d:\projectroot\files\bin\application.exe-ba kerül.

A szimbólumfájl két helyen található. A teljes szimbólumfájl (beleértve a privát és a nyilvános szimbólumokat is) a g:\full\files\bin\exe\application.pdb fájlba kerül. A (csak nyilvános szimbólumokat tartalmazó) csíkozott szimbólumfájl a d:\stripped\files\bin\exe\application.pdb fájlba kerül.

Most használjon egy hasonló parancsot a(z) commonmodule.dll-on:

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

Ezúttal az osztály alkönyvtára kiskereskedelem. A végrehajtható fájl esetében ez a könyvtárnév azt jelenti, hogy "ne használjon osztály alkönyvtárat," ezért a d:\projectroot\application.exe-ba kerül. A szimbólumfájlok a következő helyre kerülnek: g:\full\retail\dll\application.pdb and d:\stripped\retail\dll\application.pdb.

Végül hagyja ki az -n kapcsolót, és használja a BinPlace-t a mydriver.sys-n:

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

Itt az osztály alkönyvtára */drivertree. A végrehajtható fájl esetében a csillag (*) helyébe a processzortípus lép. Feltételezve, hogy egy x86-os számítógépen fut, a végrehajtható fájl a d:\projectroot\i386\drivertree\application.exe. A csíkozott szimbólumfájl a g:\full\drivertree\sys\application.pdb fájlba kerül, mert a csillagot a rendszer figyelmen kívül hagyja egy szimbólumfájl esetében. Mivel a -n kapcsoló nincs megadva, a rendszer nem helyezi el a teljes szimbólumfájlt.