Compartir a través de


Uso de BinPlace desde la línea de comandos

Importante En los ejemplos de este tema se describe el uso de la macro BINPLACE_PLACEFILE y el archivo de posiciónBinPlace. Esta macro y archivo están obsoletas en la versión de Windows 7 del Kit de controladores de Windows y es posible que no se admita en versiones futuras de WDK.

En este tema se proporcionan ejemplos de uso de BinPlace desde la línea de comandos.

En primer lugar, puede establecer el directorio de destino raíz de la siguiente manera:

set _NTTREE=d:\ProjectRoot

A continuación, puede establecer la ruta de acceso y el nombre de archivo del archivo de ubicación de la siguiente manera:

set BINPLACE_PLACEFILE=d:\mystuff\myplacefile.txt

Deje que el contenido del archivo d:\mystuff\myplacefile.txt sea el siguiente:

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

Ahora puede ejecutar BinPlace con el siguiente comando:

binplace g:\somelocation\extra.cab

Dado que extra.cab no es un archivo ejecutable, BinPlace solo lo moverá. El directorio de destino raíz es d:\projectroot. El directorio de clases de este archivo se especifica en el archivo de posición como apéndice. El subdirectorio de tipo de archivo es cab (la extensión de nombre de archivo del archivo que se va a mover). Por lo tanto, este archivo se copia en la ubicación d:\projectroot\appendix\cab\extra.cab.

Ahora use BinPlace en el archivo ejecutable y su archivo de símbolos. Para ello, especifique el nombre del archivo ejecutable: BinPlace encontrará el archivo de símbolos asociado.

Cuando se pasa un nombre de archivo ejecutable a BinPlace, busca sus archivos de símbolos en el mismo directorio que el archivo ejecutable. Si no los encuentra allí, lee el registro CodeView almacenado en el archivo ejecutable; si encuentra una ruta de acceso de archivo de símbolos en ese registro, busca archivos de símbolos en esa ruta de acceso.

Nota Si especifica explícitamente un nombre de archivo de símbolos, BinPlace simplemente lo moverá, no lo procesará.

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

El archivo ejecutable usa el mismo directorio de destino raíz que antes. Su directorio de clases es files\bin. Por lo tanto, se coloca en d:\projectroot\files\bin\application.exe.

El archivo de símbolos se coloca en dos ubicaciones. El archivo de símbolos completo (incluidos los símbolos privados y públicos) va a g:\full\files\bin\exe\application.pdb. El archivo de símbolos quitado (que contiene solo símbolos públicos) va a d:\stripped\files\bin\exe\application.pdb.

Ahora, use un comando similar en commonmodule.dll:

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

Esta vez, el subdirectorio de clase es comercial. Para el archivo ejecutable, este nombre de directorio es un código para "no usar un subdirectorio de clase", por lo que se coloca en d:\projectroot\application.exe. Los archivos de símbolos se colocan en g:\full\retail\dll\application.pdb y d:\stripped\retail\dll\application.pdb.

Por último, use BinPlace en mydriver.sys y omita el modificador -n :

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

Aquí el subdirectorio de clase es */drivertree. Para el archivo ejecutable, el asterisco (*) se reemplaza por el tipo de procesador. Suponiendo que se ejecuta en un equipo x86, el archivo ejecutable se coloca en d:\projectroot\i386\drivertree\application.exe. El archivo de símbolos quitado se coloca en g:\full\drivertree\sys\application.pdb, porque el asterisco se omite para un archivo de símbolos. Dado que se omitió el modificador -n , el archivo de símbolos completo no se coloca en ningún lugar.