Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
CryptoAlgo Inc daad8a087a Add source files 4 years ago
..
a2u.pm Add source files 4 years ago
a2u.txt Add source files 4 years ago
a2uex.txt Add source files 4 years ago
addlink.wsf Add source files 4 years ago
admigration.cmd Add source files 4 years ago
adminpak.cmd Add source files 4 years ago
aggregation.cmd Add source files 4 years ago
allrel.cmd Add source files 4 years ago
assignbvt.pl Add source files 4 years ago
autoboottest.intldub.pl Add source files 4 years ago
autoboottest.pl Add source files 4 years ago
beta1.ara.ini Add source files 4 years ago
beta1.chs.ini Add source files 4 years ago
beta1.cht.ini Add source files 4 years ago
beta1.ger.ini Add source files 4 years ago
beta1.heb.ini Add source files 4 years ago
beta1.jpn.ini Add source files 4 years ago
beta1.kor.ini Add source files 4 years ago
beta1.psu.ini Add source files 4 years ago
beta1.usa.ini Add source files 4 years ago
bindiff.pl Add source files 4 years ago
bindsys.cmd Add source files 4 years ago
bootflop.pl Add source files 4 years ago
bootinit.cmd Add source files 4 years ago
boottestmachines.txt Add source files 4 years ago
build_number.cmd Add source files 4 years ago
buildname.cmd Add source files 4 years ago
buildname.pm Add source files 4 years ago
buildsecure.cmd Add source files 4 years ago
burncopy.cmd Add source files 4 years ago
cabwrapper.cmd Add source files 4 years ago
capturesourcefilelist.cmd Add source files 4 years ago
catsign.cmd Add source files 4 years ago
cddata.cmd Add source files 4 years ago
cddirs.lst Add source files 4 years ago
cdimage.cmd Add source files 4 years ago
checktestsig.cmd Add source files 4 years ago
chkarch.cmd Add source files 4 years ago
cmbins.cmd Add source files 4 years ago
cmdevt.pl Add source files 4 years ago
cmdinisetting.pl Add source files 4 years ago
cookie.pm Add source files 4 years ago
copydw.pl Add source files 4 years ago
copyremoteboot.cmd Add source files 4 years ago
copyremoteboot.txt Add source files 4 years ago
copyscript.cmd Add source files 4 years ago
copytsc.cmd Add source files 4 years ago
copytsc.txt Add source files 4 years ago
copywow64.cmd Add source files 4 years ago
copywowlist.pl Add source files 4 years ago
cplocation.cmd Add source files 4 years ago
crcwalk.exe Add source files 4 years ago
crypto.cmd Add source files 4 years ago
crypto.txt Add source files 4 years ago
csp.reb Add source files 4 years ago
dazzle-macros.txt Add source files 4 years ago
dbgeula.cmd Add source files 4 years ago
ddkcabs.bat Add source files 4 years ago
delayload.cmd Add source files 4 years ago
deletebuild.cmd Add source files 4 years ago
deletesym.cmd Add source files 4 years ago
deploytools.cmd Add source files 4 years ago
dfschk.cmd Add source files 4 years ago
dispatch.pl Add source files 4 years ago
distint.cmd Add source files 4 years ago
docrc.cmd Add source files 4 years ago
drivercab.cmd Add source files 4 years ago
drvcabck.cmd Add source files 4 years ago
drvmk.pl Add source files 4 years ago
dublin.intl.ini Add source files 4 years ago
dublin.intl.xpclient.ini Add source files 4 years ago
dublin.middleton.intl.ini Add source files 4 years ago
exclude.lst Add source files 4 years ago
file2cd.pl Add source files 4 years ago
filechk.pl Add source files 4 years ago
fips.cmd Add source files 4 years ago
fixprn.pl Add source files 4 years ago
fullsync.cmd Add source files 4 years ago
gendiff.pl Add source files 4 years ago
getbldno.cmd Add source files 4 years ago
getinisetting.pm Add source files 4 years ago
getlatestrelease.cmd Add source files 4 years ago
getparams.pm Add source files 4 years ago
hashrep.cmd Add source files 4 years ago
hashtext.pm Add source files 4 years ago
helpsupportservices.cmd Add source files 4 years ago
hnw.cmd Add source files 4 years ago
idx.usa.common.ini Add source files 4 years ago
idx01.usa.ini Add source files 4 years ago
idx02.usa.ini Add source files 4 years ago
indexsym.cmd Add source files 4 years ago
inetsrv.cmd Add source files 4 years ago
jasbr.usa.ini Add source files 4 years ago
kbd.reb Add source files 4 years ago
killsess.cmd Add source files 4 years ago
known.reb Add source files 4 years ago
known_asms.reb Add source files 4 years ago
lab01_n-vc.usa.ini Add source files 4 years ago
lab01_n.usa.ini Add source files 4 years ago
lab02_n.usa.ini Add source files 4 years ago
lab03_client.usa.ini Add source files 4 years ago
lab03_n.usa.ini Add source files 4 years ago
lab04_n.usa.ini Add source files 4 years ago
lab06_n.mir.ini Add source files 4 years ago
lab06_n.usa.ini Add source files 4 years ago
lab07_n.usa.ini Add source files 4 years ago
layout.cmd Add source files 4 years ago
linksym.cmd Add source files 4 years ago
locag.pl Add source files 4 years ago
localenvex.pm Add source files 4 years ago
localrel.cmd Add source files 4 years ago
main.ara.ini Add source files 4 years ago
main.br.ini Add source files 4 years ago
main.chh.ini Add source files 4 years ago
main.chs.ini Add source files 4 years ago
main.cht.ini Add source files 4 years ago
main.cs.ini Add source files 4 years ago
main.da.ini Add source files 4 years ago
main.el.ini Add source files 4 years ago
main.es.ini Add source files 4 years ago
main.fi.ini Add source files 4 years ago
main.fr.ini Add source files 4 years ago
main.ger.ini Add source files 4 years ago
main.heb.ini Add source files 4 years ago
main.hu.ini Add source files 4 years ago
main.it.ini Add source files 4 years ago
main.jpn.ini Add source files 4 years ago
main.kor.ini Add source files 4 years ago
main.mir.ini Add source files 4 years ago
main.nl.ini Add source files 4 years ago
main.no.ini Add source files 4 years ago
main.pl.ini Add source files 4 years ago
main.psu.ini Add source files 4 years ago
main.pt.ini Add source files 4 years ago
main.ru.ini Add source files 4 years ago
main.sv.ini Add source files 4 years ago
main.tr.ini Add source files 4 years ago
main.usa.ini Add source files 4 years ago
mainlab.usa.common.ini Add source files 4 years ago
makebfloppy.cmd Add source files 4 years ago
makebuildname.cmd Add source files 4 years ago
makeimg.pl Add source files 4 years ago
makeupgadvimg.cmd Add source files 4 years ago
makewinpeimg.cmd Add source files 4 years ago
manualbvt.cmd Add source files 4 years ago
migwiz.cmd Add source files 4 years ago
miscrel.cmd Add source files 4 years ago
miscrel.txt Add source files 4 years ago
missingfilecheck.cmd Add source files 4 years ago
mktabcab.cmd Add source files 4 years ago
mktabsed.pl Add source files 4 years ago
moveqfe.cmd Add source files 4 years ago
mp2up.cmd Add source files 4 years ago
mqexchng.cmd Add source files 4 years ago
msi.cmd Add source files 4 years ago
mtnmake.cmd Add source files 4 years ago
muiexclude.txt Add source files 4 years ago
muimake.pm Add source files 4 years ago
muimsi.pm Add source files 4 years ago
muiwhistler.pl Add source files 4 years ago
net.reb Add source files 4 years ago
never.reb Add source files 4 years ago
newver.cmd Add source files 4 years ago
newver.pl Add source files 4 years ago
nntpsmtp.cmd Add source files 4 years ago
nt5cat.cmd Add source files 4 years ago
nt5infcat.cmd Add source files 4 years ago
ntbackuponpersonal.cmd Add source files 4 years ago
ntcrcgen.pl Add source files 4 years ago
ntprintcat.cmd Add source files 4 years ago
ntvdm.reb Add source files 4 years ago
octomail.pl Add source files 4 years ago
octopus.cmd Add source files 4 years ago
opshellfolder.pl Add source files 4 years ago
parseinf.pl Add source files 4 years ago
pbainst.cmd Add source files 4 years ago
pbuild.cmd Add source files 4 years ago
pbuild.dat Add source files 4 years ago
pbuild.hlp Add source files 4 years ago
pbuild.mui Add source files 4 years ago
pbuildenv.pm Add source files 4 years ago
raiseall.pl Add source files 4 years ago
readme.txt Add source files 4 years ago
readsetupfiles.pm Add source files 4 years ago
redmond.epdcbed06.intl.ini Add source files 4 years ago
redmond.intl.ini Add source files 4 years ago
redmond.intl.xpclient.ini Add source files 4 years ago
release.cmd Add source files 4 years ago
relrules.beta1 Add source files 4 years ago
relrules.idx01 Add source files 4 years ago
relrules.idx02 Add source files 4 years ago
relrules.lab02_n Add source files 4 years ago
relrules.lab03_n Add source files 4 years ago
relrules.lab04_n Add source files 4 years ago
relrules.lab06_n Add source files 4 years ago
relrules.main Add source files 4 years ago
removesecretsymbols.cmd Add source files 4 years ago
runinstall.cmd Add source files 4 years ago
sanitychecklist.txt Add source files 4 years ago
sanitycheckunicodefiles.cmd Add source files 4 years ago
scp_wpafiles.cmd Add source files 4 years ago
scp_wpafiles.reb Add source files 4 years ago
setup_log.txt Add source files 4 years ago
setupw95.cmd Add source files 4 years ago
sfcgen.cmd Add source files 4 years ago
sfcwrap.cmd Add source files 4 years ago
shimbind.cmd Add source files 4 years ago
signtheme.cmd Add source files 4 years ago
skusize.cmd Add source files 4 years ago
smashem.cmd Add source files 4 years ago
snapbin.pl Add source files 4 years ago
snaplist.txt Add source files 4 years ago
specsign.lst Add source files 4 years ago
splitlist.cmd Add source files 4 years ago
splitlist.pl Add source files 4 years ago
srvrel.cmd Add source files 4 years ago
startcompress.cmd Add source files 4 years ago
startsymcopy.pl Add source files 4 years ago
startthread.cmd Add source files 4 years ago
subdirs.lst Add source files 4 years ago
submit_public.cmd Add source files 4 years ago
submit_rules.txt Add source files 4 years ago
supporttools.cmd Add source files 4 years ago
swapinoriginalfiles.cmd Add source files 4 years ago
symbolcd.cmd Add source files 4 years ago
symcabgen.cmd Add source files 4 years ago
symcopy.cmd Add source files 4 years ago
symcopythread.cmd Add source files 4 years ago
symindex.pm Add source files 4 years ago
symupdate.cmd Add source files 4 years ago
syncone.cmd Add source files 4 years ago
sysgen.pl Add source files 4 years ago
tagmsi.cmd Add source files 4 years ago
template.ini Add source files 4 years ago
template_cmd.cmd Add source files 4 years ago
template_module.pm Add source files 4 years ago
template_perl.cmd Add source files 4 years ago
timebomb.cmd Add source files 4 years ago
toolfix.pm Add source files 4 years ago
ts.reb Add source files 4 years ago
tscert.cmd Add source files 4 years ago
tsclient.cmd Add source files 4 years ago
tscsetup.cmd Add source files 4 years ago
unicodecheck.pm Add source files 4 years ago
unique.pl Add source files 4 years ago
updateos.vbs Add source files 4 years ago
w95ipp.cmd Add source files 4 years ago
wbemodbc.cmd Add source files 4 years ago
winfusesfcgen.cmd Add source files 4 years ago
winnt32msi.cmd Add source files 4 years ago
wmmkdcache.cmd Add source files 4 years ago
wrapper.cmd Add source files 4 years ago
xpclient.ara.ini Add source files 4 years ago
xpclient.br.ini Add source files 4 years ago
xpclient.chh.ini Add source files 4 years ago
xpclient.chs.ini Add source files 4 years ago
xpclient.cht.ini Add source files 4 years ago
xpclient.cs.ini Add source files 4 years ago
xpclient.da.ini Add source files 4 years ago
xpclient.el.ini Add source files 4 years ago
xpclient.es.ini Add source files 4 years ago
xpclient.fi.ini Add source files 4 years ago
xpclient.fr.ini Add source files 4 years ago
xpclient.ger.ini Add source files 4 years ago
xpclient.heb.ini Add source files 4 years ago
xpclient.hu.ini Add source files 4 years ago
xpclient.it.ini Add source files 4 years ago
xpclient.jpn.ini Add source files 4 years ago
xpclient.kor.ini Add source files 4 years ago
xpclient.mir.ini Add source files 4 years ago
xpclient.nl.ini Add source files 4 years ago
xpclient.no.ini Add source files 4 years ago
xpclient.pl.ini Add source files 4 years ago
xpclient.psu.ini Add source files 4 years ago
xpclient.pt.ini Add source files 4 years ago
xpclient.ru.ini Add source files 4 years ago
xpclient.sv.ini Add source files 4 years ago
xpclient.tr.ini Add source files 4 years ago
xpclient.usa.ini Add source files 4 years ago

