diff options
Diffstat (limited to 'private/utils/ntbackup/exchange')
26 files changed, 10243 insertions, 0 deletions
diff --git a/private/utils/ntbackup/exchange/build/alphamk.inc b/private/utils/ntbackup/exchange/build/alphamk.inc new file mode 100644 index 000000000..2498e84ca --- /dev/null +++ b/private/utils/ntbackup/exchange/build/alphamk.inc @@ -0,0 +1,195 @@ +!IF 0 + +Copyright (c) 1994 Microsoft Corporation + +Module Name: + + alphamk.inc + +Abstract: + + This module contains the ALPHA specific build controls. It is included + by makefile.def. + +Author: + + Jeff Havens (jhavens) 13-Feb-1994 + +Revision History: + +!ENDIF + +# +# Alpha option control +# + +UMBASE=$(UMBASE:*=alpha) +UMLIBS=$(UMLIBS:*=alpha) +NTRES=$(NTRES:*=alpha) +UMRES=$(UMRES:*=alpha) +UMOBJS=$(UMOBJS:*=alpha) +LINKLIBS=$(LINKLIBS:*=alpha) +DLLBASE=$(DLLBASE:*=alpha) +DLLDEF=$(DLLDEF:*=alpha) +MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS:*=alpha) +TARGET=$(TARGET:*=alpha) +DYNLINK_LIB=$(DYNLINK_LIB:*=alpha) +TARGETEXEFILES=$(TARGETEXEFILES:*=alpha) +TARGETLIBFILES=$(TARGETLIBFILES:*=alpha) +TARGETOBJFILES=$(TARGETOBJFILES:*=alpha) +UMOBJFILES=$(UMOBJFILES:*=alpha) +UMEXEFILES=$(UMEXEFILES:*=alpha) +HEADERFILE=$(HEADERFILE:*=alpha) +HEADEROBJNAME=$(HEADEROBJNAME:*=alpha) +HEADEROBJ=$(HEADEROBJ:*=alpha) +PRECOMPILED=$(PRECOMPILED:*=alpha) +PRECOMPILED_CXX=$(PRECOMPILED_CXX:*=alpha) +PRECOMPILED_TARGET=$(PRECOMPILED_TARGET:*=alpha) + +!ifdef NTTARGETFILES +NTTARGETFILES=$(NTTARGETFILES:*=alpha) +!endif +!ifdef NTTARGETFILE0 +NTTARGETFILE0=$(NTTARGETFILE0:*=alpha) +!endif +!ifdef NTTARGETFILE1 +NTTARGETFILE1=$(NTTARGETFILE1:*=alpha) +!endif + +!IF "$(GPSIZE)" != "0" + +LIBC_LIB=$(BASEDIR)\public\sdk\lib\alpha\small.lib $(LIBC_LIB) +LINKGPSIZE=-gpsize:$(GPSIZE) + +!ENDIF + +ENTRY_SUFFIX= +GDI_ENTRY_SUFFIX= + +!IF "$(MSC_OPTFLAGS)" == "/Oxs" +DBGFLAGS=$(MSC_OPTFLAGS:/Oxs=/Ox) +!ENDIF + +!IFDEF ALPHA_WARNING_LEVEL +MSC_WARNING_LEVEL=$(ALPHA_WARNING_LEVEL) +!ENDIF + +!IFDEF ALPHA_OPTIMIZATION +MSC_OPTIMIZATION=$(ALPHA_OPTIMIZATION) +!ENDIF + +!IFDEF ALPHA_CPPFLAGS +MSC_CPPFLAGS=$(ALPHA_CPPFLAGS) +!ENDIF + +ALPHA_AS=asaxp -nologo + +ALPHA_START_FILE=start.obj + +# Use /Z7 instead of /Zi + +DBGFLAGS=$(DBGFLAGS:/Zi=/Z7) + +ENV_DEFINES=$(LIBC_DEFINES) $(C_DEFINES) $(NET_C_DEFINES) $(MSC_CPPFLAGS) $(NTCPPFLAGS) +STD_DEFINES=-DALPHA=1 -D_ALPHA_=1 -DNO_EXT_KEYS -DCONDITION_HANDLING=1 $(STD_DEFINES) + +STDFLAGS= /c /Zel /Zp8 /Gy $(MSC_WARNING_LEVEL) $(MFC_FLAGS) + +CDEFINES=$(STD_DEFINES) $(TARGET_DBG_DEFINES) $(ENV_DEFINES) +CFLAGS=$(ALPHA_FLAGS) $(NTALPHAFLAGS) $(STDFLAGS) $(DBGFLAGS) $(ALPHA_PERFFLAGS) \ + -D__stdcall= -D__cdecl= + +ALPHA_CDEFINES=$(CDEFINES) +ALPHA_CFLAGS=$(CFLAGS) + +!IFNDEF _AXPACC_ +_AXPACC_=0 +!ENDIF + +ALPHA_CC = cl $(CBSTRING) -nologo -d2"switch no*check*" $(USER_C_FLAGS) + +C_COMPILER_NAME = $(ALPHA_CC) +CXX_COMPILER_NAME = $(ALPHA_CC) +C_PREPROCESSOR_NAME = $(ALPHA_CC) + +GLOBAL_C_FLAGS = -Ialpha\ -I. $(INCPATH0) $(CDEFINES) \ + $(ALPHA_OPTIONS) $(CFLAGS) \ + /Gt$(GPSIZE) -DFPO=1 + +C_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED) $(COMPILER_WARNINGS) +CXX_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED_CXX) $(COMPILER_WARNINGS) +C_PREPROCESSOR_FLAGS = $(GLOBAL_C_FLAGS) -EP -Tc + +C_COMPILER= $(C_COMPILER_NAME) $(C_COMPILER_FLAGS) +CXX_COMPILER=$(CXX_COMPILER_NAME) $(CXX_COMPILER_FLAGS) +C_PREPROCESSOR = $(C_PREPROCESSOR_NAME) $(C_PREPROCESSOR_FLAGS) + +ALPHA_ASSEMBLER=$(ALPHA_AS) -O1 -Ialpha\ -I. $(INCPATH0) $(CDEFINES) \ + $(ALPHA_FLAGS) $(NTALPHAFLAGS) $(ADBGFLAGS) \ + -D_LANGUAGE_ASSEMBLY + +ECHO_MSG=ClAlpha $< " $(C_COMPILER) " +ECHO_PRECOMPILED_MSG=CpAlpha $(PRECOMPILED_INCLUDE) " $(C_COMPILER) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ) $(PRECOMPILED_FLAG)" + +{..\alpha\}.s{obj\alpha\}.obj: + @-erase $@ >nul 2>&1 + @echo AsAlpha $< " $(ALPHA_ASSEMBLER) " + @$(ALPHA_ASSEMBLER) -o $@ $(MAKEDIR)\..\alpha\$(<F) + +{alpha\}.s{obj\alpha\}.obj: + @-erase $@ >nul 2>&1 + @echo AsAlpha $< " $(ALPHA_ASSEMBLER) " + @$(ALPHA_ASSEMBLER) -o $@ $(MAKEDIR)\alpha\$(<F) + +.SUFFIXES: .il + +{}.il{}.cod: + @-erase $@ >nul 2>&1 + @type << +$(ECHO_MSG) +<<NOKEEP + @$(C_COMPILER_NAME) @<< -FAac -Fa$(<B).cod -B1..\bootbin\null.exe -Bk$(<B). -Fo$(MAKEDIR)\obj\alpha\$(<B).o $(MAKEDIR)\$(<B).c +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + @del obj\alpha\$(<B).o + +{}.il{obj\alpha\}.obj: + @-erase $@ >nul 2>&1 + @type << +$(ECHO_MSG) +<<NOKEEP + @$(C_COMPILER_NAME) @<< -B1..\bootbin\null.exe -Bk$(<B). -Fo$(MAKEDIR)\$@ $(MAKEDIR)\$(<B).c +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +LIBRARY_OBJS=$(OBJECTS) $(LINKLIBS) + +!IFDEF TUKWILA +_NTTREE=$(_NTALPHATREE) +!ENDIF + +!IFDEF CAIRO_PRODUCT +!IFDEF _CAIROALPHATREE +_NTTREE=$(_CAIROALPHATREE) +!ENDIF +!ELSE +!IFDEF _NTALPHATREE +_NTTREE=$(_NTALPHATREE) +!ENDIF +!ENDIF + +!IFDEF KERNEL_MODE +_NTTREE=$(_NTALPHATREE)\km +!ENDIF + +!IFDEF _NTALPHALIBS +_NTLIBS=$(_NTALPHALIBS) +!ENDIF + +COPYDST=$(ALPHACOPYDST) + +LIB_COPY=ntalphacp.cmd + +NTTEST_LINK_OPTIONS= -base:0x80080000 -fixed -entry:KiSystemStartup diff --git a/private/utils/ntbackup/exchange/build/coffbase.txt b/private/utils/ntbackup/exchange/build/coffbase.txt new file mode 100644 index 000000000..5e8685239 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/coffbase.txt @@ -0,0 +1,776 @@ +; +; This file defines the base virtual address for Dynamic Link Libraries (DLL) +; that are part of the Windows NT System. The first token on a line is the name +; of the DLL and the second token is the base virtual address, in hexidecimal. +; The third token is the maximum size of the DLL image file, including symbols. +; +; NOTE: I have used the convention of labelling unused areas as _FREExx_. +; If you need an address, these are available. They were used by printer +; drivers. + +usermode 0x01000000 0x60000000 +slm 0x11000000 0x40000000 +slmck 0x12000000 0x40000000 +sadmin 0x13000000 0x40000000 +; +; OLE dlls +; +ole32 0x19e00000 0x00a00000 +oledlg 0x1a200000 0x00100000 + +; +; This section contains the Cairo images. Free areas are labelled with +; _CFREExx_ +; + +proxy 0x10000000 0x00200000 +alertsys 0x10200000 0x00200000 +commnot 0x10400000 0x00200000 +cryptdll 0x10600000 0x00200000 +demoif 0x10800000 0x00200000 +menuedt 0x10a00000 0x00200000 +_CFREE00_ 0x10c00000 0x00200000 +clock 0x10e00000 0x00200000 +cal 0x11000000 0x00200000 +report 0x11200000 0x00200000 +desk 0x11400000 0x00200000 +cxxflt 0x11600000 0x00200000 +clocksch 0x11800000 0x00200000 +_CFREE01_ 0x11a00000 0x00200000 +iclass 0x11c00000 0x00200000 +_CFREE02_ 0x11e00000 0x00200000 +_CFREE02a 0x12000000 0x00200000 +iprod 0x12200000 0x00200000 +kerberos 0x12400000 0x00200000 +ofskd 0x12600000 0x00200000 +applet1 0x12800000 0x00200000 +cairocpl 0x12a00000 0x00200000 +cpo 0x12c00000 0x00200000 +deskapp 0x12e00000 0x00200000 +ntlm 0x13000000 0x00200000 +objsrv 0x13200000 0x00200000 +; for Cairo message store +msgfno 0x13400000 0x00200000 +lnktrack 0x13600000 0x00200000 +pocket 0x13800000 0x00200000 +dsfsmsgs 0x13a00000 0x00200000 +_CFREE 0x13c00000 0x00200000 +scperf 0x13e00000 0x00100000 +msvcbook 0x13f00000 0x00100000 +dsyscpl 0x14000000 0x00200000 +bmpctl 0x14200000 0x00200000 +spintime 0x14400000 0x00200000 +grpbox 0x14600000 0x00200000 +security 0x14800000 0x00200000 +mdbmsg 0x14a00000 0x00200000 +bimport 0x14c00000 0x00200000 + +oldctrls 0x15600000 0x00200000 +smctrls 0x15800000 0x00200000 +dahard 0x15a00000 0x00200000 +stdobj 0x15c00000 0x00200000 +csumcat 0x15e00000 0x00200000 +sysmgmt 0x16000000 0x00200000 +cpdskadm 0x16200000 0x00200000 +idfsvol 0x16400000 0x00200000 +testdll 0x16600000 0x00400000 +cap 0x16a00000 0x00200000 +sysinf 0x16c00000 0x00200000 +shdebug 0x16e00000 0x00100000 +_CFREE03_ 0x16f00000 0x00400000 +popups 0x17300000 0x00100000 +replsup 0x17400000 0x00200000 +schema 0x17700000 0x00200000 +useragnt 0x18000000 0x00200000 +vpcont 0x18200000 0x00200000 +uares 0x18400000 0x00200000 +rndrevrp 0x18600000 0x00200000 +pdfpage 0x18800000 0x00200000 +pkgpage 0x18a00000 0x00200000 +package 0x18e00000 0x00200000 +pdf 0x19000000 0x00200000 +dsys 0x19200000 0x00300000 +dfsprov 0x19500000 0x00100000 +dfsinstr 0x19600000 0x00200000 +lprofile 0x19800000 0x00200000 +;19e00000 - 1a2FFFFF used by ole32 and oledlg (see above) +_CFREE04_ 0x1a300000 0x00B00000 +oleprx32 0x1b000000 0x00500000 +_CFREE05_ 0x1b000000 0x00600000 +testext 0x1b600000 0x00200000 +loghrs 0x1b800000 0x00100000 +scstg 0x1b900000 0x00100000 +smoke 0x1ba00000 0x00100000 +shamu 0x1bc00000 0x01000000 + +; Repl dlls +chglogdb 0x1cc00000 0x00100000 +dumyrclr 0x1cd00000 0x00100000 +flatrst 0x1ce00000 0x00100000 +_RFREE1_ 0x1cf00000 0x00300000 +orarcnlr 0x1d200000 0x00100000 +replui 0x1d300000 0x00100000 +roschlog 0x1d400000 0x00100000 +rsmgr 0x1d500000 0x00100000 +dsobjs 0x1d600000 0x00200000 +account 0x1d800000 0x00200000 +ora 0x1da00000 0x00200000 +oraexts 0x1dc00000 0x00100000 +dsmail 0x1dd00000 0x00100000 +atsvc 0x1de00000 0x00100000 +replperf 0x1e000000 0x00100000 +accctrl 0x1e100000 0x00100000 +dssrv 0x1e200000 0x00200000 + +_CFREE06_ 0x1e400000 0x00600000 + +;RTO dlls +_CFREE07_ 0x1eA00000 0x00200000 +webcore 0x1eC00000 0x00200000 +rtoolbar 0x1eE00000 0x00200000 +rtfdoc 0x1f000000 0x00400000 + +spincube 0x1f400000 0x00200000 +_CFREE08_ 0x1f600000 0x00A00000 +msgina 0x1f400000 0x00200000 + +smss 0x20000000 0x40000000 +; +; Printer drivers: resource only data, overlaps SMSS +; +brhj770 0x20000000 0x00100000 +brother9 0x20000000 0x00100000 +brothr24 0x20000000 0x00100000 +canon330 0x20000000 0x00100000 +canon800 0x20000000 0x00100000 +canonlbp 0x20000000 0x00100000 +cit24us 0x20000000 0x00100000 +cit9us 0x20000000 0x00100000 +citoh 0x20000000 0x00100000 +dec24pin 0x20000000 0x00100000 +dec9pin 0x20000000 0x00100000 +diconix 0x20000000 0x00100000 +epson24 0x20000000 0x00100000 +epson9 0x20000000 0x00100000 +escp2e 0x20000000 0x00100000 +escp2ms 0x20000000 0x00100000 +fuji24 0x20000000 0x00100000 +fuji9 0x20000000 0x00100000 +hpdskjet 0x20000000 0x00100000 +hppcl 0x20000000 0x00100000 +hppcl5ms 0x20000000 0x00100000 +pcl1200 0x20000000 0x00100000 +ibm238x 0x20000000 0x00100000 +ibm239x 0x20000000 0x00100000 +ibm5204 0x20000000 0x00100000 +ibm5204 0x20000000 0x00100000 +ibmppdsl 0x20000000 0x00100000 +ibmport 0x20000000 0x00100000 +jp350 0x20000000 0x00100000 +kyocera 0x20000000 0x00100000 +mantal 0x20000000 0x00100000 +mantal24 0x20000000 0x00100000 +mantal90 0x20000000 0x00100000 +mt735 0x20000000 0x00100000 +nec24pin 0x20000000 0x00100000 +oki24 0x20000000 0x00100000 +oki9ibm 0x20000000 0x00100000 +olidm24 0x20000000 0x00100000 +olidm9 0x20000000 0x00100000 +paintjet 0x20000000 0x00100000 +panson24 0x20000000 0x00100000 +panson9 0x20000000 0x00100000 +proprint 0x20000000 0x00100000 +proprn24 0x20000000 0x00100000 +ps1 0x20000000 0x00100000 +quietjet 0x20000000 0x00100000 +qwiii 0x20000000 0x00100000 +seiko 0x20000000 0x00100000 +seiko24e 0x20000000 0x00100000 +seikosh9 0x20000000 0x00100000 +star24e 0x20000000 0x00100000 +star9e 0x20000000 0x00100000 +starjet 0x20000000 0x00100000 +thinkjet 0x20000000 0x00100000 +ti850 0x20000000 0x00100000 +toshiba 0x20000000 0x00100000 +txtonly 0x20000000 0x00100000 + +; Following have code in them + +oki9 0x20100000 0x00100000 +dec3200 0x20200000 0x00100000 + +; End of printer overlap area. + +dbgss 0x30000000 0x30000000 +csrss 0x40000000 0x20000000 +cmd 0x50000000 0x10000000 +os2ss 0x40000000 0x20000000 +psxss 0x40000000 0x20000000 +ntdll 0x60100000 0x00100000 +dbgdll 0x60200000 0x00100000 +advapi32 0x60300000 0x00100000 +csrrtl 0x60400000 0x00100000 +csrsrv 0x60500000 0x00100000 +kernel32 0x60600000 0x00100000 +basertl 0x60700000 0x00100000 +basesrv 0x60800000 0x00100000 +user32 0x60A00000 0x00200000 +winsrv 0x60C00000 0x00700000 +winsrv2 0x60C00000 0x00700000 +rasdd 0x61300000 0x00100000 +sysmono 0x61400000 0x00100000 +courier 0x61500000 0x00100000 +helv 0x61600000 0x00100000 +times 0x61700000 0x00100000 +netapi32 0x61800000 0x00200000 +winmgr 0x62100000 0x00100000 +display 0x62200000 0x00100000 +vga 0x62200000 0x00400000 +winspool 0x62600000 0x00100000 +splsrv 0x62700000 0x00100000 +ntprint 0x62800000 0x00100000 +pscript 0x62900000 0x00100000 +halftone 0x62A00000 0x00100000 +lmspool 0x62B00000 0x00100000 +os2dll 0x63000000 0x00200000 +psxdll 0x63200000 0x00200000 +winnet 0x63400000 0x00100000 +msv1_0 0x63500000 0x00100000 +samlib 0x635A0000 0x00100000 +lsaap 0x63600000 0x00100000 +netrap 0x63700000 0x00100000 +TEMPNAME2 0x63800000 0x00700000 +console 0x63f00000 0x00100000 +gdi32 0x64000000 0x00200000 +media 0x65000000 0x00100000 +mediasrv 0x66000000 0x00100000 + +lprmon 0x66100000 0x00100000 +lprhelp 0x66200000 0x00100000 +lpdsvc 0x66300000 0x00100000 + +; OpenGL server-side DLL +glsrv 0x66400000 0x00100000 + +; kernel-mode user code +winsrvk 0x66500000 0x00700000 + +; This space is free!! +_FREE04_ 0x66c00000 0x00500000 +nddeexts 0x67100000 0x00100000 +sde 0x67200000 0x00100000 +ndrd 0x67300000 0x00100000 +hdxdll 0x67400000 0x00100000 +splexts 0x67500000 0x00100000 +conexts 0x67600000 0x00100000 +gdiexts 0x67700000 0x00100000 +userexts 0x67800000 0x00100000 +; same as userexts +userkdx 0x67800000 0x00100000 +ntsdexts 0x67900000 0x00100000 +plotter 0x67A00000 0x00100000 +rpcrt4 0x67B00000 0x00100000 +winmm 0x67D00000 0x00100000 +rpcssp 0x67E00000 0x00100000 +mciwave 0x67F00000 0x00100000 +rpclts1 0x68000000 0x00100000 +rpcltc1 0x68100000 0x00100000 +ldrdll 0x68200000 0x00100000 +mcicda 0x68300000 0x00100000 +plotui 0x68400000 0x00100000 +rasddui 0x68500000 0x00100000 +pscrptui 0x68600000 0x00100000 +mmio 0x68700000 0x00100000 +rpcnts1 0x68800000 0x00100000 +rpcntc1 0x68900000 0x00100000 +nlsapi 0x68A00000 0x00100000 +rpcltc6 0x68B00000 0x00100000 +rpclts6 0x68C00000 0x00100000 +olesvr32 0x68D00000 0x00100000 +olecli32 0x68E00000 0x00100000 +msgsvc 0x68F00000 0x00100000 + +; This space for sale +decpsmon 0x69000000 0x00100000 + +sys003 0x69100000 0x00100000 + +beta2 0x69200000 0x00600000 +psapi 0x69800000 0x00100000 +rpcdce4 0x69900000 0x00100000 +eventlog 0x69A00000 0x00100000 +xactsrv 0x69B00000 0x00100000 +winreg 0x69C00000 0x00100000 +samsrv 0x69D00000 0x00100000 +; same as samsrv +samlsa 0x69D00000 0x00100000 +mmdrv 0x69F00000 0x00100000 +dlcapi 0x6A000000 0x00100000 +win32spl 0x6A100000 0x00100000 +localspl 0x6A200000 0x00100000 +rpclts5 0x6A300000 0x00100000 +rpcltc5 0x6A400000 0x00100000 +netlogon 0x6A500000 0x00200000 +; same as netlogon +ntlmsvc 0x6A500000 0x00200000 +tmsre32 0x6A600000 0x00100000 +lsaudll 0x6A700000 0x00100000 +mciseq 0x6A800000 0x00100000 +winprint 0x6A900000 0x00100000 +localmon 0x6AA00000 0x00100000 +msaudite 0x6AB00000 0x00100000 +msobjs 0x6AC00000 0x00100000 +hpmon 0x6AD00000 0x00100000 +alrsvc 0x6AE00000 0x00100000 +srvsvc 0x6AF00000 0x00100000 +wkssvc 0x6B000000 0x00100000 +rpclts3 0x6B100000 0x00100000 +rpcltc3 0x6B200000 0x00100000 +htui 0x6B300000 0x00100000 +lsasrv 0x6B400000 0x00100000 +mmsndsrv 0x6B500000 0x00100000 +midi 0x6B600000 0x00100000 +browser 0x6B700000 0x00100000 +drivers 0x6B800000 0x00100000 +lmmon 0x6B900000 0x00100000 +spoolss 0x6BA00000 0x00100000 +sndblst 0x6BC00000 0x00100000 +opengl32 0x6BD00000 0x00100000 +ntlmssps 0x6BE00000 0x00100000 +glu32 0x6BF00000 0x00100000 +; OpenGL client-side installable driver +ogldrv 0x6C000000 0x00100000 + +dciman32 0x6C100000 0x00100000 + +; +; The following is an extension for NTSD which traces memory usage in the +; ULIB utilities... +; +memtrace 0x6BF00000 0x00100000 + +; Cairo Compound Document Forms +formidbl 0x6C800000 0x00C00000 +fole2ui 0x6D400000 0x00400000 + +; Windows 95 shell "Sharing" extensions +ntshrui 0x6D500000 0x00100000 + +; Win32 shell apps/dlls + +control 0x70000000 0x00100000 +access 0x70100000 0x00100000 +sound 0x70200000 0x00100000 +appwiz 0x70300000 0x00100000 +intl 0x70400000 0x00100000 +timedate 0x70500000 0x00100000 +utc 0x70500000 0x00100000 +mouse 0x70600000 0x00100000 +sysdm 0x70700000 0x00100000 +desk 0x70800000 0x00100000 +modem 0x70900000 0x00100000 +security 0x70A00000 0x00100000 +main 0x70B00000 0x00100000 +ups 0x70C00000 0x00100000 +cursors 0x70D00000 0x00100000 +pcmcia 0x70E00000 0x00100000 +comdlg32 0x70F00000 0x00100000 +linkinfo 0x71000000 0x00100000 +version 0x71100000 0x00100000 +comctl32 0x71200000 0x00100000 +nddeapi 0x71300000 0x00100000 +nddenb32 0x71400000 0x00100000 +t1instal 0x71500000 0x00100000 +profile 0x71600000 0x00100000 +mmsys 0x71700000 0x00100000 +ctape 0x71800000 0x00100000 +console 0x71900000 0x00100000 +shscrap 0x71A00000 0x00100000 +password 0x71B00000 0x00100000 +ftsrch 0x71C00000 0x00100000 +docprop 0x71D00000 0x00100000 +shell32 0x71E00000 0x00200000 +shellalt 0x71E00000 0x00200000 +synceng 0x71F00000 0x00080000 +syncui 0x71F80000 0x00080000 + +; Win32 National Keyboard Layers + +kbdus 0x72000000 0x00100000 +kbdbe 0x73000000 0x00100000 +kbdbu 0x73000000 0x00100000 +kbdbr 0x73000000 0x00100000 +kbdca 0x73000000 0x00100000 +kbdcr 0x73000000 0x00100000 +kbdcz 0x73000000 0x00100000 +kbdda 0x73000000 0x00100000 +kbddv 0x73000000 0x00100000 +kbdes 0x73000000 0x00100000 +kbdfc 0x73000000 0x00100000 +kbdfi 0x73000000 0x00100000 +kbdfr 0x73000000 0x00100000 +kbdgr 0x73000000 0x00100000 +kbdhe 0x73000000 0x00100000 +kbdhe220 0x73000000 0x00100000 +kbdhela2 0x73100000 0x00100000 +kbdhe319 0x73000000 0x00100000 +kbdhela3 0x73100000 0x00100000 +kbdhu 0x73000000 0x00100000 +kbdhu1 0x73000000 0x00100000 +kbdic 0x73000000 0x00100000 +kbdit 0x73000000 0x00100000 +kbdit142 0x73000000 0x00100000 +kbdla 0x73000000 0x00100000 +kbdne 0x73000000 0x00100000 +kbdno 0x73000000 0x00100000 +kbdpl 0x73000000 0x00100000 +kbdpl1 0x73000000 0x00100000 +kbdpo 0x73000000 0x00100000 +kbdro 0x73000000 0x00100000 +kbdru 0x73000000 0x00100000 +kbdsf 0x73000000 0x00100000 +kbdsg 0x73000000 0x00100000 +kbdsl 0x73000000 0x00100000 +kbdsp 0x73000000 0x00100000 +kbdsv 0x73000000 0x00100000 +kbdsw 0x73000000 0x00100000 +kbdtuf 0x73000000 0x00100000 +kbdtuq 0x73000000 0x00100000 +kbduk 0x73000000 0x00100000 +kbdusl 0x73000000 0x00100000 +kbdusr 0x73000000 0x00100000 +kbdusx 0x73000000 0x00100000 +kbdhu1 0x73000000 0x00100000 + +; +; Cairo ofs dlls +; +query 0x74000000 0x00800000 +infosoft 0x74800000 0x00200000 +cxxflt 0x74a00000 0x00200000 +stemdll 0x7d000000 0x00200000 + +; +; The following is not currently used until we switch to the new image +; format with the new section headers. +; +executive 0xD0020000 0x18000000 + +; +; The following are the Mep extensions +; +tglcase 0x09080000 0x00100000 +pmatch 0x09090000 0x00100000 +justify 0x090a0000 0x00100000 +ulcase 0x090b0000 0x00100000 +filter 0x090c0000 0x00100000 +mhelp 0x090d0000 0x00100000 +mepparty 0x090e0000 0x00100000 +srmep 0x090f0000 0x00100000 +mshelp 0x09100000 0x00100000 +mbrowse 0x09110000 0x00100000 + +; +; The following are the Z extensions +; +zextens 0x09120000 0x00200000 + +; +; The following are for the utilities +; +ulib 0x09800000 0x00200000 +uhpfs 0x09a10000 0x00100000 +ufat 0x09b20000 0x00100000 +untfs 0x09c30000 0x00100000 +ifsutil 0x09d40000 0x00100000 +cufat 0x09e50000 0x00100000 +cuhpfs 0x09f60000 0x00100000 +fmifs 0x0a070000 0x00100000 +uspifs 0x0a180000 0x00100000 +ureg 0x0a290000 0x00100000 +uofs 0x0a3a0000 0x00400000 +ofsutil 0x0a7b0000 0x00400000 +autoulib 0x0a7b0000 0x00400000 +autouofs 0x0a3a0000 0x00400000 + +; +; ofsutil and autoulib are never loaded at the same time +; +ulibif 0x0add0000 0x00100000 +cudbfs 0x0aee0000 0x00100000 + +; +; The following are for the net error messages +; +netmsg 0x09500000 0x00080000 +neth 0x09580000 0x00080000 +netevent 0x09600000 0x00080000 + +; +; The following is the I/O error log messages. +; +iologmsg 0x09700000 0x00080000 + +; +; The following is for the 16-bit loader for the OS/2 subsystem +; +loader 0x20000000 0x01000000 + +; +; The following is for the PE format image help routines. +; + +imagehlp 0x20000000 0x01000000 +symhelp 0x21000000 0x01000000 + +; +; The following is for the Streams/Sockets dll's +; +wsock32 0x75000000 0x00400000 +winstrm 0x75400000 0x00100000 +inetmib1 0x75500000 0x00100000 +lmmib2 0x75600000 0x00100000 +tcpipsvc 0x75700000 0x00100000 +nbtsvc 0x75800000 0x00100000 +telnet 0x75900000 0x00100000 +wshtcpip 0x75a00000 0x00100000 +mgmtapi 0x75b00000 0x00100000 +icmp 0x75c00000 0x00100000 +inettrap 0x75d00000 0x00100000 +testdll 0x75e00000 0x00100000 +lmhsvc 0x75f00000 0x00100000 +dhcpsapi 0x76000000 0x00100000 +dhcpcsvc 0x76100000 0x00100000 +dhcpssvc 0x76200000 0x00100000 +tcpsvcs 0x76300000 0x00100000 +ftpsvc 0x76400000 0x00100000 +ftpsvapi 0x76500000 0x00100000 +ftpctrs 0x76600000 0x00100000 + +; +; The following are for rpc datagram transport modules +; + +rpcdgc3 0x76700000 0x00100000 +rpcdgs3 0x76800000 0x00100000 +rpcdgc6 0x76900000 0x00100000 +rpcdgs6 0x76a00000 0x00100000 + +; +; The following are for RPC ADSP transport interface modules +; + +rpcltc7 0X76b00000 0x00100000 +rpclts7 0X76c00000 0x00100000 + +; +; The following are for the HTTP (WWW) server +; + +w3svc 0x76d00000 0x00100000 +w3svapi 0x76e00000 0x00100000 +w3ctrs 0x76f00000 0x00100000 +httpodbc 0x77700000 0x00100000 + +; +; The following are for Gopher Service +; + +gopherd 0x77000000 0x00100000 +gdapi 0x77100000 0x00100000 +gdctrs 0x77200000 0x00100000 +gdspace 0x77300000 0x00100000 + +; +; The following are Internet services common dlls +; + +tcpsvcs 0x77400000 0x00100000 +inetasrv 0x77500000 0x00100000 +inetctrs 0x77600000 0x00100000 +;used 0x77700000 0x00100000 + +; +; Smalprox dlls (client side internet proxy) +; + +miniprox 0x77800000 0x00100000 +_wsock32 0x77900000 0x00080000 +wsock32f 0x77980000 0x00080000 + +; +; The following are for the windowed debugger (windbg) +; + +eecxxx86 0x40000000 0x00200000 +eecxxmip 0x40000000 0x00200000 +eecxxalp 0x40000000 0x00200000 +eecxxppc 0x40000000 0x00200000 +eecxx 0x40000000 0x00200000 +emx86 0x48000000 0x00200000 +emmip 0x48000000 0x00200000 +emalp 0x48000000 0x00200000 +emppc 0x48000000 0x00200000 +shcoff 0x50000000 0x00200000 +shcv 0x50000000 0x00200000 +tlloc 0x58000000 0x00200000 +tlser 0x58000000 0x00200000 +tlser32s 0x58000000 0x00200000 +tlser32 0x58000000 0x00200000 +tlpipe 0x58000000 0x00200000 +dm 0x58200000 0x00200000 +dm32s 0x58200000 0x00200000 +dmkdx86 0x58200000 0x00200000 +dmkdmip 0x58200000 0x00200000 +dmkdalp 0x58200000 0x00200000 +dmkdppc 0x58200000 0x00200000 +kdextx86 0x58400000 0x00200000 +kdextmip 0x58400000 0x00200000 +kdextalp 0x58400000 0x00200000 +kdextppc 0x58400000 0x00200000 + +; +; The following are for the NetUI components. +; + +acledit 0x58500000 0x00200000 +mpr 0x58700000 0x00100000 +ntlanman 0x58800000 0x00200000 +srvmgr 0x58a00000 0x00200000 +ncpa 0x58c00000 0x00200000 +mprui 0x58e00000 0x00200000 +netui0 0x59000000 0x00200000 +netui1 0x59200000 0x00300000 +netui2 0x59500000 0x00400000 +ftpsmx 0x59900000 0x00100000 +ftpmgr 0x59a00000 0x00100000 +nwcfg 0x59b00000 0x00100000 +ntlanui 0x59c00000 0x00200000 +tcpcfg 0x59e00000 0x00100000 +ipxcfg 0x59f00000 0x00100000 +ntlsapi 0x5a000000 0x00100000 +srvkd 0x5b000000 0x00100000 +llsrpc 0x5c000000 0x00100000 + +; +; Network Card detection +; +netdtect 0x79000000 0x00100000 +msncdet 0x79100000 0x00100000 +npincdet 0x79200000 0x00100000 +amdncdet 0x79300000 0x00100000 +netflx 0x79400000 0x00100000 + +; +; Bloodhound components +; +bhsupp 0x79700000 0x00100000 +nal 0x79800000 0x00100000 +bhmon 0x79900000 0x00100000 +ndis30 0x79A00000 0x00100000 +bhnetb 0x79B00000 0x00100000 +rnal 0x79C00000 0x00100000 +bhkctrl 0x79D00000 0x00100000 +; +; Nw components +; +nwsap 0x7A100000 0x00100000 + + +; +; Ports applet +; +port 0x73600000 0x00200000 + +; +; System applet +; + +system 0x73800000 0x00200000 + +; more Cairo control panel components + +cpprint 0x73A00000 0x00100000 +cpups 0x73B00000 0x00100000 +cpsrvcs 0x74c00000 0x00100000 + +; +; DS object property pages. +; + +dsui 0x73C00000 0x00400000 + +; +; DS Container object class +; + +dscont 0x7C800000 0x00100000 + +; +; +; jet blue dll. +; + +jet 0x7B100000 0x00400000 + + +; +; wins dlls +; +winsctrs 0x7C100000 0x00100000 +winsmib 0x7C200000 0x00200000 +dhcpmib 0x7C400000 0x00100000 +winsevnt 0x7C500000 0x00100000 +winsrpc 0x7C600000 0x00100000 +winsrpcb 0x7C700000 0x00100000 + +; +; The following are for the SCC filters used by the Content index +; +SCCUT 0x7d500000 0x00040000 +SCCFA 0x7d540000 0x00040000 +SCCFI 0x7d580000 0x00040000 +SCCIFILT 0x7d600000 0x00040000 +VSACS 0x7d640000 0x00040000 +VSBMP 0x7d640000 0x00040000 +VSDBS 0x7d640000 0x00040000 +VSDRW 0x7d640000 0x00040000 +VSEXE 0x7d640000 0x00040000 +VSGIF 0x7d640000 0x00040000 +VSMCW 0x7d640000 0x00040000 +VSMSW 0x7d640000 0x00040000 +VSMWP2 0x7d640000 0x00040000 +VSMWPF 0x7d640000 0x00040000 +VSPCL 0x7d640000 0x00040000 +VSPDX 0x7d640000 0x00040000 +VSPFS 0x7d640000 0x00040000 +VSPP 0x7d640000 0x00040000 +VSQPW 0x7d640000 0x00040000 +VSRTF 0x7d640000 0x00040000 +VSTIFF 0x7d640000 0x00040000 +VSTEXT 0x7d640000 0x00040000 +VSTXT 0x7d640000 0x00040000 +VSVW3 0x7d640000 0x00040000 +VSW6 0x7d640000 0x00040000 +VSWKS 0x7d640000 0x00040000 +VSWMF 0x7d640000 0x00040000 +VSWORD 0x7d640000 0x00040000 +VSWORK 0x7d640000 0x00040000 +VSWP5 0x7d640000 0x00040000 +VSWP6 0x7d640000 0x00040000 +VSWPF 0x7d640000 0x00040000 +VSXL5 0x7d640000 0x00040000 +VSXY 0x7d640000 0x00040000 + +; +; MFC Dlls +; +CFM30 0x7d680000 0x00200000 +CFM30U 0x7d680000 0x00200000 +CFMO30 0x7d880000 0x00080000 +CFMO30U 0x7d880000 0x00080000 +NTCTL3D 0x7D900000 0x00010000 + + diff --git a/private/utils/ntbackup/exchange/build/i386mk.inc b/private/utils/ntbackup/exchange/build/i386mk.inc new file mode 100644 index 000000000..91326b37a --- /dev/null +++ b/private/utils/ntbackup/exchange/build/i386mk.inc @@ -0,0 +1,247 @@ +!IF 0 + +Copyright (c) 1994 Microsoft Corporation + +Module Name: + + i386mk.inc + +Abstract: + + This module contains the x86 specific build controls. It is included + by makefile.def. + +Author: + + Jeff Havens (jhavens) 13-Feb-1994 + +Revision History: + +!ENDIF + +# +# x86 option control +# + +UMBASE=$(UMBASE:*=i386) +UMLIBS=$(UMLIBS:*=i386) +NTRES=$(NTRES:*=i386) +UMRES=$(UMRES:*=i386) +UMOBJS=$(UMOBJS:*=i386) +LINKLIBS=$(LINKLIBS:*=i386) +DLLBASE=$(DLLBASE:*=i386) +DLLDEF=$(DLLDEF:*=i386) +MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS:*=i386) +TARGET=$(TARGET:*=i386) +DYNLINK_LIB=$(DYNLINK_LIB:*=i386) +TARGETEXEFILES=$(TARGETEXEFILES:*=i386) +TARGETLIBFILES=$(TARGETLIBFILES:*=i386) +TARGETOBJFILES=$(TARGETOBJFILES:*=i386) +UMOBJFILES=$(UMOBJFILES:*=i386) +UMEXEFILES=$(UMEXEFILES:*=i386) +HEADERFILE=$(HEADERFILE:*=i386) +HEADEROBJNAME=$(HEADEROBJNAME:*=i386) +HEADEROBJ=$(HEADEROBJ:*=i386) +PRECOMPILED=$(PRECOMPILED:*=i386) +PRECOMPILED_CXX=$(PRECOMPILED_CXX:*=i386) +PRECOMPILED_TARGET=$(PRECOMPILED_TARGET:*=i386) + +!ifdef NTTARGETFILES +NTTARGETFILES=$(NTTARGETFILES:*=i386) +!endif +!ifdef NTTARGETFILE0 +NTTARGETFILE0=$(NTTARGETFILE0:*=i386) +!endif +!ifdef NTTARGETFILE1 +NTTARGETFILE1=$(NTTARGETFILE1:*=i386) +!endif + +!IF "$(DLLENTRY)" != "-noentry" +DLLENTRY=$(DLLENTRY)@12 +!ENDIF + +!IFDEF STD_CALL_ENTRY +UMENTRY=$(UMENTRY)@4 +!ENDIF + +ENTRY_SUFFIX=@8 +GDI_ENTRY_SUFFIX=@12 + +!IFDEF 386_WARNING_LEVEL +MSC_WARNING_LEVEL=$(386_WARNING_LEVEL) +!ENDIF +!IFDEF 386_OPTIMIZATION +MSC_OPTIMIZATION=$(386_OPTIMIZATION) +!message $(MAKEDIR)\sources (1) : Overriding default optimizations with $(386_OPTIMIZATION) +!ELSE +!IF "$(CBSTRING)" == "" +MSC_OPTIMIZATION=$(MSC_OPTIMIZATION) /Gf /QI6 +!ELSE +MSC_OPTIMIZATION=$(MSC_OPTIMIZATION) /QI6 +!ENDIF +!ENDIF +!IFDEF 386_CPPFLAGS +MSC_CPPFLAGS=$(386_CPPFLAGS) +!ENDIF + +STDFLAGS= /c /Zel /Zp8 /Gy $(CBSTRING) $(MSC_WARNING_LEVEL) $(MSC_CALL_TYPE) /G4 $(MFC_FLAGS) + +#LINKLIBS=$(LINKLIBS) $(BASEDIR)\public\sdk\lib\i386\int64.lib + +!IF "$(TARGETTYPE)"=="DRIVER" || \ + "$(TARGETTYPE)"=="GDI_DRIVER" || \ + "$(TARGETTYPE)"=="MINIPORT" +# +#Drivers don't link with link libs. +# + +MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS) $(BASEDIR)\public\sdk\lib\i386\int64.lib +!ENDIF + +!IF "$(386_STDCALL)" == "0" +MSC_CALL_TYPE=/Gd +MSC_CALL_DEFINE= +!ELSE +! IF "$(386_STDCALL)" == "2" +MSC_CALL_TYPE=/Gr +MSC_CALL_DEFINE= +! ELSE +MSC_CALL_TYPE=/Gz +MSC_CALL_DEFINE=-DSTD_CALL +! ENDIF +!ENDIF + +!IF "$(NTDEBUG)" == "retail" || "$(NTDEBUG)" == "" +! IFDEF NTNOFPO +!MESSAGE $(NTMAKEENV)\i386mk.inc(1) : Overriding FPO default with NTNOFPO +TARGET_DBG_DEFINES= $(TARGET_DBG_DEFINES) -DFPO=0 +DBGFLAGS=$(DBGFLAGS) /Oy- +! ELSE +TARGET_DBG_DEFINES= $(TARGET_DBG_DEFINES) -DFPO=1 +DBGFLAGS=$(DBGFLAGS) /Oy +! ENDIF +!ELSE +TARGET_DBG_DEFINES= $(TARGET_DBG_DEFINES) -DFPO=0 +DBGFLAGS=$(DBGFLAGS) /Oy- +386_ADBGFLAGS=$(386_ADBGFLAGS) /Zi +!ENDIF + +# Use /Z7 instead of /Zi + +DBGFLAGS=$(DBGFLAGS:/Zi=/Z7) + +!IFDEF NTLEGO +DBGFLAGS=$(DBGFLAGS) /Z7 +386_ADBGFLAGS=$(386_ADBGFLAGS) /Zi +LINKER_FLAGS=$(LINKER_FLAGS) -debug:full -debugtype:cv,fixup +LINKER_MERGE_RDATA= +!ENDIF + +!IF "$(BROWSER_INFO)" == "yes" +BROWSER= -FR$*.sbr +!ELSE +BROWSER= +!ENDIF + + +# +# 386 option control +# + +ENV_DEFINES= $(MSC_CPPFLAGS) $(NTCPPFLAGS) + +!IF "$(HALTYPE)" == "" +HALDEF= +!ELSE +HALDEF=-D$(HALTYPE)=1 +!ENDIF + +STD_DEFINES= -D_X86_=1 -Di386=1 $(HALDEF) $(MSC_CALL_DEFINE) $(STD_DEFINES) + +CDEFINES=$(STD_DEFINES) $(TARGET_DBG_DEFINES) $(ENV_DEFINES) \ + $(LIBC_DEFINES) $(C_DEFINES) $(NET_C_DEFINES) +CFLAGS=$(386_FLAGS) $(NT386FLAGS) $(STDFLAGS) $(DBGFLAGS) \ + $(BROWSER) $(386_PERFFLAGS) $(USER_C_FLAGS) +386_ASMFLAGS=$(386_ADBGFLAGS) $(BROWSER) $(STD_DEFINES) \ + $(TARGET_DBG_DEFINES) $(ENV_DEFINES) $(ASM_DEFINES) + +386_CDEFINES=$(CDEFINES) +386_CFLAGS=$(CFLAGS) + +CC_NAME = cl -nologo + +C_COMPILER_NAME = $(CC_NAME) +CXX_COMPILER_NAME = $(CC_NAME) +C_PREPROCESSOR_NAME = $(CC_NAME) + +GLOBAL_C_FLAGS = -Ii386\ -I. $(INCPATH1) $(CDEFINES) $(CFLAGS) + +C_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED) $(COMPILER_WARNINGS) +CXX_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED_CXX) $(COMPILER_WARNINGS) +C_PREPROCESSOR_FLAGS = $(GLOBAL_C_FLAGS) -EP -Tc + +C_COMPILER = $(C_COMPILER_NAME) $(C_COMPILER_FLAGS) +CXX_COMPILER = $(CXX_COMPILER_NAME) $(CXX_COMPILER_FLAGS) +C_PREPROCESSOR = $(C_PREPROCESSOR_NAME) $(C_PREPROCESSOR_FLAGS) + +386_ASSEMBLER=ml -c -coff -Cx -nologo -Ii386\ -I. $(INCPATH1) -Zm $(386_ASMFLAGS) + +ECHO_MSG=$(C_COMPILER) $< +ECHO_PRECOMPILED_MSG=$(C_COMPILER) /Yl$(TARGETNAME) $(HEADERFILE) $(HEADEROBJ) $(PRECOMPILED_FLAG) $(PRECOMPILED_INCLUDE) + +{}.c{}.asm: + $(C_COMPILER_NAME) @<< /Fa $(MAKEDIR)\$(<F) +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\i386\}.asm{}.lst: + $(386_ASSEMBLER) /Fl$@ /Foobj\i386\$(@B).obj $< + +{i386\}.asm{}.lst: + $(386_ASSEMBLER) /Fl$@ /Fo$(MAKEDIR)\obj\i386\$(@B).obj $< + +{..\i386\}.asm{obj\i386\}.obj: + $(386_ASSEMBLER) -Fo$(MAKEDIR)\$@ $< + +{i386\}.asm{obj\i386\}.obj: + $(386_ASSEMBLER) -Fo$(MAKEDIR)\$@ $< + +LINKFLAGS=$(LNKFLAGS) + +LIBRARY_OBJS=$(LINKLIBS) $(OBJECTS) + +!IFDEF TUKWILA +_NTTREE=$(_NT386TREE) +!ENDIF + +!IF DEFINED (CAIRO_PRODUCT) +! IF DEFINED (_CAIRO386TREE) +_NTTREE=$(_CAIRO386TREE) +! ENDIF +!ELSEIF DEFINED (CHICAGO_PRODUCT) +! IF DEFINED (_CHICAGO386TREE) +_NTTREE=$(_CHICAGO386TREE) +! elseif defined(_NT386TREE) +_NTTREE=$(_NT386TREE) +! ENDIF +!ELSEIF DEFINED (_NT386TREE) +_NTTREE=$(_NT386TREE) +!ENDIF + +!IFDEF KERNEL_MODE +_NTTREE=$(_NT386TREE)\km +!ENDIF + +!IFDEF _NT386LIBS +_NTLIBS=$(_NT386LIBS) +!ENDIF + +COPYDST=$(386COPYDST) +LIB_COPY=nti386cp.cmd + +!IF "$(NTDEBUGTYPE)" == "windbg" || "$(NTDEBUGTYPE)" == "both" +NTTEST_LINK_OPTIONS=-entry:main +!ELSE +NTTEST_LINK_OPTIONS=-fixed -base:0x80100000 -entry:main +!ENDIF diff --git a/private/utils/ntbackup/exchange/build/inc/common.ver b/private/utils/ntbackup/exchange/build/inc/common.ver new file mode 100644 index 000000000..00c8f6b17 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/common.ver @@ -0,0 +1,96 @@ + +/*---------------------------------------------------------------*/ +/* */ +/* The following section actually creates the version structure. */ +/* They are ignored if we are not being invoked by RC. */ +/* */ +/* ntverp.H must be included before including this file */ +/* */ +/* If VER_LEGALCOPYRIGHT_STR is not defined, it will be */ +/* constructed using VER_LEGALCOPYRIGHT_YEARS, so at least one */ +/* these macros must be defined before including this file. */ +/* */ +/* VER_FILETYPE, VER_FILESUBTYPE, VER_FILEDESCRIPTION_STR, and */ +/* VER_INTERNALNAME_STR must be defined before including this */ +/* file. */ +/* */ +/* If VER_FILEVERSION is not defined, VER_PRODUCTVERSION will be */ +/* used instead. If VER_FILEVERSION_STR is not defined, */ +/* VER_PRODUCTVERSION_STR will be used instead. */ +/* */ +/* If VER_ORIGINALFILENAME_STR is not defined, it is set to */ +/* the value in VER_INTERNALNAME_STR. */ +/* */ +/* If INTL is defined, then this is assumed to be an */ +/* an international build; two string blocks will be created, */ +/* (since all version resources must have English), and the */ +/* second one can be localized */ +/* */ +/*---------------------------------------------------------------*/ + +#ifdef RC_INVOKED + +#ifndef VER_LEGALCOPYRIGHT_YEARS +#define VER_LEGALCOPYRIGHT_YEARS "1981-1995" +#endif + +#ifndef VER_LEGALCOPYRIGHT_STR +#define VER_LEGALCOPYRIGHT_STR "Copyright \251 Microsoft Corp. " VER_LEGALCOPYRIGHT_YEARS +#endif + +#ifndef VER_PRODUCTNAME_STR +#define VER_PRODUCTNAME_STR "Microsoft\256 Windows NT(TM) Operating System" +#endif + +#ifndef VER_PRODUCTVERSION +#define VER_PRODUCTVERSION 4,00,01,552 +#endif + +#ifndef VER_FILEVERSION +#define VER_FILEVERSION VER_PRODUCTVERSION +#endif + +#ifndef VER_PRODUCTVERSION_STR +#define VER_PRODUCTVERSION_STR "4.00" +#endif + +#ifndef VER_FILEVERSION_STR +#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR +#endif + +#ifndef VER_ORIGINALFILENAME_STR +#define VER_ORIGINALFILENAME_STR VER_INTERNALNAME_STR +#endif + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +FILEFLAGSMASK VER_FILEFLAGSMASK +FILEFLAGS VER_FILEFLAGS +FILEOS VER_FILEOS +FILETYPE VER_FILETYPE +FILESUBTYPE VER_FILESUBTYPE +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" /* LANG_ENGLISH/SUBLANG_ENGLISH_US, Unicode CP */ + BEGIN + VALUE "CompanyName", VER_COMPANYNAME_STR + VALUE "FileDescription", VER_FILEDESCRIPTION_STR + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", VER_INTERNALNAME_STR + VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR + VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR + VALUE "ProductName", VER_PRODUCTNAME_STR + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + END + + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0x04B0 + END +END + +#endif diff --git a/private/utils/ntbackup/exchange/build/inc/ntddscsi.h b/private/utils/ntbackup/exchange/build/inc/ntddscsi.h new file mode 100644 index 000000000..332821056 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/ntddscsi.h @@ -0,0 +1,229 @@ +/*++ BUILD Version: 0001 // Increment this if a change has global effects + +Copyright (c) 1990-1993 Microsoft Corporation + +Module Name: + + ntddscsi.h + +Abstract: + + This is the include file that defines all constants and types for + accessing the SCSI port adapters. + +Author: + + Jeff Havens + +Revision History: + +--*/ + +#ifndef _NTDDSCSIH_ +#define _NTDDSCSIH_ + +// +// Device Name - this string is the name of the device. It is the name +// that should be passed to NtOpenFile when accessing the device. +// +// Note: For devices that support multiple units, it should be suffixed +// with the Ascii representation of the unit number. +// + +#define IOCTL_SCSI_BASE FILE_DEVICE_CONTROLLER + +#define DD_SCSI_DEVICE_NAME "\\Device\\ScsiPort" + + +// +// NtDeviceIoControlFile IoControlCode values for this device. +// +// Warning: Remember that the low two bits of the code specify how the +// buffers are passed to the driver! +// + +#define IOCTL_SCSI_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_SCSI_MINIPORT CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_SCSI_GET_INQUIRY_DATA CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_SCSI_GET_CAPABILITIES CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_SCSI_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_SCSI_GET_ADDRESS CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_SCSI_RESCAN_BUS CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_SCSI_GET_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS) + +// +// Define the SCSI pass through structure. +// + +typedef struct _SCSI_PASS_THROUGH { + USHORT Length; + UCHAR ScsiStatus; + UCHAR PathId; + UCHAR TargetId; + UCHAR Lun; + UCHAR CdbLength; + UCHAR SenseInfoLength; + UCHAR DataIn; + ULONG DataTransferLength; + ULONG TimeOutValue; + ULONG DataBufferOffset; + ULONG SenseInfoOffset; + UCHAR Cdb[16]; +}SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH; + +// +// Define the SCSI pass through direct structure. +// + +typedef struct _SCSI_PASS_THROUGH_DIRECT { + USHORT Length; + UCHAR ScsiStatus; + UCHAR PathId; + UCHAR TargetId; + UCHAR Lun; + UCHAR CdbLength; + UCHAR SenseInfoLength; + UCHAR DataIn; + ULONG DataTransferLength; + ULONG TimeOutValue; + PVOID DataBuffer; + ULONG SenseInfoOffset; + UCHAR Cdb[16]; +}SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT; + +// +// Define SCSI information. +// Used with the IOCTL_SCSI_GET_INQUIRY_DATA IOCTL. +// + +typedef struct _SCSI_BUS_DATA { + UCHAR NumberOfLogicalUnits; + UCHAR InitiatorBusId; + ULONG InquiryDataOffset; +}SCSI_BUS_DATA, *PSCSI_BUS_DATA; + +// +// Define SCSI adapter bus information structure.. +// Used with the IOCTL_SCSI_GET_INQUIRY_DATA IOCTL. +// + +typedef struct _SCSI_ADAPTER_BUS_INFO { + UCHAR NumberOfBuses; + SCSI_BUS_DATA BusData[1]; +} SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO; + +// +// Define SCSI adapter bus information. +// Used with the IOCTL_SCSI_GET_INQUIRY_DATA IOCTL. +// + +typedef struct _SCSI_INQUIRY_DATA { + UCHAR PathId; + UCHAR TargetId; + UCHAR Lun; + BOOLEAN DeviceClaimed; + ULONG InquiryDataLength; + ULONG NextInquiryDataOffset; + UCHAR InquiryData[1]; +}SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA; + +// +// Define header for I/O control SRB. +// + +typedef struct _SRB_IO_CONTROL { + ULONG HeaderLength; + UCHAR Signature[8]; + ULONG Timeout; + ULONG ControlCode; + ULONG ReturnCode; + ULONG Length; +} SRB_IO_CONTROL, *PSRB_IO_CONTROL; + +// +// SCSI port driver capabilities structure. +// + +typedef struct _IO_SCSI_CAPABILITIES { + + // + // Length of this structure + // + + ULONG Length; + + // + // Maximum transfer size in single SRB + // + + ULONG MaximumTransferLength; + + // + // Maximum number of physical pages per data buffer + // + + ULONG MaximumPhysicalPages; + + // + // Async calls from port to class + // + + ULONG SupportedAsynchronousEvents; + + // + // Alignment mask for data transfers. + // + + ULONG AlignmentMask; + + // + // Supports tagged queuing + // + + BOOLEAN TaggedQueuing; + + // + // Host adapter scans down for bios devices. + // + + BOOLEAN AdapterScansDown; + + // + // The host adapter uses programmed I/O. + // + + BOOLEAN AdapterUsesPio; + +} IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES; + +typedef struct _SCSI_ADDRESS { + ULONG Length; + UCHAR PortNumber; + UCHAR PathId; + UCHAR TargetId; + UCHAR Lun; +}SCSI_ADDRESS, *PSCSI_ADDRESS; + +// +// Define structure for returning crash dump pointers. +// + +typedef struct _ADAPTER_OBJECT; + +typedef struct _DUMP_POINTERS { + struct _ADAPTER_OBJECT *AdapterObject; + PVOID MappedRegisterBase; + PVOID PortConfiguration; + PVOID CommonBufferVa; + LARGE_INTEGER CommonBufferPa; + ULONG CommonBufferSize; +} DUMP_POINTERS, *PDUMP_POINTERS; + +// +// Define values for pass-through DataIn field. +// + +#define SCSI_IOCTL_DATA_OUT 0 +#define SCSI_IOCTL_DATA_IN 1 +#define SCSI_IOCTL_DATA_UNSPECIFIED 2 +#endif diff --git a/private/utils/ntbackup/exchange/build/inc/ntverp.h b/private/utils/ntbackup/exchange/build/inc/ntverp.h new file mode 100644 index 000000000..e36cae5ed --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/ntverp.h @@ -0,0 +1,47 @@ +/**************************************************************************** + * * + * ntverp.H -- Version information for internal builds * + * * + * This file is only modified by the official builder to update the * + * VERSION, VER_PRODUCTVERSION, VER_PRODUCTVERSION_STR and * + * VER_PRODUCTBETA_STR values. * + * * + ****************************************************************************/ + +/*--------------------------------------------------------------*/ +/* the following values should be modified by the official */ +/* builder for each build */ +/*--------------------------------------------------------------*/ + +#define VER_PRODUCTBUILD 599 +#define VER_PRODUCTVERSION_STR "4.00" +#define VER_PRODUCTVERSION 4,00,VER_PRODUCTBUILD,1 +#define VER_PRODUCTBETA_STR "" + +/*--------------------------------------------------------------*/ +/* the following section defines values used in the version */ +/* data structure for all files, and which do not change. */ +/*--------------------------------------------------------------*/ + +/* default is nodebug */ +#if DBG +#define VER_DEBUG VS_FF_DEBUG +#else +#define VER_DEBUG 0 +#endif + +/* default is prerelease */ +#if BETA +#define VER_PRERELEASE VS_FF_PRERELEASE +#else +#define VER_PRERELEASE 0 +#endif + +#define VER_FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#define VER_FILEOS VOS_NT_WINDOWS32 +#define VER_FILEFLAGS (VER_PRERELEASE|VER_DEBUG) + +#define VER_COMPANYNAME_STR "Microsoft Corporation" +#define VER_PRODUCTNAME_STR "Microsoft\256 Windows NT(TM) Operating System" +#define VER_LEGALTRADEMARKS_STR \ +"Microsoft\256 is a registered trademark of Microsoft Corporation. Windows NT(TM) is a trademark of Microsoft Corporation." diff --git a/private/utils/ntbackup/exchange/build/inc/pcrt32.h b/private/utils/ntbackup/exchange/build/inc/pcrt32.h new file mode 100644 index 000000000..9a6e59aec --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/pcrt32.h @@ -0,0 +1,39 @@ +/* + * porting macros for c runtimes - use these to let 16 bit crt calls work + * properly on 32 bit code. + */ + + +#define _ffree free +#define _fmalloc malloc +#define _fmemccpy memccpy +#define _fmemchr memchr +#define _fmemcmp memcmp +#define _fmemcpy memcpy +#define _fmemicmp memicmp +#define _fmemmove memmove +#define _fmemset memset +#define _frealloc realloc +#define _fstrcat strcat +#define _fstrchr strchr +#define _fstrcmp strcmp +#define _fstrcpy strcpy +#define _fstrcspn strcspn +#define _fstrdup strdup +#define _fstricmp stricmp +#define _fstrlen strlen +#define _fstrlwr strlwr +#define _fstrncat strncat +#define _fstrncmp strncmp +#define _fstrncpy strncpy +#define _fstrnicmp strnicmp +#define _fstrnset strnset +#define _fstrpbrk strpbrk +#define _fstrrchr strrchr +#define _fstrrev strrev +#define _fstrset strset +#define _fstrspn strspn +#define _fstrstr strstr +#define _fstrtok strtok +#define _fstrupr strupr + diff --git a/private/utils/ntbackup/exchange/build/inc/plan32.h b/private/utils/ntbackup/exchange/build/inc/plan32.h new file mode 100644 index 000000000..728c0d82e --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/plan32.h @@ -0,0 +1,14 @@ +/*****************************************************************************\ +* PLAN32.H - PORTABILITY MAPPING HEADER FILE +* +* This file provides macros to map portable lanman code to its 32 bit form. +\*****************************************************************************/ + + +/*----------------------------------LANMAN----------------------------------*/ + +/* LANMAN MACROS: */ + +#define COPYTOARRAY(pDest, pSource) pDest = pSource + +/* LANMAN API: */ diff --git a/private/utils/ntbackup/exchange/build/inc/port1632.h b/private/utils/ntbackup/exchange/build/inc/port1632.h new file mode 100644 index 000000000..d24831d19 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/port1632.h @@ -0,0 +1,40 @@ +/***************************************************************************\ +* Module Name: 1632PORT.H +* +* Copyright (c) 1985-1993, Microsoft Corporation +* +* Master include file for Portable Windows applications. +* +* History: +* sanfords 1/10/91 Created +* +\***************************************************************************/ + +/* + * This file maps a Meta-API for Windows to specific 16-bit or 32-bit forms + * allowing a single portable C source for windows to work on multiple + * versions of Windows. + */ + +#ifndef _PORT1632_ +#define _PORT1632_ + +#if defined(WIN16) +/* ---------------- Maps to windows 3.0 and 3.1 16-bit APIs ----------------*/ +#include "ptypes16.h" +#include "pwin16.h" +#include "plan16.h" +/* -------------------------------------------------------------------------*/ + +#elif defined(WIN32) +/* ---------------- Maps to windows 3.2 and 4.0 32-bit APIs ----------------*/ +#include "ptypes32.h" +#include "pcrt32.h" +#include "pwin32.h" +#include "plan32.h" +/* -------------------------------------------------------------------------*/ +#else +#error You must define either WIN32 or WIN16 +#endif /* WIN32 or WIN16 */ +#endif /* ndef _PORT1632_ */ + diff --git a/private/utils/ntbackup/exchange/build/inc/ptypes32.h b/private/utils/ntbackup/exchange/build/inc/ptypes32.h new file mode 100644 index 000000000..8b2118b09 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/ptypes32.h @@ -0,0 +1,62 @@ +/*****************************************************************************\ +* PTYPES32.H - PORTABILITY MAPPING HEADER FILE +* +* This file provides types for 16/32 bit portable code. +\*****************************************************************************/ + +#include <setjmp.h> + +/* TYPES: */ + +#define HUGE_T +typedef DWORD WORD2DWORD ; +typedef DWORD CHARPARM ; +typedef DWORD SHORTPARM ; +typedef DWORD VERSION ; +typedef LPSTR PDLLMEM ; +typedef unsigned long CHAR2ULONG ; +typedef unsigned long USHORT2ULONG ; +typedef unsigned long SHORT2ULONG ; +typedef unsigned long INT2DWORD ; +typedef unsigned short BYTE2WORD ; +typedef POINTS MPOINT ; +typedef WORD INT2WORD ; +typedef jmp_buf MCATCHBUF ; +typedef MCATCHBUF *LPMCATCHBUF ; + +#define HFILE2INT(h, flags) (INT)_open_osfhandle((long)(h), (int)(flags)) +#define INT2HFILE(i) (HFILE)_get_osfhandle((int)(i)) +#define DUPHFILE(h) MDupHandle(h) +#define MGLOBALPTR(p) (LPSTR)(p) + +/* PRAGMAS */ + +#define _LOADDS +#define _EXPORT + +#define ERROR_GETADDR_FAILED 0x8001 + +#define INITWINDOWS() + +#define WF_PMODE 0x0001 /* from winkrnl.h */ +#define WF_CPU286 0x0002 +#define WF_CPU386 0x0004 +#define WF_CPU486 0x0008 +#define WF_STANDARD 0x0010 +#define WF_WIN286 0x0010 +#define WF_ENHANCED 0x0020 +#define WF_WIN386 0x0020 +#define WF_CPU086 0x0040 +#define WF_CPU186 0x0080 +#define WF_LARGEFRAME 0x0100 +#define WF_SMALLFRAME 0x0200 +#define WF_80x87 0x0400 + + +/* DEFINITIONS */ + + +#define TF_FORCEDRIVE (BYTE)0x80 +#define DLLMEM_MOVEABLE 0 +#define DLLMEM_ZEROINIT GMEM_ZEROINIT + diff --git a/private/utils/ntbackup/exchange/build/inc/pwin32.h b/private/utils/ntbackup/exchange/build/inc/pwin32.h new file mode 100644 index 000000000..2b9de0fe7 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/pwin32.h @@ -0,0 +1,305 @@ +/*****************************************************************************\ +* PWIN32.H - PORTABILITY MAPPING HEADER FILE +* +* This file provides macros to map portable windows code to its 32 bit form. +\*****************************************************************************/ + +/*-----------------------------------USER------------------------------------*/ + +/* HELPER MACROS */ + +#define MAPVALUE(v16, v32) (v32) +#define MAPTYPE(v16, v32) v32 +#define MAKEMPOINT(l) (*((MPOINT *)&(l))) +#define MPOINT2POINT(mpt,pt) ((pt).x = (mpt).x, (pt).y = (mpt).y) +#define POINT2MPOINT(pt, mpt) ((mpt).x = (SHORT)(pt).x, (mpt).y = (SHORT)(pt).y) +#define LONG2POINT(l, pt) ((pt).x = (SHORT)LOWORD(l), (pt).y = (SHORT)HIWORD(l)) + +#define SETWINDOWUINT(hwnd, index, ui) (UINT)SetWindowLong(hwnd, index, (LONG)(ui)) +#define GETWINDOWUINT(hwnd, index) (UINT)GetWindowLong(hwnd, index) +#define SETCLASSUINT(hwnd, index, ui) (UINT)SetClassLong(hwnd, index, (LONG)(ui)) +#define GETCLASSUINT(hwnd, index) (UINT)GetClassLong(hwnd, index) + +#define GETCBCLSEXTRA(hwnd) GETCLASSUINT(hwnd, GCL_CBCLSEXTRA) +#define SETCBCLSEXTRA(hwnd, cb) SETCLASSUINT(hwnd, GCL_CBCLSEXTRA, cb) +#define GETCBWNDEXTRA(hwnd) GETCLASSUINT(hwnd, GCL_CBWNDEXTRA) +#define SETCBWNDEXTRA(hwnd, cb) SETCLASSUINT(hwnd, GCL_CBWNDEXTRA, cb) +#define GETCLASSBRBACKGROUND(hwnd) (HBRUSH)GETCLASSUINT(hwnd, GCL_HBRBACKGROUND) +#define SETCLASSBRBACKGROUND(hwnd, h) (HBRUSH)SETCLASSUINT(hwnd, GCL_HBRBACKGROUND, h) +#define GETCLASSCURSOR(hwnd) (HCURSOR)GETCLASSUINT(hwnd, GCL_HCURSOR) +#define SETCLASSCURSOR(hwnd, h) (HCURSOR)SETCLASSUINT(hwnd, GCL_HCURSOR, h) +#define GETCLASSHMODULE(hwnd) (HMODULE)GETCLASSUINT(hwnd, GCL_HMODULE) +#define SETCLASSHMODULE(hwnd, h) (HMODULE)SETCLASSUINT(hwnd, GCL_HMODULE, h) +#define GETCLASSICON(hwnd) (HICON)GETCLASSUINT((hwnd), GCL_HICON) +#define SETCLASSICON(hwnd, h) (HICON)SETCLASSUINT((hwnd), GCL_HICON, h) +#define GETCLASSSTYLE(hwnd) GETCLASSUINT((hwnd), GCL_STYLE) +#define SETCLASSSTYLE(hwnd, style) SETCLASSUINT((hwnd), GCL_STYLE, style) +#define GETHWNDINSTANCE(hwnd) (HINSTANCE)GETWINDOWUINT((hwnd), GWL_HINSTANCE) +#define SETHWNDINSTANCE(hwnd, h) (HINSTANCE)SETWINDOWUINT((hwnd), GWL_HINSTANCE, h) +#define GETHWNDPARENT(hwnd) (HWND)GETWINDOWUINT((hwnd), GWL_HWNDPARENT) +#define SETHWNDPARENT(hwnd, h) (HWND)SETWINDOWUINT((hwnd), GWL_HWNDPARENT, h) +#define GETWINDOWID(hwnd) GETWINDOWUINT((hwnd), GWL_ID) +#define SETWINDOWID(hwnd, id) SETWINDOWUINT((hwnd), GWL_ID, id) + +/* USER API */ + +#define MDlgDirSelect(hDlg, lpstr, nLength, nIDListBox) \ + DlgDirSelectEx(hDlg, lpstr, nLength, nIDListBox) + +#define MDlgDirSelectCOMBOBOX(hDlg, lpstr, nLength, nIDComboBox) \ + DlgDirSelectComboBoxEx(hDlg, lpstr, nLength, nIDComboBox) + +#define MGetLastError GetLastError + +#define MMain(hInst, hPrevInst, lpCmdLine, nCmdShow) \ + INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, \ + INT nCmdShow) { \ + INT _argc; \ + CHAR **_argv; + +LPSTR MGetCmdLine(VOID); +DWORD WINAPI MSendMsgEM_GETSEL(HWND hDlg, WORD2DWORD * piStart, WORD2DWORD * piEnd); + + +/* USER MESSAGES: */ + +#define GET_WPARAM(wp, lp) (wp) +#define GET_LPARAM(wp, lp) (lp) + +#define GET_WM_ACTIVATE_STATE(wp, lp) LOWORD(wp) +#define GET_WM_ACTIVATE_FMINIMIZED(wp, lp) (BOOL)HIWORD(wp) +#define GET_WM_ACTIVATE_HWND(wp, lp) (HWND)(lp) +#define GET_WM_ACTIVATE_MPS(s, fmin, hwnd) \ + (WPARAM)MAKELONG((s), (fmin)), (LONG)(hwnd) + +#define GET_WM_CHARTOITEM_CHAR(wp, lp) (TCHAR)LOWORD(wp) +#define GET_WM_CHARTOITEM_POS(wp, lp) HIWORD(wp) +#define GET_WM_CHARTOITEM_HWND(wp, lp) (HWND)(lp) +#define GET_WM_CHARTOITEM_MPS(ch, pos, hwnd) \ + (WPARAM)MAKELONG((pos), (ch)), (LONG)(hwnd) + +#define GET_WM_COMMAND_ID(wp, lp) LOWORD(wp) +#define GET_WM_COMMAND_HWND(wp, lp) (HWND)(lp) +#define GET_WM_COMMAND_CMD(wp, lp) HIWORD(wp) +#define GET_WM_COMMAND_MPS(id, hwnd, cmd) \ + (WPARAM)MAKELONG(id, cmd), (LONG)(hwnd) + +#define WM_CTLCOLOR 0x0019 + +#define GET_WM_CTLCOLOR_HDC(wp, lp, msg) (HDC)(wp) +#define GET_WM_CTLCOLOR_HWND(wp, lp, msg) (HWND)(lp) +#define GET_WM_CTLCOLOR_TYPE(wp, lp, msg) (WORD)(msg - WM_CTLCOLORMSGBOX) +#define GET_WM_CTLCOLOR_MSG(type) (WORD)(WM_CTLCOLORMSGBOX+(type)) +#define GET_WM_CTLCOLOR_MPS(hdc, hwnd, type) \ + (WPARAM)(hdc), (LONG)(hwnd) + + +#define GET_WM_MENUSELECT_CMD(wp, lp) LOWORD(wp) +#define GET_WM_MENUSELECT_FLAGS(wp, lp) (UINT)(int)(short)HIWORD(wp) +#define GET_WM_MENUSELECT_HMENU(wp, lp) (HMENU)(lp) +#define GET_WM_MENUSELECT_MPS(cmd, f, hmenu) \ + (WPARAM)MAKELONG(cmd, f), (LONG)(hmenu) + +// Note: the following are for interpreting MDIclient to MDI child messages. +#define GET_WM_MDIACTIVATE_FACTIVATE(hwnd, wp, lp) (lp == (LONG)hwnd) +#define GET_WM_MDIACTIVATE_HWNDDEACT(wp, lp) (HWND)(wp) +#define GET_WM_MDIACTIVATE_HWNDACTIVATE(wp, lp) (HWND)(lp) +// Note: the following is for sending to the MDI client window. +#define GET_WM_MDIACTIVATE_MPS(f, hwndD, hwndA)\ + (WPARAM)(hwndA), 0 + +#define GET_WM_MDISETMENU_MPS(hmenuF, hmenuW) (WPARAM)hmenuF, (LONG)hmenuW + +#define GET_WM_MENUCHAR_CHAR(wp, lp) (TCHAR)LOWORD(wp) +#define GET_WM_MENUCHAR_HMENU(wp, lp) (HMENU)(lp) +#define GET_WM_MENUCHAR_FMENU(wp, lp) (BOOL)HIWORD(wp) +#define GET_WM_MENUCHAR_MPS(ch, hmenu, f) \ + (WPARAM)MAKELONG(ch, f), (LONG)(hmenu) + +#define GET_WM_PARENTNOTIFY_MSG(wp, lp) LOWORD(wp) +#define GET_WM_PARENTNOTIFY_ID(wp, lp) HIWORD(wp) +#define GET_WM_PARENTNOTIFY_HWNDCHILD(wp, lp) (HWND)(lp) +#define GET_WM_PARENTNOTIFY_X(wp, lp) (INT)LOWORD(lp) +#define GET_WM_PARENTNOTIFY_Y(wp, lp) (INT)HIWORD(lp) +#define GET_WM_PARENTNOTIFY_MPS(msg, id, hwnd) \ + (WPARAM)MAKELONG(id, msg), (LONG)(hwnd) +#define GET_WM_PARENTNOTIFY2_MPS(msg, x, y) \ + (WPARAM)MAKELONG(0, msg), MAKELONG(x, y) + +#define GET_WM_VKEYTOITEM_CODE(wp, lp) (INT)LOWORD(wp) +#define GET_WM_VKEYTOITEM_ITEM(wp, lp) HIWORD(wp) +#define GET_WM_VKEYTOITEM_HWND(wp, lp) (HWND)(lp) +#define GET_WM_VKEYTOITEM_MPS(code, item, hwnd) \ + (WPARAM)MAKELONG(item, code), (LONG)(hwnd) + +#define GET_EM_SETSEL_START(wp, lp) (INT)(wp) +#define GET_EM_SETSEL_END(wp, lp) (lp) +#define GET_EM_SETSEL_MPS(iStart, iEnd) \ + (WPARAM)(iStart), (LONG)(iEnd) + +#define GET_EM_LINESCROLL_MPS(vert, horz) \ + (WPARAM)horz, (LONG)vert + +#define GET_WM_CHANGECBCHAIN_HWNDNEXT(wp, lp) (HWND)(lp) + +#define GET_WM_HSCROLL_CODE(wp, lp) LOWORD(wp) +#define GET_WM_HSCROLL_POS(wp, lp) HIWORD(wp) +#define GET_WM_HSCROLL_HWND(wp, lp) (HWND)(lp) +#define GET_WM_HSCROLL_MPS(code, pos, hwnd) \ + (WPARAM)MAKELONG(code, pos), (LONG)(hwnd) + +#define GET_WM_VSCROLL_CODE(wp, lp) LOWORD(wp) +#define GET_WM_VSCROLL_POS(wp, lp) HIWORD(wp) +#define GET_WM_VSCROLL_HWND(wp, lp) (HWND)(lp) +#define GET_WM_VSCROLL_MPS(code, pos, hwnd) \ + (WPARAM)MAKELONG(code, pos), (LONG)(hwnd) + +/* DDE macros */ + +LONG WINAPI PackDDElParam(UINT msg, UINT uiLo, UINT uiHi); +BOOL WINAPI UnpackDDElParam(UINT msg, LONG lParam, PUINT puiLo, PUINT puiHi); +BOOL WINAPI FreeDDElParam(UINT msg, LONG lParam); +UINT WINAPI MGetDDElParamLo(UINT msg, LONG lParam); +UINT WINAPI MGetDDElParamHi(UINT msg, LONG lParam); +BOOL WINAPI MPostDDEMsg(HWND hTo, UINT msg, HWND hFrom, UINT uiLo, UINT uiHi); + +#define DDEFREE(msg, lp) FreeDDElParam(msg, lp) + +#define GET_WM_DDE_ACK_STATUS(wp, lp) ((WORD)MGetDDElParamLo(WM_DDE_ACK, lp)) +#define GET_WM_DDE_ACK_ITEM(wp, lp) ((ATOM)MGetDDElParamHi(WM_DDE_ACK, lp)) +#define MPostWM_DDE_ACK(hTo, hFrom, wStatus, aItem) \ + MPostDDEMsg(hTo, WM_DDE_ACK, hFrom, (UINT)wStatus, (UINT)aItem) + +#define GET_WM_DDE_ADVISE_HOPTIONS(wp, lp) ((HANDLE)MGetDDElParamLo(WM_DDE_ADVISE, lp)) +#define GET_WM_DDE_ADVISE_ITEM(wp, lp) ((ATOM)MGetDDElParamHi(WM_DDE_ADVISE, lp)) +#define MPostWM_DDE_ADVISE(hTo, hFrom, hOptions, aItem) \ + MPostDDEMsg(hTo, WM_DDE_ADVISE, hFrom, (UINT)hOptions, (UINT)aItem) + +#define GET_WM_DDE_DATA_HDATA(wp, lp) ((HANDLE)MGetDDElParamLo(WM_DDE_DATA, lp)) +#define GET_WM_DDE_DATA_ITEM(wp, lp) ((ATOM)MGetDDElParamHi(WM_DDE_DATA, lp)) +#define MPostWM_DDE_DATA(hTo, hFrom, hData, aItem) \ + MPostDDEMsg(hTo, WM_DDE_DATA, hFrom, (UINT)hData, (UINT)aItem) + +#define GET_WM_DDE_EXECUTE_HDATA(wp, lp) ((HANDLE)lp) +#define MPostWM_DDE_EXECUTE(hTo, hFrom, hDataExec) \ + PostMessage(hTo, WM_DDE_EXECUTE, (WPARAM)hFrom, (LONG)hDataExec) + +#define GET_WM_DDE_POKE_HDATA(wp, lp) ((HANDLE)MGetDDElParamLo(WM_DDE_POKE, lp)) +#define GET_WM_DDE_POKE_ITEM(wp, lp) ((ATOM)MGetDDElParamHi(WM_DDE_POKE, lp)) +#define MPostWM_DDE_POKE(hTo, hFrom, hData, aItem) \ + MPostDDEMsg(hTo, WM_DDE_POKE, hFrom, (UINT)hData, (UINT)aItem) + +#define GET_WM_DDE_EXECACK_STATUS(wp, lp) ((WORD)MGetDDElParamLo(WM_DDE_ACK, lp)) +#define GET_WM_DDE_EXECACK_HDATA(wp, lp) ((HANDLE)MGetDDElParamHi(WM_DDE_ACK, lp)) +#define MPostWM_DDE_EXECACK(hTo, hFrom, wStatus, hCommands) \ + MPostDDEMsg(hTo, WM_DDE_ACK, hFrom, (UINT)wStatus, (UINT)hCommands) + +#define GET_WM_DDE_REQUEST_FORMAT(wp, lp) ((ATOM)LOWORD(lp)) +#define GET_WM_DDE_REQUEST_ITEM(wp, lp) ((ATOM)HIWORD(lp)) +#define MPostWM_DDE_REQUEST(hTo, hFrom, fmt, aItem) \ + MPostDDEMsg(hTo, WM_DDE_REQUEST, hFrom, (UINT)fmt, (UINT)aItem) + +#define GET_WM_DDE_UNADVISE_FORMAT(wp, lp) ((ATOM)LOWORD(lp)) +#define GET_WM_DDE_UNADVISE_ITEM(wp, lp) ((ATOM)HIWORD(lp)) +#define MPostWM_DDE_UNADVISE(hTo, hFrom, fmt, aItem) \ + MPostDDEMsg(hTo, WM_DDE_UNADVISE, hFrom, (UINT)fmt, (UINT)aItem) + +#define MPostWM_DDE_TERMINATE(hTo, hFrom) \ + PostMessage(hTo, WM_DDE_TERMINATE, (WPARAM)hFrom, 0L) + + +/*-----------------------------------GDI-------------------------------------*/ + +BOOL WINAPI MGetAspectRatioFilter(HDC hdc, INT * pcx, INT * pcy); +BOOL WINAPI MGetBitmapDimension(HANDLE hBitmap, INT * pcx, INT *pcy); +BOOL WINAPI MGetBrushOrg(HDC hdc, INT * px, INT * py); +BOOL WINAPI MGetCurrentPosition(HDC hdc, INT * px, INT * py); +BOOL WINAPI MGetTextExtent(HDC hdc, LPSTR lpstr, INT cnt, INT *pcx, INT *pcy); +BOOL WINAPI MGetViewportExt(HDC hdc, INT * pcx, INT * pcy); +BOOL WINAPI MGetViewportOrg(HDC hdc, INT * px, INT * py); +BOOL WINAPI MGetWindowExt(HDC hdc, INT * pcx, INT * pcy); +BOOL WINAPI MGetWindowOrg(HDC hdc, INT * px, INT * py); +HANDLE WINAPI MGetMetaFileBits(HMETAFILE hmf); +HMETAFILE WINAPI MSetMetaFileBits(HANDLE h); + +#define MCreateDiscardableBitmap(h, x, y) CreateCompatibleBitmap(h, (DWORD)(x), (DWORD)(y)) +#define MMoveTo(hdc, x, y) MoveToEx(hdc, x, y, NULL) +#define MOffsetViewportOrg(hdc, x, y) OffsetViewportOrgEx(hdc, x, y, NULL) +#define MOffsetWindowOrg(hdc, x, y) OffsetWindowOrgEx(hdc, x, y, NULL) +#define MScaleViewportExt(hdc, x, y, xd, yd) ScaleViewportExtEx(hdc, x, y, xd, yd, NULL) +#define MScaleWindowExt(hdc, x, y, xd, yd) ScaleWindowExtEx(hdc, x, y, xd, yd, NULL) +#define MSetBitmapDimension(hbm, x, y) SetBitmapDimensionEx(hbm, (DWORD)(x), (DWORD)(y), NULL) +#define MSetBrushOrg(hbm, x, y) SetBrushOrgEx(hbm, x, y, NULL) +#define MSetViewportExt(hdc, x, y) SetViewportExtEx(hdc, x, y, NULL) +#define MSetViewportOrg(hdc, x, y) SetViewportOrgEx(hdc, x, y, NULL) +#define MSetWindowExt(hdc, x, y) SetWindowExtEx(hdc, x, y, NULL) +#define MSetWindowOrg(hdc, x, y) SetWindowOrgEx(hdc, x, y, NULL) + +/* Removed APIs */ + +#define MUnrealizeObject(h) ((h), TRUE) + +/*-------------------------------------DEV-----------------------------------*/ + +DWORD WINAPI MDeviceCapabilities(LPSTR lpDriverName, LPSTR lpDeviceName, + LPSTR lpPort, WORD2DWORD nIndex, LPSTR lpOutput, LPDEVMODE lpDevMode); +BOOL WINAPI MDeviceMode(HWND hWnd, LPSTR lpDriverName, LPSTR lpDeviceName, LPSTR lpOutput); +WORD2DWORD WINAPI MExtDeviceMode(HWND hWnd,LPSTR lpDriverName, + LPDEVMODE lpDevModeOutput, LPSTR lpDeviceName, LPSTR lpPort, + LPDEVMODE lpDevModeInput, LPSTR lpProfile, WORD2DWORD flMode); + +/*-----------------------------------KERNEL----------------------------------*/ + +HFILE WINAPI MDupHandle(HFILE h); +BOOL WINAPI MFreeDOSEnvironment(LPSTR lpEnv); +HANDLE WINAPI MGetInstHandle(VOID); +LPSTR WINAPI MGetDOSEnvironment(VOID); +WORD WINAPI MGetDriveType(INT nDrive); +BYTE WINAPI MGetTempDrive(BYTE cDriveLtr); +INT WINAPI MGetTempFileName(BYTE cDriveLtr, LPSTR lpstrPrefix, WORD wUnique, LPSTR lpTempFileName); +INT WINAPI MReadComm(HFILE nCid, LPSTR lpBuf, INT nSize); +INT WINAPI MWriteComm(HFILE nCid, LPSTR lpBuf, INT nSize); + + +#define GETMAJORVERSION(x) ((x)&0xff) +#define GETMINORVERSION(x) (((x)>>8)&0xff) + +/* FUNCTION MAPPINGS */ + +#define GetInstanceData(hPrevInst, pbuf, cb) (cb) +#define MOpenComm(lpstr, wqin, wqout) (wqin), (wqout), CreateFile(lpstr, \ + GENERIC_READ | GENERIC_WRITE, 0, \ + NULL, \ + OPEN_EXISTING | TRUNCATE_EXISTING, \ + FILE_FLAG_WRITE_THROUGH, 0) + +#define MSetCommState(h, lpDCB) SetCommState((HANDLE)h, lpDCB) +#define MCloseComm(h) (INT)!CloseHandle((HANDLE)h) +#define MDllSharedAlloc(dwFlags, dwBytes) GlobalAlloc(GMEM_DDESHARE | dwFlags, dwBytes) +#define MDllSharedFlags(hMem) GlobalFlags(hMem) +#define MDllSharedFree GlobalFree +#define MDllSharedHandle GlobalHandle +#define MDllSharedLock GlobalLock +#define MDllSharedRealloc(hMem, dwBytes, dwFlags) \ + GlobalReAlloc(hMem, dwBytes, dwFlags) +#define MDllSharedSize GlobalSize +#define MDllSharedUnlock GlobalUnlock +#define MGetCurrentTask GetCurrentThreadId +#define MGetModuleUsage(h) ((h), 1) +#define MGetWinFlags() WF_PMODE +#define MLoadLibrary(lpsz) LoadLibrary(lpsz) +#define MLocalInit(w, p1, p2) ((w),(p1),(p2),TRUE) +#define MLockData(dummy) +#define MUnlockData(dummy) +#define M_lclose(fh) _lclose((HFILE)fh) +#define M_lcreat (HFILE)_lcreat +#define MOpenFile (HFILE)OpenFile +#define M_llseek(fh, lOff, iOrg) SetFilePointer((HANDLE)fh, lOff, NULL, (DWORD)iOrg) +#define MDeleteFile DeleteFile +#define M_lopen (HFILE)_lopen +#define M_lread(fh, lpBuf, cb) _lread((HFILE)fh, lpBuf, cb) +#define M_lwrite(fh, lpBuf, cb) _lwrite((HFILE)fh, lpBuf, cb) + +#define MCatch setjmp +#define MThrow longjmp + diff --git a/private/utils/ntbackup/exchange/build/inc/uiexport.h b/private/utils/ntbackup/exchange/build/inc/uiexport.h new file mode 100644 index 000000000..6bd0b59f4 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/uiexport.h @@ -0,0 +1,132 @@ +/**********************************************************************/ +/** Microsoft Windows NT **/ +/** Copyright(c) Microsoft Corp., 1992 **/ +/**********************************************************************/ + +/* + uiexport.h + + Prototypes for Net UI exported APIs + + + + FILE HISTORY: + Johnl 17-Apr-1992 Created + +*/ + +#ifndef _UIEXPORT_H_ +#define _UIEXPORT_H_ + + +/* Selections the user can make in the System focus dialog + */ + +/* Low word of the selection type + */ +#define FOCUSDLG_DOMAINS_ONLY (1) +#define FOCUSDLG_SERVERS_ONLY (2) +#define FOCUSDLG_SERVERS_AND_DOMAINS (3) + +/* High word of the selection type contains a bitmask indicating + * which domains to display in the dialog. + * WARNING: This bitmask are shifted up 16 bits from the bitmask in + * \nt\private\net\ui\common\h\domenum.h. If you want to + * modify the values of the bitmask, you will need to + * make corresponding changes to domenum.h. + * + */ + +#define FOCUSDLG_BROWSE_LOGON_DOMAIN 0x00010000 +#define FOCUSDLG_BROWSE_WKSTA_DOMAIN 0x00020000 +#define FOCUSDLG_BROWSE_OTHER_DOMAINS 0x00040000 +#define FOCUSDLG_BROWSE_TRUSTING_DOMAINS 0x00080000 +#define FOCUSDLG_BROWSE_WORKGROUP_DOMAINS 0x00100000 + +/* Some handy combinations of flags. +*/ + +/* FOCUSDLG_BROWSE_LM2X_DOMAINS will return only the domains available + from a LanMan 2.x workstation. This returns just the logon, + workstation, and other domains. This is the default value. +*/ + +#define FOCUSDLG_BROWSE_LM2X_DOMAINS ( FOCUSDLG_BROWSE_LOGON_DOMAIN | \ + FOCUSDLG_BROWSE_WKSTA_DOMAIN | \ + FOCUSDLG_BROWSE_OTHER_DOMAINS ) + +/* + FOCUSDLG_BROWSE_LOCAL_DOMAINS will return only the domains available + to the local machine. This returns the logon, workstation, + and other, plus the domains that trust "us". +*/ + +#define FOCUSDLG_BROWSE_LOCAL_DOMAINS ( FOCUSDLG_BROWSE_LM2X_DOMAINS | \ + FOCUSDLG_BROWSE_TRUSTING_DOMAINS ) + +/* + FOCUSDLG_BROWSE_ALL_DOMAINS is a conglomeration of all potential domain + sources available to the domain enumerator. +*/ + +#define FOCUSDLG_BROWSE_ALL_DOMAINS ( FOCUSDLG_BROWSE_LOCAL_DOMAINS | \ + FOCUSDLG_BROWSE_WORKGROUP_DOMAINS ) + +/******************************************************************* + + NAME: I_SystemFocusDialog + + SYNOPSIS: Presents a dialog to the user from which a server or domain + maybe selected. + + ENTRY: hwndOwner - Parent window handle + nSelectionType - The type of selection the user is allowed + to make + pszName - The server or domain name. It will be + undefined if the user hits the CANCEL + button ( pfOK = FALSE ) + cchBufSize - The buffer size of the lptstrName. + pfUserQuit - If the user hits the OKAY button, it will + return TRUE. Otherwise, it will return FALSE. + pszHelpFile - The helpfile to use when the user hits F1. + If NULL, the default helpfile is used. + nHelpContext - The helpcontext to use for the helpfile above. + If the above is NULL, this must be 0 (& vice + versa). + + EXIT: if *pfOKPressed is TRUE (and an error didn't occur), then + lptstrName will be filled with the user selected name. + + RETURNS: NO_ERROR on success, standard ERROR_* error code otherwise + + NOTES: This will be a UNICODE only API when the net group goes UNICODE + + HISTORY: + JohnL 22-Apr-1992 Added selection option, exported to private\inc + ChuckC 03-Nov-1992 Added helpfile & help context + +********************************************************************/ + +UINT FAR PASCAL I_SystemFocusDialog( + HWND hwndOwner, + UINT nSelectionType, + LPWSTR pszName, + UINT cchBufSize, + BOOL *pfOKPressed, + LPWSTR pszHelpFile, + DWORD nHelpContext + ); + +typedef UINT (FAR PASCAL *LPFNI_SYSTEMFOCUSDIALOG)( + HWND hwndOwner, + UINT nSelectionType, + LPWSTR pszName, + UINT cchBufSize, + BOOL *pfOKPressed, + LPWSTR pszHelpFile, + DWORD nHelpContext + ); + + + +#endif //_UIEXPORT_H_ diff --git a/private/utils/ntbackup/exchange/build/inc/warning.h b/private/utils/ntbackup/exchange/build/inc/warning.h new file mode 100644 index 000000000..a15603981 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/inc/warning.h @@ -0,0 +1,22 @@ +#pragma warning(3:4092) // sizeof returns 'unsigned long' +#pragma warning(3:4121) // structure is sensitive to alignment +#pragma warning(3:4125) // decimal digit in octal sequence +#pragma warning(3:4130) // logical operation on address of string constant +#pragma warning(3:4132) // const object should be initialized +#pragma warning(4:4206) // Source File is empty +#pragma warning(4:4101) // Unreferenced local variable +#pragma warning(4:4208) // delete[exp] - exp evaluated but ignored +#pragma warning(3:4212) // function declaration used ellipsis +#pragma warning(error:4700) // Local used w/o being initialized +#pragma warning(error:4259) // pure virtual function was not defined +#pragma warning(4:4509) // use of SEH with destructor +#pragma warning(4:4177) // pragma data_seg s/b at global scope + +#if 0 +#pragma warning(3:4100) // Unreferenced formal parameter +#pragma warning(3:4701) // local may be used w/o init +#pragma warning(3:4702) // Unreachable code +#pragma warning(3:4705) // Statement has no effect +#pragma warning(3:4706) // assignment w/i conditional expression +#pragma warning(3:4709) // command operator w/o index expression +#endif diff --git a/private/utils/ntbackup/exchange/build/makefile.def b/private/utils/ntbackup/exchange/build/makefile.def new file mode 100644 index 000000000..7f7c14429 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/makefile.def @@ -0,0 +1,2047 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + makefile.def + +Abstract: + + This is the standard makefile for the components of the NT project. + It includes the following files: + + .\sources. - developer supplies this file. It defines the + required TARGETNAME, TARGETPATH, TARGETTYPE and + SOURCES as well as optional macros that control + the behavior of the compiler and linker: + + obj\_objects.mac - built by BUILD.EXE from .\sources. + + +Targets: + + all - Builds all targets in this make file + + clean - Erase all targets that can be produced by this make + file, ignoring errors. Also rebuilds the depend target. + + depend - Rebuilts source file dependencies, using BUILD.EXE tool + +Author: + + Steve Wood (stevewo) 28-Feb-1989 + + +Revision History: + Reza Baghai (rezab) 25-Jan-1993 + Added -order:*.prf switch for building EXEs + Added $(PERFLIBS) to *_LINKLIBS lines to allow linking with + optional performance tuning libraries + Sudeep Bharati (sudeepb) 10-Dec-1991 + Added PROGLIB target type, so that NTVDM can export + interfaces from an EXE. + + Roger Lanser (a-rlansr) 27-Apr-1993 + Added MIPS C8 compiler and attempted to generalize variables + between the MIPS and INTEL version of C8. + Oh yes, removed last remnants of DECSTATION. + +Useful Variables Set: + + CPUTYPE={I386|MIPS|ALPHA|PPC} + +Optional Controls Variables (partial list), these are environment variables, +remember they can be set with env=value on the command line as well: + +NOTE: xxx_... is {MSC|386|mips|alpha|PPC} where MSC_ applies to the C8 compiler + independent of the cpu type. Specific cpu_ will take precedence + over the equivalent MSC_ variable. + +EXAMPLE: To compile with codeview symbols for windbg: + + set NTDEBUG=ntsd + set NTDEBUGTYPE=windbg + set MSC_OPTIMIZATION=/Od + + + nttest=filename + + umtest=filename + + umappl=filename + + NT_UP + Define as 0 in environment to turn on MP. + If undefined or equal to 1, you get UP. + + xxx_warning_level + + xxx_optimization + + xxx_STDCALL = 1 use _stdcall calling convention + 0 use _cdecl calling convention + + ntdebug + + browser_info + + xxx_cppflags + + ntcppflags + + NT_INST - set to turn on instrumentation + + BASEDIR - \nt or \ntrel (default \nt) + + PRECOMPILED_CXX=1 - do precompiled headers for CXX instead of C files + note: precompiled headers can not be used on both + c and cxx files in a single directory. + + pnp_power=1 | 0 | <empty> + +!ENDIF + +!if 0 +!message You must use nmake version 1.30 or greater... +!endif + +# +# IDL/RDL/TDL build rules. +# + +!ifdef IDL_RULES +IDL_OUT_DIR =. +IDL_HDR_OUT_DIR =. +RDL_OUT_DIR =. +RDL_HDR_OUT_DIR =. + +!ifndef MIDL_INCS +MIDL_INCS = obj\$(TARGET_DIRECTORY) +!endif + +!ifndef MC_OUT_DIR +MC_OUT_DIR = obj\$(TARGET_DIRECTORY) +!endif +!endif + + +# +# Select build target and set platform specific variables. +# + +!INCLUDE makefile.plt + +# +# Include the developer supplied file that defines the TARGETNAME, TARGETPATH, +# TARGETTYPE and SOURCES macros. Make sure it defines them. +# + +!INCLUDE .\sources. +SOURCES_USED=$(SOURCES_USED) .\sources + +# +# Attempt to include the sources file from the target subdirectory. +# + +!IF EXIST(.\$(TARGET_DIRECTORY)\sources.) +!INCLUDE .\$(TARGET_DIRECTORY)\sources. +SOURCES_USED=$(SOURCES_USED) .\$(TARGET_DIRECTORY)\sources. +!ENDIF + +# +# Attempt to include the sources file from the parent target subdirectory. +# + +!IF EXIST(..\$(TARGET_DIRECTORY)\sources.) +!INCLUDE ..\$(TARGET_DIRECTORY)\sources. +SOURCES_USED=$(SOURCES_USED) ..\$(TARGET_DIRECTORY)\sources. +!ENDIF + +!IF "$(_NT_LEGO_ON_THIS_MACHINE)" == "" +!UNDEF NTLEGO +!ENDIF + +!IFNDEF TARGETPATH +!ERROR Your .\sources. file must define the TARGETPATH= macro +!ENDIF + +!IFNDEF TARGETTYPE +!ERROR Your .\sources. file must define the TARGETTYPE= macro +!ENDIF + +!IFNDEF TARGETNAME +! IF "$(TARGETTYPE)" != "NOTARGET" +!ERROR Your .\sources. file must define the TARGETNAME= macro +! ELSE +TARGETNAME= +! ENDIF +!ENDIF + +!IFNDEF SOURCES +!ERROR Your .\sources. file must define the SOURCES= macro +!ENDIF + +!IFNDEF UMTYPE +UMTYPE=nt +!ENDIF + +!IFNDEF UMBASE +! IFDEF COFFBASE +UMBASE=@..\exchange\build\coffbase.txt,$(COFFBASE) +! ELSE +UMBASE=@..\exchange\build\coffbase.txt,usermode +! ENDIF +!ENDIF + +LINKLIBS=$(LINKLIBS) $(PERFLIBS) + +!IF DEFINED(USE_MFC) || DEFINED(USE_MFCUNICODE) + +#---------------------------------------------------------# +# this set of defines establishes the "correct" build # +# environment for an app that needs to use MFC. the # +# app's sources file only needs to specify USE_MFC=1 # +# and this makefile will set the enviroment up correctly. # +#---------------------------------------------------------# + +UMENTRY=winmain +UMENTRYABS= +USE_CRTDLL=1 # CRTDLL s/b used if MFC is. + +MFC_FLAGS=$(MFC_FLAGS) -D_AFXDLL -D_AFX_NOFORCE_LIBS +!IF "$(NTDEBUG)" == "retail" || "$(NTDEBUG)" == "" || "$(NTDEBUG)" == "ntsdnodbg" +!IFDEF USE_MFCUNICODE +MFC_LIBS=$(BASEDIR)\public\sdk\lib\*\cfm30u.lib $(BASEDIR)\public\sdk\lib\*\cfmo30u.lib +!ELSE +MFC_LIBS=$(BASEDIR)\public\sdk\lib\*\cfm30.lib $(BASEDIR)\public\sdk\lib\*\cfmo30.lib +!ENDIF +MFC_FLAGS=$(MFC_FLAGS) -DNDEBUG +!ELSE +!IFDEF USE_MFCUNICODE +MFC_LIBS=$(BASEDIR)\public\sdk\lib\*\cfm30ud.lib $(BASEDIR)\public\sdk\lib\*\cfmo30ud.lib +!ELSE +MFC_LIBS=$(BASEDIR)\public\sdk\lib\*\cfm30d.lib $(BASEDIR)\public\sdk\lib\*\cfmo30d.lib +!ENDIF +MFC_FLAGS=$(MFC_FLAGS) -D_DEBUG +USE_PDB=1 +!ENDIF + +!IFDEF USE_MFCUNICODE +UNICODE=1 +MFC_FLAGS=$(MFC_FLAGS) -DUNICODE -D_UNICODE +!ENDIF + +MFC_INCLUDES=$(BASEDIR)\public\sdk\inc\mfc30 + +LINKLIBS=$(LINKLIBS) $(MFC_LIBS) + +!ENDIF # USE_MFC || USE_MFCUNICODE + +!IFDEF USE_CRTDLL + +LIBC_LIB=crtdll.lib +LIBC_DEFINES=-D_DLL=1 -D_MT=1 + +!ELSE + +! IFDEF USE_MSVCRT +LIBC_LIB=msvcrt.lib +LIBC_DEFINES=-D_DLL=1 -D_MT=1 + +!ELSE + +! IFDEF USE_LIBCMT +LIBC_LIB=libcmt.lib +LIBC_DEFINES=-D_MT=1 + +! ELSE + +LIBC_LIB=libc.lib +LIBC_DEFINES= + +! ENDIF +! ENDIF +!ENDIF + + +!IFNDEF GPSIZE +GPSIZE= 0 +!ENDIF + +!IFDEF CAIRO_PRODUCT +CAIRO_LIB_PATH=$(BASEDIR)\public\sdk\lib\cairo\* +!ENDIF # CAIRO_PRODUCT + +!ifdef NTLIBPATH +LIBRARY_PATH = $(NTLIBPATH)\*\lib +!else +!ifdef CHICAGO_PRODUCT +LIBRARY_PATH = $(BASEDIR)\public\sdk\lib\chicago\* +!else +LIBRARY_PATH = $(BASEDIR)\public\sdk\lib\* +!endif +!endif + +!ifndef NTLIBCPATH +NTLIBCPATH=$(LIBRARY_PATH) +!endif + +LIBC_LIB = $(NTLIBCPATH)\$(LIBC_LIB) + +NT_LIBS=$(LIBRARY_PATH)\ntdll.lib +GUI32_LIBS=$(LIBRARY_PATH)\gdi32.lib \ + $(LIBRARY_PATH)\user32.lib + +!IFDEF CAIRO_PRODUCT +!IFNDEF TUKWILA +NT_LIBS=$(NT_LIBS:lib\*\ntdll.lib=lib\cairo\*\ntdll.lib) +!ENDIF +GUI32_LIBS=$(GUI32_LIBS:lib\*\user32.lib=lib\cairo\*\user32.lib) +!ENDIF + +CRT_LIBS= + +NT_CRT=$(LIBRARY_PATH)\nt.lib +WIN32_LIBS=$(LIBC_LIB) \ + $(LIBRARY_PATH)\advapi32.lib \ + $(LIBRARY_PATH)\kernel32.lib + +NTSS_LIBS=$(NT_LIBS) $(NT_CRT) $(BASEDIR)\public\sdk\lib\*\smdll.lib + +OS2_LIBS=$(NT_LIBS) $(BASEDIR)\public\sdk\lib\*\os2dll.lib \ + $(CRT_LIBS) + +POSIX_LIBS=$(NT_LIBS) $(BASEDIR)\public\sdk\lib\*\libcpsx.lib \ + $(BASEDIR)\public\sdk\lib\*\psxdll.lib \ + $(BASEDIR)\public\sdk\lib\*\psxrtl.lib + +!ifndef SUBSYSTEM_VERSION +! ifndef EXPECTED_WINVER +! ifdef CAIRO_PRODUCT +SUBSYSTEM_WINVER = ,4.00 +! else +SUBSYSTEM_WINVER = ,3.51 +! endif +! else +SUBSYSTEM_WINVER = ,$(EXPECTED_WINVER) +! endif +SUBSYSTEM_CONVER = ,3.51 +SUBSYSTEM_OS2VER = +SUBSYSTEM_POSIXVER = +SUBSYSTEM_NATVER = ,3.51 +!else +SUBSYSTEM_WINVER = ,$(SUBSYSTEM_VERSION) +SUBSYSTEM_CONVER = ,$(SUBSYSTEM_VERSION) +SUBSYSTEM_OS2VER = ,$(SUBSYSTEM_VERSION) +SUBSYSTEM_POSIXVER = ,$(SUBSYSTEM_VERSION) +SUBSYSTEM_NATVER = ,$(SUBSYSTEM_VERSION) +!endif + +!IF "$(UMTYPE)" == "nt" +SUBSYSTEM=native$(SUBSYSTEM_NATVER) +UMINCL=$(BASEDIR)\public\sdk\inc\crt + + +STD_CALL_ENTRY=1 +UMENTRY=-entry:NtProcessStartup + +UMLIBS=$(UMLIBS) $(NT_LIBS) $(NT_CRT) $(CRT_LIBS) + +!ELSE +! IF "$(UMTYPE)" == "windows" +SUBSYSTEM=windows$(SUBSYSTEM_WINVER) +UMINCL=$(BASEDIR)\public\sdk\inc\crt + +! IF "$(UMENTRY)" == "winmain" +UMENTRY=-entry:WinMainCRTStartup +! ELSE +! IF "$(UMENTRYABS)" == "" +UMENTRY=-entry:mainCRTStartup +! ELSE +UMENTRY=-entry:$(UMENTRYABS) +! ENDIF +! ENDIF + +#UMLIBS=$(UMLIBS) $(WIN32_LIBS) $(GUI32_LIBS) + +! ELSE +! IF "$(UMTYPE)" == "console" +SUBSYSTEM=console$(SUBSYSTEM_CONVER) +UMINCL=$(BASEDIR)\public\sdk\inc\crt + +! IF "$(UMENTRY)" == "winmain" +UMENTRY=-entry:WinMainCRTStartup +! ELSE +UMENTRY=-entry:mainCRTStartup +! ENDIF + +UMLIBS=$(UMLIBS) $(WIN32_LIBS) + +! ELSE +! IF "$(UMTYPE)" == "ntss" +SUBSYSTEM=native$(SUBSYSTEM_NATVER) +UMINCL=$(BASEDIR)\public\sdk\inc\crt + +STD_CALL_ENTRY=1 +UMENTRY=-entry:NtProcessStartup + +UMLIBS=$(UMLIBS) $(NTSS_LIBS) $(CRT_LIBS) + +! ELSE +! IF "$(UMTYPE)" == "os2" +SUBSYSTEM=os2$(SUBSYSTEM_OS2VER) +UMINCL=$(BASEDIR)\public\sdk\inc\os2;$(BASEDIR)\public\sdk\inc\crt + +STD_CALL_ENTRY=1 +UMENTRY=-entry:NtProcessStartup + +UMLIBS=$(UMLIBS) $(OS2_LIBS) + +! ELSE +! IF "$(UMTYPE)" == "posix" +SUBSYSTEM=posix$(SUBSYSTEM_POSIXVER) +UMINCL=$(BASEDIR)\public\sdk\inc\posix;$(BASEDIR)\public\sdk\inc\crt + +UMENTRY=-entry:__PosixProcessStartup + +UMLIBS=$(UMLIBS) $(POSIX_LIBS) + +! ELSE +! ERROR Invalid UMTYPE value - $(UMTYPE) +! ENDIF # UMTYPE == posix +! ENDIF # UMTYPE == os2 +! ENDIF # UMTYPE == ntss +! ENDIF # UMTYPE == console +! ENDIF # UMTYPE == windows +!ENDIF # UMTYPE == nt + + +# +# If you edit this line you need to modify $(BASEDIR)\private\sdktools\build\build.c +# + +!IFDEF NTINCPATH +NTINCLUDES=$(BASEDIR)\public\oak\inc;$(NTINCPATH)\$(TARGET_DIRECTORY)\inc +!ELSE +NTINCLUDES=$(BASEDIR)\public\oak\inc;$(BASEDIR)\public\sdk\inc +!ENDIF + +!IFNDEF COMPILER_WARNINGS +COMPILER_WARNINGS=-FI$(BASEDIR)\public\sdk\inc\warning.h +!ENDIF + +!IFDEF CAIRO_PRODUCT +NTINCLUDES=$(BASEDIR)\private\cinc;$(BASEDIR)\public\sdk\inc\cairo;$(NTINCLUDES) +!IFDEF NOT_UNICODE +WIN32_DEFINE=-DWIN32=300 -D_CAIRO_=300 +!ELSE +WIN32_DEFINE=-DWIN32=300 -D_CAIRO_=300 -DUNICODE -D_UNICODE +!ENDIF + +!ELSE + +!IFDEF CHICAGO_PRODUCT +NTINCLUDES=$(BASEDIR)\private\cinc;$(BASEDIR)\public\sdk\inc\chicago;$(BASEDIR)\public\sdk\inc\chicago\crt;$(NTINCLUDES) +WIN32_DEFINE=-DWIN32=200 -DFLAT -D_CHICAGO_=200 + +LINKER_FLAGS=$(LINKER_FLAGS) -map + +!ELSE +WIN32_DEFINE=-DWIN32=100 -D_NT1X_=100 +CAIRO_LIB_PATH=$(BASEDIR)\public\sdk\lib +!ENDIF + +!ENDIF + +INCLUDES =$(INCLUDES: =) +NTINCLUDES =$(NTINCLUDES: =) +UMINCL =$(UMINCL: =) + +!IFDEF USER_INCLUDES +USER_INCLUDES =$(USER_INCLUDES: =) +USER_INCL0=-I$(USER_INCLUDES) +USER_INCL1=-I$(USER_INCLUDES) +!ELSE +USER_INCL0= +USER_INCL1= +!ENDIF + +!IFDEF INCLUDES +INCL=$(INCLUDES) +INCPATH0=$(USER_INCL0:;= -I) -I$(INCL:;= -I) -I$(NTINCLUDES:;= -I) -I$(UMINCL:;= -I) +INCPATH1=$(USER_INCL1:;= -I) -I$(INCL:;= -I) -I$(NTINCLUDES:;= -I) -I$(UMINCL:;= -I) +!ELSE +INCPATH0=$(USER_INCL0:;= -I) -I$(NTINCLUDES:;= -I) -I$(UMINCL:;= -I) +INCPATH1=$(USER_INCL1:;= -I) -I$(NTINCLUDES:;= -I) -I$(UMINCL:;= -I) +!ENDIF + +INCPATH0=$(INCPATH0:-I =) +INCPATH1=$(INCPATH1:-I =) + +!IFDEF MFC_INCLUDES +MFC_INCLUDES=$(MFC_INCLUDES: =) +MFC_INCLUDES=-I$(MFC_INCLUDES:;= -I) +INCPATH0=$(MFC_INCLUDES) $(INCPATH0) +INCPATH1=$(MFC_INCLUDES) $(INCPATH1) +!ENDIF + +!IFNDEF RELATIVE_DEPTH +RELATIVE_DEPTH=..\.. +!ENDIF + +!IFNDEF DLLENTRY +DLLENTRY=-noentry +!ELSE +DLLENTRY=-entry:$(DLLENTRY) +!ENDIF + +!IFNDEF DLLBASE +DLLBASE=@$(BASEDIR)\PUBLIC\SDK\LIB\coffbase.txt,$(TARGETNAME) +!ENDIF + +!IFNDEF DLLDEF +DLLDEF=$(@B).def +!ENDIF + +!IFNDEF BOOTBASE +! IFDEF FRAZZLE +BOOTBASE=0xd0100000,0xd0104000 +! ELSE +BOOTBASE=0xd0ff0000,0xd0ff4000 +! ENDIF +!ENDIF + +DRIVERBASE=0x10000 +HALBASE=0x80400000 + +# +# Map lower case to upper case for variables that can be specified from the +# command line. +# + +!IFDEF nttest +NTTEST=$(nttest) +!ENDIF + +!IFDEF makedll +MAKEDLL=$(makedll) +!ENDIF + +!IFDEF umtest +UMTEST=$(umtest) +!ENDIF + + +# +# Include the list of object files (defined as the OBJECTS macro) that was +# built by BUILD program, using the SOURCES= macro defined in the sources. +# file. Use macro substitution to build the supported target objects. +# + +!INCLUDE obj\_objects.mac + +!IF $(386) +OBJECTS=$(386_OBJECTS) +DLLLIBOBJECTS=$(386_DLLLIBOBJECTS) +!ELSEIF $(MIPS) +OBJECTS=$(MIPS_OBJECTS) +DLLLIBOBJECTS=$(MIPS_DLLLIBOBJECTS) +!ELSEIF $(ALPHA) +OBJECTS=$(ALPHA_OBJECTS) +DLLLIBOBJECTS=$(ALPHA_DLLLIBOBJECTS) +!ELSEIF $(PPC) +OBJECTS=$(PPC_OBJECTS) +DLLLIBOBJECTS=$(PPC_DLLLIBOBJECTS) +!ENDIF + +# +# BUILD.EXE defines the NOLINK variable to disable the building of any +# test executables when it is recursing on a dirs. file to build components +# in subdirectories. +# + +!IF "$(BUILDMSG)" != "Stop." +! IFDEF NOLINK +! UNDEF NTTEST +! UNDEF MAKEDLL +! ELSE +! IFDEF nolink +! UNDEF NTTEST +! UNDEF MAKEDLL +! ENDIF +! ENDIF # DEF NOLINK +!ENDIF # BUILDMSG != "Stop." + + +# +# Determine type of target link we are doing +# +!IF "$(TARGETTYPE)" == "PROGLIB" +TARGETEXT=exe +TARGETLIB= +!ELSE +! IF "$(TARGETTYPE)" == "PROGRAM" +TARGETEXT=exe +TARGETLIB= +! ELSE +! IF "$(TARGETTYPE)" == "DYNLINK" + +DYNLINK_LIB=$(TARGETPATH)\*\$(TARGETNAME).lib + +! IF "$(MAKEDLL)" != "" +! IF "$(UMTYPE)" == "os2" +TARGETLIB=$(BASEDIR)\public\sdk\lib\*\ntdll.lib +! ELSE +! IF "$(UMTYPE)" == "posix" +TARGETLIB=$(BASEDIR)\public\sdk\lib\*\libcpsx.lib $(BASEDIR)\public\sdk\lib\*\ntdll.lib $(CRT_LIBS) +! ELSE +! IF "$(TARGETNAME)" == "ntdll" +TARGETLIB= +! ELSE +! IFDEF USE_CRTDLL +! IFDEF CHICAGO_PRODUCT +TARGETLIB=$(WIN32DLL_LIBS) $(BASEDIR)\public\sdk\lib\*\crtdll.lib +! ELSE +TARGETLIB=$(WIN32DLL_LIBS) $(BASEDIR)\public\sdk\lib\*\crtdll.lib $(BASEDIR)\public\sdk\lib\*\ntdll.lib +! ENDIF +! ELSE +! IFDEF USE_MSVCRT +TARGETLIB=$(WIN32DLL_LIBS) $(LIBC_LIB) +! ELSE +TARGETLIB=$(WIN32DLL_LIBS) $(BASEDIR)\public\sdk\lib\*\ntdll.lib $(CRT_LIBS) +! ENDIF +! ENDIF +! ENDIF +! ENDIF +! ENDIF +! IF "$(TARGETEXT)" == "" +TARGETEXT=dll +! ENDIF +! IFDEF CAIROLIB + +# +# If we are linking a DLL then add in the cairo libs. +# + +TARGETLIB=$(CAIROLIB) $(TARGETLIB) +! ENDIF +! IFDEF CAIRO_PRODUCT +! IFNDEF TUKWILA +TARGETLIB=$(TARGETLIB:lib\*\ntdll.lib=lib\cairo\*\ntdll.lib) +! ENDIF +! ENDIF +! ELSE # "$(MAKEDLL)" != "" +TARGETEXT=lib +TARGETLIB= +! ENDIF # "$(MAKEDLL)" != "" +! ELSE +! IF "$(TARGETTYPE)" == "LIBRARY" +TARGETEXT=lib +TARGETLIB= +! ELSE +! IF "$(TARGETTYPE)" == "DRIVER" +TARGETEXT=sys +TARGETLIB=$(BASEDIR)\public\sdk\lib\*\ntoskrnl.lib $(BASEDIR)\public\sdk\lib\*\hal.lib $(CRT_LIBS) +! ELSE +! IF "$(TARGETTYPE)" == "EXPORT_DRIVER" +! IF "$(MAKEDLL)" != "" +TARGETEXT=sys +TARGETLIB=$(BASEDIR)\public\sdk\lib\*\ntoskrnl.lib $(BASEDIR)\public\sdk\lib\*\hal.lib $(CRT_LIBS) +! ELSE +TARGETEXT=lib +TARGETLIB= +! ENDIF +! ELSE +! IF "$(TARGETTYPE)" == "HAL" +! IF "$(MAKEDLL)" != "" +TARGETEXT=dll +TARGETLIB=$(BASEDIR)\public\sdk\lib\*\ntoskrnl.lib $(CRT_LIBS) +! ELSE +TARGETEXT=lib +TARGETLIB= +! ENDIF +! ELSE +! IF "$(TARGETTYPE)" == "BOOTPGM" +TARGETEXT=sys +! ELSE +! IF "$(TARGETTYPE)" == "MINIPORT" +TARGETEXT=sys +! ELSE +! IF "$(TARGETTYPE)" == "GDI_DRIVER" +TARGETEXT=dll +TARGETLIB=$(BASEDIR)\public\sdk\lib\km\*\win32k.lib +! ENDIF # TARGETTYPE == GDI_DRIVER +! ENDIF # TARGETTYPE == MINIPORT +! ENDIF # TARGETTYPE == BOOTPGM +! ENDIF # TARGETTYPE == HAL +! ENDIF # TARGETTYPE == EXPORT_DRIVER +! ENDIF # TARGETTYPE == DRIVER +! ENDIF # TARGETTYPE == LIBRARY +! ENDIF # TARGETTYPE == DYNLINK +! ENDIF # TARGETTYPE == PROGRAM +!ENDIF # TARGETTYPE == PROGLIB + + +TARGET= + +!IF "$(TARGETTYPE)" != "UMAPPL_NOLIB" + +! IF "$(OBJECTS)" != "" +TARGET=$(TARGETPATH)\*\$(TARGETNAME).$(TARGETEXT) +! ENDIF + +!ENDIF # TARGETTYPE != UMAPPL_NOLIB + +!IFNDEF MACHINE_TARGETLIBS +MACHINE_TARGETLIBS=$(TARGETLIB) $(TARGETLIBS) +!ENDIF + + +TARGETOBJFILES=$(TARGETOBJFILES) $(OBJECTS) + +!IF "$(NOLINK)" == "" || \ + ("$(NOLINK)" != "" && ("$(TARGETTYPE)"=="LIBRARY" || \ + ( ("$(TARGETTYPE)"=="DYNLINK" || \ + "$(TARGETTYPE)"=="PROGLIB" || \ + "$(TARGETTYPE)"=="EXPORT_DRIVER" || \ + "$(TARGETTYPE)"=="HAL") && \ + "$(MAKEDLL)" == "") \ + ) \ + ) + + +!IF "$(NOLINK)" != "" && "$(TARGET)" != "" +TARGETLIBFILES=$(TARGETLIBFILES) $(TARGETPATH)\*\$(TARGETNAME).lib +!ELSE +TARGETEXEFILES=$(TARGETEXEFILES) $(TARGET) +!ENDIF + +!ENDIF # NOLINK == "" || building .lib file for dll + +!IF "$(NTTEST)" != "" + +TARGETOBJFILES=$(TARGETOBJFILES) obj\*\$(NTTEST).obj + +! IFNDEF NOLINK + +TARGETEXEFILES=$(TARGETEXEFILES) obj\*\$(NTTEST).exe + +! ENDIF # NDEF NOLINK +!ENDIF # NTTEST != "" + +UMOBJFILES= +UMEXEFILES= + +!IF "$(UMAPPLEXT)" == "" +! IFDEF _DOT_COM_FILE +UMAPPLEXT=.com +! ELSE +UMAPPLEXT=.exe +! ENDIF +!ENDIF + +!IF "$(UMAPPL)" != "" + +UMOBJFILES=obj\*\$(UMAPPL:*=.obj obj\*\).obj + + +! IF "$(UMAPPLEXT)" == ".com" +! IFNDEF NOLINK + +UMEXEFILES=obj\*\$(UMAPPL:*=.com obj\*\).com +! ENDIF +! ELSE +! IF "$(UMAPPLEXT)" == ".exe" +! IFNDEF NOLINK + +UMEXEFILES=obj\*\$(UMAPPL:*=.exe obj\*\).exe +! ENDIF +! ELSE + +! IF "$(UMAPPLEXT)" == ".scr" +! IFNDEF NOLINK + +UMEXEFILES=obj\*\$(UMAPPL:*=.scr obj\*\).scr + +! ENDIF + +! ELSE + +! ERROR Unsupport UMAPPLEXT = $(UMAPPLEXT) + +! ENDIF # UMAPPLEXT == .scr +! ENDIF # UMAPPLEXT == .exe +! ENDIF # UMAPPLEXT == .com +!ENDIF # UMAPPL != "" + +!IF "$(UMTEST)" != "" + +UMOBJFILES=$(UMOBJFILES) obj\*\$(UMTEST:*=.obj obj\*\).obj + +! IFNDEF NOLINK + +UMEXEFILES=$(UMEXEFILES) obj\*\$(UMTEST:*=.exe obj\*\).exe + +! ENDIF +!ENDIF + +# +# Define NT_UP as 0 in environment to turn on MP. +# If undefined or equal to 1, you get UP. +# + +!IFNDEF NT_UP +NT_UP=1 +!ENDIF + +!IF "$(NT_UP)"=="0" +NT_UP_DEFINES= +!ELSE +NT_UP_DEFINES=-DNT_UP=1 +!ENDIF + +!IFNDEF NT_INST +NT_INST=0 +!ENDIF + +!IFNDEF PNP_POWER +PNP_POWER=0 +!ENDIF + +!IF "$(PNP_POWER)"=="0" +NT_PNP_POWER_DEFINES= +!ELSE +NT_PNP_POWER_DEFINES=-D_PNP_POWER_=1 +!ENDIF + + +# +# User defined variables (environment variables or command line). +# A cpu specific definition will take precedence over the MSC definition. +# +# xxx_WARNING_LEVEL +# xxx_OPTIMIZATION +# xxx_CPPFLAGS +# + +!IFNDEF MSC_WARNING_LEVEL +MSC_WARNING_LEVEL=/W3 +!ENDIF + +!IFNDEF MSC_OPTIMIZATION +MSC_OPTFLAGS=/Oxs $(MSC_OPTIMIZATION) +!ELSE +MSC_OPTFLAGS=$(MSC_OPTIMIZATION) +!ENDIF + +# +# End of user defined variables. +# + +!IFDEF NOT_LEAN_AND_MEAN +STD_DEFINES=-DCONDITION_HANDLING=1 $(NT_UP_DEFINES) \ + -DNT_INST=$(NT_INST) $(WIN32_DEFINE) $(NT_PNP_POWER_DEFINES) +!ELSE +STD_DEFINES=-DCONDITION_HANDLING=1 -DWIN32_LEAN_AND_MEAN=1 $(NT_UP_DEFINES) \ + -DNT_INST=$(NT_INST) $(WIN32_DEFINE) $(NT_PNP_POWER_DEFINES) +!ENDIF + +!IFNDEF CBSTRING +!IF "$(MAJORCOMP)" == "ntos" || "$(MAJORCOMP)" == "NTOS" +CBSTRING= -cbstring +!ELSE +CBSTRING= +!ENDIF +!ENDIF + +!IF "$(NTDEBUG)" == "retail" +TARGET_DBG_DEFINES= -DDBG=0 -DDEVL=1 +DBGFLAGS=$(MSC_OPTFLAGS) +!ELSE +! IF "$(NTDEBUG)" == "" +TARGET_DBG_DEFINES= -DDBG=0 -DDEVL=1 +DBGFLAGS=$(MSC_OPTFLAGS) +! ELSE +TARGET_DBG_DEFINES= -DDBG=1 -DDEVL=1 +!UNDEF NTLEGO +! IF "$(NTDEBUG)" == "ntsd" +DBGFLAGS=$(MSC_OPTFLAGS) /Zi +! ELSE +! IF "$(NTDEBUG)" == "cvp" +DBGFLAGS=$(MSC_OPTFLAGS) /Zd +! ELSE +! IF "$(NTDEBUG)" == "sym" +DBGFLAGS=$(MSC_OPTFLAGS) /Zd +! ELSE +! IF "$(NTDEBUG)" == "ntsdnodbg" +DBGFLAGS=$(MSC_OPTFLAGS) /Zi +TARGET_DBG_DEFINES= -DDBG=0 -DDEVL=1 +! ELSE +! ERROR NTDEBUG macro can be either "retail", "", "ntsd", "cvp" or "sym" or "ntsdnodbg" +! ENDIF +! ENDIF # NTDEBUG == ntsdnodbg +! ENDIF # NTDEBUG == sym +! ENDIF # NTDEBUG == cvp +! ENDIF # NTDEBUG == "" +!ENDIF # NTDEBUG == retail + +!IF "$(NTDEBUGTYPE)" == "windbg" +LINKER_DBG_TYPE = -debugtype:cv +!ELSE +! IF "$(NTDEBUGTYPE)" == "ntsd" || "$(NTDEBUGTYPE)" == "coff" +LINKER_DBG_TYPE = -debugtype:coff +! ELSE +! IF "$(NTDEBUGTYPE)" == "both" +LINKER_DBG_TYPE = -debugtype:both +! ELSE +! IF "$(NTDEBUGTYPE)" == "" +LINKER_DBG_TYPE = -debugtype:coff +! ELSE +! ERROR NTDEBUGTYPE macro can one of "", "ntsd", "coff", "windbg" or "both" +! ENDIF +! ENDIF +! ENDIF +!ENDIF + + +!IF "$(PRECOMPILED_OPTION)" == "" +! IF "$(PRECOMPILED_INCLUDE)" != "" +! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.hxx=)" +PRECOMPILED_CXX=1 +! ENDIF +! IF "$(PRECOMPILED_INCLUDE)" != "$(PRECOMPILED_INCLUDE:.cxx=)" +PRECOMPILED_CXX=1 +! ENDIF +! IF "$(PRECOMPILED_PCH)" == "" +PRECOMPILED_PCH=$(PRECOMPILED_INCLUDE:.hxx=.pch) +PRECOMPILED_PCH=$(PRECOMPILED_PCH:.h=.pch) +PRECOMPILED_PCH=$(PRECOMPILED_PCH:.cxx=.pch) +PRECOMPILED_PCH=$(PRECOMPILED_PCH:.c=.pch) +PRECOMPILED_PCH=$(PRECOMPILED_PCH:..\=) +! ENDIF +! IF "$(PRECOMPILED_OBJ)" == "" +PRECOMPILED_OBJ=$(PRECOMPILED_PCH:.pch=.obj) +! ENDIF +! ENDIF +!ENDIF + +! IF "$(PRECOMPILED_OPTION)" == "" +! IF "$(PRECOMPILED_INCLUDE)" != "" +! IF "$(PRECOMPILED_PCH)" != "" +HEADERFILE=/Fpobj\*\$(PRECOMPILED_PCH) +! ENDIF +! IF "$(PRECOMPILED_OBJ)" != "" +HEADEROBJNAME=obj\*\$(PRECOMPILED_OBJ) +HEADEROBJ=/Fo$(MAKEDIR)\$(HEADEROBJNAME) +! ENDIF +! IF "$(PRECOMPILED_CXX)" == "" +PRECOMPILED=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE) +PRECOMPILED_CXX= +! ELSE +PRECOMPILED= +PRECOMPILED_CXX=/Yu$(PRECOMPILED_INCLUDE:..\=) $(HEADERFILE) +! ENDIF +PRECOMPILED_TARGET=obj\*\$(PRECOMPILED_PCH) +! ELSE +! IF "$(PRECOMPILED_INCLUDE)" != "" +! IF "$(PRECOMPILED_CXX)" == "" +PRECOMPILED=/Yu$(PRECOMPILED_INCLUDE) +PRECOMPILED_CXX= +! ELSE +PRECOMPILED= +PRECOMPILED_CXX=/Yu$(PRECOMPILED_INCLUDE) +! ENDIF +! ENDIF +! ENDIF +! ELSE +! IF "$(PRECOMPILED_CXX)" == "" +PRECOMPILED=$(PRECOMPILED_OPTION) +PRECOMPILED_CXX= +! ELSE +PRECOMPILED= +PRECOMPILED_CXX=$(PRECOMPILED_OPTION) +! ENDIF +PRECOMPILED_TARGET=$(PRECOMPILED_TARGET) +! IF "$(PRECOMPILED_TARGET)" != "" +HEADERFILE=/Fp$(PRECOMPILED_TARGET) +! ENDIF +! IF "$(PRECOMPILED_OBJ)" != "" +HEADEROBJNAME=$(PRECOMPILED_OBJ) +HEADEROBJ=/Fo$(HEADEROBJNAME) +! ENDIF +! ENDIF + +!IF ("$(PRECOMPILED_CXX)" == "") && ("$(USECXX_FLAG)" == "") +PRECOMPILED_FLAG=/Tc +!ELSE +PRECOMPILED_FLAG=/Tp +!ENDIF + +!IF "$(NTNOPCH)" != "" +PRECOMPILED= +PRECOMPILED_CXX= +!ENDIF + +# +# Set linker options +# + +# +# Merge _PAGE with PAGE, _TEXT with .text, and make sure +# INIT sections are discardable +# + +LINK_LIB_IGNORE_FLAG=-IGNORE:4001,4037,4039,4065,4070,4078,4087,4089 +LINKER_FLAGS = $(LINKER_FLAGS) \ + -MERGE:_PAGE=PAGE \ + -MERGE:_TEXT=.text \ + -SECTION:INIT,d \ + -OPT:REF \ + -RELEASE \ + -INCREMENTAL:NO \ + -FULLBUILD \ + -FORCE:MULTIPLE \ + -NODEFAULTLIB \ + $(LINK_LIB_IGNORE_FLAG) + +LINKER_MERGE_RDATA=-MERGE:.rdata=.text +LINKER_OPTIDATA=-optidata + +!if "$(USE_PDB)" == "" +LINKER_FLAGS = $(LINKER_FLAGS) -PDB:NONE +!elseif ("$(PDB_ROOT)" != "") && ("$(CAIRO_PRODUCT)" == "") +LINKER_FLAGS = $(LINKER_FLAGS) -PDB:$(PDB_ROOT)\$(TARGETEXT)^\ +PDB_ROOTUM = -PDB:$(PDB_ROOT)\$(UMAPPLEXT:.=)^\ +!elseif ("$(CAIROPDB_ROOT)" != "") && ("$(CAIRO_PRODUCT)" != "") +LINKER_FLAGS = $(LINKER_FLAGS) -PDB:$(CAIROPDB_ROOT)\$(TARGETEXT)^\ +PDB_ROOTUM = -PDB:$(CAIROPDB_ROOT)\$(UMAPPLEXT:.=)^\ +!endif + +!IF "$(NTDEBUG)" == "ntsd" || "$(NTDEBUG)" == "ntsdnodbg" +! IF "$(PERFFLAGS)" != "" +LINKER_DBG_SECTION=-debug:mapped,FULL +! ELSE +LINKER_DBG_SECTION=-debug:notmapped,FULL +! ENDIF # PERFFLAGS != NULL +!ELSE +! IF "$(NTDEBUG)" == "retail" +LINKER_DBG_SECTION=-debug:NONE +! ELSE +! IF "$(PERFFLAGS)" != "" +LINKER_DBG_SECTION=-debug:mapped,MINIMAL +! ELSE +LINKER_DBG_SECTION=-debug:notmapped,MINIMAL +! ENDIF # PERFFLAGS != NULL +! ENDIF # NTDEBUG == retail +!ENDIF # NTDEBUG == ntsd + +!IF "$(NTLEANANDMEAN)" == "leanandmean" +! IF "$(NTDEBUGTYPE)" == "coff" || \ + "$(NTTEST)"=="ntoskrnl" || \ + "$(NTTEST)"=="ntkrnlmp" || \ + "$(TARGETTYPE)"=="DRIVER" || \ + "$(TARGETTYPE)"=="MINIPORT" || \ + "$(TARGETTYPE)"=="EXPORT_DRIVER" || \ + "$(TARGETTYPE)"=="HAL" +LINKER_DBG_SECTION=-debug:notmapped,minimal +! ELSE +LINKER_DBG_SECTION=-debug:none +! ENDIF # NTDEBUGTYPE != coff || TARGETTYPE +!ENDIF # NTLEANANDMEAN == leanandmean + +LINK_OS_VERSIONS = -version:3.51 -osversion:3.51 + +LINKER_FLAGS = $(LINKER_FLAGS) $(LINKER_DBG_SECTION) $(LINKER_DBG_TYPE) $(LINK_OS_VERSIONS) +LIBRARIAN_FLAGS = $(LIBRARIAN_FLAGS) $(LINK_LIB_IGNORE_FLAG) + +LIBRARIAN=lib -out:$@ $(LIBRARIAN_FLAGS) $(LINKER_DBG_TYPE) -machine:$(TARGET_DIRECTORY) +LINKER=link -out:$@ -machine:$(TARGET_DIRECTORY) + +!IFDEF EXEPROFILEINPUT +EXEORDER=-order:@$(@B).prf +!ENDIF + +!IFNDEF DRIVER_ALIGNMENT +DRIVER_ALIGNMENT=0x20 +!ENDIF + +!ifndef HAL_ALIGNMENT +HAL_ALIGNMENT=0x20 +!endif + +!ifndef KERNEL_ALIGNMENT +KERNEL_ALIGNMENT=0x40 +!endif + +# +# Standard inference rules for C files that produce object files. +# + +.SUFFIXES: .cxx .cpp .c .f .rc .s .asm .obj .exe .res .p .tdl .odl + +# +# Processor specific control and options. +# + +!include $(TARGET_DIRECTORY)mk.inc + +LINKER_FLAGS = $(LINKER_FLAGS) $(LINKER_MERGE_RDATA) + +# +# Clear the suffixes list so we can ensure only pass zero stuff will be built +# +!IFDEF PASS0ONLY +.SUFFIXES: +!ENDIF + +# +# If NTDBGFILES is defined then use binplace to split the symbols. +# Define BINPLACE flags as needed if separate .DBG file requested. +# + +!IFDEF NTDBGFILES +BINPLACE_FLAGS=-s $(_NTTREE)\Symbols $(BINPLACE_FLAGS) +!ENDIF + +!IFDEF _NTTREE +! IFDEF _WIN95TREE +! IFDEF NTDBGFILES +BINPLACE_FLAGS95=$(BINPLACE_FLAGS) -s $(_WIN95TREE)\Symbols +! ENDIF +BINPLACE_CMD=binplace -R $(_WIN95TREE) $(BINPLACE_FLAGS95) $@\ + & binplace -R $(_NTTREE) $(BINPLACE_FLAGS) $@ +! ELSE +BINPLACE_CMD=binplace -R $(_NTTREE) $(BINPLACE_FLAGS) $@ +! ENDIF +!ELSE +BINPLACE_CMD= +!ENDIF + +!ifdef NTDUMPAMAP +MAPDUMP_CMD = link -dump -map $@ | sort /R /+62 > $(_NTDUMPAMAP)\$(@B).srt +!else +MAPDUMP_CMD = +!endif + + +# +# Define this macro so including make files can supply a yes prompt +# as appropriate. Put the "yes." file in a visible place for OEM's +# so they can make too. +# + +YESRESP=$(BASEDIR)\PUBLIC\OAK\INC\yes. + +!IFNDEF NOPASS0 + +# +# Pass Zero Inference Rules: IDL files (MIDL) and MC files +# + +.SUFFIXES: .idl .mc + +!IF $(386) +PASS0_OBJECTS=$(PASS0_386_OBJECTS) +!ELSEIF $(MIPS) +PASS0_OBJECTS=$(PASS0_MIPS_OBJECTS) +!ELSEIF $(ALPHA) +PASS0_OBJECTS=$(PASS0_ALPHA_OBJECTS) +!ELSEIF $(PPC) +PASS0_OBJECTS=$(PASS0_PPC_OBJECTS) +!ENDIF + +!ENDIF # IFNDEF NOPASS0 + +MIDL = midl +MKTYPLIB = mktyplib +!IFDEF USE_OLE_MC +MC = mc -o +!ELSE +MC = mc +!ENDIF + +!IF "$(IDL_TYPE)" == "ole" || "$(IDL_TYPE)" == "" +IDL_TYPE=OLE +!ELSEIF "$(IDL_TYPE)" == "rpc" +IDL_TYPE=RPC +!ENDIF + +!IFNDEF PASS0_HEADERDIR +PASS0_HEADERDIR=$(TARGETPATH) +!ENDIF + +!IFNDEF MIDL_OPTIMIZATION +MIDL_OPTIMIZATION=-Oi1 +!ENDIF + +!IF "$(IDL_TYPE)" == "OLE" + +!IF DEFINED(PASS0_CLIENTDIR) || DEFINED(PASS0_SERVERDIR) +!ERROR PASS0_CLIENTDIR and PASS0_SERVERDIR can only be used with IDL_TYPE=RPC! +!ENDIF + +!IFNDEF PASS0_SOURCEDIR +PASS0_SOURCEDIR=$(TARGETPATH) +!ENDIF + +!IFNDEF MIDL_UUIDDIR +MIDL_UUIDDIR=$(PASS0_SOURCEDIR) +!ENDIF + +!IFNDEF NO_PASS0_RULES +.idl{$(PASS0_HEADERDIR)}.h: + $(MIDL) \ + -Zp8 \ + $(INCPATH0) \ + -char unsigned \ + -ms_ext -c_ext \ + -proxy $(PASS0_SOURCEDIR)\$(<:.idl=_p.c) \ + -dlldata $(PASS0_SOURCEDIR)\dlldata.c \ + -iid $(MIDL_UUIDDIR)\$(<:.idl=_i.c) \ + -header $(PASS0_HEADERDIR)\$(<:.idl=.h) \ + -cpp_cmd $(TARGET_CPP) \ + $(C_DEFINES) \ + $(MIDL_FLAGS) \ + $(MIDL_OPTIMIZATION) \ + $< +!ENDIF + +!ELSEIF "$(IDL_TYPE)" == "RPC" + +!IF DEFINED(PASS0_SOURCEDIR) || DEFINED(MIDL_UUIDDR) +!ERROR PASS0_SOURCEDIR and MIDL_UUIDDIR can only be used with IDL_TYPE=OLE! +!ENDIF + +!IFNDEF PASS0_CLIENTDIR +PASS0_CLIENTDIR=$(TARGETPATH) +!ENDIF + +!IFNDEF PASS0_SERVERDIR +PASS0_SERVERDIR=$(PASS0_CLIENTDIR) +!ENDIF + +!IFNDEF NO_PASS0_RULES +.idl{$(PASS0_HEADERDIR)}.h: + $(MIDL) \ + -Zp8 \ + $(INCPATH0) \ + -char unsigned \ + -ms_ext -c_ext \ + -cstub $(PASS0_CLIENTDIR)\$(<:.idl=_c.c) \ + -sstub $(PASS0_SERVERDIR)\$(<:.idl=_s.c) \ + -cpp_cmd $(TARGET_CPP) \ + $(C_DEFINES) \ + $(MIDL_FLAGS) \ + $(MIDL_OPTIMIZATION) \ + $< +!ENDIF + +!ELSE + +!ERROR Invalid IDL_TYPE value. Supported values: OLE and RPC. + +!ENDIF # IDL_TYPE + + +!IFNDEF NO_PASS0_RULES + +!IFDEF PASS0_SOURCEDIR +MC_SOURCEDIR=$(PASS0_SOURCEDIR) +!ELSE +MC_SOURCEDIR=$(PASS0_CLIENTDIR) +!ENDIF + +.mc{$(PASS0_HEADERDIR)}.h: + $(MC) -h $(PASS0_HEADERDIR) -r $(MC_SOURCEDIR) $(MC_FLAGS) $< + +!IF "$(TARGET_CPP)" == "claxp" +MKTYPLIB_CPP = cl +!ELSE +MKTYPLIB_CPP = $(TARGET_CPP) +!ENDIF +.odl{obj\$(TARGET_DIRECTORY)\}.tlb: + $(MKTYPLIB) \ + $(INCPATH0) \ + /tlb obj\$(TARGET_DIRECTORY)\$(<:.tdl=.tlb) \ + -cpp_cmd $(MKTYPLIB_CPP) \ + $(MKTYPLIB_FLAGS) \ + $< + $(BINPLACE_CMD) + +.tdl{obj\$(TARGET_DIRECTORY)\}.tlb: + $(MKTYPLIB) \ + $(INCPATH0) \ + /tlb obj\$(TARGET_DIRECTORY)\$(<:.tdl=.tlb) \ + -cpp_cmd $(MKTYPLIB_CPP) \ + $(MKTYPLIB_FLAGS) \ + $< + $(BINPLACE_CMD) + +!ENDIF + +# +# Default language ID to US English (0x0409) +# + +!IFDEF RCCODEPAGE +RCOPTIONS=$(RCOPTIONS) -c $(RCCODEPAGE) +!ENDIF + +RC_COMPILER=rc -l 409 $(RCOPTIONS) + +{..\}.rc{obj\$(TARGET_DIRECTORY)\}.res: + $(RC_COMPILER) -r -fo $(@R).tmp $(CDEFINES) -x $(INCPATH0) $< + @cvtres -$(TARGET_DIRECTORY) $(@R).tmp -r -o $@ +!IF "$(NTKEEPRESOURCETMPFILES)" == "" + @-erase $(@R).tmp +!ENDIF + +{}.rc{obj\$(TARGET_DIRECTORY)\}.res: + $(RC_COMPILER) -r -fo $(@R).tmp $(CDEFINES) -x $(INCPATH0) $< + @cvtres -$(TARGET_DIRECTORY) $(@R).tmp -r -o $@ +!IF "$(NTKEEPRESOURCETMPFILES)" == "" + @-erase $(@R).tmp +!ENDIF + +!IFNDEF NO_C_RULES + +ECHO_RSP = obj\$(TARGET_DIRECTORY)\echo.msg +CL_RSP = obj\$(TARGET_DIRECTORY)\cl.rsp +CLCOD_RSP = obj\$(TARGET_DIRECTORY)\clcod.rsp +LINK_RSP = obj\$(TARGET_DIRECTORY)\lnk.rsp + +{..\}.cxx{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\..\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\$(TARGET_DIRECTORY)\}.cxx{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\$< +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\}.cpp{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\..\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\$(TARGET_DIRECTORY)\}.cpp{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\$< +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{}.cxx{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{$(TARGET_DIRECTORY)\}.cxx{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\$< +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{}.cpp{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{$(TARGET_DIRECTORY)\}.cpp{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\$< +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\}.cxx{}.cod: + @-erase $(CLCOD_RSP) + $(CXX_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(MAKEDIR)\..\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<KEEP + +{..\}.cxx{}.pp: + $(CXX_COMPILER_NAME) @<<$(CL_RSP) /E $(MAKEDIR)\$< > $@ +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\}.cpp{}.cod: + @-erase $(CLCOD_RSP) + $(CXX_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(MAKEDIR)\..\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<KEEP + +{..\}.cpp{}.pp: + $(CXX_COMPILER_NAME) @<<$(CL_RSP) /E $(MAKEDIR)\$< > $@ +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{}.cxx{}.cod: + @-erase $(CLCOD_RSP) + $(CXX_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(MAKEDIR)\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<KEEP + +{}.cxx{}.pp: + $(CXX_COMPILER_NAME) @<<$(CL_RSP) /E $(MAKEDIR)\$< > $@ +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{}.cpp{}.cod: + @-erase $(CLCOD_RSP) + $(CXX_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(MAKEDIR)\$(<F) +$(CXX_COMPILER_FLAGS: = +) +<<KEEP + +{}.cpp{}.pp: + $(CXX_COMPILER_NAME) @<<$(CL_RSP) /E $(MAKEDIR)\$< > $@ +$(CXX_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\}.c{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(C_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(USECXX_FLAG) $(MAKEDIR)\..\$(<F) +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\$(TARGET_DIRECTORY)\}.c{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(C_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(USECXX_FLAG) $(MAKEDIR)\$< +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{}.c{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(C_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(USECXX_FLAG) $(MAKEDIR)\$(<F) +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{$(TARGET_DIRECTORY)\}.c{obj\$(TARGET_DIRECTORY)\}.obj: + @type <<$(ECHO_RSP) +$(ECHO_MSG) +<<NOKEEP + @$(C_COMPILER_NAME) @<<$(CL_RSP) -Fo$(MAKEDIR)\$@ $(USECXX_FLAG) $(MAKEDIR)\$< +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\}.c{}.cod: + @-erase $(CLCOD_RSP) + $(C_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(USECXX_FLAG) $(MAKEDIR)\..\$(<F) +$(C_COMPILER_FLAGS: = +) +<<KEEP + +{..\$(TARGET_DIRECTORY)\}.c{}.cod: + @-erase $(CLCOD_RSP) + $(C_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(USECXX_FLAG) $(MAKEDIR)\$< +$(C_COMPILER_FLAGS: = +) +<<KEEP + +{..\}.c{}.pp: + $(C_COMPILER_NAME) @<<$(CL_RSP) /E $(USECXX_FLAG) $(MAKEDIR)\$< > $@ +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{..\$(TARGET_DIRECTORY)\}.c{}.pp: + $(C_COMPILER_NAME) @<<$(CL_RSP) /E $(USECXX_FLAG) $(MAKEDIR)\$< > $@ +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{}.c{}.cod: + @-erase $(CLCOD_RSP) + $(C_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(USECXX_FLAG) $(MAKEDIR)\$(<F) +$(C_COMPILER_FLAGS: = +) +<<KEEP + +{$(TARGET_DIRECTORY)\}.c{}.cod: + @-erase $(CLCOD_RSP) + $(C_COMPILER_NAME) @<<$(CLCOD_RSP) /Fc $(USECXX_FLAG) $(MAKEDIR)\$< +$(C_COMPILER_FLAGS: = +) +<<KEEP + +{}.c{}.pp: + $(C_COMPILER_NAME) @<<$(CL_RSP) /E $(USECXX_FLAG) $(MAKEDIR)\$< > $@ +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +{$(TARGET_DIRECTORY)\}.c{}.pp: + $(C_COMPILER_NAME) @<<$(CL_RSP) /E $(USECXX_FLAG) $(MAKEDIR)\$< > $@ +$(C_COMPILER_FLAGS: = +) +<<NOKEEP + +!ENDIF # NO_C_RULES + +!IF "$(NTNOFUZZYLOOKUP)"=="1" +LIBRARY_OBJS= +!ENDIF + +# +# Standard inference rule for generating machine specific def files. +# + +.SUFFIXES: .def .src + +CPPXX = $(C_PREPROCESSOR_FLAGS:/Tc=) +CPPXX = $(CPPXX:-Tc=) + +{..\}.src{obj\$(TARGET_DIRECTORY)}.def: + $(C_PREPROCESSOR_NAME) @<<$(CL_RSP) /Tc$< > $@ +$(CPPXX: = +) +<<NOKEEP + +{}.src{obj\$(TARGET_DIRECTORY)}.def: + $(C_PREPROCESSOR_NAME) @<<$(CL_RSP) /Tc$< > $@ +$(CPPXX: = +) +<<NOKEEP + +{..\}.def{obj\$(TARGET_DIRECTORY)}.def: + $(C_PREPROCESSOR_NAME) @<<$(CL_RSP) /Tc$< > $@ +$(CPPXX: = +) +<<NOKEEP + +{}.def{obj\$(TARGET_DIRECTORY)}.def: + $(C_PREPROCESSOR_NAME) @<<$(CL_RSP) /Tc$< > $@ +$(CPPXX: = +) +<<NOKEEP + +# +# Standard inference rule for User Mode object files that produce User Mode +# image files +# + +{obj\$(TARGET_DIRECTORY)\}.obj{obj\$(TARGET_DIRECTORY)\}$(UMAPPLEXT): + $(LINKER) @<< +$(LINKER_FLAGS: = +) +$(PDB_ROOTUM) +$(EXEORDER: = +) +$(LINKGPSIZE: = +) +$(LINKER_OPTIDATA) +-base:$(UMBASE) +-subsystem:$(SUBSYSTEM) +$(UMENTRY) +$(LINKFLAGS: = +) +$(UMRES: = +) +$< +$(UMOBJS: = +) +$(UMLIBS: = +) +$(HEADEROBJNAME: = +) +$(CRTLIBS: = +) +$(LINKLIBS: = +) +<<NOKEEP + $(BINPLACE_CMD) + +# +# Standard list of targets: all, clean and loc. all is the default target. +# + +!IFNDEF PASS0ONLY + +all: obj\_objects.mac \ + $(NTTARGETFILE0) \ + $(PASS0_OBJECTS) \ + $(PRECOMPILED_TARGET) \ + $(HEADEROBJNAME) \ + $(TARGETOBJFILES) \ + $(TARGETLIBFILES) \ + $(NTTARGETFILE1) \ + $(TARGETEXEFILES) \ + $(UMOBJFILES) \ + $(UMEXEFILES) \ + $(NTTARGETFILES) $(MISCFILES) +!IFDEF MISCFILES +! IFDEF _NTTREE + binplace -R $(_NTTREE) $(BINPLACE_FLAGS) $(MISCFILES) +! ENDIF +!ENDIF +!IF "$(BUILDMSG)" != "" + @ech ; $(BUILDMSG) ; +!ENDIF + +!ELSE # PASS0ONLY + +all: $(NTTARGETFILE0) \ + $(PASS0_OBJECTS) +!IF "$(BUILDMSG)" != "" + @ech ; $(BUILDMSG) ; +!ENDIF + +!ENDIF # PASS0ONLY + +update: + @ech Updating library. ; + +obj\_objects.mac: $(SOURCES_USED) + @echo Rebuilding obj\_objects.mac from $(SOURCES_USED). + @build -Of >nul 2>&1 + @echo obj\_objects.mac was rebuilt, please reinvoke NMAKE + @md \ >nul 2>nul + +loc: + @-loc *.h $(SOURCES) + +print: + @-ppr *.h $(SOURCES) + +!IFDEF NTTARGETFILES +!INCLUDE .\makefile.inc +!ELSE +!IFDEF NTTARGETFILE0 +!INCLUDE .\makefile.inc +!ELSE +!IFDEF NTTARGETFILE1 +!INCLUDE .\makefile.inc +!ENDIF +!ENDIF +!ENDIF + +!IF "$(PRECOMPILED_INCLUDE)" != "" +$(PRECOMPILED_TARGET) $(HEADEROBJNAME): $(PRECOMPILED_INCLUDE) + @type << +$(ECHO_PRECOMPILED_MSG) +<<NOKEEP + @$(C_COMPILER_NAME) @<< $(PRECOMPILED_FLAG)<< +$(C_COMPILER_FLAGS: = +) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ) +<<NOKEEP +#include "$(?F)" +<<NOKEEP +!ENDIF + +!IFNDEF NOLINK + +!IF "$(UMTEST)" != "" || "$(UMAPPL)" != "" + + +$(UMEXEFILES): $(UMLIBS) $(CRTLIBS) $(LINKLIBS) + +!ENDIF +!ENDIF + +# +# These dependencies produce the target binaries from the object files. +# These will trigger the sources to object inference rules to generate the +# object files. +# + +!IF "$(TARGET)" != "" +!IF "$(TARGETTYPE)"=="PROGLIB" +$(TARGET:.exe=.lib) $(TARGET:.exe=.exp): $(DLLDEF) $(LIBRARY_OBJS) + -lib -out:$(@R).lib @<< +$(LINK_LIB_IGNORE_FLAG) +-machine:$(TARGET_DIRECTORY) +-def:$(DLLDEF) +-debugtype:cv +-nodefaultlib +$(LIBRARY_OBJS: = +) +<<NOKEEP +$(TARGET): $(OBJECTS) $(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).exp $(UMRES) $(UMLIBS) $(CRTLIBS) $(MACHINE_TARGETLIBS) $(LINKLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +$(EXEORDER: = +) +$(LINKGPSIZE: = +) +$(LINKER_OPTIDATA) +-subsystem:$(SUBSYSTEM) +-base:$(UMBASE) +$(UMENTRY: = +) +$(LINKFLAGS: = +) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) + +!ELSEIF "$(TARGETTYPE)"=="PROGRAM" + +$(TARGET): $(UMRES) $(OBJECTS) $(CRTLIBS) $(UMLIBS) $(MACHINE_TARGETLIBS) $(LINKLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +-subsystem:$(SUBSYSTEM) +-base:$(UMBASE) +$(LINKGPSIZE: = +) +$(UMENTRY: = +) +$(LINKFLAGS: = +) +$(LINKER_OPTIDATA) +$(HEADEROBJNAME: = +) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) + +!ELSEIF "$(TARGETTYPE)"=="DYNLINK" + +!IF "$(DLLLIBOBJECTS)" == "" + +$(DYNLINK_LIB) $(DYNLINK_LIB:.lib=.exp): $(DLLDEF) $(LIBRARY_OBJS) + -lib -out:$(@R).lib @<< +$(LINK_LIB_IGNORE_FLAG) +-machine:$(TARGET_DIRECTORY) +-def:$(DLLDEF) +-debugtype:cv +-nodefaultlib +$(LIBRARY_OBJS: = +) +<<NOKEEP + +!ELSE # "$(DLLLIBOBJECTS)" == "" + +$(DYNLINK_LIB) $(DYNLINK_LIB:.lib=.exp): $(DLLDEF) $(LIBRARY_OBJS) $(DLLLIBOBJECTS) + -lib -out:$(@D)\tmp.lib @<< +$(LINK_LIB_IGNORE_FLAG) +-machine:$(TARGET_DIRECTORY) +-def:$(DLLDEF) +-debugtype:cv +-nodefaultlib +$(LIBRARY_OBJS: = +) +<<NOKEEP + erase $(@R).exp + ren $(@D)\tmp.exp $(@B).exp + -lib -out:$(@R).lib @<< +$(LINK_LIB_IGNORE_FLAG) +-machine:$(TARGET_DIRECTORY) +$(@D)\tmp.lib +$(DLLLIBOBJECTS: = +) +<<NOKEEP + -erase $(@D)\tmp.lib + +!ENDIF # "$(DLLLIBOBJECTS)" == "" + +!IF "$(MAKEDLL)" != "" + +!IFDEF DLLORDER +XXXORDER=-order:@$(DLLORDER) +!ENDIF + +!IFDEF NTPROFILEINPUT +XXXORDER=-order:@$(@B).prf +#XXXORDER=$(XXXORDER:obj\$(TARGET_DIRECTORY)\=) +!ENDIF + +$(TARGET): $(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).exp $(OBJECTS) $(LINKLIBS) $(CRTLIBS) $(MACHINE_TARGETLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +-dll +$(XXXORDER: = +) +$(LINKER_OPTIDATA) +-base:$(DLLBASE) +-subsystem:$(SUBSYSTEM) +$(DLLENTRY: = +) +$(HEADEROBJNAME: = +) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) + $(MAPDUMP_CMD) + +!ENDIF # "$(MAKEDLL)" != "" + +!ELSEIF "$(TARGETTYPE)"=="LIBRARY" + +$(TARGET): $(OBJECTS) + @-erase $@ >nul 2>nul + -$(LIBRARIAN) @<< +$(HEADEROBJNAME: = +) +$(**: = +) +<<NOKEEP + +!ELSEIF "$(TARGETTYPE)"=="DRIVER" || \ + "$(TARGETTYPE)"=="MINIPORT" + +!IFDEF NTPROFILEINPUT +ORDER=-order:@$(@B).prf +!ENDIF + +$(TARGET): $(OBJECTS) $(MACHINE_TARGETLIBS) $(CRTLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +$(ORDER: = +) +$(SECTION_INFO1) +$(SECTION_INFO2) +$(LINKER_OPTIDATA) +-driver +-align:$(DRIVER_ALIGNMENT) +-subsystem:native$(SUBSYSTEM_NATVER) +-base:$(DRIVERBASE) +-entry:DriverEntry$(ENTRY_SUFFIX) +-out:$(TARGET) +$(HEADEROBJNAME: = +) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) + $(MAPDUMP_CMD) + +!ELSEIF "$(TARGETTYPE)"=="GDI_DRIVER" + +!IFDEF NTPROFILEINPUT +ORDER=-order:@$(@B).prf +!ENDIF + +$(TARGET): $(OBJECTS) $(MACHINE_TARGETLIBS) $(CRTLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +-dll +$(ORDER: = +) +$(SECTION_INFO1) +$(SECTION_INFO2) +$(LINKER_OPTIDATA) +-driver +-align:$(DRIVER_ALIGNMENT) +-subsystem:native$(SUBSYSTEM_NATVER) +-base:$(DRIVERBASE) +-entry:DrvEnableDriver$(GDI_ENTRY_SUFFIX) +-out:$(TARGET) +$(HEADEROBJNAME: = +) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) + $(MAPDUMP_CMD) + +!ELSEIF "$(TARGETTYPE)"=="EXPORT_DRIVER" + +!IFDEF NTPROFILEINPUT +ORDER=-order:@$(@B).prf +!ENDIF + +!IF "$(MAKEDLL)" == "" +$(TARGET) $(TARGET:.lib=.exp): $(DLLDEF) $(OBJECTS) $(LINKLIBS) + -lib -out:$(@R).lib @<< +-machine:$(TARGET_DIRECTORY) +-def:$(DLLDEF) +-debugtype:cv +-nodefaultlib +$(LINK_LIB_IGNORE_FLAG) +$(OBJECTS) +$(LINKLIBS) +<<NOKEEP +!ELSE +$(TARGET:.sys=.lib) $(TARGET:.sys=.exp): $(DLLDEF) $(LIBRARY_OBJS) + -lib -out:$(@R).lib @<< +-machine:$(TARGET_DIRECTORY) +-def:$(DLLDEF) +-debugtype:cv +-nodefaultlib +$(LINK_LIB_IGNORE_FLAG) +$(LIBRARY_OBJS) +<<NOKEEP +$(TARGET): $(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).exp $(OBJECTS) $(CRTLIBS) $(MACHINE_TARGETLIBS) $(LINKLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +$(ORDER: = +) +$(LINKER_OPTIDATA) +-driver +-align:$(DRIVER_ALIGNMENT) +-subsystem:native$(SUBSYSTEM_NATVER) +-base:$(DRIVERBASE) +-entry:DriverEntry$(ENTRY_SUFFIX) +-out:$(TARGET) +$(HEADEROBJNAME: = +) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) +!ENDIF + +!ELSEIF "$(TARGETTYPE)"=="HAL" + +!IF "$(MAKEDLL)" == "" +$(TARGET) $(TARGET:.lib=.exp): $(DLLDEF) obj\$(TARGET_DIRECTORY)\*.obj + -lib -out:$(@R).lib -machine:$(TARGET_DIRECTORY) @<< +-def:$(DLLDEF) +-debugtype:cv +-nodefaultlib +$(LINK_LIB_IGNORE_FLAG) +obj\$(TARGET_DIRECTORY)\*.obj +<<NOKEEP +!ELSE +$(TARGET:.dll=.lib) $(TARGET:.dll=.exp): $(DLLDEF) obj\$(TARGET_DIRECTORY)\*.obj + -lib -out:$(@R).lib -machine:$(TARGET_DIRECTORY) @<< +-def:$(DLLDEF) +-debugtype:cv +-nodefaultlib +$(LINK_LIB_IGNORE_FLAG) +obj\$(TARGET_DIRECTORY)\*.obj +<<NOKEEP + +$(TARGET): $(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).exp $(OBJECTS) $(CRTLIBS) $(MACHINE_TARGETLIBS) $(LINKLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +$(LINKER_OPTIDATA) +-driver +-align:$(HAL_ALIGNMENT) +-subsystem:$(SUBSYSTEM) +-base:$(HALBASE) +-miscrdata +-dll +-entry:HalInitSystem$(ENTRY_SUFFIX) +-out:$(TARGET) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) + $(MAPDUMP_CMD) +!ENDIF + +!ELSEIF "$(TARGETTYPE)"=="BOOTPGM" + +$(TARGET): $(OBJECTS) $(CRTLIBS) $(MACHINE_TARGETLIBS) $(LINKLIBS) + $(LINKER) @<< +$(LINKER_FLAGS: = +) +-driver +-subsystem:$(SUBSYSTEM) +-base:$(BOOTBASE) +-entry:_start +-map:$(@R).map +$(LINKFLAGS: = +) +$(**: = +) +<<NOKEEP + +!ENDIF +!ENDIF + +!IFNDEF NOLINK + +!IF "$(NTTEST)" != "" + +!IF "$(TARGETPATH)"=="..\..\mpobj" +KERNEL_DIR=mpobj +KERNEL_TYPE=mp +!ELSE +KERNEL_DIR=obj +KERNEL_TYPE=up +!ENDIF + +!IFDEF NTPROFILEINPUT +ORDER=-order:@..\$(@B).prf +!ENDIF + +obj\$(TARGET_DIRECTORY)\$(NTTEST).exe: $(NTRES) obj\$(TARGET_DIRECTORY)\$(NTTEST).obj \ + $(RELATIVE_DEPTH)\$(KERNEL_DIR)\$(TARGET_DIRECTORY)\*.lib \ + $(LINKLIBS) \ + $(BASEDIR)\public\sdk\lib\$(TARGET_DIRECTORY)\hal.lib \ + $(BASEDIR)\public\sdk\lib\$(TARGET_DIRECTORY)\ntoskrnl.exp \ + $(BASEDIR)\public\sdk\lib\$(TARGET_DIRECTORY)\lsakrnlp.lib \ + $(BASEDIR)\public\sdk\lib\$(TARGET_DIRECTORY)\libcntpr.lib + $(LINKER) @<< +$(LINKER_FLAGS: = +) +$(ORDER: = +) +$(LINKGPSIZE: = +) +$(NTTEST_LINK_OPTIONS: = +) +$(LINKER_OPTIDATA) +-driver +-align:$(KERNEL_ALIGNMENT) +-subsystem:$(SUBSYSTEM) +-miscrdata +$(LINKFLAGS: = +) +$(**: = +) +<<NOKEEP + $(BINPLACE_CMD) + $(MAPDUMP_CMD) + +!ENDIF +!ENDIF diff --git a/private/utils/ntbackup/exchange/build/makefile.plt b/private/utils/ntbackup/exchange/build/makefile.plt new file mode 100644 index 000000000..aa5899f6c --- /dev/null +++ b/private/utils/ntbackup/exchange/build/makefile.plt @@ -0,0 +1,142 @@ +# +# If not defined, specify where to get incs and libs. +# + +!IFNDEF _NTROOT +_NTROOT=\nt +!ENDIF + +!IFNDEF BASEDIR +BASEDIR=$(_NTDRIVE)$(_NTROOT) +!ENDIF + +# +# If not defined, define the build message banner. +# + +!IFNDEF BUILDMSG +BUILDMSG= +!ENDIF + +# +# Determine which target is being built (i386, Mips or Alpha) and define +# the appropriate target variables. +# + +!IFNDEF 386 +386=0 +!ENDIF + +!IFNDEF MIPS +MIPS=0 +!ENDIF + +!IFNDEF ALPHA +ALPHA=0 +!ENDIF + +!IFNDEF PPC +PPC=0 +!ENDIF + +# +# Default to building for the i386 target, if no target is specified. +# + +!IF !$(386) +! IF !$(MIPS) +! IF !$(ALPHA) +! IF !$(PPC) +! IFDEF NTMIPSDEFAULT +MIPS=1 +! IFNDEF TARGETCPU +TARGETCPU=MIPS +! ENDIF +! ELSE +! IFDEF NTALPHADEFAULT +ALPHA=1 +! IFNDEF TARGETCPU +TARGETCPU=ALPHA +! ENDIF +! ELSE +! IFDEF NTPPCDEFAULT +PPC=1 +! IFNDEF TARGETCPU +TARGETCPU=PPC +! ENDIF +! ELSE +386=1 +! IFNDEF TARGETCPU +TARGETCPU=I386 +! ENDIF +! ENDIF +! ENDIF +! ENDIF +! ENDIF +! ENDIF +! ENDIF +!ENDIF + +# +# Define the target platform specific information. +# + +!if $(386) + +ASM_SUFFIX=asm +ASM_INCLUDE_SUFFIX=inc + +TARGET_BRACES= +TARGET_CPP=cl +TARGET_DEFINES=-Di386 -D_X86_ +TARGET_DIRECTORY=i386 +TARGET_NTTREE=$(_NT386TREE) + +MIDL_CPP=$(TARGET_CPP) +MIDL_FLAGS=$(TARGET_DEFINES) -D_WCHAR_T_DEFINED + +!elseif $(MIPS) + +ASM_SUFFIX=s +ASM_INCLUDE_SUFFIX=h + +TARGET_BRACES=-B +TARGET_CPP=cl +TARGET_DEFINES=-DMIPS -D_MIPS_ +TARGET_DIRECTORY=mips +TARGET_NTTREE=$(_NTMIPSTREE) + +MIDL_CPP=$(TARGET_CPP) +MIDL_FLAGS=$(TARGET_DEFINES) -D_WCHAR_T_DEFINED + +!elseif $(ALPHA) + +ASM_SUFFIX=s +ASM_INCLUDE_SUFFIX=h + +TARGET_BRACES=-B +TARGET_CPP=cl +TARGET_DEFINES=-DALPHA -D_ALPHA_ +TARGET_DIRECTORY=alpha +TARGET_NTTREE=$(_NTALPHATREE) + +MIDL_CPP=$(TARGET_CPP) +MIDL_FLAGS=$(TARGET_DEFINES) -D_WCHAR_T_DEFINED + +!elseif $(PPC) + +ASM_SUFFIX=s +ASM_INCLUDE_SUFFIX=h + +TARGET_BRACES=-B +TARGET_CPP=cl +TARGET_DEFINES=-DPPC -D_PPC_ +TARGET_DIRECTORY=ppc +TARGET_NTTREE=$(_NTPPCTREE) + +MIDL_CPP=$(TARGET_CPP) +MIDL_FLAGS=$(TARGET_DEFINES) -D_WCHAR_T_DEFINED + +!else +!error Must define the target as 386, mips, alpha or ppc. +!endif diff --git a/private/utils/ntbackup/exchange/build/mipsmk.inc b/private/utils/ntbackup/exchange/build/mipsmk.inc new file mode 100644 index 000000000..a38682d5c --- /dev/null +++ b/private/utils/ntbackup/exchange/build/mipsmk.inc @@ -0,0 +1,218 @@ +!IF 0 + +Copyright (c) 1994 Microsoft Corporation + +Module Name: + + mipsmk.inc + +Abstract: + + This module contains the MIPs specific build controls. It is included + by makefile.def. + +Author: + + Jeff Havens (jhavens) 13-Feb-1994 + +Revision History: + +!ENDIF + +# +# Mips option control +# + +UMBASE=$(UMBASE:*=mips) +UMLIBS=$(UMLIBS:*=mips) +NTRES=$(NTRES:*=mips) +UMRES=$(UMRES:*=mips) +UMOBJS=$(UMOBJS:*=mips) +LINKLIBS=$(LINKLIBS:*=mips) +DLLBASE=$(DLLBASE:*=mips) +DLLDEF=$(DLLDEF:*=mips) +MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS:*=mips) +TARGET=$(TARGET:*=mips) +DYNLINK_LIB=$(DYNLINK_LIB:*=mips) +TARGETEXEFILES=$(TARGETEXEFILES:*=mips) +TARGETLIBFILES=$(TARGETLIBFILES:*=mips) +TARGETOBJFILES=$(TARGETOBJFILES:*=mips) +UMOBJFILES=$(UMOBJFILES:*=mips) +UMEXEFILES=$(UMEXEFILES:*=mips) +HEADERFILE=$(HEADERFILE:*=mips) +HEADEROBJNAME=$(HEADEROBJNAME:*=mips) +HEADEROBJ=$(HEADEROBJ:*=mips) +PRECOMPILED=$(PRECOMPILED:*=mips) +PRECOMPILED_CXX=$(PRECOMPILED_CXX:*=mips) +PRECOMPILED_TARGET=$(PRECOMPILED_TARGET:*=mips) + +!ifdef NTTARGETFILES +NTTARGETFILES=$(NTTARGETFILES:*=mips) +!endif +!ifdef NTTARGETFILE0 +NTTARGETFILE0=$(NTTARGETFILE0:*=mips) +!endif +!ifdef NTTARGETFILE1 +NTTARGETFILE1=$(NTTARGETFILE1:*=mips) +!endif + +!IF "$(GPSIZE)" != "0" + +LIBC_LIB=$(BASEDIR)\public\sdk\lib\mips\small.lib $(LIBC_LIB) + +LINKGPSIZE=-gpsize:$(GPSIZE) + +!ENDIF + +LINKER_FLAGS = $(LINKER_FLAGS) -merge:.xdata=.rdata + +MIPS_ENDIAN=MIPSEL + +!IF "$(MIPS_F77)" == "" +MIPS_F77=f772.20 +!ENDIF + +ENTRY_SUFFIX= +GDI_ENTRY_SUFFIX= + +!IFDEF MIPS_WARNING_LEVEL +MSC_WARNING_LEVEL=$(MIPS_WARNING_LEVEL) +!ENDIF +!IFDEF MIPS_OPTIMIZATION +MSC_OPTIMIZATION=$(MIPS_OPTIMIZATION) +!ENDIF +!IFDEF MIPS_CPPFLAGS +MSC_CPPFLAGS=$(MIPS_CPPFLAGS) +!ENDIF + +# +# Now a bunch of MIPS stuff +# + +!IF "$(MSC_OPTFLAGS)" == "/Oxs" +DBGFLAGS=$(MSC_OPTFLAGS:/Oxs=/Ox) +!ENDIF + +DBGFLAGS = $(DBGFLAGS:/Zi=-Z7) + +# Use /Z7 instead of /Zi + +DBGFLAGS=$(DBGFLAGS:-Zi=-Z7) + +!IFNDEF MIPS_R3000 +MIPS_CPU=-DR4000 -D_M_MRX000=4000 +MIPS_TRAP_FILE=x4trap.obj +!ELSE +MIPS_CPU=-DR3000 -D_M_MRX000=3000 +MIPS_TRAP_FILE=x3trap.obj +!ENDIF + +MIPS_ASM_DEFINES=$(MIPS_ASMCPP) +ENV_DEFINES=$(LIBC_DEFINES) $(C_DEFINES) $(NET_C_DEFINES) $(MSC_CPPFLAGS) $(NTCPPFLAGS) + +STD_DEFINES=-DMIPS=1 -D_MIPS_=1 -D$(MIPS_ENDIAN) -DNO_EXT_KEYS -DCONDITION_HANDLING=1 $(STD_DEFINES) + +STDFLAGS=-c +MS_MIPS=1 + +MSC_C_COMPILER_NAME=cl $(CBSTRING) -nologo + +CDEFINES=$(STD_DEFINES) $(MIPS_CPU) $(TARGET_DBG_DEFINES) $(ENV_DEFINES) +CFLAGS=$(MIPS_FLAGS) $(NTMIPSFLAGS) $(STDFLAGS) $(DBGFLAGS) $(MIPS_PERFFLAGS) $(USER_C_FLAGS) +AFLAGS=-Gy $(MIPS_FLAGS) $(NTMIPSFLAGS) $(STDFLAGS) $(DBGFLAGS) $(MIPS_PERFFLAGS) + +MIPS_CDEFINES=$(CDEFINES) +MIPS_CFLAGS=$(CFLAGS) -Zel -Zp8 -Gy $(MSC_WARNING_LEVEL) -QMOb4000 +MIPS_CFLAGS=$(MIPS_CFLAGS:-Qmips=-QM) + +C_PREPROCESSOR_NAME = $(MSC_C_COMPILER_NAME) +C_COMPILER_NAME = $(MSC_C_COMPILER_NAME) +CXX_COMPILER_NAME = $(MSC_C_COMPILER_NAME) +MIPS_ASSEMBLER_NAME = $(MSC_C_COMPILER_NAME) + +GLOBAL_C_FLAGS = -nologo -Imips\ -I. $(INCPATH0) $(CDEFINES) $(MIPS_CFLAGS) \ + -DFPO=1 -D__stdcall= -D__cdecl= -D_LANGUAGE_C -DLANGUAGE_C $(MFC_FLAGS) + +C_PREPROCESSOR_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED) -EP -Tc +C_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED) -Gt$(GPSIZE) $(COMPILER_WARNINGS) +CXX_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED_CXX) -Gt$(GPSIZE) $(COMPILER_WARNINGS) + +C_PREPROCESSOR = $(C_PREPROCESSOR_NAME) $(C_PREPROCESSOR_FLAGS) +C_COMPILER = $(C_COMPILER_NAME) $(C_COMPILER_FLAGS) +CXX_COMPILER = $(CXX_COMPILER_NAME) $(CXX_COMPILER_FLAGS) + +ECHO_MSG=ClMips $< " $(C_COMPILER) " + +ECHO_PRECOMPILED_MSG=CpMips $(PRECOMPILED_INCLUDE) " $(C_COMPILER) \ + /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) \ + $(HEADEROBJ) $(PRECOMPILED_FLAG)" + +MIPS_FORTRAN_COMPILER=$(MIPS_F77) $(MSC_WARNINGS) $(MIPS_OPTIONS) -G $(GPSIZE) \ + -excpt -G0 $(MSC_OPTIMIZATION) -O -EL -c + +MIPS_CRFILTER=echo SHOULDN'T NEED TO CRFILTER THIS! + +!IF "$(NTDEBUG)" == "" || "$(NTDEBUG)" == "retail" +!IFNDEF MIPS_ENABLE_DIVIDE_CHECK +MIPS_CFLAGS=$(MIPS_CFLAGS) -d2aNoDivCheck +!ENDIF +!ENDIF + +!ifdef MIPS_ENABLE_MIPS3 +AFLAGS=$(AFLAGS) -d2QMmips3 +!endif + +# +# Use Mips MCL for assembler files. +# + +MIPS_ASSEMBLER_FLAGS = -nologo -Gt$(GPSIZE) -Ge -c $(MIPS_CPU_SWITCHES) \ + -Imips\ -I. $(INCPATH0) $(CDEFINES) \ + $(AFLAGS) -D_LANGUAGE_ASSEMBLY + +MIPS_ASSEMBLER = $(MIPS_ASSEMBLER_NAME) $(MIPS_ASSEMBLER_FLAGS) + +{..\mips\}.s{obj\mips\}.obj: + @-erase $@ >nul 2>&1 + @echo AsMips $< " $(MIPS_ASSEMBLER) " + @$(MIPS_ASSEMBLER_NAME) @<< -Fo$(MAKEDIR)\$@ $< +$(MIPS_ASSEMBLER_FLAGS: = +) +<<NOKEEP + +{mips\}.s{obj\mips\}.obj: + @-erase $@ >nul 2>&1 + @echo AsMips $< " $(MIPS_ASSEMBLER) $(MIPS_ASSEMBLER_FLAGS)" + @$(MIPS_ASSEMBLER_NAME) @<< -Fo$(MAKEDIR)\$@ $< +$(MIPS_ASSEMBLER_FLAGS: = +) +<<NOKEEP + +LINKFLAGS=$(LNKFLAGS) -NODEFAULTLIB +LIBRARY_OBJS=$(LINKLIBS) $(OBJECTS) +# LIBRARY_OBJS= + +!IFDEF TUKWILA +_NTTREE=$(_NTMIPSTREE) +!ENDIF + +!IFDEF CAIRO_PRODUCT +!IFDEF _CAIROMIPSTREE +_NTTREE=$(_CAIROMIPSTREE) +!ENDIF +!ELSEIFDEF _NTMIPSTREE +_NTTREE=$(_NTMIPSTREE) +!ENDIF + +!IFDEF KERNEL_MODE +_NTTREE=$(_NTMIPSTREE)\km +!ENDIF + +!IFDEF _NTMIPSLIBS +_NTLIBS=$(_NTMIPSLIBS) +!ENDIF + +COPYDST=$(MIPSCOPYDST) +LIB_COPY=ntmipscp.cmd + +NTTEST_LINK_OPTIONS= -base:0x10000 -entry:KiSystemStartup diff --git a/private/utils/ntbackup/exchange/build/ppcmk.inc b/private/utils/ntbackup/exchange/build/ppcmk.inc new file mode 100644 index 000000000..0503ff0b0 --- /dev/null +++ b/private/utils/ntbackup/exchange/build/ppcmk.inc @@ -0,0 +1,227 @@ +!IF 0 + +Copyright (c) 1994 Microsoft Corporation + +Module Name: + +ppcmk.inc + +Abstract: + +This module contains the PPC specific build controls. It is included +by makefile.def. + +Author: + +Matt Holle (v-matth) 13-Feb-1994 + +Revision History: + +!ENDIF + + +# +# PPC option control +# + +UMBASE=$(UMBASE:*=ppc) +UMLIBS=$(UMLIBS:*=ppc) +NTRES=$(NTRES:*=ppc) +UMRES=$(UMRES:*=ppc) +UMOBJS=$(UMOBJS:*=ppc) +LINKLIBS=$(LINKLIBS:*=ppc) +DLLBASE=$(DLLBASE:*=ppc) +DLLDEF=$(DLLDEF:*=ppc) +MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS:*=ppc) +TARGET=$(TARGET:*=ppc) +DYNLINK_LIB=$(DYNLINK_LIB:*=ppc) +TARGETEXEFILES=$(TARGETEXEFILES:*=ppc) +TARGETLIBFILES=$(TARGETLIBFILES:*=ppc) +TARGETOBJFILES=$(TARGETOBJFILES:*=ppc) +UMOBJFILES=$(UMOBJFILES:*=ppc) +UMEXEFILES=$(UMEXEFILES:*=ppc) +HEADERFILE=$(HEADERFILE:*=ppc) +HEADEROBJNAME=$(HEADEROBJNAME:*=ppc) +HEADEROBJ=$(HEADEROBJ:*=ppc) +PRECOMPILED=$(PRECOMPILED:*=ppc) +PRECOMPILED_CXX=$(PRECOMPILED_CXX:*=ppc) +PRECOMPILED_TARGET=$(PRECOMPILED_TARGET:*=ppc) + +# +# Include 64-bit helper library +# +#LINKLIBS=$(LINKLIBS) $(BASEDIR)\public\sdk\lib\ppc\int64.lib +!IF "$(TARGETTYPE)"=="DRIVER" || \ + "$(TARGETTYPE)"=="GDI_DRIVER" || \ + "$(TARGETTYPE)"=="MINIPORT" +# +#Drivers don't link with link libs. +# +MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS) $(BASEDIR)\public\sdk\lib\ppc\int64.lib +!ENDIF + +!ifdef NTTARGETFILES +NTTARGETFILES=$(NTTARGETFILES:*=ppc) +!endif +!ifdef NTTARGETFILE0 +NTTARGETFILE0=$(NTTARGETFILE0:*=ppc) +!endif +!ifdef NTTARGETFILE1 +NTTARGETFILE1=$(NTTARGETFILE1:*=ppc) +!endif + +!IF "$(GPSIZE)" != "0" +# +# GPSIZE is irrelevant on PowerPC +# +LINKGPSIZE= +!ENDIF + +ENTRY_SUFFIX= +GDI_ENTRY_SUFFIX= + +!IF "$(MSC_OPTFLAGS)" == "/Oxs" +DBGFLAGS=$(MSC_OPTFLAGS:/Oxs=/Ox) +!ENDIF + +!IFDEF PPC_WARNING_LEVEL +MSC_WARNING_LEVEL=$(PPC_WARNING_LEVEL) +!ENDIF + +!IFDEF PPC_OPTIMIZATION +MSC_OPTIMIZATION=$(PPC_OPTIMIZATION) +!ELSE +MSC_OPTIMIZATION= +!ENDIF + +!IFDEF PPC_CPPFLAGS +MSC_CPPFLAGS=$(PPC_CPPFLAGS) +!ENDIF + +PPC_AS=pas +PPC_DIS=pdis +PPC_AS_WARNINGS= + +PPC_START_FILE=start.obj + +ENV_DEFINES=$(LIBC_DEFINES) $(C_DEFINES) $(NET_C_DEFINES) $(MSC_CPPFLAGS) $(NTCPPFLAGS) $(PM_DEFINES) +STD_DEFINES=-DPPC=1 -D_PPC_=1 -DNO_EXT_KEYS $(STD_DEFINES) -D_M_PPC=1 + +STDFLAGS=-c -Zel -Zp8 -Gy $(MFC_FLAGS) + +PPC_C_COMPILER_NAME = cl $(CBSTRING) -nologo +PPC_CC = $(PPC_C_COMPILER_NAME) + +CDEFINES=$(STD_DEFINES) $(TARGET_DBG_DEFINES) $(ENV_DEFINES) +CFLAGS=$(PPC_FLAGS) $(NTPPCFLAGS) $(STDFLAGS) $(DBGFLAGS) $(USER_C_FLAGS) + +PPC_CDEFINES= $(CDEFINES) +PPC_CFLAGS = $(CFLAGS) -ZB64 $(MSC_WARNING_LEVEL) # -DALLOC_TEXT + +!IFNDEF PPC_OPTIONS +PPC_OPTIONS= +!ENDIF + +C_COMPILER_NAME = $(PPC_C_COMPILER_NAME) +C_PREPROCESSOR_NAME = $(PPC_C_COMPILER_NAME) +CXX_COMPILER_NAME = $(PPC_C_COMPILER_NAME) + +GLOBAL_C_FLAGS = -nologo -Ippc\ -I. $(INCPATH0) $(CDEFINES) $(PPC_OPTIONS) \ + $(PPC_CFLAGS) -D__stdcall= -D__cdecl= -D_cdecl= -Dcdecl= \ + -DFPO=1 -DLANGUAGE_C + +# Disable -WX for now + +GLOBAL_C_FLAGS = $(GLOBAL_C_FLAGS:-WX=) +GLOBAL_C_FLAGS = $(GLOBAL_C_FLAGS:/WX=) + +C_PREPROCESSOR_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED) -EP -Tc +C_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED) $(COMPILER_WARNINGS) +CXX_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED_CXX) $(COMPILER_WARNINGS) + +C_PREPROCESSOR = $(C_PREPROCESSOR_NAME) $(C_PREPROCESSOR_FLAGS) +C_COMPILER = $(C_COMPILER_NAME) $(C_COMPILER_FLAGS) +CXX_COMPILER = $(CXX_COMPILER_NAME) $(CXX_COMPILER_FLAGS) + +PPC_ASSEMBLER = $(PPC_AS) $(PPC_AS_WARNINGS) + +ECHO_MSG = ClPpc $< " $(C_COMPILER) " +ECHO_PRECOMPILED_MSG = CpPpc $(PRECOMPILED_INCLUDE) " $(C_COMPILER) \ + /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) \ + $(HEADEROBJ) $(PRECOMPILED_FLAG)" + +{.\}.cxx{}.obj: + @$(ECHO_MSG) + @$(CXX_COMPILER) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\..\$(<F) + +{.\}.cxx{obj\$(TARGET_DIRECTORY)\}.obj: + @$(ECHO_MSG) + @$(CXX_COMPILER) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\..\$(<F) + +{}.cxx{obj\$(TARGET_DIRECTORY)\}.obj: + @$(ECHO_MSG) + @$(CXX_COMPILER) -Fo$(MAKEDIR)\$@ $(MAKEDIR)\..\$(<F) + +{..\ppc\}.s{obj\ppc\}.obj: + @-erase $@ >nul 2>&1 + @echo AsPpc $< " $(PPC_ASSEMBLER) " + $(C_PREPROCESSOR) $(MAKEDIR)\..\ppc\$(<F) > $(MAKEDIR)\obj\ppc\$(<B).i && $(PPC_ASSEMBLER) -o $@ $(MAKEDIR)\obj\ppc\$(<B).i + @-erase $(MAKEDIR)\obj\ppc\$(<B).i >nul 2>&1 + + +{ppc\}.s{obj\ppc\}.obj: + @-erase $@ >nul 2>&1 + @echo AsPpc $< " $(PPC_ASSEMBLER) " + $(C_PREPROCESSOR) $(MAKEDIR)\ppc\$(<F) > $(MAKEDIR)\obj\ppc\$(<B).i && $(PPC_ASSEMBLER) -o $@ $(MAKEDIR)\obj\ppc\$(<B).i + @-erase $(MAKEDIR)\obj\ppc\$(<B).i >nul 2>&1 + +.SUFFIXES: .il + +{}.il{}.cod: + @-erase $@ >nul 2>&1 + @echo MCL $<" $(C_COMPILER) " + @$(C_COMPILER) -FAac -Fa$(<B).cod -B1..\bootbin\null.exe -Bk$(<B). -Fo$(MAKEDIR)\obj\ppc\$(<B).o $(MAKEDIR)\$(<B).c + @del obj\ppc\$(<B).o + +# +# No reodering under ppc. +# + +LIBRARY_OBJS=$(LINKLIBS) $(OBJECTS) + +!IFDEF TUKWILA +_NTTREE=$(_NTPPCTREE) +!ENDIF + +!IFDEF CAIRO_PRODUCT +!IFDEF _CAIROPPCTREE +_NTTREE=$(_CAIROPPCTREE) +!ENDIF +!ELSE +!IFDEF _NTPPCTREE +_NTTREE=$(_NTPPCTREE) +!ENDIF +!ENDIF + +!IFDEF KERNEL_MODE +_NTTREE=$(_NTPPCTREE)\km +!ENDIF + +!IFDEF _NTPPCLIBS +_NTLIBS=$(_NTPPCLIBS) +!ENDIF + +COPYDST=$(PPCCOPYDST) + +LIB_COPY=ntppccp.cmd + +NTTEST_LINK_OPTIONS= -base:0x80100000 -entry:KiSystemStartup + +# +# Move the compiler generated function descriptors into .rdata +# +# Can be removed when we switch to the MS PPC compiler (assuming +# it emits the descriptor in .rdata already) BryanT +# + +LINKER_FLAGS = -merge:.reldata=.rdata $(LINKER_FLAGS) diff --git a/private/utils/ntbackup/exchange/inc/edbmsg.h b/private/utils/ntbackup/exchange/inc/edbmsg.h new file mode 100644 index 000000000..2288317dc --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/edbmsg.h @@ -0,0 +1,1737 @@ +/* + * EDBMSG.H + * + * Microsoft Exchange Information Store + * Copyright (C) 1986-1996, Microsoft Corporation + * + * Contains declarations of additional properties and interfaces + * offered by Microsoft Exchange Information Store + */ + +#ifndef _EDBMSG_ +#define _EDBMSG_ + +// +// SUCCESS +// +// +// Values are 32 bit values layed out as follows: +// +// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +// +---+-+-+-----------------------+-------------------------------+ +// |Sev|C|R| Facility | Code | +// +---+-+-+-----------------------+-------------------------------+ +// +// where +// +// Sev - is the severity code +// +// 00 - Success +// 01 - Informational +// 10 - Warning +// 11 - Error +// +// C - is the Customer code flag +// +// R - is a reserved bit +// +// Facility - is the facility code +// +// Code - is the facility's status code +// +// +// Define the facility codes +// +#define FACILITY_SYSTEM 0x0 +#define FACILITY_EDB 0x800 +#define FACILITY_BACKUP 0x7FF + + +// +// Define the severity codes +// +#define STATUS_SEVERITY_WARNING 0x2 +#define STATUS_SEVERITY_SUCCESS 0x0 +#define STATUS_SEVERITY_INFORMATIONAL 0x1 +#define STATUS_SEVERITY_ERROR 0x3 + + +// +// MessageId: hrNone +// +// MessageText: +// +// The operation was successful +// +#define hrNone ((HRESULT)0x00000000L) + +// +// ERRORS +// +// +// MessageId: hrNyi +// +// MessageText: +// +// The function is not yet implemented +// +#define hrNyi ((HRESULT)0xC0000001L) + +// +// Backup errors +// +// +// MessageId: hrInvalidParam +// +// MessageText: +// +// The parameter is not valid. +// +#define hrInvalidParam ((HRESULT)0xC7FF0001L) + +// +// MessageId: hrError +// +// MessageText: +// +// An internal error has occurred. +// +#define hrError ((HRESULT)0xC7FF0002L) + +// +// MessageId: hrInvalidHandle +// +// MessageText: +// +// The handle is not valid. +// +#define hrInvalidHandle ((HRESULT)0xC7FF0003L) + +// +// MessageId: hrRestoreInProgress +// +// MessageText: +// +// The Restore process is already in progress. +// +#define hrRestoreInProgress ((HRESULT)0xC7FF0004L) + +// +// MessageId: hrAlreadyOpen +// +// MessageText: +// +// The file specified is already open. +// +#define hrAlreadyOpen ((HRESULT)0xC7FF0005L) + +// +// MessageId: hrInvalidRecips +// +// MessageText: +// +// The recipients are invalid. +// +#define hrInvalidRecips ((HRESULT)0xC7FF0006L) + +// +// MessageId: hrCouldNotConnect +// +// MessageText: +// +// Unable to perform the backup. Either you are not connected to the specified backup server +// or the service you are trying to backup is not running. +// +#define hrCouldNotConnect ((HRESULT)0xC7FF0007L) + +// +// MessageId: hrRestoreMapExists +// +// MessageText: +// +// A restore map already exists for the specified component. You can only specify +// a restore map when performing a full restore. +// +#define hrRestoreMapExists ((HRESULT)0xC7FF0008L) + +// +// MessageId: hrIncrementalBackupDisabled +// +// MessageText: +// +// Another application has modified the specified Microsoft Exchange database such that any +// subsequent backups will fail. You must perform a full backup to fix this problem. +// +#define hrIncrementalBackupDisabled ((HRESULT)0xC7FF0009L) + +// +// MessageId: hrLogFileNotFound +// +// MessageText: +// +// Unable to perform an incremental backup because a required Microsoft Exchange database log file could not be found. +// +#define hrLogFileNotFound ((HRESULT)0xC7FF000AL) + +// +// MessageId: hrCircularLogging +// +// MessageText: +// +// The Microsoft Exchange component specified is configured to use circular database logs. +// It cannot be backed up without a full backup. +// +#define hrCircularLogging ((HRESULT)0xC7FF000BL) + +// +// MessageId: hrNoFullRestore +// +// MessageText: +// +// The databases have not been restored to this machine. You cannot restore an incremental backup +// until a full backup has been restored. +// +#define hrNoFullRestore ((HRESULT)0xC7FF000CL) + +// +// MessageId: hrCommunicationError +// +// MessageText: +// +// A communications error occurred while attempting to perform a local backup. +// +#define hrCommunicationError ((HRESULT)0xC7FF000DL) + +// +// MessageId: hrFullBackupNotTaken +// +// MessageText: +// +// You must perform a full backup before you can perform an incremental backup. +// +#define hrFullBackupNotTaken ((HRESULT)0xC7FF000EL) + +#define hrAlreadyListening ((HRESULT)RPC_S_ALREADY_LISTENING) +// +// ERRORS +// +// +// SYSTEM errors +// +// +// MessageId: hrFileClose +// +// MessageText: +// +// Unable to close the DOS file +// +#define hrFileClose ((HRESULT)0xC8000066L) + +// +// MessageId: hrOutOfThreads +// +// MessageText: +// +// Unable to start a thread because there are none available. +// +#define hrOutOfThreads ((HRESULT)0xC8000067L) + +// +// MessageId: hrTooManyIO +// +// MessageText: +// +// The system is busy because there are too many I/Os. +// +#define hrTooManyIO ((HRESULT)0xC8000069L) + +// +// BUFFER MANAGER errors +// +// +// MessageId: hrBFNotSynchronous +// +// MessageText: +// +// The buffer page has been evicted. +// +#define hrBFNotSynchronous ((HRESULT)0x880000C8L) + +// +// MessageId: hrBFPageNotFound +// +// MessageText: +// +// Unable to find the page. +// +#define hrBFPageNotFound ((HRESULT)0x880000C9L) + +// +// MessageId: hrBFInUse +// +// MessageText: +// +// Unable to abandon the buffer. +// +#define hrBFInUse ((HRESULT)0xC80000CAL) + +// +// DIRECTORY MANAGER errors +// +// +// MessageId: hrPMRecDeleted +// +// MessageText: +// +// The record has been deleted. +// +#define hrPMRecDeleted ((HRESULT)0xC800012EL) + +// +// MessageId: hrRemainingVersions +// +// MessageText: +// +// There is idle work remaining. +// +#define hrRemainingVersions ((HRESULT)0x88000141L) + +// +// RECORD MANAGER errors +// +// +// MessageId: hrFLDKeyTooBig +// +// MessageText: +// +// The key was truncated because it is more than 255 bytes. +// +#define hrFLDKeyTooBig ((HRESULT)0x88000190L) + +// +// MessageId: hrFLDTooManySegments +// +// MessageText: +// +// There are too many key segments. +// +#define hrFLDTooManySegments ((HRESULT)0xC8000191L) + +// +// MessageId: hrFLDNullKey +// +// MessageText: +// +// The key is NULL. +// +#define hrFLDNullKey ((HRESULT)0x88000192L) + +// +// LOGGING/RECOVERY errors +// +// +// MessageId: hrLogFileCorrupt +// +// MessageText: +// +// The log file is damaged. +// +#define hrLogFileCorrupt ((HRESULT)0xC80001F5L) + +// +// MessageId: hrNoBackupDirectory +// +// MessageText: +// +// No backup directory was given. +// +#define hrNoBackupDirectory ((HRESULT)0xC80001F7L) + +// +// MessageId: hrBackupDirectoryNotEmpty +// +// MessageText: +// +// The backup directory is not empty. +// +#define hrBackupDirectoryNotEmpty ((HRESULT)0xC80001F8L) + +// +// MessageId: hrBackupInProgress +// +// MessageText: +// +// Backup is already active. +// +#define hrBackupInProgress ((HRESULT)0xC80001F9L) + +// +// MessageId: hrMissingPreviousLogFile +// +// MessageText: +// +// A log file for the checkpoint is missing. +// +#define hrMissingPreviousLogFile ((HRESULT)0xC80001FDL) + +// +// MessageId: hrLogWriteFail +// +// MessageText: +// +// Unable to write to the log file. +// +#define hrLogWriteFail ((HRESULT)0xC80001FEL) + +// +// MessageId: hrBadLogVersion +// +// MessageText: +// +// The version of the log file is not compatible with the version of the Microsoft Exchange Server database (EDB). +// +#define hrBadLogVersion ((HRESULT)0xC8000202L) + +// +// MessageId: hrInvalidLogSequence +// +// MessageText: +// +// The time stamp in the next log does not match what was expected. +// +#define hrInvalidLogSequence ((HRESULT)0xC8000203L) + +// +// MessageId: hrLoggingDisabled +// +// MessageText: +// +// The log is not active. +// +#define hrLoggingDisabled ((HRESULT)0xC8000204L) + +// +// MessageId: hrLogBufferTooSmall +// +// MessageText: +// +// The log buffer is too small to be recovered. +// +#define hrLogBufferTooSmall ((HRESULT)0xC8000205L) + +// +// MessageId: hrLogSequenceEnd +// +// MessageText: +// +// The maximum number of log files has been exceeded. +// +#define hrLogSequenceEnd ((HRESULT)0xC8000207L) + +// +// MessageId: hrNoBackup +// +// MessageText: +// +// There is no backup in progress. +// +#define hrNoBackup ((HRESULT)0xC8000208L) + +// +// MessageId: hrInvalidBackupSequence +// +// MessageText: +// +// The backup call is out of sequence. +// +#define hrInvalidBackupSequence ((HRESULT)0xC8000209L) + +// +// MessageId: hrBackupNotAllowedYet +// +// MessageText: +// +// Unable to perform a backup now. +// +#define hrBackupNotAllowedYet ((HRESULT)0xC800020BL) + +// +// MessageId: hrDeleteBackupFileFail +// +// MessageText: +// +// Unable to delete the backup file. +// +#define hrDeleteBackupFileFail ((HRESULT)0xC800020CL) + +// +// MessageId: hrMakeBackupDirectoryFail +// +// MessageText: +// +// Unable to make a backup temporary directory. +// +#define hrMakeBackupDirectoryFail ((HRESULT)0xC800020DL) + +// +// MessageId: hrInvalidBackup +// +// MessageText: +// +// An incremental backup cannot be performed when circular logging is enabled. +// +#define hrInvalidBackup ((HRESULT)0xC800020EL) + +// +// MessageId: hrRecoveredWithErrors +// +// MessageText: +// +// Errors were encountered during the repair process. +// +#define hrRecoveredWithErrors ((HRESULT)0xC800020FL) + +// +// MessageId: hrMissingLogFile +// +// MessageText: +// +// The current log file is missing. +// +#define hrMissingLogFile ((HRESULT)0xC8000210L) + +// +// MessageId: hrLogDiskFull +// +// MessageText: +// +// The log disk is full. +// +#define hrLogDiskFull ((HRESULT)0xC8000211L) + +// +// MessageId: hrBadLogSignature +// +// MessageText: +// +// A log file is damaged. +// +#define hrBadLogSignature ((HRESULT)0xC8000212L) + +// +// MessageId: hrBadDbSignature +// +// MessageText: +// +// A database file is damaged. +// +#define hrBadDbSignature ((HRESULT)0xC8000213L) + +// +// MessageId: hrBadCheckpointSignature +// +// MessageText: +// +// A checkpoint file is damaged. +// +#define hrBadCheckpointSignature ((HRESULT)0xC8000214L) + +// +// MessageId: hrCheckpointCorrupt +// +// MessageText: +// +// A checkpoint file either could not be found or is damaged. +// +#define hrCheckpointCorrupt ((HRESULT)0xC8000215L) + +// +// MessageId: hrDatabaseInconsistent +// +// MessageText: +// +// The database is damaged. +// +#define hrDatabaseInconsistent ((HRESULT)0xC8000226L) + +// +// MessageId: hrConsistentTimeMismatch +// +// MessageText: +// +// There is a mismatch in the database's last consistent time. +// +#define hrConsistentTimeMismatch ((HRESULT)0xC8000227L) + +// +// MessageId: hrPatchFileMismatch +// +// MessageText: +// +// The patch file is not generated from this backup. +// +#define hrPatchFileMismatch ((HRESULT)0xC8000228L) + +// +// MessageId: hrRestoreLogTooLow +// +// MessageText: +// +// The starting log number is too low for the restore. +// +#define hrRestoreLogTooLow ((HRESULT)0xC8000229L) + +// +// MessageId: hrRestoreLogTooHigh +// +// MessageText: +// +// The starting log number is too high for the restore. +// +#define hrRestoreLogTooHigh ((HRESULT)0xC800022AL) + +// +// MessageId: hrGivenLogFileHasBadSignature +// +// MessageText: +// +// The log file downloaded from the tape is damaged. +// +#define hrGivenLogFileHasBadSignature ((HRESULT)0xC800022BL) + +// +// MessageId: hrGivenLogFileIsNotContiguous +// +// MessageText: +// +// Unable to find a mandatory log file after the tape was downloaded. +// +#define hrGivenLogFileIsNotContiguous ((HRESULT)0xC800022CL) + +// +// MessageId: hrMissingRestoreLogFiles +// +// MessageText: +// +// The data is not fully restored because some log files are missing. +// +#define hrMissingRestoreLogFiles ((HRESULT)0xC800022DL) + +// +// MessageId: hrExistingLogFileHasBadSignature +// +// MessageText: +// +// The log file in the log file path is damaged. +// +#define hrExistingLogFileHasBadSignature ((HRESULT)0x8800022EL) + +// +// MessageId: hrExistingLogFileIsNotContiguous +// +// MessageText: +// +// Unable to find a mandatory log file in the log file path. +// +#define hrExistingLogFileIsNotContiguous ((HRESULT)0x8800022FL) + +// +// MessageId: hrMissingFullBackup +// +// MessageText: +// +// The database missed a previous full backup before the incremental backup. +// +#define hrMissingFullBackup ((HRESULT)0xC8000230L) + +// +// MessageId: hrBadBackupDatabaseSize +// +// MessageText: +// +// The backup database size must be a multiple of 4K (4096 bytes). +// +#define hrBadBackupDatabaseSize ((HRESULT)0xC8000231L) + +// +// MessageId: hrTermInProgress +// +// MessageText: +// +// The database is being shut down. +// +#define hrTermInProgress ((HRESULT)0xC80003E8L) + +// +// MessageId: hrFeatureNotAvailable +// +// MessageText: +// +// The feature is not available. +// +#define hrFeatureNotAvailable ((HRESULT)0xC80003E9L) + +// +// MessageId: hrInvalidName +// +// MessageText: +// +// The name is not valid. +// +#define hrInvalidName ((HRESULT)0xC80003EAL) + +// +// MessageId: hrInvalidParameter +// +// MessageText: +// +// The parameter is not valid. +// +#define hrInvalidParameter ((HRESULT)0xC80003EBL) + +// +// MessageId: hrColumnNull +// +// MessageText: +// +// The value of the column is null. +// +#define hrColumnNull ((HRESULT)0x880003ECL) + +// +// MessageId: hrBufferTruncated +// +// MessageText: +// +// The buffer is too small for data. +// +#define hrBufferTruncated ((HRESULT)0x880003EEL) + +// +// MessageId: hrDatabaseAttached +// +// MessageText: +// +// The database is already attached. +// +#define hrDatabaseAttached ((HRESULT)0x880003EFL) + +// +// MessageId: hrInvalidDatabaseId +// +// MessageText: +// +// The database ID is not valid. +// +#define hrInvalidDatabaseId ((HRESULT)0xC80003F2L) + +// +// MessageId: hrOutOfMemory +// +// MessageText: +// +// The computer is out of memory. +// +#define hrOutOfMemory ((HRESULT)0xC80003F3L) + +// +// MessageId: hrOutOfDatabaseSpace +// +// MessageText: +// +// The database has reached the maximum size of 16 GB. +// +#define hrOutOfDatabaseSpace ((HRESULT)0xC80003F4L) + +// +// MessageId: hrOutOfCursors +// +// MessageText: +// +// Out of table cursors. +// +#define hrOutOfCursors ((HRESULT)0xC80003F5L) + +// +// MessageId: hrOutOfBuffers +// +// MessageText: +// +// Out of database page buffers. +// +#define hrOutOfBuffers ((HRESULT)0xC80003F6L) + +// +// MessageId: hrTooManyIndexes +// +// MessageText: +// +// There are too many indexes. +// +#define hrTooManyIndexes ((HRESULT)0xC80003F7L) + +// +// MessageId: hrTooManyKeys +// +// MessageText: +// +// There are too many columns in an index. +// +#define hrTooManyKeys ((HRESULT)0xC80003F8L) + +// +// MessageId: hrRecordDeleted +// +// MessageText: +// +// The record has been deleted. +// +#define hrRecordDeleted ((HRESULT)0xC80003F9L) + +// +// MessageId: hrReadVerifyFailure +// +// MessageText: +// +// A read verification error occurred. +// +#define hrReadVerifyFailure ((HRESULT)0xC80003FAL) + +// +// MessageId: hrOutOfFileHandles +// +// MessageText: +// +// Out of file handles. +// +#define hrOutOfFileHandles ((HRESULT)0xC80003FCL) + +// +// MessageId: hrDiskIO +// +// MessageText: +// +// A disk I/O error occurred. +// +#define hrDiskIO ((HRESULT)0xC80003FEL) + +// +// MessageId: hrInvalidPath +// +// MessageText: +// +// The path to the file is not valid. +// +#define hrInvalidPath ((HRESULT)0xC80003FFL) + +// +// MessageId: hrRecordTooBig +// +// MessageText: +// +// The record has exceeded the maximum size. +// +#define hrRecordTooBig ((HRESULT)0xC8000402L) + +// +// MessageId: hrTooManyOpenDatabases +// +// MessageText: +// +// There are too many open databases. +// +#define hrTooManyOpenDatabases ((HRESULT)0xC8000403L) + +// +// MessageId: hrInvalidDatabase +// +// MessageText: +// +// The file is not a database file. +// +#define hrInvalidDatabase ((HRESULT)0xC8000404L) + +// +// MessageId: hrNotInitialized +// +// MessageText: +// +// The database was not yet called. +// +#define hrNotInitialized ((HRESULT)0xC8000405L) + +// +// MessageId: hrAlreadyInitialized +// +// MessageText: +// +// The database was already called. +// +#define hrAlreadyInitialized ((HRESULT)0xC8000406L) + +// +// MessageId: hrFileAccessDenied +// +// MessageText: +// +// Unable to access the file. +// +#define hrFileAccessDenied ((HRESULT)0xC8000408L) + +// +// MessageId: hrBufferTooSmall +// +// MessageText: +// +// The buffer is too small. +// +#define hrBufferTooSmall ((HRESULT)0xC800040EL) + +// +// MessageId: hrSeekNotEqual +// +// MessageText: +// +// Either SeekLE or SeekGE did not find an exact match. +// +#define hrSeekNotEqual ((HRESULT)0x8800040FL) + +// +// MessageId: hrTooManyColumns +// +// MessageText: +// +// There are too many columns defined. +// +#define hrTooManyColumns ((HRESULT)0xC8000410L) + +// +// MessageId: hrContainerNotEmpty +// +// MessageText: +// +// The container is not empty. +// +#define hrContainerNotEmpty ((HRESULT)0xC8000413L) + +// +// MessageId: hrInvalidFilename +// +// MessageText: +// +// The filename is not valid. +// +#define hrInvalidFilename ((HRESULT)0xC8000414L) + +// +// MessageId: hrInvalidBookmark +// +// MessageText: +// +// The bookmark is not valid. +// +#define hrInvalidBookmark ((HRESULT)0xC8000415L) + +// +// MessageId: hrColumnInUse +// +// MessageText: +// +// The column is used in an index. +// +#define hrColumnInUse ((HRESULT)0xC8000416L) + +// +// MessageId: hrInvalidBufferSize +// +// MessageText: +// +// The data buffer does not match the column size. +// +#define hrInvalidBufferSize ((HRESULT)0xC8000417L) + +// +// MessageId: hrColumnNotUpdatable +// +// MessageText: +// +// Unable to set the column value. +// +#define hrColumnNotUpdatable ((HRESULT)0xC8000418L) + +// +// MessageId: hrIndexInUse +// +// MessageText: +// +// The index is in use. +// +#define hrIndexInUse ((HRESULT)0xC800041BL) + +// +// MessageId: hrNullKeyDisallowed +// +// MessageText: +// +// Null keys are not allowed on an index. +// +#define hrNullKeyDisallowed ((HRESULT)0xC800041DL) + +// +// MessageId: hrNotInTransaction +// +// MessageText: +// +// The operation must be within a transaction. +// +#define hrNotInTransaction ((HRESULT)0xC800041EL) + +// +// MessageId: hrNoIdleActivity +// +// MessageText: +// +// No idle activity occured. +// +#define hrNoIdleActivity ((HRESULT)0x88000422L) + +// +// MessageId: hrTooManyActiveUsers +// +// MessageText: +// +// There are too many active database users. +// +#define hrTooManyActiveUsers ((HRESULT)0xC8000423L) + +// +// MessageId: hrInvalidCountry +// +// MessageText: +// +// The country code is either not known or is not valid. +// +#define hrInvalidCountry ((HRESULT)0xC8000425L) + +// +// MessageId: hrInvalidLanguageId +// +// MessageText: +// +// The language ID is either not known or is not valid. +// +#define hrInvalidLanguageId ((HRESULT)0xC8000426L) + +// +// MessageId: hrInvalidCodePage +// +// MessageText: +// +// The code page is either not known or is not valid. +// +#define hrInvalidCodePage ((HRESULT)0xC8000427L) + +// +// MessageId: hrNoWriteLock +// +// MessageText: +// +// There is no write lock at transaction level 0. +// +#define hrNoWriteLock ((HRESULT)0x8800042BL) + +// +// MessageId: hrColumnSetNull +// +// MessageText: +// +// The column value is set to null. +// +#define hrColumnSetNull ((HRESULT)0x8800042CL) + +// +// MessageId: hrVersionStoreOutOfMemory +// +// MessageText: +// +// lMaxVerPages exceeded (XJET only) +// +#define hrVersionStoreOutOfMemory ((HRESULT)0xC800042DL) + +// +// MessageId: hrCurrencyStackOutOfMemory +// +// MessageText: +// +// Out of cursors. +// +#define hrCurrencyStackOutOfMemory ((HRESULT)0xC800042EL) + +// +// MessageId: hrOutOfSessions +// +// MessageText: +// +// Out of sessions. +// +#define hrOutOfSessions ((HRESULT)0xC800044DL) + +// +// MessageId: hrWriteConflict +// +// MessageText: +// +// The write lock failed due to an outstanding write lock. +// +#define hrWriteConflict ((HRESULT)0xC800044EL) + +// +// MessageId: hrTransTooDeep +// +// MessageText: +// +// The transactions are nested too deeply. +// +#define hrTransTooDeep ((HRESULT)0xC800044FL) + +// +// MessageId: hrInvalidSesid +// +// MessageText: +// +// The session handle is not valid. +// +#define hrInvalidSesid ((HRESULT)0xC8000450L) + +// +// MessageId: hrSessionWriteConflict +// +// MessageText: +// +// Another session has a private version of the page. +// +#define hrSessionWriteConflict ((HRESULT)0xC8000453L) + +// +// MessageId: hrInTransaction +// +// MessageText: +// +// The operation is not allowed within a transaction. +// +#define hrInTransaction ((HRESULT)0xC8000454L) + +// +// MessageId: hrDatabaseDuplicate +// +// MessageText: +// +// The database already exists. +// +#define hrDatabaseDuplicate ((HRESULT)0xC80004B1L) + +// +// MessageId: hrDatabaseInUse +// +// MessageText: +// +// The database is in use. +// +#define hrDatabaseInUse ((HRESULT)0xC80004B2L) + +// +// MessageId: hrDatabaseNotFound +// +// MessageText: +// +// The database does not exist. +// +#define hrDatabaseNotFound ((HRESULT)0xC80004B3L) + +// +// MessageId: hrDatabaseInvalidName +// +// MessageText: +// +// The database name is not valid. +// +#define hrDatabaseInvalidName ((HRESULT)0xC80004B4L) + +// +// MessageId: hrDatabaseInvalidPages +// +// MessageText: +// +// The number of pages is not valid. +// +#define hrDatabaseInvalidPages ((HRESULT)0xC80004B5L) + +// +// MessageId: hrDatabaseCorrupted +// +// MessageText: +// +// The database file is either damaged or cannot be found. +// +#define hrDatabaseCorrupted ((HRESULT)0xC80004B6L) + +// +// MessageId: hrDatabaseLocked +// +// MessageText: +// +// The database is locked. +// +#define hrDatabaseLocked ((HRESULT)0xC80004B7L) + +// +// MessageId: hrTableEmpty +// +// MessageText: +// +// An empty table was opened. +// +#define hrTableEmpty ((HRESULT)0x88000515L) + +// +// MessageId: hrTableLocked +// +// MessageText: +// +// The table is locked. +// +#define hrTableLocked ((HRESULT)0xC8000516L) + +// +// MessageId: hrTableDuplicate +// +// MessageText: +// +// The table already exists. +// +#define hrTableDuplicate ((HRESULT)0xC8000517L) + +// +// MessageId: hrTableInUse +// +// MessageText: +// +// Unable to lock the table because it is already in use. +// +#define hrTableInUse ((HRESULT)0xC8000518L) + +// +// MessageId: hrObjectNotFound +// +// MessageText: +// +// The table or object does not exist. +// +#define hrObjectNotFound ((HRESULT)0xC8000519L) + +// +// MessageId: hrCannotRename +// +// MessageText: +// +// Unable to rename the temporary file. +// +#define hrCannotRename ((HRESULT)0xC800051AL) + +// +// MessageId: hrDensityInvalid +// +// MessageText: +// +// The file/index density is not valid. +// +#define hrDensityInvalid ((HRESULT)0xC800051BL) + +// +// MessageId: hrTableNotEmpty +// +// MessageText: +// +// Unable to define the clustered index. +// +#define hrTableNotEmpty ((HRESULT)0xC800051CL) + +// +// MessageId: hrInvalidTableId +// +// MessageText: +// +// The table ID is not valid. +// +#define hrInvalidTableId ((HRESULT)0xC800051EL) + +// +// MessageId: hrTooManyOpenTables +// +// MessageText: +// +// Unable to open any more tables. +// +#define hrTooManyOpenTables ((HRESULT)0xC800051FL) + +// +// MessageId: hrIllegalOperation +// +// MessageText: +// +// The operation is not supported on tables. +// +#define hrIllegalOperation ((HRESULT)0xC8000520L) + +// +// MessageId: hrObjectDuplicate +// +// MessageText: +// +// The table or object name is already being used. +// +#define hrObjectDuplicate ((HRESULT)0xC8000522L) + +// +// MessageId: hrInvalidObject +// +// MessageText: +// +// The object is not valid for operation. +// +#define hrInvalidObject ((HRESULT)0xC8000524L) + +// +// MessageId: hrIndexCantBuild +// +// MessageText: +// +// Unable to build a clustered index. +// +#define hrIndexCantBuild ((HRESULT)0xC8000579L) + +// +// MessageId: hrIndexHasPrimary +// +// MessageText: +// +// The primary index is already defined. +// +#define hrIndexHasPrimary ((HRESULT)0xC800057AL) + +// +// MessageId: hrIndexDuplicate +// +// MessageText: +// +// The index is already defined. +// +#define hrIndexDuplicate ((HRESULT)0xC800057BL) + +// +// MessageId: hrIndexNotFound +// +// MessageText: +// +// The index does not exist. +// +#define hrIndexNotFound ((HRESULT)0xC800057CL) + +// +// MessageId: hrIndexMustStay +// +// MessageText: +// +// Unable to delete a clustered index. +// +#define hrIndexMustStay ((HRESULT)0xC800057DL) + +// +// MessageId: hrIndexInvalidDef +// +// MessageText: +// +// The index definition is illegal. +// +#define hrIndexInvalidDef ((HRESULT)0xC800057EL) + +// +// MessageId: hrIndexHasClustered +// +// MessageText: +// +// The clustered index is already defined. +// +#define hrIndexHasClustered ((HRESULT)0xC8000580L) + +// +// MessageId: hrCreateIndexFailed +// +// MessageText: +// +// Unable to create the index because an error occurred while creating a table. +// +#define hrCreateIndexFailed ((HRESULT)0x88000581L) + +// +// MessageId: hrTooManyOpenIndexes +// +// MessageText: +// +// Out of index description blocks. +// +#define hrTooManyOpenIndexes ((HRESULT)0xC8000582L) + +// +// MessageId: hrColumnLong +// +// MessageText: +// +// The column value is too long. +// +#define hrColumnLong ((HRESULT)0xC80005DDL) + +// +// MessageId: hrColumnDoesNotFit +// +// MessageText: +// +// The field will not fit in the record. +// +#define hrColumnDoesNotFit ((HRESULT)0xC80005DFL) + +// +// MessageId: hrNullInvalid +// +// MessageText: +// +// The value cannot be null. +// +#define hrNullInvalid ((HRESULT)0xC80005E0L) + +// +// MessageId: hrColumnIndexed +// +// MessageText: +// +// Unable to delete because the column is indexed. +// +#define hrColumnIndexed ((HRESULT)0xC80005E1L) + +// +// MessageId: hrColumnTooBig +// +// MessageText: +// +// The length of the field exceeds the maximum length of 255 bytes. +// +#define hrColumnTooBig ((HRESULT)0xC80005E2L) + +// +// MessageId: hrColumnNotFound +// +// MessageText: +// +// Unable to find the column. +// +#define hrColumnNotFound ((HRESULT)0xC80005E3L) + +// +// MessageId: hrColumnDuplicate +// +// MessageText: +// +// The field is already defined. +// +#define hrColumnDuplicate ((HRESULT)0xC80005E4L) + +// +// MessageId: hrColumn2ndSysMaint +// +// MessageText: +// +// Only one auto-increment or version column is allowed per table. +// +#define hrColumn2ndSysMaint ((HRESULT)0xC80005E6L) + +// +// MessageId: hrInvalidColumnType +// +// MessageText: +// +// The column data type is not valid. +// +#define hrInvalidColumnType ((HRESULT)0xC80005E7L) + +// +// MessageId: hrColumnMaxTruncated +// +// MessageText: +// +// The column was truncated because it exceeded the maximum length of 255 bytes. +// +#define hrColumnMaxTruncated ((HRESULT)0x880005E8L) + +// +// MessageId: hrColumnCannotIndex +// +// MessageText: +// +// Unable to index a long value column. +// +#define hrColumnCannotIndex ((HRESULT)0xC80005E9L) + +// +// MessageId: hrTaggedNotNULL +// +// MessageText: +// +// Tagged columns cannot be null. +// +#define hrTaggedNotNULL ((HRESULT)0xC80005EAL) + +// +// MessageId: hrNoCurrentIndex +// +// MessageText: +// +// The entry is not valid without a current index. +// +#define hrNoCurrentIndex ((HRESULT)0xC80005EBL) + +// +// MessageId: hrKeyIsMade +// +// MessageText: +// +// The key is completely made. +// +#define hrKeyIsMade ((HRESULT)0xC80005ECL) + +// +// MessageId: hrBadColumnId +// +// MessageText: +// +// The column ID is not correct. +// +#define hrBadColumnId ((HRESULT)0xC80005EDL) + +// +// MessageId: hrBadItagSequence +// +// MessageText: +// +// There is a bad instance identifier for a multivalued column. +// +#define hrBadItagSequence ((HRESULT)0xC80005EEL) + +// +// MessageId: hrCannotBeTagged +// +// MessageText: +// +// AutoIncrement and Version cannot be multivalued. +// +#define hrCannotBeTagged ((HRESULT)0xC80005F1L) + +// +// MessageId: hrRecordNotFound +// +// MessageText: +// +// Unable to find the key. +// +#define hrRecordNotFound ((HRESULT)0xC8000641L) + +// +// MessageId: hrNoCurrentRecord +// +// MessageText: +// +// The currency is not on a record. +// +#define hrNoCurrentRecord ((HRESULT)0xC8000643L) + +// +// MessageId: hrRecordClusteredChanged +// +// MessageText: +// +// A clustered key cannot be changed. +// +#define hrRecordClusteredChanged ((HRESULT)0xC8000644L) + +// +// MessageId: hrKeyDuplicate +// +// MessageText: +// +// The key already exists. +// +#define hrKeyDuplicate ((HRESULT)0xC8000645L) + +// +// MessageId: hrAlreadyPrepared +// +// MessageText: +// +// The current entry has already been copied or cleared. +// +#define hrAlreadyPrepared ((HRESULT)0xC8000647L) + +// +// MessageId: hrKeyNotMade +// +// MessageText: +// +// No key was made. +// +#define hrKeyNotMade ((HRESULT)0xC8000648L) + +// +// MessageId: hrUpdateNotPrepared +// +// MessageText: +// +// Update was not prepared. +// +#define hrUpdateNotPrepared ((HRESULT)0xC8000649L) + +// +// MessageId: hrwrnDataHasChanged +// +// MessageText: +// +// Data has changed. +// +#define hrwrnDataHasChanged ((HRESULT)0x8800064AL) + +// +// MessageId: hrerrDataHasChanged +// +// MessageText: +// +// The operation was abandoned because data has changed. +// +#define hrerrDataHasChanged ((HRESULT)0xC800064BL) + +// +// MessageId: hrKeyChanged +// +// MessageText: +// +// Moved to a new key. +// +#define hrKeyChanged ((HRESULT)0x88000652L) + +// +// MessageId: hrTooManySorts +// +// MessageText: +// +// There are too many sort processes. +// +#define hrTooManySorts ((HRESULT)0xC80006A5L) + +// +// MessageId: hrInvalidOnSort +// +// MessageText: +// +// An operation that is not valid occurred in the sort. +// +#define hrInvalidOnSort ((HRESULT)0xC80006A6L) + +// +// MessageId: hrTempFileOpenError +// +// MessageText: +// +// Unable to open the temporary file. +// +#define hrTempFileOpenError ((HRESULT)0xC800070BL) + +// +// MessageId: hrTooManyAttachedDatabases +// +// MessageText: +// +// There are too many databases open. +// +#define hrTooManyAttachedDatabases ((HRESULT)0xC800070DL) + +// +// MessageId: hrDiskFull +// +// MessageText: +// +// The disk is full. +// +#define hrDiskFull ((HRESULT)0xC8000710L) + +// +// MessageId: hrPermissionDenied +// +// MessageText: +// +// Permission is denied. +// +#define hrPermissionDenied ((HRESULT)0xC8000711L) + +// +// MessageId: hrFileNotFound +// +// MessageText: +// +// Unable to find the file. +// +#define hrFileNotFound ((HRESULT)0xC8000713L) + +// +// MessageId: hrFileOpenReadOnly +// +// MessageText: +// +// The database file is read only. +// +#define hrFileOpenReadOnly ((HRESULT)0x88000715L) + +// +// MessageId: hrAfterInitialization +// +// MessageText: +// +// Unable to restore after initialization. +// +#define hrAfterInitialization ((HRESULT)0xC800073AL) + +// +// MessageId: hrLogCorrupted +// +// MessageText: +// +// The database log files are damaged. +// +#define hrLogCorrupted ((HRESULT)0xC800073CL) + +// +// MessageId: hrInvalidOperation +// +// MessageText: +// +// The operation is not valid. +// +#define hrInvalidOperation ((HRESULT)0xC8000772L) + +// +// MessageId: hrAccessDenied +// +// MessageText: +// +// Access is denied. +// +#define hrAccessDenied ((HRESULT)0xC8000773L) + +#endif // _EDBMSG_ diff --git a/private/utils/ntbackup/exchange/inc/jet.h b/private/utils/ntbackup/exchange/inc/jet.h new file mode 100644 index 000000000..7ced38f62 --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/jet.h @@ -0,0 +1,1804 @@ +#if !defined(_JET_INCLUDED) +#define _JET_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_M_ALPHA) +#pragma pack(8) +#else +#pragma pack(4) +#endif + +#define JET_API __stdcall +#define JET_NODSAPI __stdcall + +typedef long JET_ERR; + +typedef unsigned long JET_INSTANCE; /* Instance Identifier */ +typedef unsigned long JET_SESID; /* Session Identifier */ +typedef unsigned long JET_TABLEID; /* Table Identifier */ +typedef unsigned long JET_COLUMNID; /* Column Identifier */ + +typedef unsigned long JET_DBID; /* Database Identifier */ +typedef unsigned long JET_OBJTYP; /* Object Type */ +typedef unsigned long JET_COLTYP; /* Column Type */ +typedef unsigned long JET_GRBIT; /* Group of Bits */ +typedef unsigned long JET_ACM; /* Access Mask */ +typedef unsigned long JET_RNT; /* Repair Notification Type */ + +typedef unsigned long JET_SNP; /* Status Notification Process */ +typedef unsigned long JET_SNT; /* Status Notification Type */ +typedef unsigned long JET_SNC; /* Status Notification Code */ +typedef double JET_DATESERIAL; /* JET_coltypDateTime format */ +typedef unsigned long JET_HANDLE; /* backup file handle */ + +typedef JET_ERR (__stdcall *JET_PFNSTATUS)(JET_SESID sesid, JET_SNP snp, JET_SNT snt, void *pv); + +typedef struct tagCONVERT + { + char *szOldDll; + char *szOldSysDb; + unsigned long fDbAttached; // Return value indicating if Db was attached + } JET_CONVERT; + + +typedef enum + { + opDBUTILConsistency, + opDBUTILDumpData, + opDBUTILDumpMetaData, + opDBUTILDumpSpace, + opDBUTILDumpHeader, + opDBUTILDumpLogfile, + opDBUTILDumpCheckpoint + } DBUTIL_OP; + +typedef struct tagDBUTIL + { + unsigned long cbStruct; + char *szDatabase; + char *szTable; + char *szIndex; + DBUTIL_OP op; + JET_GRBIT grbitOptions; + } JET_DBUTIL; + +#define JET_bitDBUtilOptionAllNodes 0x00000001 +#define JET_bitDBUtilOptionKeyStats 0x00000002 +#define JET_bitDBUtilOptionPageDump 0x00000004 +#define JET_bitDBUtilOptionDumpVerbose 0x10000000 // DEBUG only + + + /* Session information bits */ + +#define JET_bitCIMCommitted 0x00000001 +#define JET_bitCIMDirty 0x00000002 +#define JET_bitAggregateTransaction 0x00000008 + + /* JetGetLastErrorInfo structure */ + +typedef struct + { + unsigned long cbStruct; /* Size of this structure */ + JET_ERR err; /* Extended error code (if any) */ + unsigned long ul1; /* First general purpose integer */ + unsigned long ul2; /* Second general purpose integer */ + unsigned long ul3; /* Third general purpose integer */ + } JET_EXTERR; + + /* Status Notification Structures */ + +typedef struct /* Status Notification Progress */ + { + unsigned long cbStruct; /* Size of this structure */ + unsigned long cunitDone; /* Number of units of work completed */ + unsigned long cunitTotal; /* Total number of units of work */ + } JET_SNPROG; + + /* ErrCount Notification Structures */ + +typedef struct /* Status Notification Progress */ + { + unsigned long cbStruct; /* Size of this structure */ + unsigned long cRecUniqueKeyViolation; + unsigned long cRecTypeConversionFail; + unsigned long cRecRecordLocked; + unsigned long cRecTotal; /* Total number of units of work */ + } JET_SNERRCNT; + + +typedef struct /* Status Notification Message */ + { + unsigned long cbStruct; /* Size of this structure */ + JET_SNC snc; /* Status Notification Code */ + unsigned long ul; /* Numeric identifier */ + char sz[256]; /* Identifier */ + } JET_SNMSG; + + +typedef struct + { + unsigned long cbStruct; + JET_OBJTYP objtyp; + JET_DATESERIAL dtCreate; + JET_DATESERIAL dtUpdate; + JET_GRBIT grbit; + unsigned long flags; + unsigned long cRecord; + unsigned long cPage; + } JET_OBJECTINFO; + + +/* required for Exchange to make RSTMAP RPC capable +/**/ +#ifdef MIDL_PASS +#define RPC_STRING [string] +#else +#define RPC_STRING +typedef unsigned short WCHAR; +#endif + +typedef struct + { + RPC_STRING char *szDatabaseName; + RPC_STRING char *szNewDatabaseName; + } JET_RSTMAP; /* restore map */ + +/* required for Exchange unicode support +/**/ +#define UNICODE_RSTMAP + +typedef struct tagJET_RSTMAPW { + RPC_STRING WCHAR *wszDatabaseName; + + RPC_STRING WCHAR *wszNewDatabaseName; + } JET_RSTMAPW, *PJET_RSTMAPW; + + /* The following flags appear in the grbit field above */ + +#define JET_bitTableInfoUpdatable 0x00000001 +#define JET_bitTableInfoBookmark 0x00000002 +#define JET_bitTableInfoRollback 0x00000004 +#define JET_bitTableInfoRestartable 0x00000008 +#define JET_bitTableInfoNoInserts 0x00000010 + + /* The following flags occur in the flags field above */ + +#define JET_bitSaveUIDnPWD 0x20000000 /* this bit is only */ + /* appropriate for rmt links */ +#define JET_bitObjectExclusive 0x40000000 /* Open link exclusively */ +#define JET_bitObjectSystem 0x80000000 + + +typedef struct + { + unsigned long cbStruct; + JET_TABLEID tableid; + unsigned long cRecord; + JET_COLUMNID columnidcontainername; + JET_COLUMNID columnidobjectname; + JET_COLUMNID columnidobjtyp; + JET_COLUMNID columniddtCreate; + JET_COLUMNID columniddtUpdate; + JET_COLUMNID columnidgrbit; + JET_COLUMNID columnidflags; + JET_COLUMNID columnidcRecord; /* Level 2 info */ + JET_COLUMNID columnidcPage; /* Level 2 info */ + } JET_OBJECTLIST; + +#define cObjectInfoCols 9 + +typedef struct + { + unsigned long cbStruct; + JET_TABLEID tableid; + unsigned long cRecord; + JET_COLUMNID columnidSid; + JET_COLUMNID columnidACM; + JET_COLUMNID columnidgrbit; /* grbit from JetSetAccess */ + } JET_OBJECTACMLIST; + +#define cObjectAcmCols 3 + + +typedef struct + { + unsigned long cbStruct; + JET_TABLEID tableid; + unsigned long cRecord; + JET_COLUMNID columnidPresentationOrder; + JET_COLUMNID columnidcolumnname; + JET_COLUMNID columnidcolumnid; + JET_COLUMNID columnidcoltyp; + JET_COLUMNID columnidCountry; + JET_COLUMNID columnidLangid; + JET_COLUMNID columnidCp; + JET_COLUMNID columnidCollate; + JET_COLUMNID columnidcbMax; + JET_COLUMNID columnidgrbit; + JET_COLUMNID columnidDefault; + JET_COLUMNID columnidBaseTableName; + JET_COLUMNID columnidBaseColumnName; + JET_COLUMNID columnidDefinitionName; + } JET_COLUMNLIST; + +#define cColumnInfoCols 14 + +typedef struct + { + unsigned long cbStruct; + JET_COLUMNID columnid; + JET_COLTYP coltyp; + unsigned short wCountry; + unsigned short langid; + unsigned short cp; + unsigned short wCollate; /* Must be 0 */ + unsigned long cbMax; + JET_GRBIT grbit; + } JET_COLUMNDEF; + + +typedef struct + { + unsigned long cbStruct; + JET_COLUMNID columnid; + JET_COLTYP coltyp; + unsigned short wCountry; + unsigned short langid; + unsigned short cp; + unsigned short wFiller; /* Must be 0 */ + unsigned long cbMax; + JET_GRBIT grbit; + char szBaseTableName[256]; + char szBaseColumnName[256]; + } JET_COLUMNBASE; + +typedef struct + { + unsigned long cbStruct; + JET_TABLEID tableid; + unsigned long cRecord; + JET_COLUMNID columnidindexname; + JET_COLUMNID columnidgrbitIndex; + JET_COLUMNID columnidcKey; + JET_COLUMNID columnidcEntry; + JET_COLUMNID columnidcPage; + JET_COLUMNID columnidcColumn; + JET_COLUMNID columnidiColumn; + JET_COLUMNID columnidcolumnid; + JET_COLUMNID columnidcoltyp; + JET_COLUMNID columnidCountry; + JET_COLUMNID columnidLangid; + JET_COLUMNID columnidCp; + JET_COLUMNID columnidCollate; + JET_COLUMNID columnidgrbitColumn; + JET_COLUMNID columnidcolumnname; + } JET_INDEXLIST; + + + +typedef struct tag_JET_COLUMNCREATE + { + unsigned long cbStruct; // size of this structure (for future expansion) + char *szColumnName; // column name + JET_COLTYP coltyp; // column type + unsigned long cbMax; // the maximum length of this column (only relevant for binary and text columns) + JET_GRBIT grbit; // column options + void *pvDefault; // default value (NULL if none) + unsigned long cbDefault; // length of default value + unsigned long cp; // code page (for text columns only) + JET_COLUMNID columnid; // returned column id + JET_ERR err; // returned error code + } JET_COLUMNCREATE; + + +typedef struct tagJET_INDEXCREATE + { + unsigned long cbStruct; // size of this structure (for future expansion) + char *szIndexName; // index name + char *szKey; // index key + unsigned long cbKey; // length of key + JET_GRBIT grbit; // index options + unsigned long ulDensity; // index density + JET_ERR err; // returned error code + } JET_INDEXCREATE; + + +typedef struct tagJET_TABLECREATE + { + unsigned long cbStruct; // size of this structure (for future expansion) + char *szTableName; // name of table to create. + unsigned long ulPages; // initial pages to allocate for table. + unsigned long ulDensity; // table density. + JET_COLUMNCREATE *rgcolumncreate; // array of column creation info + unsigned long cColumns; // number of columns to create + JET_INDEXCREATE *rgindexcreate; // array of index creation info + unsigned long cIndexes; // number of indexes to create + JET_GRBIT grbit; // Abort column/index creation on error? + JET_TABLEID tableid; // returned tableid. + unsigned long cCreated; // count of objects created (columns+table+indexes). + } JET_TABLECREATE; + + +#define cIndexInfoCols 15 + +typedef struct + { + unsigned long cbStruct; + JET_TABLEID tableid; + unsigned long cRecord; + JET_COLUMNID columnidReferenceName; + JET_COLUMNID columnidgrbit; + JET_COLUMNID columnidcColumn; + JET_COLUMNID columnidiColumn; + JET_COLUMNID columnidReferencingTableName; + JET_COLUMNID columnidReferencingColumnName; + JET_COLUMNID columnidReferencedTableName; + JET_COLUMNID columnidReferencedColumnName; + } JET_RELATIONSHIPLIST; + +/* for backward compatibility */ +typedef JET_RELATIONSHIPLIST JET_REFERENCELIST; + +#define cReferenceInfoCols 8 + +typedef struct + { + unsigned long cbStruct; + unsigned long ibLongValue; + unsigned long itagSequence; + JET_COLUMNID columnidNextTagged; + } JET_RETINFO; + +typedef struct + { + unsigned long cbStruct; + unsigned long ibLongValue; + unsigned long itagSequence; + } JET_SETINFO; + +typedef struct + { + unsigned long cbStruct; + unsigned long centriesLT; + unsigned long centriesInRange; + unsigned long centriesTotal; + } JET_RECPOS; + +typedef struct + { + unsigned long cDiscont; + unsigned long cUnfixedMessyPage; + unsigned long centriesLT; + unsigned long centriesTotal; + unsigned long cpgCompactFreed; + } JET_OLCSTAT; + +typedef struct + { + unsigned long ctableid; + JET_TABLEID rgtableid[1]; + } JET_MGBLIST; + +/*** Property Manager Structure ***/ +typedef struct + { + unsigned long cbStruct; + JET_TABLEID tableid; + JET_COLUMNID columnidColumnName; + JET_COLUMNID columnidPropertyName; + JET_COLUMNID columnidGrbit; + JET_COLUMNID columnidPropertyValue; + JET_COLUMNID columnidColtyp; + } JET_PROPERTYLIST; + + +/************************************************************************/ +/************************* JET CONSTANTS ************************/ +/************************************************************************/ + +#define JET_tableidNil ((JET_TABLEID) 0xFFFFFFFF) + +#define JET_sesidNil ((JET_SESID) 0xFFFFFFFF) + + /* Max size of a bookmark */ + +#define JET_cbBookmarkMost 4 + + /* Max length of a object/column/index/property name */ + +#define JET_cbNameMost 64 + + /* Max length of a "name.name.name..." construct */ + +#define JET_cbFullNameMost 255 + + /* Max size of long-value column chunk */ + +#define JET_cbColumnLVChunkMost 4035 + + /* Max size of non-long-value column data */ + +#define JET_cbColumnMost 255 + + /* Max size of a sort/index key */ + +#define JET_cbKeyMost 255 + + /* Max number of components in a sort/index key */ + +#define JET_ccolKeyMost 12 + + /* Max number of columns in a table/query */ + +#define JET_ccolTableMost 255 + + /* Max Length of a property in the property manager */ +#define JET_cbPropertyMost 2048 + + /* Largest initial substring of a long value used in an expression */ + +#define JET_cbExprLVMost 0x8000L /*** 32 K ***/ + + /* Max size of returned (from SQLDriverConnect) conn string */ + +#define JET_cbConnectMost 255 + + /* Max number of levels in an MGB */ + +#define JET_wGroupLevelMax 12 + + /* Size restrictions for Pins */ +#define JET_cchPINMax 20 +#define JET_cchPINMin 4 + + /* System parameter codes for JetSetSystemParameter */ + +/* not supported */ +#define JET_paramPfnStatus 2 /* Status callback function */ +#define JET_paramPfnError 3 /* Error callback function */ +#define JET_paramHwndODBC 4 /* Window handle for ODBC use */ +#define JET_paramIniPath 5 /* Path to the ini file */ +#define JET_paramPageTimeout 6 /* Red ISAM page timeout value */ +#define JET_paramODBCQueryTimeout 7 /* ODBC async query timeout value */ +#define JET_paramODBCLoginTimeout 25 /* ODBC connection attempt timeout value */ +#define JET_paramExprObject 26 /* Expression Evaluation callback */ +#define JET_paramGetTypeComp 27 /* Expression Evaluation callback */ +#define JET_paramHostVersion 28 /* Host Version callback */ +#define JET_paramSQLTraceMode 29 /* Enable/disable SQL tracing */ +#define JET_paramEventId 46 /* NT event id */ +#define JET_paramEventCategory 47 /* NT event category */ +#define JET_paramRmtXactIsolation 39 /* Do not share connections with other sessions */ +#define JET_paramJetInternal 35 /* Whether internal to JET; if set, allows ISAM to do things which are prevented in general */ +#define JET_paramFullQJet 38 /* Allow full QJet functionality */ + +#define JET_paramLogFlushThreshold 18 /* log buffer flush threshold in 512 bytes [10] */ +#define JET_paramLogFlushPeriod 22 /* log flush period in miliseconds [45] */ + +#define JET_paramOnLineCompact 37 /* Options for compact pages on-line */ +#define JET_paramRecovery 30 /* Switch for log on/off */ + +/* debug only not supported */ +#define JET_paramTransactionLevel 32 /* Transaction level of session */ +#define JET_paramAssertAction 44 /* debug only determines action on assert */ +#define JET_paramPrintFunction 49 /* debug only. synched print function */ +#define JET_paramRFS2IOsPermitted 54 /* # IOs permitted to succeed (-1 = all) */ +#define JET_paramRFS2AllocsPermitted 55 /* # allocs permitted to success (-1 = all) */ + +/* fully supported parameters */ +/* Note that one page = 4kBytes. +/**/ +#define JET_paramSysDbPath 0 /* path to the system database (defunct) ["<base name>.<base ext>"] */ +#define JET_paramSystemPath 0 /* path to check point file ["."] */ +#define JET_paramTempPath 1 /* path to the temporary database ["."] */ +#define JET_paramMaxBuffers 8 /* maximum page cache size in pages [512] */ +#define JET_paramMaxSessions 9 /* maximum number of sessions [128] */ +#define JET_paramMaxOpenTables 10 /* maximum number of open tables [300] */ +#define JET_paramPreferredMaxOpenTables 59 /* prefered maximum number of open tables [300] */ +#define JET_paramMaxVerPages 11 /* maximum version store size in 16KB buckets [64] */ +#define JET_paramMaxCursors 12 /* maximum number of open cursors [1024] */ +#define JET_paramLogFilePath 13 /* path to the log file directory ["."] */ +#define JET_paramMaxOpenTableIndexes 14 /* maximum open table indexes [300] */ +#define JET_paramMaxTemporaryTables 15 /* maximum concurrent JetCreateIndex [20] */ +#define JET_paramLogBuffers 16 /* maximum log buffers in 512 bytes [21] */ +#define JET_paramLogFileSize 17 /* maximum log file size in kBytes [5120] */ +#define JET_paramBfThrshldLowPrcnt 19 /* low percentage clean buffer flush start [20] */ +#define JET_paramBfThrshldHighPrcnt 20 /* high percentage clean buffer flush stop [80] */ +#define JET_paramWaitLogFlush 21 /* log flush wait time in milliseconds [15] */ +#define JET_paramLogCheckpointPeriod 23 /* checkpoint period in 512 bytes [1024] */ +#define JET_paramLogWaitingUserMax 24 /* maximum sessions waiting log flush [3] */ +#define JET_paramSessionInfo 33 /* per session information [0] */ +#define JET_paramPageFragment 34 /* maximum disk extent considered fragment in pages [8] */ +#define JET_paramMaxOpenDatabases 36 /* maximum number of open databases [100] */ +#define JET_paramBufBatchIOMax 41 /* maximum batch IO in pages [64] */ +#define JET_paramPageReadAheadMax 42 /* maximum read-ahead IO in pages [20] */ +#define JET_paramAsynchIOMax 43 /* maximum asynchronous IO in pages [64] */ +#define JET_paramEventSource 45 /* language independant process descriptor string [""] */ +#define JET_paramDbExtensionSize 48 /* database extension size in pages [16] */ +#define JET_paramCommitDefault 50 /* default grbit for JetCommitTransaction [0] */ +#define JET_paramBufLogGenAgeThreshold 51 /* age threshold in log files [2] */ +#define JET_paramCircularLog 52 /* boolean flag for circular logging [0] */ +#define JET_paramPageTempDBMin 53 /* minimum size temporary database in pages [0] */ +#define JET_paramBaseName 56 /* base name for all DBMS object names ["edb"] */ +#define JET_paramBaseExtension 57 /* base extension for all DBMS object names ["edb"] */ +#define JET_paramTableClassName 58 /* table stats class name (class #, string) */ + + /* Flags for JetTerm2 */ + +#define JET_bitTermComplete 0x00000001 +#define JET_bitTermAbrupt 0x00000002 + + /* Flags for JetIdle */ + +#define JET_bitIdleRemoveReadLocks 0x00000001 +#define JET_bitIdleFlushBuffers 0x00000002 +#define JET_bitIdleCompact 0x00000004 +#define JET_bitIdleStatus 0x80000000 + + /* Flags for JetEndSession */ + +#define JET_bitForceSessionClosed 0x00000001 + + /* Flags for JetOpenDatabase */ + +#define JET_bitDbReadOnly 0x00000001 +#define JET_bitDbExclusive 0x00000002 /* multiple opens allowed */ +#define JET_bitDbRemoteSilent 0x00000004 +#define JET_bitDbSingleExclusive 0x00000008 /* opened exactly once */ + + /* Flags for JetCloseDatabase */ + +#define JET_bitDbForceClose 0x00000001 + + /* Flags for JetCreateDatabase */ + +#define JET_bitDbVersion10 0x00000002 /* INTERNAL USE ONLY */ +#define JET_bitDbVersion1x 0x00000004 +#define JET_bitDbRecoveryOff 0x00000008 /* disable logging/recovery for this database */ +#define JET_bitDbNoLogging JET_bitDbRecoveryOff +#define JET_bitDbCompleteConnstr 0x00000020 +#define JET_bitDbVersioningOff 0x00000040 + + /* Flags for JetBackup */ + +#define JET_bitBackupIncremental 0x00000001 +#define JET_bitKeepOldLogs 0x00000002 +#define JET_bitBackupAtomic 0x00000004 + + /* Database types */ + +#define JET_dbidNil ((JET_DBID) 0xFFFFFFFF) +#define JET_dbidNoValid ((JET_DBID) 0xFFFFFFFE) /* used as a flag to indicate that there is no valid dbid */ + + /* Flags for JetCreateLink */ + +/* Can use JET_bitObjectExclusive to cause linked to database to be opened */ +/* exclusively. */ + + + + /* Flags for JetCreateTableColumnIndex */ +#define JET_bitTableCreateCheckColumnNames 0x00000001 /* Ensures that each column + /* specified in the JET_COLUMNCREATE + /* array has a unique name + /* (for performance reasons, + /* the default is to NOT perform + /* this check and rely on the + /* function caller to ensure + /* column name uniqueness). + /**/ +#define JET_bitTableCreateCompaction 0x40000000 /* Internal grbit used when + /* creating a table during + /* off-line compact. + /**/ +#define JET_bitTableCreateSystemTable 0x80000000 /* Internal grbit used when + /* creating system tables. + /**/ + + + /* Flags for JetAddColumn, JetGetColumnInfo, JetOpenTempTable */ + +#define JET_bitColumnFixed 0x00000001 +#define JET_bitColumnTagged 0x00000002 +#define JET_bitColumnNotNULL 0x00000004 +#define JET_bitColumnVersion 0x00000008 +#define JET_bitColumnAutoincrement 0x00000010 +#define JET_bitColumnUpdatable 0x00000020 /* JetGetColumnInfo only */ +#define JET_bitColumnTTKey 0x00000040 /* JetOpenTempTable only */ +#define JET_bitColumnTTDescending 0x00000080 /* JetOpenTempTable only */ +#define JET_bitColumnNotLast 0x00000100 /* Installable ISAM option */ +#define JET_bitColumnRmtGraphic 0x00000200 /* JetGetColumnInfo */ +#define JET_bitColumnMultiValued 0x00000400 +#define JET_bitColumnColumnGUID 0x00000800 +#define JET_bitColumnMostMany 0x00001000 +#define JET_bitColumnPreventDelete 0x00002000 + + /* Flags for JetSetCurrentIndex */ + +#define JET_bitMoveFirst 0x00000000 +#define JET_bitMoveBeforeFirst 0x00000001 +#define JET_bitNoMove 0x00000002 + + /* Flags for JetMakeKey */ + +#define JET_bitNewKey 0x00000001 +#define JET_bitStrLimit 0x00000002 +#define JET_bitSubStrLimit 0x00000004 +#define JET_bitNormalizedKey 0x00000008 +#define JET_bitKeyDataZeroLength 0x00000010 + +#ifdef DBCS /* johnta: LIKE "ABC" not converted to ="ABC" for Japanese */ +#define JET_bitLikeExtra1 0x00000020 +#endif /* DBCS */ + + /* Flags for ErrDispSetIndexRange */ + +#define JET_bitRangeInclusive 0x00000001 +#define JET_bitRangeUpperLimit 0x00000002 +#define JET_bitRangeInstantDuration 0x00000004 +#define JET_bitRangeRemove 0x00000008 + + /* Constants for JetMove */ + +#define JET_MoveFirst (0x80000000) +#define JET_MovePrevious (-1) +#define JET_MoveNext (+1) +#define JET_MoveLast (0x7fffffff) + + /* Flags for JetMove */ + +#define JET_bitMoveKeyNE 0x00000001 +#define JET_bitMoveCheckTS 0x00000002 +#define JET_bitMoveInPage 0x00000004 + + /* Flags for JetSeek */ + +#define JET_bitSeekEQ 0x00000001 +#define JET_bitSeekLT 0x00000002 +#define JET_bitSeekLE 0x00000004 +#define JET_bitSeekGE 0x00000008 +#define JET_bitSeekGT 0x00000010 +#define JET_bitSetIndexRange 0x00000020 + + /* Flags for JetFastFind */ + +#define JET_bitFFindBackwards 0x00000001 +#define JET_bitFFindFromCursor 0x00000004 + + /* Flags for JetCreateIndex */ + +#define JET_bitIndexUnique 0x00000001 +#define JET_bitIndexPrimary 0x00000002 +#define JET_bitIndexDisallowNull 0x00000004 +#define JET_bitIndexIgnoreNull 0x00000008 +#define JET_bitIndexClustered 0x00000010 +#define JET_bitIndexIgnoreAnyNull 0x00000020 +#define JET_bitIndexIgnoreFirstNull 0x00000040 +#define JET_bitIndexLazyFlush 0x00000080 +#define JET_bitIndexEmptyTable 0x40000000 // Internal use only +#define JET_bitIndexReference 0x80000000 /* IndexInfo only */ + + /* Flags for index key definition */ + +#define JET_bitKeyAscending 0x00000000 +#define JET_bitKeyDescending 0x00000001 + + + /* Flags for JetCreateRelationship */ + +#define JET_bitRelationUnique 0x00000001 +#define JET_bitRelationDontEnforce 0x00000002 +#define JET_bitRelationInherited 0x00000004 +#define JET_bitRelationTestLegal 0x00000008 /* don't create relationship */ + +#define JET_bitRelationshipMatchMask 0x000000F0 +#define JET_bitRelationMatchDefault 0x00000000 +#define JET_bitRelationMatchFull 0x00000010 + +#define JET_bitRelationUpdateActionMask 0x00000F00 +#define JET_bitRelationUpdateDisallow 0x00000000 +#define JET_bitRelationUpdateCascade 0x00000100 +#define JET_bitRelationUpdateSetNull 0x00000200 +#define JET_bitRelationUpdateSetDefault 0x00000300 + +#define JET_bitRelationDeleteActionMask 0x0000F000 +#define JET_bitRelationDeleteDisallow 0x00000000 +#define JET_bitRelationDeleteCascade 0x00001000 +#define JET_bitRelationDeleteSetNull 0x00002000 +#define JET_bitRelationDeleteSetDefault 0x00003000 + +#define JET_bitRelationUserMask 0xFF000000 /* non-enforced values */ +#define JET_bitRelationJoinMask 0x03000000 +#define JET_bitRelationInner 0x00000000 +#define JET_bitRelationLeft 0x01000000 +#define JET_bitRelationRight 0x02000000 + + + /* Flags for JetCreateReference/JetCreateRelationship */ + /* NOTE: use the bitRelationship flags instead! */ + +#define JET_ReferenceUnique JET_bitRelationUnique +#define JET_ReferenceDontEnforce JET_bitRelationDontEnforce +#define JET_ReferenceMatchTypeMask JET_bitRelationMatchMask +#define JET_ReferenceMatchDefault JET_bitRelationMatchDefault +#define JET_ReferenceMatchFull JET_bitRelationMatchFull +#define JET_ReferenceUpdateActionMask JET_bitRelationUpdateActionMask +#define JET_ReferenceUpdateDisallow JET_bitRelationUpdateDisallow +#define JET_ReferenceUpdateCascade JET_bitRelationUpdateCascade +#define JET_ReferenceUpdateSetNull JET_bitRelationUpdateSetNull +#define JET_ReferenceUpdateSetDefault JET_bitRelationUpdateSetDefault +#define JET_ReferenceDeleteActionMask JET_bitRelationDeleteActionMask +#define JET_ReferenceDeleteDisallow JET_bitRelationDeleteDisallow +#define JET_ReferenceDeleteCascade JET_bitRelationDeleteCascade +#define JET_ReferenceDeleteSetNull JET_bitRelationDeleteSetNull +#define JET_ReferenceDeleteSetDefault JET_bitRelationDeleteSetDefault + + + /* Flags for JetOpenTable */ + +#define JET_bitTableDenyWrite 0x00000001 +#define JET_bitTableDenyRead 0x00000002 +#define JET_bitTableReadOnly 0x00000004 +#define JET_bitTableAppendOnly 0x00000008 +#define JET_bitTableUpdatable 0x00000010 +#define JET_bitTableScrollable 0x00000020 +#define JET_bitTableFixedSet 0x00000040 /* Fixed working set */ +#define JET_bitTableInconsistent 0x00000080 +#define JET_bitTableBulk 0x00000100 +#define JET_bitTableUsePrimaryIndex 0x00000200 /* Use with FixedSet */ +#define JET_bitTableSampleData 0x00000400 +#define JET_bitTableQuickBrowse 0x00000800 /* Bias optimizer toward index usage */ +#define JET_bitTableDDL 0x00001000 /* similar to JET_bitTableBulk, for DDL */ +#define JET_bitTablePassThrough 0x00002000 /* Remote DBs Only */ +#define JET_bitTableRowReturning 0x00004000 +#define JET_bitTableSequential 0x00008000 /* Intend to access table sequentially */ + +#define JET_bitTableClassMask 0x000F0000 /* table stats class mask */ +#define JET_bitTableClassNone 0x00000000 /* table belongs to no stats class (default) */ +#define JET_bitTableClass1 0x00010000 /* table belongs to stats class 1 */ +#define JET_bitTableClass2 0x00020000 /* table belongs to stats class 2 */ +#define JET_bitTableClass3 0x00030000 /* table belongs to stats class 3 */ +#define JET_bitTableClass4 0x00040000 /* table belongs to stats class 4 */ +#define JET_bitTableClass5 0x00050000 /* table belongs to stats class 5 */ +#define JET_bitTableClass6 0x00060000 /* table belongs to stats class 6 */ +#define JET_bitTableClass7 0x00070000 /* table belongs to stats class 7 */ +#define JET_bitTableClass8 0x00080000 /* table belongs to stats class 8 */ +#define JET_bitTableClass9 0x00090000 /* table belongs to stats class 9 */ +#define JET_bitTableClass10 0x000A0000 /* table belongs to stats class 10 */ +#define JET_bitTableClass11 0x000B0000 /* table belongs to stats class 11 */ +#define JET_bitTableClass12 0x000C0000 /* table belongs to stats class 12 */ +#define JET_bitTableClass13 0x000D0000 /* table belongs to stats class 13 */ +#define JET_bitTableClass14 0x000E0000 /* table belongs to stats class 14 */ +#define JET_bitTableClass15 0x000F0000 /* table belongs to stats class 15 */ + + /* Flags for JetSetQoSql/JetRetrieveQoSql */ +#define JET_bitSqlPassThrough 0x00000001 /* Pass through Query returning records */ +#define JET_bitSqlSPTBulkOp 0x00000002 /* SPT query returning no table */ + + /* Flags for JetOpenVtQbe */ + +#define JET_bitQBEAddBrackets 0x00000001 +#define JET_bitQBERemoveEquals 0x00000002 + + /* Flags for JetOpenTempTable and ErrIsamOpenTempTable */ + +#define JET_bitTTIndexed 0x00000001 /* Allow seek */ +#define JET_bitTTUnique 0x00000002 /* Remove duplicates */ +#define JET_bitTTUpdatable 0x00000004 /* Allow updates */ +#define JET_bitTTScrollable 0x00000008 /* Allow backwards scrolling */ + + /* Flags for JetSetColumn */ + +#define JET_bitSetAppendLV 0x00000001 +#define JET_bitSetValidate 0x00000002 +#define JET_bitSetOverwriteLV 0x00000004 /* overwrite JET_coltypLong* byte range */ +#define JET_bitSetSizeLV 0x00000008 /* set JET_coltypLong* size */ +#define JET_bitSetValidateColumn 0x00000010 +#define JET_bitSetZeroLength 0x00000020 +#define JET_bitSetSeparateLV 0x00000040 /* force LV separation */ +#define JET_bitSetNoVersion 0x00000080 /* INTERNAL USE ONLY */ + + /* Set column parameter structure for JetSetColumns */ + +typedef struct { + JET_COLUMNID columnid; + const void *pvData; + unsigned long cbData; + JET_GRBIT grbit; + unsigned long ibLongValue; + unsigned long itagSequence; + JET_ERR err; +} JET_SETCOLUMN; + + /* Options for JetPrepareUpdate */ + +#define JET_prepInsert 0 +#define JET_prepInsertBeforeCurrent 1 +#define JET_prepReplace 2 +#define JET_prepCancel 3 +#define JET_prepReplaceNoLock 4 +#define JET_prepInsertCopy 5 + + /* Flags for JetRetrieveColumn */ + +#define JET_bitRetrieveCopy 0x00000001 +#define JET_bitRetrieveFromIndex 0x00000002 +#define JET_bitRetrieveCase 0x00000004 +#define JET_bitRetrieveTag 0x00000008 +#define JET_bitRetrieveNull 0x00000010 /* for columnid 0 only */ +#define JET_bitRetrieveIgnoreDefault 0x00000020 /* for columnid 0 only */ +#define JET_bitRetrieveLongId 0x00000040 +#define JET_bitRetrieveRecord 0x80000000 +#define JET_bitRetrieveFDB 0x40000000 +#define JET_bitRetrieveBookmarks 0x20000000 + + /* Retrieve column parameter structure for JetRetrieveColumns */ + +typedef struct { + JET_COLUMNID columnid; + void *pvData; + unsigned long cbData; + unsigned long cbActual; + JET_GRBIT grbit; + unsigned long ibLongValue; + unsigned long itagSequence; + JET_COLUMNID columnidNextTagged; + JET_ERR err; +} JET_RETRIEVECOLUMN; + + /* Flags for JetFillFatCursor */ + +#define JET_bitFCFillRange 0x00000001 +#define JET_bitFCRefreshRange 0x00000002 +#define JET_bitFCFillMemos 0x00000004 + + /* Flags for JetCommitTransaction */ + +#define JET_bitCommitFlush 0x00000001 /* commit and flush page buffers. */ +#define JET_bitCommitLazyFlush 0x00000004 /* lazy flush log buffers. */ +#define JET_bitWaitLastLevel0Commit 0x00000010 /* wait for last level 0 commit record flushed */ + + /* Flags for JetRollback */ + +#define JET_bitRollbackAll 0x00000001 + + /* Flags for JetSetAccess and JetGetAccess */ + +#define JET_bitACEInheritable 0x00000001 + + /* Flags for JetCreateSystemDatabase */ + +#define JET_bitSysDbOverwrite 0x00000001 + + /* Flags for Jet Property Management */ +#define JET_bitPropDDL 0x00000001 /* also used for setting */ +#define JET_bitPropInherited 0x00000002 /* not used for setting */ + + /* JPM Flags that are only used for setting properties */ +#define JET_bitPropReplaceOnly 0x00000010 +#define JET_bitPropInsertOnly 0x00000020 +#define JET_bitPropDeleteOnly 0x00000040 + + /* InfoLevels for Jet Property Management */ +#define JET_PropertyValue 0 +#define JET_PropertyCount 1 +#define JET_PropertySingleCollection 2 +#define JET_PropertyAllCollections 3 + + /* Collate values for JetGetColumnInfo and JetGetIndexInfo */ + +#define JET_sortBinary 0x0000 +#define JET_sortEFGPI 0x0100 +#define JET_sortSNIFD 0x0101 +#define JET_sortSpanish 0x0102 +#define JET_sortDutch 0x0103 +#define JET_sortSweFin 0x0104 +#define JET_sortNorDan 0x0105 +#define JET_sortIcelandic 0x0106 +#define JET_sortCyrillic 0x0107 +#define JET_sortCzech 0x0108 +#define JET_sortHungarian 0x0109 +#define JET_sortPolish 0x010A +#define JET_sortArabic 0x010B +#define JET_sortHebrew 0x010C +#define JET_sortMax 0x010C /* Max for nonDBCS sort orders */ + +#ifdef DBCS /* johnta: Add the new Japanese sorting order */ +#define JET_sortJapanese 0x010D +#endif /* DBCS */ + +#define JET_sortUnknown 0xFFFF + + /* Paradox ISAM specific collate values */ + +#define JET_sortPdxIntl 0x1000 +#define JET_sortPdxSwedFin 0x1001 +#define JET_sortPdxNorDan 0x1002 + + /* Info parameter for JetGetDatabaseInfo */ + +#define JET_DbInfoFilename 0 +#define JET_DbInfoConnect 1 +#define JET_DbInfoCountry 2 +#define JET_DbInfoLangid 3 +#define JET_DbInfoCp 4 +#define JET_DbInfoCollate 5 +#define JET_DbInfoOptions 6 +#define JET_DbInfoTransactions 7 +#define JET_DbInfoVersion 8 +#define JET_DbInfoIsam 9 +#define JET_DbInfoFilesize 10 +#define JET_DbInfoSpaceOwned 11 +#define JET_DbInfoSpaceAvailable 12 + + /* Database versions returned by JetGetDatabaseInfo */ + +#define JET_DbVersion10 0x00010000 +#define JET_DbVersion11 0x00010001 +#define JET_DbVersion20 0x00020000 + + + /* Isam specific info returned by JetGetDatabaseInfo */ + +#define JET_IsamInvalid 0 +#define JET_IsamBuiltinRed 1 +#define JET_IsamBuiltinBlue 2 + +#define JET_IsamInstRed 21 +#define JET_IsamInstBlue 22 +#define JET_IsamInstFox 23 +#define JET_IsamInstParadox 24 +#define JET_IsamInstDbase 25 +#define JET_IsamInstBtrieve 26 + +#define JET_IsamBuilinMost JET_BuiltinBlue +#define JET_IsamInstMin JET_IsamInstRed +#define JET_IsamInstMost JET_IsamInstBtrieve + + /* Link specific info for link identification */ +#define JET_bitLinkInvalid 0x00000000 +#define JET_bitLinkRemote 0x00100000 +#define JET_bitLinkBuiltinRed 0x00200000 +#define JET_bitLinkBuiltinBlue 0x00300000 +#define JET_bitLinkInstRed 0x00400000 +#define JET_bitLinkInstBlue 0x00500000 +#define JET_bitLinkInstFox 0x00600000 +#define JET_bitLinkInstParadox 0x00700000 +#define JET_bitLinkInstDbase 0x00800000 +#define JET_bitLinkInstBtrieve 0x00900000 + +#define JET_bitFourByteBookmark 0x00000001 +#define JET_bitContiguousBookmarks 0x00000002 + + /* Column data types */ + +#define JET_coltypNil 0 +#define JET_coltypBit 1 /* True or False, Never NULL */ +#define JET_coltypUnsignedByte 2 /* 1-byte integer, unsigned */ +#define JET_coltypShort 3 /* 2-byte integer, signed */ +#define JET_coltypLong 4 /* 4-byte integer, signed */ +#define JET_coltypCurrency 5 /* 8 byte integer, signed */ +#define JET_coltypIEEESingle 6 /* 4-byte IEEE single precision */ +#define JET_coltypIEEEDouble 7 /* 8-byte IEEE double precision */ +#define JET_coltypDateTime 8 /* Integral date, fractional time */ +#define JET_coltypBinary 9 /* Binary data, < 255 bytes */ +#define JET_coltypText 10 /* ANSI text, case insensitive, < 255 bytes */ +#define JET_coltypLongBinary 11 /* Binary data, long value */ +#define JET_coltypLongText 12 /* ANSI text, long value */ +#define JET_coltypDatabase 13 /* Database name parameter */ +#define JET_coltypTableid 14 /* Tableid parameter */ +#define JET_coltypOLE 15 /* OLE blob */ +#define JET_coltypGUID 15 +#define JET_coltypMax 16 /* the number of column types */ + /* used for validity tests and */ + /* array declarations. */ + + /* Info levels for JetGetObjectInfo */ + +#define JET_ObjInfo 0U +#define JET_ObjInfoListNoStats 1U +#define JET_ObjInfoList 2U +#define JET_ObjInfoSysTabCursor 3U +#define JET_ObjInfoListACM 4U /* Blocked by JetGetObjectInfo */ +#define JET_ObjInfoNoStats 5U +#define JET_ObjInfoSysTabReadOnly 6U +#define JET_ObjInfoRulesLoaded 7U +#define JET_ObjInfoMax 8U + + /* Info levels for JetGetTableInfo */ + +#define JET_TblInfo 0U +#define JET_TblInfoName 1U +#define JET_TblInfoDbid 2U +#define JET_TblInfoMostMany 3U +#define JET_TblInfoRvt 4U +#define JET_TblInfoOLC 5U +#define JET_TblInfoResetOLC 6U +#define JET_TblInfoSpaceUsage 7U +#define JET_TblInfoDumpTable 8U +#define JET_TblInfoSpaceAlloc 9U +#define JET_TblInfoSpaceOwned 10U // OwnExt +#define JET_TblInfoSpaceAvailable 11U // AvailExt + + /* Info levels for JetGetIndexInfo and JetGetTableIndexInfo */ + +#define JET_IdxInfo 0U +#define JET_IdxInfoList 1U +#define JET_IdxInfoSysTabCursor 2U +#define JET_IdxInfoOLC 3U +#define JET_IdxInfoResetOLC 4U +#define JET_IdxInfoSpaceAlloc 5U +#define JET_IdxInfoLangid 6U +#define JET_IdxInfoCount 7U + + /* Info levels for JetGetReferenceInfo and JetGetTableReferenceInfo */ + +#define JET_ReferenceInfo 0U +#define JET_ReferenceInfoReferencing 1U +#define JET_ReferenceInfoReferenced 2U +#define JET_ReferenceInfoAll 3U +#define JET_ReferenceInfoCursor 4U + + /* Info levels for JetGetColumnInfo and JetGetTableColumnInfo */ + +#define JET_ColInfo 0U +#define JET_ColInfoList 1U + /* CONSIDER: Info level 2 is valid */ +#define JET_ColInfoSysTabCursor 3U +#define JET_ColInfoBase 4U +#define JET_ColInfoListCompact 5U + + + /* Attribute types for query definitions */ + +#define JET_qoaBeginDef 0 +#define JET_qoaOperation 1 +#define JET_qoaParameter 2 +#define JET_qoaOptions 3 +#define JET_qoaDatabase 4 +#define JET_qoaInputTable 5 +#define JET_qoaOutput 6 +#define JET_qoaJoin 7 +#define JET_qoaRestriction 8 +#define JET_qoaGroup 9 +#define JET_qoaGroupRstr 10 +#define JET_qoaOrdering 11 +#define JET_qoaEndDef 255 +#define JET_qoaValidLeast JET_qoaOperation +#define JET_qoaValidMost JET_qoaOrdering + + + /* Query object options */ + +#define JET_bitFqoOutputAllCols 0x0001 +#define JET_bitFqoRemoveDups 0x0002 +#define JET_bitFqoOwnerAccess 0x0004 +#define JET_bitFqoDistinctRow 0x0008 +#define JET_bitFqoTop 0x0010 +#define JET_bitFqoPercent 0x0020 +#define JET_bitFqoCorresponding 0x0040 /* JET_qopSetOperation */ + + /* Query object join type */ + +#define JET_fjoinInner 1 +#define JET_fjoinLeftOuter 2 +#define JET_fjoinRightOuter 3 + + /* Query object operations */ + +#define JET_qopSelect 1 +#define JET_qopSelectInto 2 +#define JET_qopInsertSelection 3 +#define JET_qopUpdate 4 +#define JET_qopDelete 5 +#define JET_qopTransform 6 +#define JET_qopDDL 7 +#define JET_qopSqlPassThrough 8 +#define JET_qopSetOperation 9 +#define JET_qopSPTBulk 10 + +#define JET_bitqopSelect 0x0000 +#define JET_bitqopTransform 0x0010 +#define JET_bitqopDelete 0x0020 +#define JET_bitqopUpdate 0x0030 +#define JET_bitqopInsertSelection 0x0040 +#define JET_bitqopSelectInto 0x0050 +#define JET_bitqopDDL 0x0060 +#define JET_bitqopSqlPassThrough 0x0070 +#define JET_bitqopSetOperation 0x0080 +#define JET_bitqopSPTBulk 0x0090 + + /* Engine Object Types */ + +#define JET_objtypNil 0 +#define JET_objtypTable 1 +#define JET_objtypDb 2 +#define JET_objtypContainer 3 +#define JET_objtypSQLLink 4 +#define JET_objtypQuery 5 +#define JET_objtypLink 6 +#define JET_objtypTemplate 7 +#define JET_objtypRelationship 8 + + /* All types less than JET_objtypClientMin are reserved by JET */ + +#define JET_objtypClientMin 0x8000 + + /* Security Constant Values */ + +#define JET_cchUserNameMax 20 +#define JET_cchPasswordMax 14 + + /* Security Access Masks */ + +#define JET_acmNoAccess 0x00000000L +#define JET_acmFullAccess 0x000FFFFFL + +#define JET_acmSpecificMask 0x0000FFFFL +#define JET_acmSpecific_1 0x00000001L +#define JET_acmSpecific_2 0x00000002L +#define JET_acmSpecific_3 0x00000004L +#define JET_acmSpecific_4 0x00000008L +#define JET_acmSpecific_5 0x00000010L +#define JET_acmSpecific_6 0x00000020L +#define JET_acmSpecific_7 0x00000040L +#define JET_acmSpecific_8 0x00000080L +#define JET_acmSpecific_9 0x00000100L +#define JET_acmSpecific_10 0x00000200L +#define JET_acmSpecific_11 0x00000400L +#define JET_acmSpecific_12 0x00000800L +#define JET_acmSpecific_13 0x00001000L +#define JET_acmSpecific_14 0x00002000L +#define JET_acmSpecific_15 0x00004000L +#define JET_acmSpecific_16 0x00008000L + +#define JET_acmStandardMask 0x00FF0000L +#define JET_acmDelete 0x00010000L +#define JET_acmReadControl 0x00020000L +#define JET_acmWriteDac 0x00040000L +#define JET_acmWriteOwner 0x00080000L + +#define JET_acmTblCreate (JET_acmSpecific_1) +#define JET_acmTblAccessRcols (JET_acmSpecific_2) +#define JET_acmTblReadDef (JET_acmSpecific_3) +#define JET_acmTblWriteDef (JET_acmSpecific_4) +#define JET_acmTblRetrieveData (JET_acmSpecific_5) +#define JET_acmTblInsertData (JET_acmSpecific_6) +#define JET_acmTblReplaceData (JET_acmSpecific_7) +#define JET_acmTblDeleteData (JET_acmSpecific_8) + +#define JET_acmDbCreate (JET_acmSpecific_1) +#define JET_acmDbOpen (JET_acmSpecific_2) + + /* Compact Options */ + +#define JET_bitCompactDontCopyLocale 0x00000004 /* Don't copy locale from source to dest */ +#define JET_bitCompactVersion10 0x00000008 /* Destination is version 1.0 format */ +#define JET_bitCompactVersion1x 0x00000010 /* Destination is version 1.x format */ +#define JET_bitCompactStats 0x00000020 /* Dump off-line compaction stats (only when progress meter also specified) */ + + /* On-line Compact Options */ + +#define JET_bitCompactOn 0x00000001 /* enable on-line compaction */ + + /* Repair Notification Types */ + +#define JET_rntSelfContained 0 +#define JET_rntDeletedIndex 1 +#define JET_rntDeletedRec 2 +#define JET_rntDeletedLv 3 +#define JET_rntTruncated 4 + + /* Status Notification Processes */ + +#define JET_snpIndex 0 +#define JET_snpQuery 1 +#define JET_snpRepair 2 +#define JET_snpImex 3 +#define JET_snpCompact 4 +#define JET_snpFastFind 5 +#define JET_snpODBCNotReady 6 +#define JET_snpQuerySort 7 +#define JET_snpRestore 8 +#define JET_snpBackup 9 +#define JET_snpUpgrade 10 + + /* Status Notification Types */ + +#define JET_sntProgress 0 /* callback for progress */ +#define JET_sntMessage 1 +#define JET_sntBulkRecords 2 /* callback for # rec for bulk op */ +#define JET_sntFail 3 /* callback for failure during progress */ +#define JET_sntErrCount 4 /* callback for err count */ +#define JET_sntBegin 5 /* callback for beginning of operation */ +#define JET_sntComplete 6 /* callback for completion of operation */ +#define JET_sntCantRollback 7 /* callback for no rollback */ +#define JET_sntRestoreMap 8 /* callback for restore map */ + + /* Message codes for JET_snpCompact */ + +#define JET_sncCopyObject 0 /* Starting to copy object */ +#define JET_sncCopyFailed 1 /* Copy of this object failed */ +#define JET_sncYield 2 /* Client can yield/check for user interrupt */ +#define JET_sncTransactionFull 3 /* Client can yield/check for user interrupt */ +#define JET_sncAboutToWrap 4 /* Find find is about to wrap */ + + /* Message codes for JET_snpODBCNotReady */ + +#define JET_sncODBCNotReady 0 /* Waiting for results from ODBC */ + + + /* Constants for the [ODBC] section of JET.INI */ + +#define JET_SQLTraceCanonical 0x0001 /* Output ODBC Generic SQL */ + + /* Constants for the [Debug] section of JET.INI */ + + /* APITrace */ + +#define JET_APITraceEnter 0x0001 +#define JET_APITraceExit 0x0002 +#define JET_APITraceExitError 0x0004 +#define JET_APIBreakOnError 0x0008 +#define JET_APITraceCount 0x0010 +#define JET_APITraceNoIdle 0x0020 +#define JET_APITraceParameters 0x0040 + + /* IdleTrace */ + +#define JET_IdleTraceCursor 0x0001 +#define JET_IdleTraceBuffer 0x0002 +#define JET_IdleTraceFlush 0x0004 + + /* AssertAction */ + +#define JET_AssertExit 0x0000 /* Exit the application */ +#define JET_AssertBreak 0x0001 /* Break to debugger */ +#define JET_AssertMsgBox 0x0002 /* Display message box */ +#define JET_AssertStop 0x0004 /* Alert and stop */ + + /* IOTrace */ + +#define JET_IOTraceAlloc 0x0001 /* DB Page Allocation */ +#define JET_IOTraceFree 0x0002 /* DB Page Free */ +#define JET_IOTraceRead 0x0004 /* DB Page Read */ +#define JET_IOTraceWrite 0x0008 /* DB Page Write */ +#define JET_IOTraceError 0x0010 /* DB Page I/O Error */ + + /* MemTrace */ + +#define JET_MemTraceAlloc 0x0001 /* Memory allocation */ +#define JET_MemTraceRealloc 0x0002 /* Memory reallocation */ +#define JET_MemTraceFree 0x0004 /* Memory free */ + + /* RmtTrace */ + +#define JET_RmtTraceError 0x0001 /* Remote server error message */ +#define JET_RmtTraceSql 0x0002 /* Remote SQL Prepares & Exec's */ +#define JET_RmtTraceAPI 0x0004 /* Remote ODBC API calls */ +#define JET_RmtTraceODBC 0x0008 +#define JET_RmtSyncODBC 0x0010 /* Turn on ODBC Sync mode */ + +/**********************************************************************/ +/*********************** ERROR CODES **************************/ +/**********************************************************************/ + +/* SUCCESS */ + +#define JET_errSuccess 0 /* Successful Operation */ + +/* ERRORS */ + +#define JET_wrnNyi -1 /* Function Not Yet Implemented */ + +/* SYSTEM errors +/**/ +#define JET_errRfsFailure -100 /* JET_errRfsFailure */ +#define JET_errRfsNotArmed -101 /* JET_errRfsFailure */ +#define JET_errFileClose -102 /* Could not close DOS file */ +#define JET_errOutOfThreads -103 /* Could not start thread */ +#define JET_errTooManyIO -105 /* System busy due to too many IOs */ +#define JET_errDatabase200Format -106 /* 200 format database */ +#define JET_errDatabase400Format -107 /* 400 format database */ + +/* BUFFER MANAGER errors +/**/ +#define wrnBFNotSynchronous 200 /* Buffer page evicted */ +#define wrnBFPageNotFound 201 /* Page not found */ +#define errBFInUse -202 /* Cannot abandon buffer */ +#define wrnBFNewIO 203 /* Buffer access caused a new IO (cache miss) */ +#define wrnBFCacheMiss 204 /* Buffer access was a cache miss but didn't cause a new IO */ +#define wrnBFNoBufAvailable 205 /* Need to allocate new buffer for read (used in Async IO ) */ + +/* DIRECTORY MANAGER errors +/**/ +#define errPMOutOfPageSpace -300 /* Out of page space */ +#define errPMItagTooBig -301 /* Itag too big */ +#define errPMRecDeleted -302 /* Record deleted */ +#define errPMTagsUsedUp -303 /* Tags used up */ +#define wrnBMConflict 304 /* conflict in BM Clean up */ +#define errDIRNoShortCircuit -305 /* No Short Circuit Avail */ +#define errDIRCannotSplit -306 /* Cannot horizontally split FDP */ +#define errDIRTop -307 /* Cannot go up */ +#define errDIRFDP 308 /* On an FDP Node */ +#define errDIRNotSynchronous -309 /* May have left critical section */ +#define wrnDIREmptyPage 310 /* Moved through empty page */ +#define errSPConflict -311 /* Device extent being extended */ +#define wrnNDFoundLess 312 /* Found Less */ +#define wrnNDFoundGreater 313 /* Found Greater */ +#define errNDOutSonRange -314 /* Son out of range */ +#define errNDOutItemRange -315 /* Item out of range */ +#define errNDGreaterThanAllItems -316 /* Greater than all items */ +#define errNDLastItemNode -317 /* Last node of item list */ +#define errNDFirstItemNode -318 /* First node of item list */ +#define wrnNDDuplicateItem 319 /* Duplicated Item */ +#define errNDNoItem -320 /* Item not there */ +#define JET_wrnRemainingVersions 321 /* Some versions couldn't be cleaned */ +#define JET_wrnPreviousVersion 322 /* Version already existed */ +#define JET_errPageBoundary -323 /* Reached Page Boundary */ +#define JET_errKeyBoundary -324 /* Reached Key Boundary */ +#define errDIRInPageFather -325 /* sridFather in page to free */ +#define errBMMaxKeyInPage -326 /* used by OLC to avoid cleanup of parent pages */ +#define JET_errBadPageLink -327 /* next/previous page link page does not point back to source */ +#define JET_errBadBookmark -328 /* bookmark has no corresponding address in database */ +#define wrnBMCleanNullOp 329 /* BMClean returns this on encountering a page + /* deleted MaxKeyInPage [but there was no conflict] + +/* RECORD MANAGER errors +/**/ +#define wrnFLDKeyTooBig 400 /* Key too big (truncated it) */ +#define errFLDTooManySegments -401 /* Too many key segments */ +#define wrnFLDNullKey 402 /* Key is entirely NULL */ +#define wrnFLDOutOfKeys 403 /* No more keys to extract */ +#define wrnFLDNullSeg 404 /* Null segment in key */ +#define wrnRECLongField 405 /* Separated long value */ +#define JET_wrnSeparateLongValue 406 /* Separated long value */ +#define JET_wrnRecordFoundGreater JET_wrnSeekNotEqual +#define JET_wrnRecordFoundLess JET_wrnSeekNotEqual +#define JET_errColumnIllegalNull JET_errNullInvalid +#define wrnFLDNullFirstSeg 407 /* Null first segment in key */ +#define JET_errKeyTooBig -408 /* Key with column truncation still truncated */ + +/* LOGGING/RECOVERY errors +/**/ +#define JET_errInvalidLoggedOperation -500 /* Logged operation cannot be redone */ +#define JET_errLogFileCorrupt -501 /* Log file is corrupt */ +#define errLGNoMoreRecords -502 /* Last log record read */ +#define JET_errNoBackupDirectory -503 /* No backup directory given */ +#define JET_errBackupDirectoryNotEmpty -504 /* The backup directory is not emtpy */ +#define JET_errBackupInProgress -505 /* Backup is active already */ +#define JET_errMissingPreviousLogFile -509 /* Missing the log file for check point */ +#define JET_errLogWriteFail -510 /* Fail when writing to log file */ +#define JET_errBadLogVersion -514 /* Version of log file is not compatible with Jet version */ +#define JET_errInvalidLogSequence -515 /* Timestamp in next log does not match expected */ +#define JET_errLoggingDisabled -516 /* Log is not active */ +#define JET_errLogBufferTooSmall -517 /* Log buffer is too small for recovery */ +#define errLGNotSynchronous -518 /* retry to LGLogRec */ +#define JET_errLogSequenceEnd -519 /* Exceed maximum log file number */ +#define JET_errNoBackup -520 /* No backup in progress */ +#define JET_errInvalidBackupSequence -521 /* Backup call out of sequence */ +#define JET_errBackupNotAllowedYet -523 /* Can not do backup now */ +#define JET_errDeleteBackupFileFail -524 /* Could not delete backup file */ +#define JET_errMakeBackupDirectoryFail -525 /* Could not make backup temp directory */ +#define JET_errInvalidBackup -526 /* Cannot incremental backup when circular logging enabled */ +#define JET_errRecoveredWithErrors -527 /* For repair, restored with errors */ +#define JET_errMissingLogFile -528 /* current log file missing */ +#define JET_errLogDiskFull -529 /* log disk full */ +#define JET_errBadLogSignature -530 /* bad signature for a log file */ +#define JET_errBadDbSignature -531 /* bad signature for a db file */ +#define JET_errBadCheckpointSignature -532 /* bad signature for a checkpoint file */ +#define JET_errCheckpointCorrupt -533 /* checkpoint file not found or corrupt */ +#define JET_errMissingPatchPage -534 /* patch file page not found during recovery */ + + +#define JET_errDatabaseInconsistent -550 /* database is in inconsistent state */ +#define JET_errConsistentTimeMismatch -551 /* database last consistent time unmatched */ +#define JET_errDatabasePatchFileMismatch -552 /* patch file is not generated from this backup */ +#define JET_errEndingRestoreLogTooLow -553 /* the starting log number too low for the restore */ +#define JET_errStartingRestoreLogTooHigh -554 /* the starting log number too high for the restore */ +#define JET_errGivenLogFileHasBadSignature -555 /* Restore log file has bad signature */ +#define JET_errGivenLogFileIsNotContiguous -556 /* Restore log file is not contiguous */ +#define JET_errMissingRestoreLogFiles -557 /* Some restore log files are missing */ +#define JET_wrnExistingLogFileHasBadSignature 558 /* Existing log file has bad signature */ +#define JET_wrnExistingLogFileIsNotContiguous 559 /* Existing log file is not contiguous */ +#define JET_errMissingFullBackup -560 /* The database miss a previous full backup befor incremental backup */ +#define JET_errBadBackupDatabaseSize -561 /* The backup database size is not in 4k */ +#define JET_errDatabaseAlreadyUpgraded -562 /* Attempted to upgrade a database that is already current */ + +#define JET_errTermInProgress -1000 /* Termination in progress */ +#define JET_errFeatureNotAvailable -1001 /* API not supported */ +#define JET_errInvalidName -1002 /* Invalid name */ +#define JET_errInvalidParameter -1003 /* Invalid API parameter */ +#define JET_wrnColumnNull 1004 /* Column is NULL-valued */ +#define JET_wrnBufferTruncated 1006 /* Buffer too small for data */ +#define JET_wrnDatabaseAttached 1007 /* Database is already attached */ +#define JET_wrnSortOverflow 1009 /* Sort does not fit in memory */ +#define JET_errInvalidDatabaseId -1010 /* Invalid database id */ +#define JET_errOutOfMemory -1011 /* Out of Memory */ +#define JET_errOutOfDatabaseSpace -1012 /* Maximum database size reached */ +#define JET_errOutOfCursors -1013 /* Out of table cursors */ +#define JET_errOutOfBuffers -1014 /* Out of database page buffers */ +#define JET_errTooManyIndexes -1015 /* Too many indexes */ +#define JET_errTooManyKeys -1016 /* Too many columns in an index */ +#define JET_errRecordDeleted -1017 /* Record has been deleted */ +#define JET_errReadVerifyFailure -1018 /* Read verification error */ +#define JET_errOutOfFileHandles -1020 /* Out of file handles */ +#define JET_errDiskIO -1022 /* Disk IO error */ +#define JET_errInvalidPath -1023 /* Invalid file path */ +#define JET_errRecordTooBig -1026 /* Record larger than maximum size */ +#define JET_errTooManyOpenDatabases -1027 /* Too many open databases */ +#define JET_errInvalidDatabase -1028 /* Not a database file */ +#define JET_errNotInitialized -1029 /* JetInit not yet called */ +#define JET_errAlreadyInitialized -1030 /* JetInit already called */ +#define JET_errFileAccessDenied -1032 /* Cannot access file */ +#define JET_errQueryNotSupported -1034 /* Query support unavailable */ +#define JET_errSQLLinkNotSupported -1035 /* SQL Link support unavailable */ +#define JET_errBufferTooSmall -1038 /* Buffer is too small */ +#define JET_wrnSeekNotEqual 1039 /* SeekLE or SeekGE didn't find exact match */ +#define JET_errTooManyColumns -1040 /* Too many columns defined */ +#define JET_errContainerNotEmpty -1043 /* Container is not empty */ +#define JET_errInvalidFilename -1044 /* Filename is invalid */ +#define JET_errInvalidBookmark -1045 /* Invalid bookmark */ +#define JET_errColumnInUse -1046 /* Column used in an index */ +#define JET_errInvalidBufferSize -1047 /* Data buffer doesn't match column size */ +#define JET_errColumnNotUpdatable -1048 /* Cannot set column value */ +#define JET_errIndexInUse -1051 /* Index is in use */ +#define JET_errLinkNotSupported -1052 /* Link support unavailable */ +#define JET_errNullKeyDisallowed -1053 /* Null keys are disallowed on index */ +#define JET_errNotInTransaction -1054 /* Operation must be within a transaction */ +#define JET_wrnNoErrorInfo 1055 /* No extended error information */ +#define JET_wrnNoIdleActivity 1058 /* No idle activity occured */ +#define JET_errTooManyActiveUsers -1059 /* Too many active database users */ +#define JET_errInvalidAppend -1060 /* Cannot append long value */ +#define JET_errInvalidCountry -1061 /* Invalid or unknown country code */ +#define JET_errInvalidLanguageId -1062 /* Invalid or unknown language id */ +#define JET_errInvalidCodePage -1063 /* Invalid or unknown code page */ +#define JET_wrnNoWriteLock 1067 /* No write lock at transaction level 0 */ +#define JET_wrnColumnSetNull 1068 /* Column set to NULL-value */ +#define JET_errVersionStoreOutOfMemory -1069 /* lMaxVerPages exceeded (XJET only) */ +#define JET_errCurrencyStackOutOfMemory -1070 /* lCSRPerfFUCB * lMaxCursors exceeded (XJET only) */ +#define JET_errOutOfSessions -1101 /* Out of sessions */ +#define JET_errWriteConflict -1102 /* Write lock failed due to outstanding write lock */ +#define JET_errTransTooDeep -1103 /* Xactions nested too deeply */ +#define JET_errInvalidSesid -1104 /* Invalid session handle */ +#define JET_errSessionWriteConflict -1107 /* Another session has private version of page */ +#define JET_errInTransaction -1108 /* Operation not allowed within a transaction */ +#define JET_errDatabaseDuplicate -1201 /* Database already exists */ +#define JET_errDatabaseInUse -1202 /* Database in use */ +#define JET_errDatabaseNotFound -1203 /* No such database */ +#define JET_errDatabaseInvalidName -1204 /* Invalid database name */ +#define JET_errDatabaseInvalidPages -1205 /* Invalid number of pages */ +#define JET_errDatabaseCorrupted -1206 /* non-db file or corrupted db */ +#define JET_errDatabaseLocked -1207 /* Database exclusively locked */ +#define JET_errCannotDisableVersioning -1208 /* Cannot disable versioning for this database */ +#define JET_wrnTableEmpty 1301 /* Open an empty table */ +#define JET_errTableLocked -1302 /* Table is exclusively locked */ +#define JET_errTableDuplicate -1303 /* Table already exists */ +#define JET_errTableInUse -1304 /* Table is in use, cannot lock */ +#define JET_errObjectNotFound -1305 /* No such table or object */ +#define JET_errDensityInvalid -1307 /* Bad file/index density */ +#define JET_errTableNotEmpty -1308 /* Cannot define clustered index */ +#define JET_errInvalidTableId -1310 /* Invalid table id */ +#define JET_errTooManyOpenTables -1311 /* Cannot open any more tables */ +#define JET_errIllegalOperation -1312 /* Oper. not supported on table */ +#define JET_errObjectDuplicate -1314 /* Table or object name in use */ +#define JET_errInvalidObject -1316 /* object is invalid for operation */ +#define JET_errIndexCantBuild -1401 /* Cannot build clustered index */ +#define JET_errIndexHasPrimary -1402 /* Primary index already defined */ +#define JET_errIndexDuplicate -1403 /* Index is already defined */ +#define JET_errIndexNotFound -1404 /* No such index */ +#define JET_errIndexMustStay -1405 /* Cannot delete clustered index */ +#define JET_errIndexInvalidDef -1406 /* Illegal index definition */ +#define JET_errIndexHasClustered -1408 /* Clustered index already defined */ +#define JET_errInvalidCreateIndex -1409 /* Invali create index description */ +#define JET_errTooManyOpenIndexes -1410 /* Out of index description blocks */ +#define JET_errColumnLong -1501 /* Column value is long */ +#define JET_errColumnNoChunk -1502 /* no such chunk in long value */ +#define JET_errColumnDoesNotFit -1503 /* Field will not fit in record */ +#define JET_errNullInvalid -1504 /* Null not valid */ +#define JET_errColumnIndexed -1505 /* Column indexed, cannot delete */ +#define JET_errColumnTooBig -1506 /* Field length is > maximum */ +#define JET_errColumnNotFound -1507 /* No such column */ +#define JET_errColumnDuplicate -1508 /* Field is already defined */ +#define JET_errColumn2ndSysMaint -1510 /* Second autoinc or version column */ +#define JET_errInvalidColumnType -1511 /* Invalid column data type */ +#define JET_wrnColumnMaxTruncated 1512 /* Max length too big, truncated */ +#define JET_errColumnCannotIndex -1513 /* Cannot index Bit,LongText,LongBinary */ +#define JET_errTaggedNotNULL -1514 /* No non-NULL tagged columns */ +#define JET_errNoCurrentIndex -1515 /* Invalid w/o a current index */ +#define JET_errKeyIsMade -1516 /* The key is completely made */ +#define JET_errBadColumnId -1517 /* Column Id Incorrect */ +#define JET_errBadItagSequence -1518 /* Bad itagSequence for tagged column */ +#define JET_errColumnInRelationship -1519 /* Cannot delete, column participates in relationship */ +#define JET_wrnCopyLongValue 1520 /* Single instance column bursted */ +#define JET_errCannotBeTagged -1521 /* AutoIncrement and Version cannot be tagged */ +#define JET_errRecordNotFound -1601 /* The key was not found */ +#define JET_errRecordNoCopy -1602 /* No working buffer */ +#define JET_errNoCurrentRecord -1603 /* Currency not on a record */ +#define JET_errRecordClusteredChanged -1604 /* Clustered key may not change */ +#define JET_errKeyDuplicate -1605 /* Illegal duplicate key */ +#define JET_errAlreadyPrepared -1607 /* Already copy/clear current */ +#define JET_errKeyNotMade -1608 /* No call to JetMakeKey */ +#define JET_errUpdateNotPrepared -1609 /* No call to JetPrepareUpdate */ +#define JET_wrnDataHasChanged 1610 /* Data has changed */ +#define JET_errDataHasChanged -1611 /* Data has changed, operation aborted */ +#define JET_wrnKeyChanged 1618 /* Moved to new key */ +#define JET_errTooManySorts -1701 /* Too many sort processes */ +#define JET_errInvalidOnSort -1702 /* Invalid operation on Sort */ +#define JET_errTempFileOpenError -1803 /* Temp file could not be opened */ +#define JET_errTooManyAttachedDatabases -1805 /* Too many open databases */ +#define JET_errDiskFull -1808 /* No space left on disk */ +#define JET_errPermissionDenied -1809 /* Permission denied */ +#define JET_errFileNotFound -1811 /* File not found */ +#define JET_wrnFileOpenReadOnly 1813 /* Database file is read only */ +#define JET_errAfterInitialization -1850 /* Cannot Restore after init. */ +#define JET_errLogCorrupted -1852 /* Logs could not be interpreted */ +#define JET_errInvalidOperation -1906 /* invalid operation */ +#define JET_errAccessDenied -1907 /* access denied */ +#define JET_wrnIdleFull 1908 /* ilde registry full */ + + +/**********************************************************************/ +/*********************** PROTOTYPES **************************/ +/**********************************************************************/ + +#if !defined(_JET_NOPROTOTYPES) + +JET_ERR JET_API JetInit(JET_INSTANCE *pinstance); + +JET_ERR JET_API JetTerm(JET_INSTANCE instance); + +JET_ERR JET_API JetTerm2( JET_INSTANCE instance, JET_GRBIT grbit ); + +JET_ERR JET_API JetSetSystemParameter(JET_INSTANCE *pinstance, JET_SESID sesid, unsigned long paramid, + unsigned long lParam, const char *sz); + +JET_ERR JET_API JetGetSystemParameter(JET_INSTANCE instance, JET_SESID sesid, unsigned long paramid, + unsigned long *plParam, char *sz, unsigned long cbMax); + +#define ctAccessPage 1 +#define ctLatchConflict 2 +#define ctSplitRetry 3 +#define ctNeighborPageScanned 4 +#define ctSplits 5 +JET_ERR JET_API JetResetCounter( JET_SESID sesid, long CounterType ); +JET_ERR JET_API JetGetCounter( JET_SESID sesid, long CounterType, long *plValue ); + +JET_ERR JET_API JetBeginSession(JET_INSTANCE instance, JET_SESID *psesid, + const char *szUserName, const char *szPassword); + +JET_ERR JET_API JetDupSession(JET_SESID sesid, JET_SESID *psesid); + +JET_ERR JET_API JetEndSession(JET_SESID sesid, JET_GRBIT grbit); + +JET_ERR JET_API JetGetVersion(JET_SESID sesid, unsigned long *pwVersion); + +JET_ERR JET_API JetIdle(JET_SESID sesid, JET_GRBIT grbit); + +JET_ERR JET_API JetCreateDatabase(JET_SESID sesid, + const char *szFilename, const char *szConnect, + JET_DBID *pdbid, JET_GRBIT grbit); + +JET_ERR JET_API JetAttachDatabase(JET_SESID sesid, const char *szFilename, JET_GRBIT grbit ); + +JET_ERR JET_API JetDetachDatabase(JET_SESID sesid, const char *szFilename); + +JET_ERR JET_API JetCreateTable(JET_SESID sesid, JET_DBID dbid, + const char *szTableName, unsigned long lPages, unsigned long lDensity, + JET_TABLEID *ptableid); + +JET_ERR JET_API JetCreateTableColumnIndex( JET_SESID sesid, JET_DBID dbid, + JET_TABLECREATE *ptablecreate ); + +JET_ERR JET_API JetDeleteTable(JET_SESID sesid, JET_DBID dbid, + const char *szTableName); + +JET_ERR JET_API JetGetTableColumnInfo(JET_SESID sesid, JET_TABLEID tableid, + const char *szColumnName, void *pvResult, unsigned long cbMax, + unsigned long InfoLevel); + +JET_ERR JET_API JetGetColumnInfo(JET_SESID sesid, JET_DBID dbid, + const char *szTableName, const char *szColumnName, + void *pvResult, unsigned long cbMax, unsigned long InfoLevel); + +JET_ERR JET_API JetAddColumn(JET_SESID sesid, JET_TABLEID tableid, + const char *szColumn, const JET_COLUMNDEF *pcolumndef, + const void *pvDefault, unsigned long cbDefault, + JET_COLUMNID *pcolumnid); + +JET_ERR JET_API JetDeleteColumn(JET_SESID sesid, JET_TABLEID tableid, + const char *szColumn); + +JET_ERR JET_API JetGetTableIndexInfo(JET_SESID sesid, JET_TABLEID tableid, + const char *szIndexName, void *pvResult, unsigned long cbResult, + unsigned long InfoLevel); + +JET_ERR JET_API JetGetTableInfo(JET_SESID sesid, JET_TABLEID tableid, + void *pvResult, unsigned long cbMax, unsigned long InfoLevel); + +JET_ERR JET_API JetGetIndexInfo(JET_SESID sesid, JET_DBID dbid, + const char *szTableName, const char *szIndexName, + void *pvResult, unsigned long cbResult, unsigned long InfoLevel); + +JET_ERR JET_API JetCreateIndex(JET_SESID sesid, JET_TABLEID tableid, + const char *szIndexName, JET_GRBIT grbit, + const char *szKey, unsigned long cbKey, unsigned long lDensity); + +JET_ERR JET_API JetDeleteIndex(JET_SESID sesid, JET_TABLEID tableid, + const char *szIndexName); + +JET_ERR JET_API JetGetObjectInfo(JET_SESID sesid, JET_DBID dbid, + JET_OBJTYP objtyp, const char *szContainerName, + const char *szObjectName, void *pvResult, unsigned long cbMax, + unsigned long InfoLevel); + +JET_ERR JET_API JetBeginTransaction(JET_SESID sesid); + +JET_ERR JET_API JetCommitTransaction(JET_SESID sesid, JET_GRBIT grbit); + +JET_ERR JET_API JetRollback(JET_SESID sesid, JET_GRBIT grbit); + +JET_ERR JET_API JetGetDatabaseInfo(JET_SESID sesid, JET_DBID dbid, + void *pvResult, unsigned long cbMax, unsigned long InfoLevel); + +JET_ERR JET_API JetCloseDatabase(JET_SESID sesid, JET_DBID dbid, + JET_GRBIT grbit); + +JET_ERR JET_API JetCloseTable(JET_SESID sesid, JET_TABLEID tableid); + +JET_ERR JET_API JetOpenDatabase(JET_SESID sesid, const char *szFilename, + const char *szConnect, JET_DBID *pdbid, JET_GRBIT grbit); + +JET_ERR JET_API JetOpenTable(JET_SESID sesid, JET_DBID dbid, + const char *szTableName, const void *pvParameters, + unsigned long cbParameters, JET_GRBIT grbit, JET_TABLEID *ptableid); + +JET_ERR JET_API JetDelete(JET_SESID sesid, JET_TABLEID tableid); + +JET_ERR JET_API JetUpdate(JET_SESID sesid, JET_TABLEID tableid, + void *pvBookmark, unsigned long cbBookmark, + unsigned long *pcbActual); + +JET_ERR JET_API JetRetrieveColumn(JET_SESID sesid, JET_TABLEID tableid, + JET_COLUMNID columnid, void *pvData, unsigned long cbData, + unsigned long *pcbActual, JET_GRBIT grbit, JET_RETINFO *pretinfo); + +JET_ERR JET_API JetRetrieveColumns( JET_SESID sesid, JET_TABLEID tableid, + JET_RETRIEVECOLUMN *pretrievecolumn, unsigned long cretrievecolumn ); + +JET_ERR JET_API JetSetColumn(JET_SESID sesid, JET_TABLEID tableid, + JET_COLUMNID columnid, const void *pvData, unsigned long cbData, + JET_GRBIT grbit, JET_SETINFO *psetinfo); + +JET_ERR JET_API JetSetColumns(JET_SESID sesid, JET_TABLEID tableid, + JET_SETCOLUMN *psetcolumn, unsigned long csetcolumn ); + +JET_ERR JET_API JetPrepareUpdate(JET_SESID sesid, JET_TABLEID tableid, + unsigned long prep); + +JET_ERR JET_API JetGetRecordPosition(JET_SESID sesid, JET_TABLEID tableid, + JET_RECPOS *precpos, unsigned long cbRecpos); + +JET_ERR JET_API JetGotoPosition(JET_SESID sesid, JET_TABLEID tableid, + JET_RECPOS *precpos ); + +JET_ERR JET_API JetGetCursorInfo(JET_SESID sesid, JET_TABLEID tableid, + void *pvResult, unsigned long cbMax, unsigned long InfoLevel); + +JET_ERR JET_API JetDupCursor(JET_SESID sesid, JET_TABLEID tableid, + JET_TABLEID *ptableid, JET_GRBIT grbit); + +JET_ERR JET_API JetGetCurrentIndex(JET_SESID sesid, JET_TABLEID tableid, + char *szIndexName, unsigned long cchIndexName); + +JET_ERR JET_API JetSetCurrentIndex(JET_SESID sesid, JET_TABLEID tableid, + const char *szIndexName); + +JET_ERR JET_API JetSetCurrentIndex2(JET_SESID sesid, JET_TABLEID tableid, + const char *szIndexName, JET_GRBIT grbit ); + +JET_ERR JET_API JetMove(JET_SESID sesid, JET_TABLEID tableid, + long cRow, JET_GRBIT grbit); + +JET_ERR JET_API JetMakeKey(JET_SESID sesid, JET_TABLEID tableid, + const void *pvData, unsigned long cbData, JET_GRBIT grbit); + +JET_ERR JET_API JetSeek(JET_SESID sesid, JET_TABLEID tableid, + JET_GRBIT grbit); + +JET_ERR JET_API JetGetBookmark(JET_SESID sesid, JET_TABLEID tableid, + void *pvBookmark, unsigned long cbMax, + unsigned long *pcbActual); + +JET_ERR JET_API JetCompact(JET_SESID sesid, const char *szDatabaseSrc, + const char *szDatabaseDest, JET_PFNSTATUS pfnStatus, JET_CONVERT *pconvert, + JET_GRBIT grbit); + +JET_ERR JET_API JetDBUtilities( JET_DBUTIL *pdbutil ); + +JET_ERR JET_API JetGotoBookmark(JET_SESID sesid, JET_TABLEID tableid, + void *pvBookmark, unsigned long cbBookmark); + +JET_ERR JET_API JetComputeStats(JET_SESID sesid, JET_TABLEID tableid); + +typedef unsigned long JET_VSESID; /* Received from dispatcher */ + +struct tagVDBFNDEF; + +typedef unsigned long JET_VDBID; /* Received from dispatcher */ + +struct tagVTFNDEF; + +typedef unsigned long JET_VTID; /* Received from dispatcher */ + +JET_ERR JET_API JetOpenTempTable(JET_SESID sesid, + const JET_COLUMNDEF *prgcolumndef, unsigned long ccolumn, + JET_GRBIT grbit, JET_TABLEID *ptableid, + JET_COLUMNID *prgcolumnid); + +JET_ERR JET_API JetOpenTempTable2( JET_SESID sesid, + const JET_COLUMNDEF *prgcolumndef, + unsigned long ccolumn, + unsigned long langid, + JET_GRBIT grbit, + JET_TABLEID *ptableid, + JET_COLUMNID *prgcolumnid ); + +JET_ERR JET_API JetBackup( const char *szBackupPath, JET_GRBIT grbit, JET_PFNSTATUS pfnStatus ); + +JET_ERR JET_API JetRestore(const char *sz, JET_PFNSTATUS pfn ); +JET_ERR JET_API JetRestore2(const char *sz, const char *szDest, JET_PFNSTATUS pfn ); + +JET_ERR JET_API JetSetIndexRange(JET_SESID sesid, + JET_TABLEID tableidSrc, JET_GRBIT grbit); + +JET_ERR JET_API JetIndexRecordCount(JET_SESID sesid, + JET_TABLEID tableid, unsigned long *pcrec, unsigned long crecMax ); + +JET_ERR JET_API JetRetrieveKey(JET_SESID sesid, + JET_TABLEID tableid, void *pvData, unsigned long cbMax, + unsigned long *pcbActual, JET_GRBIT grbit ); + +JET_ERR JET_API JetBeginExternalBackup( JET_GRBIT grbit ); + +JET_ERR JET_API JetGetAttachInfo( void *pv, + unsigned long cbMax, + unsigned long *pcbActual ); + +JET_ERR JET_API JetOpenFile( const char *szFileName, + JET_HANDLE *phfFile, + unsigned long *pulFileSizeLow, + unsigned long *pulFileSizeHigh ); + +JET_ERR JET_API JetReadFile( JET_HANDLE hfFile, + void *pv, + unsigned long cb, + unsigned long *pcb ); + +JET_ERR JET_API JetCloseFile( JET_HANDLE hfFile ); + +JET_ERR JET_API JetGetLogInfo( void *pv, + unsigned long cbMax, + unsigned long *pcbActual ); + +JET_ERR JET_API JetTruncateLog( void ); + +JET_ERR JET_API JetEndExternalBackup( void ); + +JET_ERR JET_API JetExternalRestore( char *szCheckpointFilePath, char *szLogPath, JET_RSTMAP *rgstmap, long crstfilemap, char *szBackupLogPath, long genLow, long genHigh, JET_PFNSTATUS pfn ); + +#endif /* _JET_NOPROTOTYPES */ + +#pragma pack() + +#ifdef __cplusplus +} +#endif + +#endif /* _JET_INCLUDED */ + + + + diff --git a/private/utils/ntbackup/exchange/inc/jetbcli.h b/private/utils/ntbackup/exchange/inc/jetbcli.h new file mode 100644 index 000000000..a5703feff --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/jetbcli.h @@ -0,0 +1,407 @@ +/* + * EDBBCLI.H + * + * Microsoft Exchange Information Store + * Copyright (C) 1986-1996, Microsoft Corporation + * + * Contains declarations of additional definitions and interfaces + * for the Exchange Online Backup Client APIs. + */ + +#ifndef _EDBBCLI_ +#define _EDBBCLI_ +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef MIDL_PASS +#define RPC_STRING [string] +#else +#define RPC_STRING +typedef unsigned short WCHAR; +#endif + +#define EDBBACK_MDB_SERVER "Exchange MDB Database" +#define EDBBACK_DS_SERVER "Exchange DS Database" + +#ifndef EDBBACK_BUILD +#define EDBBACK_API __declspec(dllimport) _stdcall +#else +#define EDBBACK_API +#endif + +typedef DWORD ERR; + +typedef LONG HRESULT; +typedef LONG C; +typedef TCHAR BFT; + +// +// Type of backup passed into HrBackupPrepare() +// + +#define BACKUP_TYPE_FULL 0x01 +#define BACKUP_TYPE_LOGS_ONLY 0x02 + +// +// Set the current log number to this value to disable incremental or +// differential backup. +// +#define BACKUP_DISABLE_INCREMENTAL 0xffffffff + +// +// Backup/Restore file types +// +// +// Please note that these file types are binary values, even though they are text (or wchar) typed. +// +// The code in the backup API's rely on the fact that values 0-256 in 8 bit ascii map to the values 0-256 in unicode. +// + +// +// If the BFT_DIRECTORY bit is set on the backup file type, it indicates that the path specified is a directory, +// otherwise it is a file name. +// + +#define BFT_DIRECTORY 0x80 + +// +// If the BFT_DATABASE bit is set on the backup file type, it indicates that the file goes into the database directory. +// + +#define BFT_DATABASE_DIRECTORY 0x40 + +// +// If the BFT_LOG bit is set on the backup file type, it indicates that the file goes into the log directory. +// + +#define BFT_LOG_DIRECTORY 0x20 + +// +// Database logs. +// + +#define BFT_LOG (BFT)(TEXT('\x01') | BFT_LOG_DIRECTORY) +#define BFT_LOG_DIR (BFT)(TEXT('\x02') | BFT_DIRECTORY) + +// +// Checkpoint file. +// + +#define BFT_CHECKPOINT_DIR (BFT)(TEXT('\x03') | BFT_DIRECTORY) + +// +// Database types. +// +#define BFT_MDB_PRIVATE_DATABASE (BFT)(TEXT('\x05') | BFT_DATABASE_DIRECTORY) +#define BFT_MDB_PUBLIC_DATABASE (BFT)(TEXT('\x06') | BFT_DATABASE_DIRECTORY) +#define BFT_DSA_DATABASE (BFT)(TEXT('\x07') | BFT_DATABASE_DIRECTORY) + +// +// JET patch files +// +// +// + +#define BFT_PATCH_FILE (BFT)(TEXT('\x08') | BFT_LOG_DIRECTORY) + +// +// Catch all for unknown file types. +// + +#define BFT_UNKNOWN (BFT)(TEXT('\x0f')) + +#include <edbmsg.h> + +typedef void *HBC; + +typedef struct tagEDB_RSTMAPA +{ + RPC_STRING char *szDatabaseName; + RPC_STRING char *szNewDatabaseName; +} EDB_RSTMAPA, *PEDB_RSTMAPA; /* restore map */ + +// required for Exchange unicode support. +// UNDONE: NYI +#define UNICODE_RSTMAP + +typedef struct tagEDB_RSTMAPW { + RPC_STRING WCHAR *wszDatabaseName; + RPC_STRING WCHAR *wszNewDatabaseName; +} EDB_RSTMAPW, *PEDB_RSTMAPW; + +#ifdef UNICODE +#define EDB_RSTMAP EDB_RSTMAPW +#define PEDB_RSTMAP PEDB_RSTMAPW +#else +#define EDB_RSTMAP EDB_RSTMAPA +#define PEDB_RSTMAP PEDB_RSTMAPA +#endif + + +HRESULT +EDBBACK_API +HrBackupPrepareA( + IN char * szBackupServer, + IN char * szBackupAnnotation, + IN unsigned long grbit, + IN unsigned long btBackupType, + OUT HBC *hbcBackupContext + ); + +HRESULT +EDBBACK_API +HrBackupPrepareW( + IN WCHAR * wszBackupServer, + IN WCHAR * wszBackupAnnotation, + IN unsigned long grbit, + IN unsigned long btBackupType, + OUT HBC *hbcBackupContext + ); + +#ifdef UNICODE +#define HrBackupPrepare HrBackupPrepareW +#else +#define HrBackupPrepare HrBackupPrepareA +#endif + + +HRESULT +EDBBACK_API +HrBackupGetDatabaseNamesA( + IN HBC pvBackupContext, + OUT LPSTR *ppszAttachmentInformation, + OUT LPDWORD pcbSize + ); + +HRESULT +EDBBACK_API +HrBackupGetDatabaseNamesW( + IN HBC pvBackupContext, + OUT LPWSTR *ppszAttachmentInformation, + OUT LPDWORD pcbSize + ); + +#ifdef UNICODE +#define HrBackupGetDatabaseNames HrBackupGetDatabaseNamesW +#else +#define HrBackupGetDatabaseNames HrBackupGetDatabaseNamesA +#endif + +HRESULT +EDBBACK_API +HrBackupOpenFileW( + IN HBC pvBackupContext, + IN WCHAR * wszAttachmentName, + IN DWORD cbReadHintSize, + OUT LARGE_INTEGER *pliFileSize + ); + +HRESULT +EDBBACK_API +HrBackupOpenFileA( + IN HBC pvBackupContext, + IN char * szAttachmentName, + IN DWORD cbReadHintSize, + OUT LARGE_INTEGER *pliFileSize + ); + +#ifdef UNICODE +#define HrBackupOpenFile HrBackupOpenFileW +#else +#define HrBackupOpenFile HrBackupOpenFileA +#endif + + +HRESULT +EDBBACK_API +HrBackupRead( + IN HBC pvBackupContext, + IN PVOID pvBuffer, + IN DWORD cbBuffer, + OUT PDWORD pcbRead + ); + +HRESULT +EDBBACK_API +HrBackupClose( + IN HBC pvBackupContext + ); + +HRESULT +EDBBACK_API +HrBackupGetBackupLogsA( + IN HBC pvBackupContext, + IN LPSTR *szBackupLogFile, + IN PDWORD pcbSize + ); + +HRESULT +EDBBACK_API +HrBackupGetBackupLogsW( + IN HBC pvBackupContext, + IN LPWSTR *szBackupLogFile, + IN PDWORD pcbSize + ); + +#ifdef UNICODE +#define HrBackupGetBackupLogs HrBackupGetBackupLogsW +#else +#define HrBackupGetBackupLogs HrBackupGetBackupLogsA +#endif + +HRESULT +EDBBACK_API +HrBackupTruncateLogs( + IN HBC pvBackupContext + ); + + +HRESULT +EDBBACK_API +HrBackupEnd( + IN HBC pvBackupContext + ); + + +VOID +EDBBACK_API +BackupFree( + IN PVOID pvBuffer + ); + + +HRESULT +EDBBACK_API +HrRestoreGetDatabaseLocationsA( + IN HBC hbcBackupContext, + OUT LPSTR *ppszDatabaseLocationList, + OUT LPDWORD pcbSize + ); + +HRESULT +EDBBACK_API +HrRestoreGetDatabaseLocationsW( + IN HBC pvBackupContext, + OUT LPWSTR *ppszDatabaseLocationList, + OUT LPDWORD pcbSize + ); + +#ifdef UNICODE +#define HrRestoreGetDatabaseLocations HrRestoreGetDatabaseLocationsW +#else +#define HrRestoreGetDatabaseLocations HrRestoreGetDatabaseLocationsA +#endif + +HRESULT +EDBBACK_API +HrRestorePrepareA( + char * szServerName, + char * szServiceAnnotation, + HBC *phbcBackupContext + ); + +HRESULT +EDBBACK_API +HrRestorePrepareW( + WCHAR * szServerName, + WCHAR * szServiceAnnotation, + HBC *phbcBackupContext + ); + +#ifdef UNICODE +#define HrRestorePrepare HrRestorePrepareW +#else +#define HrRestorePrepare HrRestorePrepareA +#endif + +// +// HrRestoreRegister will register a restore +// operation. It will interlock all subsequent +// restore operations, and will prevent the restore target +// from starting until the call to HrRestoreRegisterComplete. +// + +HRESULT +EDBBACK_API +HrRestoreRegisterA( + IN HBC hbcRestoreContext, + IN char * szCheckpointFilePath, + IN char * szLogPath, + IN EDB_RSTMAPA rgrstmap[], + IN C crstmap, + IN char * szBackupLogPath, + IN ULONG genLow, + IN ULONG genHigh + ); + +HRESULT +EDBBACK_API +HrRestoreRegisterW( + IN HBC hbcRestoreContext, + IN WCHAR * wszCheckpointFilePath, + IN WCHAR * wszLogPath, + IN EDB_RSTMAPW rgrstmap[], + IN C crstmap, + IN WCHAR * wszBackupLogPath, + IN ULONG genLow, + IN ULONG genHigh + ); + +#ifdef UNICODE +#define HrRestoreRegister HrRestoreRegisterW +#else +#define HrRestoreRegister HrRestoreRegisterA +#endif + +// +// HrRestoreRegisterComplete will complete a restore +// operation. It will allow further subsequent +// restore operations, and will allow the restore target +// to start if hrRestoreState is success. +// +// If hrRestoreState is NOT hrNone, this will +// prevent the restore target from restarting. +// + +HRESULT +EDBBACK_API +HrRestoreRegisterComplete( + HBC hbcRestoreContext, + HRESULT hrRestoreState + ); + +HRESULT +EDBBACK_API +HrRestoreEnd( + HBC hbcRestoreContext + ); + +HRESULT +EDBBACK_API +HrSetCurrentBackupLogW( + WCHAR *wszServerName, + WCHAR * wszBackupAnnotation, + DWORD dwCurrentLog + ); + +HRESULT +EDBBACK_API +HrSetCurrentBackupLogA( + CHAR * szServerName, + CHAR * szBackupAnnotation, + DWORD dwCurrentLog + ); + +#ifdef UNICODE +#define HrSetCurrentBackupLog HrSetCurrentBackupLogW +#else +#define HrSetCurrentBackupLog HrSetCurrentBackupLogA +#endif + +#ifdef __cplusplus +} +#endif + +#endif // _EDBBCLI_ + diff --git a/private/utils/ntbackup/exchange/inc/morpc.h b/private/utils/ntbackup/exchange/inc/morpc.h new file mode 100644 index 000000000..50e9ea91f --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/morpc.h @@ -0,0 +1,352 @@ +#ifndef __MORPC_H__ +#define __MORPC_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define small char + +#include "rpc.h" +#include "rpcndr.h" + + + +extern RPC_IF_HANDLE TriggerMonitoringRPC_ServerIfHandle; + +extern RPC_IF_HANDLE TriggerMonitoringRPC_ClientIfHandle; + +#ifndef _SIZE_T_DEFINED +typedef unsigned int size_t; +#define _SIZE_T_DEFINED +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef _ERROR_STATUS_T_DEFINED +typedef unsigned long error_status_t; +#define _ERROR_STATUS_T_DEFINED +#endif + +#ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +#define _WCHAR_T_DEFINED +#endif + +#define szTriggerRPCProtocol TEXT("ncacn_np") +#define szTriggerRPCEndpoint TEXT("\\pipe\\Trigger") +#define szTriggerRPCSecurity TEXT("Security=impersonation dynamic true") +typedef small RPC_BOOL; + +typedef small RPC_BYTE; + +typedef long RPC_INT; + +typedef long RPC_SC; + +typedef long RPC_DWORD; + +typedef wchar_t RPC_CHAR; + +typedef RPC_CHAR *RPC_SZ; + +typedef struct __MIDL_TriggerMonitoringRPC_0001 + { + short rgwSystemTime[8]; + } +RPC_SYSTEMTIME; + +typedef struct __MIDL_TriggerMonitoringRPC_0002 + { + RPC_BYTE rgbTzi[172]; + } +RPC_TIME_ZONE_INFORMATION; + +typedef struct __MIDL_TriggerMonitoringRPC_0003 + { + long rgdwServiceStatus[7]; + } +RPC_SERVICE_STATUS; + +typedef struct __MIDL_TriggerMonitoringRPC_0004 + { + RPC_SYSTEMTIME st; + RPC_TIME_ZONE_INFORMATION tzi; + RPC_DWORD dwReturn; + } +RemoteSystemTimeInfo; + +typedef struct _RemoteServiceStatus + { + RPC_SC sc; + RPC_SZ szShortName; + RPC_SZ szDisplayName; + RPC_SZ szVersion; + RPC_SERVICE_STATUS ss; + struct _RemoteServiceStatus *prssNext; + } +RemoteServiceStatus; + +typedef struct _BackupListNode + { + struct _BackupListNode *pnodeNext; + struct _BackupListNode *pnodeChildren; + RPC_SZ szName; + } +BackupListNode; + +RPC_SC _cdecl ScNetworkTimingTest( + handle_t h, + long cbSend, + small rgbSend[], + long cbReceive, + small rgbReceive[]); +RPC_SC _cdecl ScGetMaintenanceMode( + handle_t h, + RPC_BOOL *pfValue, + RPC_SYSTEMTIME *pst, + RPC_SZ szUser, + long cchMac); +RPC_SC _cdecl ScSetMaintenanceMode( + handle_t h, + RPC_BOOL fNew, + RPC_SZ szUser); +RPC_SC _cdecl ScGetRemoteSystemTime( + handle_t h, + RPC_SYSTEMTIME *pst); +RPC_SC _cdecl ScSetRemoteSystemTime( + handle_t h, + RPC_SYSTEMTIME *pst); +#define dwServerFlagMapiRunning 0x00000001 +RPC_SC _cdecl ScGetRemoteServerStatus( + handle_t h, + RPC_DWORD *pdwServerFlags, + RemoteSystemTimeInfo *prsti, + RemoteServiceStatus *prss); +RPC_SC _cdecl ScRasEnumEntries( + handle_t h, + RPC_INT cb, + RPC_BYTE rgbRasEnumEntries[], + RPC_INT *pcEntries); +RPC_SC _cdecl ScGetBackupListNode( + handle_t h, + BackupListNode **ppnode); +RPC_SC _cdecl ScRunRID( + handle_t h); +RPC_SC _cdecl ScRunDRACheck( + handle_t h, + RPC_DWORD dw); +#define BPTAdd 1 +#define BPTRemove 2 +#define BPTUpdate 3 +RPC_SC _cdecl ScBulkCreateProxy( + handle_t h, + RPC_SZ szHeader, + RPC_DWORD dwOptions); +RPC_SC _cdecl ScCreateProxy( + handle_t h, + RPC_SZ szDN); +RPC_SC _cdecl ScIsProxyUnique( + handle_t h, + RPC_SZ szProxy, + RPC_BOOL *pfUnique, + RPC_SZ *pszOwner); +#define scNoError 0 +#define scInvalidData 1 +#define scCannotLogData 2 +RPC_SC _cdecl ScSaveTrackingData( + handle_t h, + RPC_INT cb, + RPC_BYTE pb[], + RPC_DWORD dwFlags); +#define tevtMessageTransferIn 0 +#define tevtReportTransferIn 2 +#define tevtMessageSubmission 4 +#define tevtMessageTransferOut 7 +#define tevtReportTransferOut 8 +#define tevtMessageDelivery 9 +#define tevtReportDelivery 10 +#define tevtStartAssocByMTSUser 18 +#define tevtReleaseAssocByMTSUser 23 +#define tevtDLExpansion 26 +#define tevtRedirection 28 +#define tevtRerouting 29 +#define tevtDowngrading 31 +#define tevtReportAbsorption 33 +#define tevtReportGenerated 34 +#define tevtUnroutableReportDiscard 43 +#define tevtMessageLocalDelivery 1000 +typedef struct __MIDL_TriggerMonitoringRPC_0005 + { + RPC_INT nEventType; + RPC_SYSTEMTIME stEvent; + RPC_SZ szGatewayName; + RPC_SZ szPartner; + RPC_SZ szMTSID; + RPC_SZ szRemoteID; + RPC_SZ szOriginator; + RPC_INT nPriority; + RPC_INT nLength; + RPC_INT nSeconds; + RPC_INT nCost; + } +RPC_GATEWAY_TRACK_INFORMATION; + +RPC_SC _cdecl ScSaveGatewayTrackingData( + handle_t h, + RPC_GATEWAY_TRACK_INFORMATION *pgti, + RPC_INT cszRecipients, + RPC_SZ rgszRecipients[]); + +#if !defined(IMPORT_USED_MULTIPLE) && !defined(IMPORT_USED_SINGLE) + +/* routine that gets node for struct __MIDL_TriggerMonitoringRPC_0001 */ +void _gns___MIDL_TriggerMonitoringRPC_0001 (RPC_SYSTEMTIME *, PRPC_MESSAGE); + +/* routine that gets node for struct __MIDL_TriggerMonitoringRPC_0002 */ +void _gns___MIDL_TriggerMonitoringRPC_0002 (RPC_TIME_ZONE_INFORMATION *, PRPC_MESSAGE); + +/* routine that gets node for struct __MIDL_TriggerMonitoringRPC_0003 */ +void _gns___MIDL_TriggerMonitoringRPC_0003 (RPC_SERVICE_STATUS *, PRPC_MESSAGE); + +/* routine that gets node for struct __MIDL_TriggerMonitoringRPC_0004 */ +void _gns___MIDL_TriggerMonitoringRPC_0004 (RemoteSystemTimeInfo *, PRPC_MESSAGE); + +/* routine that sizes graph for struct _RemoteServiceStatus */ +void _sgs__RemoteServiceStatus (RemoteServiceStatus *, PRPC_MESSAGE); + +/* routine that puts graph for struct _RemoteServiceStatus */ +void _pgs__RemoteServiceStatus (RemoteServiceStatus *, PRPC_MESSAGE); + +/* routine that gets node for struct _RemoteServiceStatus */ +void _gns__RemoteServiceStatus (RemoteServiceStatus *, PRPC_MESSAGE); + +/* routine that gets graph for struct _RemoteServiceStatus */ +void _ggs__RemoteServiceStatus (RemoteServiceStatus *, unsigned char **, PRPC_MESSAGE); + +/* routine that allocates graph for struct _RemoteServiceStatus */ +void _ags__RemoteServiceStatus(unsigned char **, PRPC_MESSAGE); + +/* routine that frees graph for struct _RemoteServiceStatus */ +void _fgs__RemoteServiceStatus (RemoteServiceStatus *); + +/* routine that sizes graph for struct _BackupListNode */ +void _sgs__BackupListNode (BackupListNode *, PRPC_MESSAGE); + +/* routine that puts graph for struct _BackupListNode */ +void _pgs__BackupListNode (BackupListNode *, PRPC_MESSAGE); + +/* routine that gets graph for struct _BackupListNode */ +void _ggs__BackupListNode (BackupListNode *, unsigned char **, PRPC_MESSAGE); + +/* routine that allocates graph for struct _BackupListNode */ +void _ags__BackupListNode(unsigned char **, PRPC_MESSAGE); + +/* routine that frees graph for struct _BackupListNode */ +void _fgs__BackupListNode (BackupListNode *); + +/* routine that sizes graph for struct __MIDL_TriggerMonitoringRPC_0005 */ +void _sgs___MIDL_TriggerMonitoringRPC_0005 (RPC_GATEWAY_TRACK_INFORMATION *, PRPC_MESSAGE); + +/* routine that puts graph for struct __MIDL_TriggerMonitoringRPC_0005 */ +void _pgs___MIDL_TriggerMonitoringRPC_0005 (RPC_GATEWAY_TRACK_INFORMATION *, PRPC_MESSAGE); + +/* routine that gets node for struct __MIDL_TriggerMonitoringRPC_0005 */ +void _gns___MIDL_TriggerMonitoringRPC_0005 (RPC_GATEWAY_TRACK_INFORMATION *, PRPC_MESSAGE); + +/* routine that gets graph for struct __MIDL_TriggerMonitoringRPC_0005 */ +void _ggs___MIDL_TriggerMonitoringRPC_0005 (RPC_GATEWAY_TRACK_INFORMATION *, unsigned char **, PRPC_MESSAGE); + +/* routine that allocates graph for struct __MIDL_TriggerMonitoringRPC_0005 */ +void _ags___MIDL_TriggerMonitoringRPC_0005(unsigned char **, PRPC_MESSAGE); + +/* routine that frees graph for struct __MIDL_TriggerMonitoringRPC_0005 */ +void _fgs___MIDL_TriggerMonitoringRPC_0005 (RPC_GATEWAY_TRACK_INFORMATION *); + +#endif /*!defined(IMPORT_USED_MULTIPLE) && !defined(IMPORT_USED_SINGLE)*/ + +typedef struct _TriggerMonitoringRPC_SERVER_EPV + { + RPC_SC (_cdecl __RPC_FAR * ScNetworkTimingTest)( + handle_t h, + long cbSend, + small *rgbSend, + long cbReceive, + small *rgbReceive); + RPC_SC (_cdecl __RPC_FAR * ScGetMaintenanceMode)( + handle_t h, + RPC_BOOL *pfValue, + RPC_SYSTEMTIME *pst, + RPC_SZ szUser, + long cchMac); + RPC_SC (_cdecl __RPC_FAR * ScSetMaintenanceMode)( + handle_t h, + RPC_BOOL fNew, + RPC_SZ szUser); + RPC_SC (_cdecl __RPC_FAR * ScGetRemoteSystemTime)( + handle_t h, + RPC_SYSTEMTIME *pst); + RPC_SC (_cdecl __RPC_FAR * ScSetRemoteSystemTime)( + handle_t h, + RPC_SYSTEMTIME *pst); + RPC_SC (_cdecl __RPC_FAR * ScGetRemoteServerStatus)( + handle_t h, + RPC_DWORD *pdwServerFlags, + RemoteSystemTimeInfo *prsti, + RemoteServiceStatus *prss); + RPC_SC (_cdecl __RPC_FAR * ScRasEnumEntries)( + handle_t h, + RPC_INT cb, + RPC_BYTE *rgbRasEnumEntries, + RPC_INT *pcEntries); + RPC_SC (_cdecl __RPC_FAR * ScGetBackupListNode)( + handle_t h, + BackupListNode **ppnode); + RPC_SC (_cdecl __RPC_FAR * ScRunRID)( + handle_t h); + RPC_SC (_cdecl __RPC_FAR * ScRunDRACheck)( + handle_t h, + RPC_DWORD dw); + RPC_SC (_cdecl __RPC_FAR * ScBulkCreateProxy)( + handle_t h, + RPC_SZ szHeader, + RPC_DWORD dwOptions); + RPC_SC (_cdecl __RPC_FAR * ScCreateProxy)( + handle_t h, + RPC_SZ szDN); + RPC_SC (_cdecl __RPC_FAR * ScIsProxyUnique)( + handle_t h, + RPC_SZ szProxy, + RPC_BOOL *pfUnique, + RPC_SZ *pszOwner); + RPC_SC (_cdecl __RPC_FAR * ScSaveTrackingData)( + handle_t h, + RPC_INT cb, + RPC_BYTE *pb, + RPC_DWORD dwFlags); + RPC_SC (_cdecl __RPC_FAR * ScSaveGatewayTrackingData)( + handle_t h, + RPC_GATEWAY_TRACK_INFORMATION *pgti, + RPC_INT cszRecipients, + RPC_SZ *rgszRecipients); + } +TriggerMonitoringRPC_SERVER_EPV; +void __RPC_FAR * __RPC_API MIDL_user_allocate(size_t); +void __RPC_API MIDL_user_free(void __RPC_FAR *); +#ifndef __MIDL_USER_DEFINED +#define midl_user_allocate MIDL_user_allocate +#define midl_user_free MIDL_user_free +#define __MIDL_USER_DEFINED +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/private/utils/ntbackup/exchange/inc/rpcbak.h b/private/utils/ntbackup/exchange/inc/rpcbak.h new file mode 100644 index 000000000..b33cb8cdc --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/rpcbak.h @@ -0,0 +1,225 @@ +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + +/* File created by MIDL compiler version 2.00.0104 */ +/* at Mon Jan 29 16:52:29 1996 + */ +//@@MIDL_FILE_HEADING( ) +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __rpcbak_h__ +#define __rpcbak_h__ + +#ifdef __cplusplus +extern "C"{ +#endif + +/* Forward Declarations */ + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +#ifndef __TriggerBackupRPC_INTERFACE_DEFINED__ +#define __TriggerBackupRPC_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: TriggerBackupRPC + * at Mon Jan 29 16:52:29 1996 + * using MIDL 2.00.0104 + ****************************************/ +/* [auto_handle][unique][version][uuid] */ + + +#ifndef RPC_COMMON_IDL +#define RPC_COMMON_IDL +#define szTriggerRPCProtocol TEXT("ncacn_np") +#define szTriggerRPCSecurity TEXT("Security=impersonation dynamic true") + /* size is 4 */ +typedef long RPC_BOOL; + + /* size is 1 */ +typedef small RPC_BYTE; + + /* size is 4 */ +typedef long RPC_INT; + + /* size is 4 */ +typedef long RPC_SC; + + /* size is 4 */ +typedef long RPC_EC; + + /* size is 4 */ +typedef long RPC_DWORD; + + /* size is 2 */ +typedef wchar_t RPC_CHAR; + + /* size is 4 */ +typedef /* [string] */ RPC_CHAR __RPC_FAR *RPC_SZ; + + /* size is 16 */ +typedef struct __MIDL_TriggerBackupRPC_0001 + { + short rgwSystemTime[ 8 ]; + } RPC_SYSTEMTIME; + + /* size is 172 */ +typedef struct __MIDL_TriggerBackupRPC_0002 + { + RPC_BYTE rgbTzi[ 172 ]; + } RPC_TIME_ZONE_INFORMATION; + + /* size is 28 */ +typedef struct __MIDL_TriggerBackupRPC_0003 + { + long rgdwServiceStatus[ 7 ]; + } RPC_SERVICE_STATUS; + +#define ecOK 0 // no error +#define ecGeneralFailure 50001 // a failure occurred that caused proxy generation to stop +#define ecSomeProxiesFailed 50002 // some proxies failed to get generated +#define ecTargetNotValid 50003 // supplied target address not valid +#define ecTargetNotUnique 50004 // supplied target address not unique +#define ecProxyDLLNotImplemented 50005 // not implemented yet +#define ecProxyDLLOOM 50006 // memory allocation error +#define ecProxyDLLError 50007 // general error +#define ecProxyDLLProtocol 50008 // protocol error +#define ecProxyDLLSyntax 50009 // syntax error +#define ecProxyDLLEOF 50010 // end of file +#define ecProxyDLLSoftware 50011 // error in software +#define ecProxyDLLConfig 50012 // configuration error +#define ecProxyDLLContention 50013 // contention error +#define ecProxyDLLNotFound 50014 // not found +#define ecProxyDLLDiskSpace 50015 // out of disk space +#define ecProxyDLLException 50016 // exception thrown +#define ecProxyDLLDefault 50017 // unknown error +#define ecProxyNotValid 50018 // supplied proxy not valid +#define ecProxyNotUnique 50019 // supplied proxy not unique or unable to generate a unique proxy +#define ecProxyDuplicate 50020 // a primary proxy of the same type was also supplied + /* size is 16 */ +typedef struct _PROXYNODE + { + struct _PROXYNODE __RPC_FAR *pnodeNext; + RPC_SZ wszProxy; + RPC_EC ec; + RPC_SZ wszDN; + } PROXYNODE; + + /* size is 4 */ +typedef struct _PROXYNODE __RPC_FAR *PPROXYNODE; + + /* size is 48 */ +typedef struct _PROXYINFO + { + RPC_BOOL fContinueOnError; + RPC_BOOL fIgnoreOldSecondaries; + RPC_SZ wszDN; + RPC_SZ wszNickName; + RPC_SZ wszCommonName; + RPC_SZ wszDisplayName; + RPC_SZ wszSurName; + RPC_SZ wszGivenName; + RPC_SZ wszInitials; + RPC_SZ wszTargetAddress; + PROXYNODE __RPC_FAR *pPNVerifyProxy; + PROXYNODE __RPC_FAR *pPNExcludeProxy; + } PROXYINFO; + + /* size is 4 */ +typedef struct _PROXYINFO __RPC_FAR *PPROXYINFO; + + /* size is 8 */ +typedef struct _PROXYLIST + { + PROXYNODE __RPC_FAR *__RPC_FAR *ppPNProxy; + PROXYNODE __RPC_FAR *__RPC_FAR *ppPNFailedProxyType; + } PROXYLIST; + + /* size is 4 */ +typedef struct _PROXYLIST __RPC_FAR *PPROXYLIST; + + /* size is 192 */ +typedef struct __MIDL_TriggerBackupRPC_0004 + { + RPC_SYSTEMTIME st; + RPC_TIME_ZONE_INFORMATION tzi; + RPC_DWORD dwReturn; + } RemoteSystemTimeInfo; + + /* size is 48 */ +typedef struct _RemoteServiceStatus + { + RPC_SC sc; + RPC_SZ szShortName; + RPC_SZ szDisplayName; + RPC_SZ szVersion; + RPC_SERVICE_STATUS ss; + struct _RemoteServiceStatus __RPC_FAR *prssNext; + } RemoteServiceStatus; + +#define rmsSuspendRepair 0x0001 +#define rmsSuspendNotif 0x0002 + /* size is 24 */ +typedef struct _RemoteMaintenanceStatus + { + RPC_DWORD dwStatus; + RPC_SYSTEMTIME st; + RPC_SZ szUser; + } RemoteMaintenanceStatus; + + /* size is 12 */ +typedef struct _BackupListNode + { + struct _BackupListNode __RPC_FAR *pnodeNext; + struct _BackupListNode __RPC_FAR *pnodeChildren; + RPC_SZ szName; + } BackupListNode; + + /* size is 44 */ +typedef struct _DistributedLockOwner + { + RPC_CHAR rgchComputer[ 17 ]; + RPC_DWORD dwPID; + RPC_DWORD dwTID; + } DistributedLockOwner; + +#define DLR_NO_WAIT 0x00000001 +#define cchMaxLockName 17 + /* size is 84 */ +typedef struct _DistributedLockRequest + { + RPC_CHAR rgchLockName[ 17 ]; + RPC_DWORD dwFlags; + DistributedLockOwner dlo; + } DistributedLockRequest; + + /* size is 48 */ +typedef struct _DistributedLockReply + { + RPC_BOOL fGranted; + DistributedLockOwner dlo; + } DistributedLockReply; + +#endif // #ifndef RPC_COMMON_IDL + /* size is 4 */ +RPC_SC __cdecl ScGetBackupListNode( + /* [in] */ handle_t h, + /* [out][in] */ BackupListNode __RPC_FAR *__RPC_FAR *ppnode); + + + +extern RPC_IF_HANDLE TriggerBackupRPC_ClientIfHandle; +extern RPC_IF_HANDLE TriggerBackupRPC_ServerIfHandle; +#endif /* __TriggerBackupRPC_INTERFACE_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/private/utils/ntbackup/exchange/inc/rpcpri.h b/private/utils/ntbackup/exchange/inc/rpcpri.h new file mode 100644 index 000000000..4d41fc290 --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/rpcpri.h @@ -0,0 +1,288 @@ +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + +/* File created by MIDL compiler version 2.00.0104 */ +/* at Mon Jan 29 16:52:33 1996 + */ +//@@MIDL_FILE_HEADING( ) +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __rpcpri_h__ +#define __rpcpri_h__ + +#ifdef __cplusplus +extern "C"{ +#endif + +/* Forward Declarations */ + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +#ifndef __TriggerPrivateRPC_INTERFACE_DEFINED__ +#define __TriggerPrivateRPC_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: TriggerPrivateRPC + * at Mon Jan 29 16:52:33 1996 + * using MIDL 2.00.0104 + ****************************************/ +/* [auto_handle][unique][version][uuid] */ + + +#ifndef RPC_COMMON_IDL +#define RPC_COMMON_IDL +#define szTriggerRPCProtocol TEXT("ncacn_np") +#define szTriggerRPCSecurity TEXT("Security=impersonation dynamic true") + /* size is 4 */ +typedef long RPC_BOOL; + + /* size is 1 */ +typedef small RPC_BYTE; + + /* size is 4 */ +typedef long RPC_INT; + + /* size is 4 */ +typedef long RPC_SC; + + /* size is 4 */ +typedef long RPC_EC; + + /* size is 4 */ +typedef long RPC_DWORD; + + /* size is 2 */ +typedef wchar_t RPC_CHAR; + + /* size is 4 */ +typedef /* [string] */ RPC_CHAR __RPC_FAR *RPC_SZ; + + /* size is 16 */ +typedef struct __MIDL_TriggerPrivateRPC_0001 + { + short rgwSystemTime[ 8 ]; + } RPC_SYSTEMTIME; + + /* size is 172 */ +typedef struct __MIDL_TriggerPrivateRPC_0002 + { + RPC_BYTE rgbTzi[ 172 ]; + } RPC_TIME_ZONE_INFORMATION; + + /* size is 28 */ +typedef struct __MIDL_TriggerPrivateRPC_0003 + { + long rgdwServiceStatus[ 7 ]; + } RPC_SERVICE_STATUS; + +#define ecOK 0 // no error +#define ecGeneralFailure 50001 // a failure occurred that caused proxy generation to stop +#define ecSomeProxiesFailed 50002 // some proxies failed to get generated +#define ecTargetNotValid 50003 // supplied target address not valid +#define ecTargetNotUnique 50004 // supplied target address not unique +#define ecProxyDLLNotImplemented 50005 // not implemented yet +#define ecProxyDLLOOM 50006 // memory allocation error +#define ecProxyDLLError 50007 // general error +#define ecProxyDLLProtocol 50008 // protocol error +#define ecProxyDLLSyntax 50009 // syntax error +#define ecProxyDLLEOF 50010 // end of file +#define ecProxyDLLSoftware 50011 // error in software +#define ecProxyDLLConfig 50012 // configuration error +#define ecProxyDLLContention 50013 // contention error +#define ecProxyDLLNotFound 50014 // not found +#define ecProxyDLLDiskSpace 50015 // out of disk space +#define ecProxyDLLException 50016 // exception thrown +#define ecProxyDLLDefault 50017 // unknown error +#define ecProxyNotValid 50018 // supplied proxy not valid +#define ecProxyNotUnique 50019 // supplied proxy not unique or unable to generate a unique proxy +#define ecProxyDuplicate 50020 // a primary proxy of the same type was also supplied + /* size is 16 */ +typedef struct _PROXYNODE + { + struct _PROXYNODE __RPC_FAR *pnodeNext; + RPC_SZ wszProxy; + RPC_EC ec; + RPC_SZ wszDN; + } PROXYNODE; + + /* size is 4 */ +typedef struct _PROXYNODE __RPC_FAR *PPROXYNODE; + + /* size is 48 */ +typedef struct _PROXYINFO + { + RPC_BOOL fContinueOnError; + RPC_BOOL fIgnoreOldSecondaries; + RPC_SZ wszDN; + RPC_SZ wszNickName; + RPC_SZ wszCommonName; + RPC_SZ wszDisplayName; + RPC_SZ wszSurName; + RPC_SZ wszGivenName; + RPC_SZ wszInitials; + RPC_SZ wszTargetAddress; + PROXYNODE __RPC_FAR *pPNVerifyProxy; + PROXYNODE __RPC_FAR *pPNExcludeProxy; + } PROXYINFO; + + /* size is 4 */ +typedef struct _PROXYINFO __RPC_FAR *PPROXYINFO; + + /* size is 8 */ +typedef struct _PROXYLIST + { + PROXYNODE __RPC_FAR *__RPC_FAR *ppPNProxy; + PROXYNODE __RPC_FAR *__RPC_FAR *ppPNFailedProxyType; + } PROXYLIST; + + /* size is 4 */ +typedef struct _PROXYLIST __RPC_FAR *PPROXYLIST; + + /* size is 192 */ +typedef struct __MIDL_TriggerPrivateRPC_0004 + { + RPC_SYSTEMTIME st; + RPC_TIME_ZONE_INFORMATION tzi; + RPC_DWORD dwReturn; + } RemoteSystemTimeInfo; + + /* size is 48 */ +typedef struct _RemoteServiceStatus + { + RPC_SC sc; + RPC_SZ szShortName; + RPC_SZ szDisplayName; + RPC_SZ szVersion; + RPC_SERVICE_STATUS ss; + struct _RemoteServiceStatus __RPC_FAR *prssNext; + } RemoteServiceStatus; + +#define rmsSuspendRepair 0x0001 +#define rmsSuspendNotif 0x0002 + /* size is 24 */ +typedef struct _RemoteMaintenanceStatus + { + RPC_DWORD dwStatus; + RPC_SYSTEMTIME st; + RPC_SZ szUser; + } RemoteMaintenanceStatus; + + /* size is 12 */ +typedef struct _BackupListNode + { + struct _BackupListNode __RPC_FAR *pnodeNext; + struct _BackupListNode __RPC_FAR *pnodeChildren; + RPC_SZ szName; + } BackupListNode; + + /* size is 44 */ +typedef struct _DistributedLockOwner + { + RPC_CHAR rgchComputer[ 17 ]; + RPC_DWORD dwPID; + RPC_DWORD dwTID; + } DistributedLockOwner; + +#define DLR_NO_WAIT 0x00000001 +#define cchMaxLockName 17 + /* size is 84 */ +typedef struct _DistributedLockRequest + { + RPC_CHAR rgchLockName[ 17 ]; + RPC_DWORD dwFlags; + DistributedLockOwner dlo; + } DistributedLockRequest; + + /* size is 48 */ +typedef struct _DistributedLockReply + { + RPC_BOOL fGranted; + DistributedLockOwner dlo; + } DistributedLockReply; + +#endif // #ifndef RPC_COMMON_IDL + /* size is 4 */ +RPC_SC __cdecl ScGetMaintenanceMode( + /* [in] */ handle_t h, + /* [out] */ RPC_DWORD __RPC_FAR *pdw, + /* [out] */ RPC_SYSTEMTIME __RPC_FAR *pst, + /* [out] */ RPC_SZ __RPC_FAR *pszUser); + + /* size is 4 */ +RPC_SC __cdecl ScSetMaintenanceMode( + /* [in] */ handle_t h, + /* [in] */ RPC_DWORD dw, + /* [in] */ RPC_SZ szUser); + + /* size is 4 */ +RPC_SC __cdecl ScGetRemoteSystemTime( + /* [in] */ handle_t h, + /* [out] */ RPC_SYSTEMTIME __RPC_FAR *pst); + + /* size is 4 */ +RPC_SC __cdecl ScSetRemoteSystemTime( + /* [in] */ handle_t h, + /* [in] */ RPC_SYSTEMTIME __RPC_FAR *pst); + +#define dwServerFlagMapiRunning 0x00000001 +#define dwServerFlagNoPrivateStore 0x00000002 + /* size is 4 */ +RPC_SC __cdecl ScGetRemoteServerStatus( + /* [in] */ handle_t h, + /* [out] */ RPC_DWORD __RPC_FAR *pdwServerFlags, + /* [out] */ RemoteSystemTimeInfo __RPC_FAR *prsti, + /* [out][in] */ RemoteServiceStatus __RPC_FAR *prss, + /* [out] */ RemoteMaintenanceStatus __RPC_FAR *prms); + + /* size is 4 */ +RPC_SC __cdecl ScRunOffLineABTask( + /* [in] */ handle_t h); + + /* size is 4 */ +RPC_SC __cdecl ScGetDistributedLock( + /* [in] */ handle_t h, + /* [in] */ DistributedLockRequest __RPC_FAR *pdlRequest, + /* [out] */ DistributedLockReply __RPC_FAR *pdlReply); + + /* size is 4 */ +RPC_SC __cdecl ScReleaseDistributedLock( + /* [in] */ handle_t h, + /* [in] */ DistributedLockRequest __RPC_FAR *pdlRequest); + + /* size is 4 */ +RPC_SC __cdecl ScKillDistributedLock( + /* [in] */ handle_t h, + /* [in] */ DistributedLockRequest __RPC_FAR *pdlRequest, + /* [out] */ DistributedLockReply __RPC_FAR *pdlReply); + + /* size is 4 */ +RPC_SC __cdecl ScRasEnumEntries( + /* [in] */ handle_t h, + /* [in] */ RPC_INT cb, + /* [size_is][out] */ RPC_BYTE __RPC_FAR rgbRasEnumEntries[ ], + /* [out] */ RPC_INT __RPC_FAR *pcEntries); + + /* size is 4 */ +RPC_SC __cdecl ScGetExtensionPath( + /* [in] */ handle_t h, + /* [in] */ RPC_SZ szExtensionName, + /* [in] */ RPC_SZ szExtensionCPU, + /* [out] */ RPC_SZ __RPC_FAR *pszExtensionPath); + + + +extern RPC_IF_HANDLE TriggerPrivateRPC_ClientIfHandle; +extern RPC_IF_HANDLE TriggerPrivateRPC_ServerIfHandle; +#endif /* __TriggerPrivateRPC_INTERFACE_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/private/utils/ntbackup/exchange/inc/rpcpub.h b/private/utils/ntbackup/exchange/inc/rpcpub.h new file mode 100644 index 000000000..8be1b562b --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/rpcpub.h @@ -0,0 +1,387 @@ +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + +/* File created by MIDL compiler version 2.00.0104 */ +/* at Mon Jan 29 16:52:25 1996 + */ +//@@MIDL_FILE_HEADING( ) +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __rpcpub_h__ +#define __rpcpub_h__ + +#ifdef __cplusplus +extern "C"{ +#endif + +/* Forward Declarations */ + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +#ifndef __TriggerPublicRPC_INTERFACE_DEFINED__ +#define __TriggerPublicRPC_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: TriggerPublicRPC + * at Mon Jan 29 16:52:25 1996 + * using MIDL 2.00.0104 + ****************************************/ +/* [auto_handle][unique][version][uuid] */ + + +#ifndef RPC_COMMON_IDL +#define RPC_COMMON_IDL +#define szTriggerRPCProtocol TEXT("ncacn_np") +#define szTriggerRPCSecurity TEXT("Security=impersonation dynamic true") + /* size is 4 */ +typedef long RPC_BOOL; + + /* size is 1 */ +typedef small RPC_BYTE; + + /* size is 4 */ +typedef long RPC_INT; + + /* size is 4 */ +typedef long RPC_SC; + + /* size is 4 */ +typedef long RPC_EC; + + /* size is 4 */ +typedef long RPC_DWORD; + + /* size is 2 */ +typedef wchar_t RPC_CHAR; + + /* size is 4 */ +typedef /* [string] */ RPC_CHAR __RPC_FAR *RPC_SZ; + + /* size is 16 */ +typedef struct __MIDL_TriggerPublicRPC_0001 + { + short rgwSystemTime[ 8 ]; + } RPC_SYSTEMTIME; + + /* size is 172 */ +typedef struct __MIDL_TriggerPublicRPC_0002 + { + RPC_BYTE rgbTzi[ 172 ]; + } RPC_TIME_ZONE_INFORMATION; + + /* size is 28 */ +typedef struct __MIDL_TriggerPublicRPC_0003 + { + long rgdwServiceStatus[ 7 ]; + } RPC_SERVICE_STATUS; + +#define ecOK 0 // no error +#define ecGeneralFailure 50001 // a failure occurred that caused proxy generation to stop +#define ecSomeProxiesFailed 50002 // some proxies failed to get generated +#define ecTargetNotValid 50003 // supplied target address not valid +#define ecTargetNotUnique 50004 // supplied target address not unique +#define ecProxyDLLNotImplemented 50005 // not implemented yet +#define ecProxyDLLOOM 50006 // memory allocation error +#define ecProxyDLLError 50007 // general error +#define ecProxyDLLProtocol 50008 // protocol error +#define ecProxyDLLSyntax 50009 // syntax error +#define ecProxyDLLEOF 50010 // end of file +#define ecProxyDLLSoftware 50011 // error in software +#define ecProxyDLLConfig 50012 // configuration error +#define ecProxyDLLContention 50013 // contention error +#define ecProxyDLLNotFound 50014 // not found +#define ecProxyDLLDiskSpace 50015 // out of disk space +#define ecProxyDLLException 50016 // exception thrown +#define ecProxyDLLDefault 50017 // unknown error +#define ecProxyNotValid 50018 // supplied proxy not valid +#define ecProxyNotUnique 50019 // supplied proxy not unique or unable to generate a unique proxy +#define ecProxyDuplicate 50020 // a primary proxy of the same type was also supplied + /* size is 16 */ +typedef struct _PROXYNODE + { + struct _PROXYNODE __RPC_FAR *pnodeNext; + RPC_SZ wszProxy; + RPC_EC ec; + RPC_SZ wszDN; + } PROXYNODE; + + /* size is 4 */ +typedef struct _PROXYNODE __RPC_FAR *PPROXYNODE; + + /* size is 48 */ +typedef struct _PROXYINFO + { + RPC_BOOL fContinueOnError; + RPC_BOOL fIgnoreOldSecondaries; + RPC_SZ wszDN; + RPC_SZ wszNickName; + RPC_SZ wszCommonName; + RPC_SZ wszDisplayName; + RPC_SZ wszSurName; + RPC_SZ wszGivenName; + RPC_SZ wszInitials; + RPC_SZ wszTargetAddress; + PROXYNODE __RPC_FAR *pPNVerifyProxy; + PROXYNODE __RPC_FAR *pPNExcludeProxy; + } PROXYINFO; + + /* size is 4 */ +typedef struct _PROXYINFO __RPC_FAR *PPROXYINFO; + + /* size is 8 */ +typedef struct _PROXYLIST + { + PROXYNODE __RPC_FAR *__RPC_FAR *ppPNProxy; + PROXYNODE __RPC_FAR *__RPC_FAR *ppPNFailedProxyType; + } PROXYLIST; + + /* size is 4 */ +typedef struct _PROXYLIST __RPC_FAR *PPROXYLIST; + + /* size is 192 */ +typedef struct __MIDL_TriggerPublicRPC_0004 + { + RPC_SYSTEMTIME st; + RPC_TIME_ZONE_INFORMATION tzi; + RPC_DWORD dwReturn; + } RemoteSystemTimeInfo; + + /* size is 48 */ +typedef struct _RemoteServiceStatus + { + RPC_SC sc; + RPC_SZ szShortName; + RPC_SZ szDisplayName; + RPC_SZ szVersion; + RPC_SERVICE_STATUS ss; + struct _RemoteServiceStatus __RPC_FAR *prssNext; + } RemoteServiceStatus; + +#define rmsSuspendRepair 0x0001 +#define rmsSuspendNotif 0x0002 + /* size is 24 */ +typedef struct _RemoteMaintenanceStatus + { + RPC_DWORD dwStatus; + RPC_SYSTEMTIME st; + RPC_SZ szUser; + } RemoteMaintenanceStatus; + + /* size is 12 */ +typedef struct _BackupListNode + { + struct _BackupListNode __RPC_FAR *pnodeNext; + struct _BackupListNode __RPC_FAR *pnodeChildren; + RPC_SZ szName; + } BackupListNode; + + /* size is 44 */ +typedef struct _DistributedLockOwner + { + RPC_CHAR rgchComputer[ 17 ]; + RPC_DWORD dwPID; + RPC_DWORD dwTID; + } DistributedLockOwner; + +#define DLR_NO_WAIT 0x00000001 +#define cchMaxLockName 17 + /* size is 84 */ +typedef struct _DistributedLockRequest + { + RPC_CHAR rgchLockName[ 17 ]; + RPC_DWORD dwFlags; + DistributedLockOwner dlo; + } DistributedLockRequest; + + /* size is 48 */ +typedef struct _DistributedLockReply + { + RPC_BOOL fGranted; + DistributedLockOwner dlo; + } DistributedLockReply; + +#endif // #ifndef RPC_COMMON_IDL + /* size is 4 */ +RPC_SC __cdecl ScNetworkTimingTest( + /* [in] */ handle_t h, + /* [in] */ long cbSend, + /* [size_is][in] */ small __RPC_FAR rgbSend[ ], + /* [in] */ long cbReceive, + /* [size_is][out] */ small __RPC_FAR rgbReceive[ ]); + + /* size is 4 */ +RPC_SC __cdecl ScRunRID( + /* [in] */ handle_t h); + + /* size is 4 */ +RPC_SC __cdecl ScRunRIDEx( + /* [in] */ handle_t h, + /* [in] */ RPC_BOOL fProxySpace, + /* [in] */ RPC_BOOL fGwart); + + /* size is 4 */ +RPC_SC __cdecl ScRunDRACheck( + /* [in] */ handle_t h, + RPC_DWORD dw); + +#define BPTAdd 1 +#define BPTRemove 2 +#define BPTUpdate 3 + /* size is 4 */ +RPC_SC __cdecl ScBulkCreateProxy( + /* [in] */ handle_t h, + /* [in] */ RPC_SZ szHeader, + /* [in] */ RPC_DWORD dwOptions); + + /* size is 4 */ +RPC_SC __cdecl ScBulkCreateMultiProxy( + /* [in] */ handle_t h, + /* [in] */ RPC_INT cszHeader, + /* [size_is][in] */ RPC_SZ __RPC_FAR rgszRecipients[ ], + /* [in] */ RPC_DWORD dwOptions); + + /* size is 4 */ +RPC_SC __cdecl ScBulkUpdateMultiProxy( + /* [in] */ handle_t h, + /* [in] */ RPC_INT cszSiteAddress, + /* [size_is][in] */ RPC_SZ __RPC_FAR rgszOldSiteAddress[ ], + /* [size_is][in] */ RPC_SZ __RPC_FAR rgszNewSiteAddress[ ], + /* [in] */ RPC_BOOL fSaveSiteAddress); + + /* size is 4 */ +RPC_SC __cdecl ScGetBulkProxyStatus( + /* [in] */ handle_t h, + /* [out] */ RPC_SYSTEMTIME __RPC_FAR *pstTimeStart, + /* [out] */ RPC_DWORD __RPC_FAR *pdwTimeStart, + /* [out] */ RPC_DWORD __RPC_FAR *pdwTimeCur, + /* [out] */ RPC_INT __RPC_FAR *piRecipients, + /* [out] */ RPC_INT __RPC_FAR *pcRecipients); + + /* size is 4 */ +RPC_SC __cdecl ScBulkProxyHalt( + /* [in] */ handle_t h, + /* [in] */ RPC_BOOL fWaitForShutdown); + + /* size is 4 */ +RPC_EC __cdecl EcGetProxies( + /* [in] */ handle_t h, + /* [in] */ PPROXYINFO pProxyInfo, + /* [out][in] */ PPROXYLIST pProxyList); + + /* size is 4 */ +RPC_SC __cdecl ScIsProxyUnique( + /* [in] */ handle_t h, + /* [in] */ RPC_SZ szProxy, + /* [out] */ RPC_BOOL __RPC_FAR *pfUnique, + /* [out] */ RPC_SZ __RPC_FAR *pszOwner); + + /* size is 4 */ +RPC_SC __cdecl ScProxyValidate( + /* [in] */ handle_t h, + /* [in] */ RPC_SZ szProxy, + /* [out] */ RPC_BOOL __RPC_FAR *pfValid, + /* [out] */ RPC_SZ __RPC_FAR *pszProxyCorrected); + + /* size is 4 */ +RPC_SC __cdecl ScSiteProxyValidate( + /* [in] */ handle_t h, + /* [in] */ RPC_SZ szSiteProxy, + /* [out] */ RPC_BOOL __RPC_FAR *pfValid, + /* [out] */ RPC_SZ __RPC_FAR *pszSiteProxyCorrected); + + /* size is 4 */ +RPC_SC __cdecl ScProxyReset( + /* [in] */ handle_t h, + /* [in] */ RPC_BOOL fWaitUntilCompleted); + +#define scNoError 0 +#define scInvalidData 1 +#define scCannotLogData 2 + /* size is 4 */ +RPC_SC __cdecl ScSaveTrackingData( + /* [in] */ handle_t h, + /* [in] */ RPC_INT cb, + /* [size_is][in] */ RPC_BYTE __RPC_FAR pb[ ], + /* [in] */ RPC_DWORD dwFlags); + +#define tevtMessageTransferIn 0 +#define tevtReportTransferIn 2 +#define tevtMessageSubmission 4 +#define tevtMessageTransferOut 7 +#define tevtReportTransferOut 8 +#define tevtMessageDelivery 9 +#define tevtReportDelivery 10 +#define tevtStartAssocByMTSUser 18 +#define tevtReleaseAssocByMTSUser 23 +#define tevtDLExpansion 26 +#define tevtRedirection 28 +#define tevtRerouting 29 +#define tevtDowngrading 31 +#define tevtReportAbsorption 33 +#define tevtReportGenerated 34 +#define tevtUnroutableReportDiscard 43 +#define tevtMessageLocalDelivery 1000 +#define tevtMessageBackboneTransferIn 1001 +#define tevtMessageBackboneTransferOut 1002 +#define tevtMessageGatewayTransferOut 1003 +#define tevtMessageGatewayTransferIn 1004 +#define tevtReportGatewayTransferIn 1005 +#define tevtReportGatewayTransferOut 1006 +#define tevtReportGatewayGenerated 1007 +#define tevtUserMin 2000 + /* size is 60 */ +typedef struct __MIDL_TriggerPublicRPC_0005 + { + RPC_INT nEventType; + RPC_SYSTEMTIME stEvent; + RPC_SZ szGatewayName; + RPC_SZ szPartner; + RPC_SZ szMTSID; + RPC_SZ szRemoteID; + RPC_SZ szOriginator; + RPC_INT nPriority; + RPC_INT nLength; + RPC_INT nSeconds; + RPC_INT nCost; + RPC_SZ szSubjectID; + } RPC_GATEWAY_TRACK_INFORMATION; + + /* size is 4 */ +RPC_SC __cdecl ScSaveGatewayTrackingData( + /* [in] */ handle_t h, + /* [in] */ RPC_GATEWAY_TRACK_INFORMATION __RPC_FAR *pgti, + /* [in] */ RPC_INT cszRecipients, + /* [size_is][in] */ RPC_SZ __RPC_FAR rgszRecipients[ ]); + + + +extern RPC_IF_HANDLE TriggerPublicRPC_ClientIfHandle; +extern RPC_IF_HANDLE TriggerPublicRPC_ServerIfHandle; +#endif /* __TriggerPublicRPC_INTERFACE_DEFINED__ */ + +/**************************************** + * Generated header for interface: __MIDL__intf_0001 + * at Mon Jan 29 16:52:25 1996 + * using MIDL 2.00.0104 + ****************************************/ +/* [local] */ + + +#define szTrackReportRecipientInfoDelivered L("\t0") +#define szTrackReportRecipientInfoNonDelivered L("\t1") + + +extern RPC_IF_HANDLE __MIDL__intf_0001_ClientIfHandle; +extern RPC_IF_HANDLE __MIDL__intf_0001_ServerIfHandle; + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/private/utils/ntbackup/exchange/inc/sadapi.h b/private/utils/ntbackup/exchange/inc/sadapi.h new file mode 100644 index 000000000..ce471ed40 --- /dev/null +++ b/private/utils/ntbackup/exchange/inc/sadapi.h @@ -0,0 +1,197 @@ +/* + * sadapi.h + * + * Copyright (c) Microsoft Corp. 1986-1996. All Rights Reserved. + * + * Definition of the public RPC APIs from the SAD Exchange service + * + */ + + +#ifndef _SADLIB_H_ +#define _SADLIB_H_ + +#include <rpcpub.h> + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/* + * Return codes for all functions except SAD_EcGetProxies() and SAD_EcGetProxiesBI(). + * In addition to this list are all normal NT error codes... + */ +typedef enum _SC_RETURN_VALUES +{ + SC_OK = 0, // no error + SC_Error = 49001, // general error + SC_BPActive, // bulk proxy generation is currently running + SC_BPInactive, // bulk proxy generation is not currently running + SC_BPShutdownPending, // a shutdown in bulk proxy generation is in progress + SC_BPSiteAddressMismatch, // a Site Address Mismatch between rgszOldSiteAddress + // and rgszNewSiteAddress lists in ScBulkUpdateMultiProxy +} SC_RETURN_VALUES; + + +#define cchMaxServer (MAX_COMPUTERNAME_LENGTH + 1) + +typedef struct _RPCBINDINFO +{ + handle_t h; + WCHAR wszServer[cchMaxServer]; + RPC_IF_HANDLE hClientIfHandle; +} RPCBINDINFO, *PRPCBINDINFO; + + +// Utility entry points +RPC_SC WINAPI SAD_ScBindA(PRPCBINDINFO pBI, LPSTR szServer); +RPC_SC WINAPI SAD_ScBindW(PRPCBINDINFO pBI, LPWSTR wszServer); +void WINAPI SAD_Unbind(PRPCBINDINFO pBI); + +#ifdef UNICODE +#define SAD_ScBind SAD_ScBindW +#else +#define SAD_ScBind SAD_ScBindA +#endif + + + +// Message Tracking group +RPC_SC WINAPI SAD_ScSaveGatewayTrackingData(PRPCBINDINFO pBI, + RPC_GATEWAY_TRACK_INFORMATION * pgti, + INT cszRecipients, + LPWSTR rgwszRecipients[]); + +// for Microsoft Internal Use ONLY +RPC_SC WINAPI SAD_ScSaveTrackingData(PRPCBINDINFO pBI, INT cb, BYTE pb[], DWORD dwFlags); + + +// for Gateways - cause the routing table to be recalculated +RPC_SC WINAPI SAD_ScRunRIDA(LPSTR szServer); +RPC_SC WINAPI SAD_ScRunRIDW(LPWSTR wszServer); +RPC_SC WINAPI SAD_ScRunRIDExA(LPSTR szServer, RPC_BOOL fProxySpace, RPC_BOOL fGwart); +RPC_SC WINAPI SAD_ScRunRIDExW(LPWSTR wszServer, RPC_BOOL fProxySpace, RPC_BOOL fGwart); + +#ifdef UNICODE +#define SAD_ScRunRID SAD_ScRunRIDW +#define SAD_ScRunRIDEx SAD_ScRunRIDExW +#else +#define SAD_ScRunRID SAD_ScRunRIDA +#define SAD_ScRunRIDEx SAD_ScRunRIDExA +#endif + + + +// Proxy Entry points + +RPC_EC WINAPI SAD_EcGetProxies(LPWSTR wszServer, PPROXYINFO pProxyInfo, PPROXYLIST pProxyList); +RPC_EC WINAPI SAD_EcGetProxiesBI(PRPCBINDINFO pBI, PPROXYINFO pProxyInfo, PPROXYLIST pProxyList); +void WINAPI SAD_FreeProxyListNode(PPROXYNODE pnode); +RPC_SC WINAPI SAD_ScIsProxyUniqueA(LPSTR szServer, + LPSTR szProxy, RPC_BOOL * pfUnique, LPSTR * pszExisting); +RPC_SC WINAPI SAD_ScIsProxyUniqueW(LPWSTR wszServer, + LPWSTR szProxy, RPC_BOOL * pfUnique, LPWSTR * pszExisting); + +// dwOptions values for SAD_ScBulkCreateProxy() and SAD_ScBulkCreateMultiProxy() +#define BPTAdd 1 +#define BPTRemove 2 +#define BPTUpdate 3 + +RPC_SC WINAPI SAD_ScBulkCreateProxyA(LPSTR szServer, LPSTR szHeader, DWORD dwOptions); +RPC_SC WINAPI SAD_ScBulkCreateProxyW(LPWSTR wszServer, LPWSTR wszHeader, DWORD dwOptions); +RPC_SC WINAPI SAD_ScBulkCreateMultiProxyA(LPSTR szServer, + INT cszHeader, + LPSTR rgszHeader[], + DWORD dwOptions); +RPC_SC WINAPI SAD_ScBulkCreateMultiProxyW(LPWSTR wszServer, + INT cwszHeader, + LPWSTR rgwszHeader[], + DWORD dwOptions); +RPC_SC WINAPI SAD_ScBulkUpdateMultiProxy(LPWSTR wszServer, + INT cwszSiteAddress, + LPWSTR rgwszOldSiteAddress[], + LPWSTR rgwszNewSiteAddress[], + RPC_BOOL fSaveSiteAddress); + + +RPC_SC WINAPI SAD_ScGetBulkProxyStatusA(LPSTR szServer, + RPC_SYSTEMTIME * pstTimeStart, + DWORD * pdwTimeStart, + DWORD * pdwTimeCur, + INT * piRecipients, + INT * pcRecipients); +RPC_SC WINAPI SAD_ScGetBulkProxyStatusW(LPWSTR wszServer, + RPC_SYSTEMTIME * pstTimeStart, + DWORD * pdwTimeStart, + DWORD * pdwTimeCur, + INT * piRecipients, + INT * pcRecipients); +RPC_SC WINAPI SAD_ScBulkProxyHaltA(LPSTR szServer, RPC_BOOL fWaitForShutdown); +RPC_SC WINAPI SAD_ScBulkProxyHaltW(LPWSTR wszServer, RPC_BOOL fWaitForShutdown); + +#ifdef UNICODE +#define SAD_ScIsProxyUnique SAD_ScIsProxyUniqueW +#define SAD_ScBulkCreateProxy SAD_ScBulkCreateProxyW +#define SAD_ScBulkCreateMultiProxy SAD_ScBulkCreateMultiProxyW +#define SAD_ScGetBulkProxyStatus SAD_ScGetBulkProxyStatusW +#define SAD_ScBulkProxyHalt SAD_ScBulkProxyHaltW +#else +#define SAD_ScIsProxyUnique SAD_ScIsProxyUniqueA +#define SAD_ScBulkCreateProxy SAD_ScBulkCreateProxyA +#define SAD_ScBulkCreateMultiProxy SAD_ScBulkCreateMultiProxyA +#define SAD_ScGetBulkProxyStatus SAD_ScGetBulkProxyStatusA +#define SAD_ScBulkProxyHalt SAD_ScBulkProxyHaltA +#endif + + + + + + +// Backup entry point (available only in UNICODE!) + +RPC_SC WINAPI SAD_ScGetBackupListNodeW(LPWSTR wszServer, BackupListNode ** ppnode); +void WINAPI SAD_FreeBackupListNode(BackupListNode * pnode); + + +// Run DRA Check calling parameters (dwCheck) +#define INTRASITE_CHECK 0 +#define INTERSITE_CHECK 1 + +RPC_SC WINAPI SAD_ScRunDRACheck(LPWSTR wszServer, RPC_DWORD dwCheck); + + + +// These few lines (or equivalent) need to be supplied by the application that links +// with SADAPI.LIB. +#ifdef _SAMPLE_CODE +void __RPC_FAR * __RPC_API midl_user_allocate(size_t cb) +{ + void * pv; + + pv = GlobalAlloc(GMEM_FIXED, cb); + if (!pv) + RpcRaiseException(RPC_S_OUT_OF_MEMORY); + + return pv; +} + +void __RPC_API midl_user_free(void __RPC_FAR * pv) +{ + GlobalFree(pv); +} +#endif + + + + + + + +#ifdef __cplusplus +} +#endif + +#endif // #ifndef _SADLIB_H_ diff --git a/private/utils/ntbackup/exchange/readme.txt b/private/utils/ntbackup/exchange/readme.txt new file mode 100644 index 000000000..bc2ba8226 --- /dev/null +++ b/private/utils/ntbackup/exchange/readme.txt @@ -0,0 +1,8 @@ +The files below this directory are coppied from Exchange's +tdcommon directory. + +Please to not modify. Simply copy the updates from the +\\iyf\src\tdcommon directory + +Thanks, +Steve |