Place File Syntax

Note Place files are now obsolete and should not be used. .

The place file is a text file that BinPlace reads to determine the class subdirectories that are associated with a file it is placing.

The path and name of this file are specified by the -p PlaceFile command-line parameter. If this is not used, the default is \tools\placefil.txt. A place file can have any number of lines. Each line lists a file and a class subdirectory. Listing a file does not cause BinPlace to take any action. Rather, whenever BinPlace is supplied a file name on the command line, it will open the place file to see if that file is listed. If it is, BinPlace will use the class subdirectory specified in the place file for that particular file.

Each line of a place file has the same format.


     FileName Class[:Class[...]   [ ; Comment ] 

Each line in the place file follows these rules:

  • The FileName field must begin the line.
  • The FileName and Class fields must be separated by one or more spaces.
  • If a semicolon appears anywhere on the line, everything to the right of it is treated as a comment.
  • Blank lines and comment lines that begin with semicolons are permitted.

The FileName and Class fields are explained as follows:

Parameters

FileName
A field that specifies the name of a file that BinPlace can act on. FileName must include the file name extension, but it must not include the file path. (File paths will be specified on the BinPlace command line.)

Class
A field that specifies the class subdirectory that is used for this file. Unless the -y or -:DEST command-line switches are used, BinPlace places a file in a directory that is created by taking the root destination directory, appending the class subdirectory, and then appending the file-type subdirectory. See BinPlace Destination Directories for full details.

Class should neither begin nor end with a backslash. Directory names must not contain spaces. There are special strings that can be used within a Class value. The effect of the string is different on the placement of executable files and symbol files. The following tables show the results of these strings.

For all builds:

String Effect on executable files Effect on symbol files

retail

Ignored. This directory level will be skipped.

Treated as a literal directory named retail.

*

On an x86 computer: i386. On an Itanium-based computer: IA64. On an x64-based computer: AMD64.

Ignored. This directory level will be skipped.

system

Becomes system32.

system16

Becomes system.

windows

Becomes "." Ignored. This directory level will be skipped.

Symbol path is retail.

drivers

Becomes system32\drivers.

drvetc

Becomes system32\drivers\etc.

config

Becomes system32\config.

For x86 builds:

String Effect on executable files Effect on symbol files

hal

Becomes system32.

printer

Becomes system32\spool\drivers\w32x86.

prtprocs

Becomes system32\spool\prtprocs\w32x86.

For AMD64 builds:

String Effect on executable files Effect on symbol files

hal

Becomes ".." For example, if the root destination directory is C:\Binaries\Amd64, the file is placed in C:\Binaries.

Symbol path is stripped of one directory.

printer

Becomes system32\spool\drivers\w32amd64.

prtprocs

Becomes system32\spool\prtprocs\w32amd64.

For IA64 builds:

String Effect on executable files Effect on symbol files

hal

Becomes ".."

Symbol path is stripped of one directory.

printer

Becomes system32\spool\drivers\w32ia64.

prtprocs

Becomes system32\spool\prtprocs\w32ia64.

Unless otherwise noted, the symbol path is truncated to include only the first directory in the path. For example, if you were using BinPlace to move an x86 file called Build.exe that has the target class of printer, you might use the following command syntax:

binplace -r BinaryRoot  -xa -s SymbolsDir1 -n SymbolsDir2 SourceFileLocation\build.exe

The command would result in the following output tree:

<SymbolsDir1>\system32\exe\build.pdb
<SymbolsDir2>\system32\exe\build.pdb 
<BinaryRoot>\system32\spool\drivers\w32x86\build.exe 

For AMD64 and IA64 builds, use the hal class with caution because the BinPlace results might not be what you expect. For example, if the root destination directory is C:\Binaries\Amd64, and you specified the hal class, the file is placed in C:\Binaries and not in the processor-specifc directory that you might have intended.

If you want a file to be placed in multiple locations, you can include multiple instances of Class, separated by colons. There must not be spaces between the directories and the colons. For example:

someprogram.exe   dir1\dir2\dir3:otherdir1\otherdir2   ; To two locations

Comment
Any text after a semicolon will be ignored by BinPlace.