readme.txt


This directory contains "build rules" you can use for your particular project.

Typically, a build rule script executes various post-build.exe operations on a set of
existing binaries. For example, a build rule script can invoke iexpress.exe in order
to generate a cab file or a self-extracting executable.

E-mail MLekas or ntball with questions regarding the US builds and MattHoe or ntbintl
with questions regarding the International builds.

To add a new build rule script:

1. Copy "template" to <your_project_build_rule>.cmd.

2. Edit <your_project_build_rule>.cmd according to the guidelines below.

a. Build rule scripts must be general enough to run in various contexts.

The build rule scripts are part of the US Windows 2000 build procedures.
The Redmond-based and the Dublin-based International Windows 2000 builds use them
too. Some of the build rule scripts are released with the source release kits.
These various contexts need to be considered when implementing the build rule scripts.

For example, the build rule scripts should avoid using hard-coded machine names:

* If your script propagates binaries from one build machine to another,
call %_ntbindir%\bldrules\localbrs.bat, then use variable names instead of
hard-coded machine names.

Let's say your script must copy files from \\x86fre\binaries to \\alphafre\binaries.

Replace
xcopy \\x86fre\binaries\%myfiles% \\alphafre\binaries\
with
call %_ntbindir%\bldrules\localbrs.bat
..
if /I "%computername%" == "%alphafre%" (
xcopy \\%x86fre%\%binshare%\%myfiles% \\%alphafre%\%binshare%\
)

