BinPlace 目标目录

https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff542218(v=vs.85).aspx

BinPlace 会创建一个目录树来存放它所放置的文件。该树的结构由以下内容确定:传递到 BinPlace 命令行的参数、某些环境变量的值以及被称为放置文件的文本文件的内容。

BinPlace 会在满足下面的两个条件之一时放置文件:

  1. 该文件是在 BinPlace 命令行上指定的。

  2. 该文件是符号文件,它与同它相关联的可执行文件位于同一个目录中,该可执行文件是在命令行上指定的。在这种情况下,符号文件和可执行文件将放在不同的目录中。在这种情况下,BinPlace 还可以执行拆分和去除操作(请参阅公用符号和专用符号)或者仅执行去除操作(请参阅符号文件系统)。

当 BinPlace 放置文件时,它将自动覆盖同名的旧文件。但是,BinPlace 在默认情况下将不覆盖较新的文件。特别是,如果存在较新(或相同)版本的可执行文件,则该可执行文件及其相关的符号文件都将不会写入到磁盘中。如果你希望 BinPlace 不考虑文件的时间戳而覆盖文件,请使用 -f 命令行选项。

文件目标

BinPlace 会将在其命令行上指定的任何文件放在一个目录中,该目录的名称是通过连接以下两个目录创建的:根目标目录类子目录。(目录可以具有你选择的任何名称,但是,根目标目录通常是用来放置文件的目录树的根目录,类子目录通常是看上去比较合理的子目录。)

  • 根目标目录可以使用 -r RootDestinationPath 命令行参数来指定。如果省略了此开关,则默认值将由 _NT386TREE(在基于 x86 的计算机上)、_NTIA64TREE(在基于 Itanium 的计算机上)或 _NTAMD64TREE(在基于 x64 的计算机上)环境变量来确定。根目标目录必须按照上述方法之一进行定义;如果未定义根目标目录,BinPlace 将不运行。

  • 类子目录通常是在放置文件中指定的。可以为一个文件指定多个类子目录;这会导致 BinPlace 为该文件创建多个副本并将这些副本放在每个指定位置。有关完整的详细信息,请参阅Place File Syntax。类子目录还可以通过使用 -:DEST ClassPath 命令行参数来指定。

符号文件目标

当可执行文件列在 BinPlace 的命令行上而且它所在的目录中存在与它相关联的符号文件时,BinPlace 还将复制(或修改)该符号文件。此符号文件所在的目录是通过连接以下三个目录创建的:符号根目录类子目录文件类型子目录

  • 符号根目标目录可以使用 -s SymbolRoot 命令行参数来指定。如果你使用 -a 和 -x 开关,则去除了内容的符号文件将放在 SymbolRoot 目录中 -- 在这种情况下,你可以使用 -n FullSymbolRoot 指定完整符号文件的位置。

  • 类子目录通常是在放置文件中指定的。可以为一个文件指定多个类子目录;这会导致 BinPlace 为该文件创建多个副本并将这些副本放在每个指定位置。有关完整的详细信息,请参阅Place File Syntax。类子目录还可以通过使用 -:DEST ClassPath 命令行参数来指定。而且,如果使用 -y 命令行开关,则将不使用任何类子目录来存放符号文件 -- 目标目录将只是包括符号根目录和文件类型子目录。

  • 文件类型子目录仅用于符号文件,它由原始可执行文件的文件扩展名来确定。因此,与 .exe 文件相关联的符号文件将放在 exe 子目录中,与 DLL 相关联的符号文件将放在 dll 子目录中,与驱动程序相关联的符号文件将放在 sys 子目录中。这种约定有助于避免发生文件名冲突 -- 例如,myprogram.exe 和 myprogram.dll 中可能都有名为 myprogram.pdb 的符号文件,但这些符号文件将放在不同的子目录中。

对此算法有一个例外。如果既未提供 -s 又未提供 -n,则完整的符号文件将放在二进制文件所在的位置中。

注意   如果符号文件的名称列在 BinPlace 的命令行上,BinPlace 将像针对任何其他文件那样移动它,而且将不检查其内容。若要使用 BinPlace 的符号文件操作技术,必须列出可执行文件的名称,而不是符号文件的名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值