By using a different localbrs.txt, International builds can use their own machine names,
shares, etc and still run the same build rule scripts as the US builds.

* If your script must be executed on a particular build machine only (x86fre for example),
add a particular entry to localbrs.txt, then use variable names instead of machine names.

For example, drvcab.cmd runs "slm in sorted.lst" on the official US build machines only.

The sequence
REM Only US build machines should check in sorted.lst
set checkin=
if /i "%computername%" == "x86fre" set checkin=yes
if /i "%computername%" == "alphafre" set checkin=yes
if /i "%computername%" == "axp64fre" set checkin=yes
if /i "%computername%" == "ia64fre" set checkin=yes
can be replaced with
call %_ntbindir%\bldrules\localbrs.bat
..
REM Only US build machines should check in sorted.lst
set checkin=
if /i "%computername%" == "%USx86fre%" set checkin=yes
if /i "%computername%" == "%USalphafre%" set checkin=yes
if /i "%computername%" == "%USaxp64fre%" set checkin=yes
if /i "%computername%" == "%USia64fre%" set checkin=yes


b. Build rule scripts must be able to run in particular contexts as well.

* Not everything from a build rule script is applicable to the International builds.

_AUTORUN.CMD is an example. The script applies to the US builds only.

Use IsIntlBld.cmd (-s \\orville\razzle -p public\tools) to determine if the script
is being run for International builds and skip the execution of some particular code
if the code is not applicable for language builds.

call IsIntlBld.cmd
if errorlevel 1 (
REM Write code specific to non-International builds
) else (
REM Write code specific to International builds.
)

Also, as environment variable LANG is defined at the time the US build rule script is
invoked, you can use it if you need to write code specific to a particular language.
Nec_98 is considered a language, even though it is in fact an architecture specific to
Japanese builds and built on the x86 machines.

* Not everything from a build rule script is (might be) applicable to both Redmond and
Dublin-based International builds.

You can use the same IsIntlBld.cmd to determine if the script is being run for a specific
International build:

call IsIntlBld.cmd Redmond
if errorlevel 1 (
REM Not a Redmond-based International build.
) else (
REM Write code specific to the Redmond-based International builds.
)

call IsIntlBld.cmd Dublin
if errorlevel 1 (
REM Not a Dublin-based International build.
) else (
REM Write code specific to the Dublin-based International builds.
)

Currently, there is no build rule script to need special processing for one
International type build, but not for the other.

* Not all languages ship server, advanced server, or datacenter Windows 2000 products.

Some of the build rule scripts use perinf, blainf, sbsinf, srvinf, entinf, and/or dtcinf. Before using these
directories, a build rule script should verify if they are applicable in the current context.

REM Use CkSKU.pm to validate the SKU against the given language and architecture.

perl %RazzleToolPath%\cksku.pm -t:per -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on perinf files. Ex:
perl makelist.pl -q %bin_in%\perinf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:bla -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on blainf files. Ex:
perl makelist.pl -q %bin_in%\blainf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:sbs -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on sbsinf files. Ex:
perl makelist.pl -q %bin_in%\sbsinf\excdosnt.inf ...
)
perl %RazzleToolPath\%cksku.pm -t:srv -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on srvinf files. Ex:
perl makelist.pl -q %bin_in%\srvinf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:ads -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on adsinf files. Ex:
perl makelist.pl -q %bin_in%\entinf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:dtc -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on dtcinf files. Ex:
perl makelist.pl -q %bin_in%\dtcinf\excdosnt.inf ...
)

c. Build rule scripts need to respect the following set of rules when using and/or defining
environment variables:

* Any razzle variable is allowed to be used inside a build rule script, except for "BINARIES".

_NTDRIVE, _NTROOT, NTDEBUG, _TARGET are examples of razzle variables.

On both US and International build machines, %BINARIES% represents the directory to which
files get binplaced. Typically, the files from the %BINARIES% directory are not localized.
On the International build machines, the tree containing the localized binaries is called
RELBINS and is different from BINARIES. In general, the build rule scripts apply to binaries
already built and, for International, localized. To avoid confusion and inappropriate
redefinitions of BINARIES that would persist after a build rule script finishes its execution,
the build rule scripts define a special variable called MYBINARIES as follows:

if not defined MYBINARIES set MYBINARIES=%BINARIES%

* A build rule script can define any new variable under the requirement that they preserve the
existing value of that variable, if any.

if not defined build_rule_script_local_variable (
set build_rule_script_local_variable=<value>
)

This mechanism allows the International builds to define these variables according to their
particular context before invoking the US build rules. The gain is that US and International
builds are able to share the same build rule scripts.


d. A build rule script should avoid executing builds in the private tree or using binaries from the
private tree.

The files processed by a build rule script must be accessible to the international builds.
The international build machines do not have the whole private tree. Their private tree is
restricted to those projects requiring compile time localization.
Whenever your build rule script invokes builds.exe under private or uses files from private,
it breaks the International builds, as they cannot use your build rule script.

If you must run build instructions from a build rule script, put these instructions into
PRECONGEAL.
Or avoid building on international build machines by using the IsIntlBld.cmd logic described
above. Keep in mind that international build machines only build sources that are localized,
which are very few and usually belong in a language-specific directory like \jpn for Japanese.
The rest of the binaries are inherited from the US build machines' %BINARIES% so international
machines avoid running build.exe under private in order to get the unlocalized binaries one
build rule script needs.
In cases where localized sources absolutely need to be re-built inside a build rules script
(ie, drvcab.cmd rebuilds dosnet.inf), please discuss with the international build team contacts
at the top of this document so special international needs can be addressed.

Also, any file from the private tree used by a build rule script should be binplaced to the
%BINARIES% tree, as opposed to being copied to %BINARIES%. Having a file listed in binplace.log
makes the investigation of build problems easier, as the name and location of the source tree
producing the file becomes apparent.

Last but not least, the binaries from the private tree typically have the symbol information not
split. It is wrong to include non-split binaries in the product. Binplacing files will enforce
that the proper symbolic information is present and split out to the proper .dbg and/or .pdb files
so customers receive split binaries with valid symbols, not non-split binaries that can be reverse
engineered.


e. Build rule scripts should be able to run incrementally.

The build rule scripts are currently invoked from congeal.cmd.
Typically, they run cleanly whenever invoked, even though just a few files changed.
Every time you write a build rule script, multiply its execution time with 21 (7 Redmond-based
languages and 14 Dublin-based languages) and assess whether its execution time is still acceptable.
Even when they run in parallel for different languages, the build rule scripts can take a lot of
time to execute.

Whenever possible, write and/or use incremental tools. For example, use makefiles to define
dependencies and generate the targets, in order to take the advantage of NMAKE.EXE's incremental
nature.


f. A build rule script should be very specific about the location of the tools it uses.

A build rule script using an idw or mstools tool must invoke the tool by using its full name,
including the path. It is error prone to assume that the right version of signcode.exe, for example,
comes first in the PATH.

if not defined idw set idw=%windir%\idw
%idw%\signcode.exe ...

iexpress.exe should always be used from IEXPRESS_PATH, as the language builds need localized
version of advpack.dll and wextract.exe:

if not defined IEXPRESS_PATH set IEXPRESS_PATH=%windir%\idw
set PATH=%IEXPRESS_PATH%;%PATH%
iexpress.exe ...


g. A build rule script should provide logging and error information on the screen and in logging files.

Follow the template script's guidelines in logging information on the screen and in log files:
* use ErrMsg.cmd to log errors, LogMsg.cmd to log non-error information and LogMsg.cmd /t
to mark the start and the end script's execution times.
* exit with a non-zero errorlevel if the script encountered errors during execution by calling
seterror.exe <errno> in the end.

h. A build rule script should be enabled to run in parallel with other build rules scripts.

Every build rule script must be enabled to run in parallel with the other build rule scripts.
For every option it implements (NEWVER, PREREBASE, CONGEAL, etc), a build rule creates a tag file
in the tmp directory, tag file to be deleted when the execution of the build rule script finishes.
The existence of the tag file shows that the build rule script is still executing.


i. A build rule script should contain detailed comments about its purpose, the algorithm it uses to
generate its output, particular tools it relies on, caveats, etc.

3. Check in <your_project_build_rule>.cmd.

The NT build process will run the new added .cmd file at the appropriate time as part of the normal
NT build.

4. Make any changes to <your_project_build_rule>.cmd in accordance with the guidelines detailed at step 2.

If your .cmd file becomes obsolete, remove (delfile) it from the "bldrules" project.
Until you remove the .cmd file, the build process will continue to run it with every US and
International build.