mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1001 lines
23 KiB
1001 lines
23 KiB
|
|
//
|
|
// C R T D L L . D L L P r o f i l i n g f i l e s
|
|
//
|
|
|
|
$INPUT$wincrt$END$ //Build the zwincrt.h file
|
|
$SELECT$$IFE:dll:CRTDLL$$END$
|
|
$OUTPUT$zwincrt.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
zwincrt.h : header file for win32 api profiling dll for the crtdll
|
|
system dll
|
|
|
|
Provides index by API name into profiling data structures.
|
|
Creates array of API names for use in dumping data.
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
$END$
|
|
$FOOTER$
|
|
|
|
#define MODULE_NAME "crtdll"
|
|
#define API_COUNT $ROWS$
|
|
#define DATA_SEM_NAME "\\BaseNamedObjects\\CrtdllDataSem"
|
|
#define DATA_SEC_NAME "\\BaseNamedObjects\\CrtdllDataSection"
|
|
$END$
|
|
|
|
$INPUT$wincrt$END$
|
|
$SELECT$$IFE:dll:CRTDLL$$END$
|
|
$OUTPUT$zwincrt.h$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE
|
|
#define I_$DATA:api$ ($ROWS$-1)
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$wincrt$END$
|
|
$SELECT$$IFE:dll:CRTDLL$$END$
|
|
$OUTPUT$crtapi.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
crtapi.h: Defines the list of apis for crtdll.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
|
|
#ifdef ZCRTDLL
|
|
char *aszApiNames [] = {
|
|
$END$
|
|
$TEMPLATE
|
|
"$DATA:api$",
|
|
$END$
|
|
$FOOTER
|
|
""
|
|
};
|
|
#endif
|
|
$END$
|
|
|
|
$INPUT$wincrt$END$ //Build the zcrt.def file (ix86 version)
|
|
$SELECT$$IFE:dll:CRTDLL$$END$
|
|
$OUTPUT$zcrti386.def$END$
|
|
$HEADER$
|
|
LIBRARY ZRTDLL
|
|
|
|
DESCRIPTION 'Profiling dll for crtdll.dll api calls'
|
|
|
|
EXPORTS
|
|
$END$
|
|
$TEMPLATE
|
|
$IFN:api:_control87$$IFN:api:longjmp$$IFN:api:setjmp$$IFN:api:_setjmp$ $DATA:api$=Z$DATA:api$$ENDIF$$ENDIF$$ENDIF$$ENDIF$
|
|
$END$
|
|
$FOOTER$
|
|
;
|
|
; Cover setjmp/longjmp
|
|
;
|
|
_setjmp=CRTDLL._setjmp
|
|
longjmp=CRTDLL.longjmp
|
|
|
|
;
|
|
; Private and variable entries - not profiled
|
|
; Variable entries have the _dll suffix.
|
|
;
|
|
_CIacos=CRTDLL._CIacos
|
|
_CIasin=CRTDLL._CIasin
|
|
_CIatan=CRTDLL._CIatan
|
|
_CIatan2=CRTDLL._CIatan2
|
|
_CIcos=CRTDLL._CIcos
|
|
_CIcosh=CRTDLL._CIcosh
|
|
_CIexp=CRTDLL._CIexp
|
|
_CIfmod=CRTDLL._CIfmod
|
|
_CIlog=CRTDLL._CIlog
|
|
_CIlog10=CRTDLL._CIlog10
|
|
_CIpow=CRTDLL._CIpow
|
|
_CIsin=CRTDLL._CIsin
|
|
_CIsinh=CRTDLL._CIsinh
|
|
_CIsqrt=CRTDLL._CIsqrt
|
|
_CItan=CRTDLL._CItan
|
|
_CItanh=CRTDLL._CItanh
|
|
__GetMainArgs=CRTDLL.__GetMainArgs
|
|
_HUGE_dll=CRTDLL._HUGE_dll
|
|
_XcptFilter=CRTDLL._XcptFilter
|
|
__doserrno=CRTDLL.__doserrno
|
|
__fpecode=CRTDLL.__fpecode
|
|
__mb_cur_max_dll=CRTDLL.__mb_cur_max_dll
|
|
__pxcptinfoptrs=CRTDLL.__pxcptinfoptrs
|
|
__threadhandle=CRTDLL.__threadhandle
|
|
__threadid=CRTDLL.__threadid
|
|
_acmdln_dll=CRTDLL._acmdln_dll
|
|
_aexit_rtn_dll=CRTDLL._aexit_rtn_dll
|
|
_amsg_exit=CRTDLL._amsg_exit
|
|
_basemajor_dll=CRTDLL._basemajor_dll
|
|
_baseminor_dll=CRTDLL._baseminor_dll
|
|
_baseversion_dll=CRTDLL._baseversion_dll
|
|
_beginthread=CRTDLL._beginthread
|
|
_commode_dll=CRTDLL._commode_dll
|
|
_cpumode_dll=CRTDLL._cpumode_dll
|
|
_ctype=CRTDLL._ctype
|
|
_daylight_dll=CRTDLL._daylight_dll
|
|
_endthread=CRTDLL._endthread
|
|
_environ_dll=CRTDLL._environ_dll
|
|
_errno=CRTDLL._errno
|
|
_except_handler2=CRTDLL._except_handler2
|
|
_fileinfo_dll=CRTDLL._fileinfo_dll
|
|
_fmode_dll=CRTDLL._fmode_dll
|
|
_ftol=CRTDLL._ftol
|
|
_getdllprocaddr=CRTDLL._getdllprocaddr
|
|
_global_unwind2=CRTDLL._global_unwind2
|
|
_initterm=CRTDLL._initterm
|
|
_iob=CRTDLL._iob
|
|
_local_unwind2=CRTDLL._local_unwind2
|
|
_osmajor_dll=CRTDLL._osmajor_dll
|
|
_osminor_dll=CRTDLL._osminor_dll
|
|
_osmode_dll=CRTDLL._osmode_dll
|
|
_osver_dll=CRTDLL._osver_dll
|
|
_osversion_dll=CRTDLL._osversion_dll
|
|
_pgmptr_dll=CRTDLL._pgmptr_dll
|
|
_sys_errlist=CRTDLL._sys_errlist
|
|
_sys_nerr_dll=CRTDLL._sys_nerr_dll
|
|
_timezone_dll=CRTDLL._timezone_dll
|
|
_tzname=CRTDLL._tzname
|
|
_winmajor_dll=CRTDLL._winmajor_dll
|
|
_winminor_dll=CRTDLL._winminor_dll
|
|
_winver_dll=CRTDLL._winver_dll
|
|
signal=CRTDLL.signal
|
|
_control87=CRTDLL._control87
|
|
_pctype_dll=CRTDLL._pctype_dll
|
|
_pwctype_dll=CRTDLL._pwctype_dll
|
|
__argc_dll=CRTDLL.__argc_dll
|
|
__argv_dll=CRTDLL.__argv_dll
|
|
|
|
;
|
|
; Zdll's exported utility routines
|
|
;
|
|
ApfInitDll @3001
|
|
ApfRecordInfo @3002
|
|
ApfClearData @3003
|
|
ApfDumpData @3004
|
|
ApfGetData @3005
|
|
ApfGetModuleName @3006
|
|
ApfGetApiCount @3007
|
|
$END$
|
|
|
|
$INPUT$wincrt$END$ //Build the zcrt.def file (mips version)
|
|
$SELECT$$IFE:dll:CRTDLL$$END$
|
|
$OUTPUT$zcrtmips.def$END$
|
|
$HEADER$
|
|
LIBRARY ZRTDLL
|
|
|
|
DESCRIPTION 'Profiling dll for crtdll.dll api calls'
|
|
|
|
EXPORTS
|
|
$END$
|
|
$TEMPLATE
|
|
$IFN:api:_control87$$IFN:api:longjmp$$IFN:api:setjmp$$IFN:api:_setjmp$ $DATA:api$=Z$DATA:api$$ENDIF$$ENDIF$$ENDIF$$ENDIF$
|
|
$END$
|
|
$FOOTER$
|
|
;
|
|
; Cover setjmp/longjmp
|
|
;
|
|
setjmp=CRTDLL.setjmp
|
|
longjmp=CRTDLL.longjmp
|
|
|
|
;
|
|
; Private and variable entries - not profiled
|
|
; Variable entries have the _dll suffix.
|
|
;
|
|
__C_specific_handler=CRTDLL.__C_specific_handler
|
|
__GetMainArgs=CRTDLL.__GetMainArgs
|
|
_HUGE_dll=CRTDLL._HUGE_dll
|
|
_XcptFilter=CRTDLL._XcptFilter
|
|
__doserrno=CRTDLL.__doserrno
|
|
__fpecode=CRTDLL.__fpecode
|
|
__mb_cur_max_dll=CRTDLL.__mb_cur_max_dll
|
|
__pxcptinfoptrs=CRTDLL.__pxcptinfoptrs
|
|
__threadhandle=CRTDLL.__threadhandle
|
|
__threadid=CRTDLL.__threadid
|
|
_acmdln_dll=CRTDLL._acmdln_dll
|
|
_aexit_rtn_dll=CRTDLL._aexit_rtn_dll
|
|
_amsg_exit=CRTDLL._amsg_exit
|
|
_basemajor_dll=CRTDLL._basemajor_dll
|
|
_baseminor_dll=CRTDLL._baseminor_dll
|
|
_baseversion_dll=CRTDLL._baseversion_dll
|
|
_beginthread=CRTDLL._beginthread
|
|
_commode_dll=CRTDLL._commode_dll
|
|
_cpumode_dll=CRTDLL._cpumode_dll
|
|
_ctype=CRTDLL._ctype
|
|
_daylight_dll=CRTDLL._daylight_dll
|
|
_endthread=CRTDLL._endthread
|
|
_environ_dll=CRTDLL._environ_dll
|
|
_errno=CRTDLL._errno
|
|
_fileinfo_dll=CRTDLL._fileinfo_dll
|
|
_fmode_dll=CRTDLL._fmode_dll
|
|
_getdllprocaddr=CRTDLL._getdllprocaddr
|
|
_initterm=CRTDLL._initterm
|
|
_iob=CRTDLL._iob
|
|
_osmajor_dll=CRTDLL._osmajor_dll
|
|
_osminor_dll=CRTDLL._osminor_dll
|
|
_osmode_dll=CRTDLL._osmode_dll
|
|
_osver_dll=CRTDLL._osver_dll
|
|
_osversion_dll=CRTDLL._osversion_dll
|
|
_pgmptr_dll=CRTDLL._pgmptr_dll
|
|
_sys_errlist=CRTDLL._sys_errlist
|
|
_sys_nerr_dll=CRTDLL._sys_nerr_dll
|
|
_timezone_dll=CRTDLL._timezone_dll
|
|
_tzname=CRTDLL._tzname
|
|
_winmajor_dll=CRTDLL._winmajor_dll
|
|
_winminor_dll=CRTDLL._winminor_dll
|
|
_winver_dll=CRTDLL._winver_dll
|
|
signal=CRTDLL.signal
|
|
__jump_unwind=CRTDLL.__jump_unwind
|
|
_pctype_dll=CRTDLL._pctype_dll
|
|
_pwctype_dll=CRTDLL._pwctype_dll
|
|
__argc_dll=CRTDLL.__argc_dll
|
|
__argv_dll=CRTDLL.__argv_dll
|
|
|
|
;
|
|
; Zdll's exported utility routines
|
|
;
|
|
ApfInitDll @3001
|
|
ApfRecordInfo @3002
|
|
ApfClearData @3003
|
|
ApfDumpData @3004
|
|
ApfGetData @3005
|
|
ApfGetModuleName @3006
|
|
ApfGetApiCount @3007
|
|
$END$
|
|
|
|
$INPUT$wincrt$END$ //Build the zcrt.c file
|
|
$SELECT$$IFE:dll:CRTDLL$$END$
|
|
$OUTPUT$zcrt.c$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
File: Zcrt.c
|
|
|
|
Profiling dll for crtdll.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator
|
|
|
|
--*/
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include "crtdll.h"
|
|
#include "windows.h"
|
|
#include "api32prf.h" //Data Structures
|
|
#include "zwincrt.h"
|
|
|
|
extern BOOLEAN fInitDone;
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$wincrt$END$
|
|
$SELECT$$IFE:dll:CRTDLL$$END$
|
|
$OUTPUT$zcrt.c$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE$
|
|
$IFN:api:_control87$$IFN:api:_cprintf$$IFN:api:_cscanf$$IFN:api:_execl$$IFN:api:_execle$$IFN:api:_execlp$$IFN:api:_execlpe$$IFN:api:_open$$IFN:api:_snprintf$$IFN:api:_sopen$$IFN:api:_spawnl$$IFN:api:_spawnle$
|
|
$IFN:api:_spawnlp$$IFN:api:_spawnlpe$$IFN:api:printf$$IFN:api:scanf$$IFN:api:sprintf$$IFN:api:sscanf$$IFN:api:fprintf$$IFN:api:fscanf$$IFN:api:_snwprintf$$IFN:api:wprintf$$IFN:api:fwprintf$
|
|
$IFN:api:fwscanf$$IFN:api:swscanf$$IFN:api:swprintf$$IFN:api:wscanf$$IFN:api:bsearch$$IFN:api:_lfind$$IFN:api:_lsearch$$IFN:api:qsort$$IFN:api:longjmp$$IFN:api:setjmp$$IFN:api:_setjmp$$IFN:api:atexit$
|
|
$DATA:type$ _CRTAPI1 $DATA:routine$ Z$DATA:api$ ($IFN:params:void$$LOOP:params$$DATA:params*$ $IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$)
|
|
{
|
|
$IFN:type:void$
|
|
$DATA:type$ RetVal;
|
|
$ENDIF$
|
|
SHORT sTimerHandle;
|
|
ULONG ulElapsedTime;
|
|
|
|
if (fInitDone == FALSE) {
|
|
ApfInitDll();
|
|
}
|
|
TimerOpen(&sTimerHandle, MICROSECONDS);
|
|
TimerInit(sTimerHandle);
|
|
//
|
|
// Call the api
|
|
//
|
|
$IFN:type:void$RetVal = $ENDIF$$DATA:api$($IFN:params:void$$LOOP:params$$IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$);
|
|
//
|
|
// Get the elapsed time
|
|
//
|
|
ulElapsedTime = TimerRead(sTimerHandle);
|
|
ApfRecordInfo(I_$DATA:api$, ulElapsedTime);
|
|
TimerClose(sTimerHandle);
|
|
|
|
return$IFN:type:void$(RetVal)$ENDIF$;
|
|
}
|
|
$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$$ENDIF$
|
|
$END$
|
|
|
|
//
|
|
// K E R N E L 3 2 . D L L P r o f i l i n g f i l e s
|
|
//
|
|
|
|
$INPUT$winapi$END$ //Build the zwinbase.h file
|
|
$SELECT$$IFE:dll:KERNEL32$$END$
|
|
$OUTPUT$zwinbase.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
zwinbase.h : header file for win32 api profiling dll for the kernel32
|
|
system dll
|
|
|
|
Provides index by API name into profiling data structures.
|
|
Creates array of API names for use in dumping data.
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
$END$
|
|
$FOOTER$
|
|
|
|
#define MODULE_NAME "kernel32"
|
|
#define API_COUNT $ROWS$
|
|
#define DATA_SEM_NAME "\\BaseNamedObjects\\Kernel32DataSem"
|
|
#define DATA_SEC_NAME "\\BaseNamedObjects\\Kernel32DataSection"
|
|
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:KERNEL32$$END$
|
|
$OUTPUT$zwinbase.h$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE
|
|
#define I_$DATA:api$ ($ROWS$-1)
|
|
$END$
|
|
$FOOTER$
|
|
#ifdef UNICODE
|
|
#define I_GetModuleHandle I_GetModuleHandleW
|
|
#else
|
|
#define I_GetModuleHandle I_GetModuleHandleA
|
|
#endif
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:KERNEL32$$END$
|
|
$OUTPUT$baseapi.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
baseapi.h: Defines the list of apis for kernel32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
|
|
#ifdef ZKERNEL32
|
|
char *aszApiNames [] = {
|
|
$END$
|
|
$TEMPLATE
|
|
"$DATA:api$",
|
|
$END$
|
|
$FOOTER
|
|
""
|
|
};
|
|
#endif
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zbase.def file
|
|
$SELECT$$IFE:dll:KERNEL32$$END$
|
|
$OUTPUT$zbase.def$END$
|
|
$HEADER$
|
|
LIBRARY ZERNEL32
|
|
|
|
DESCRIPTION 'Profiling dll for kernel32.dll api calls'
|
|
|
|
EXPORTS
|
|
$END$
|
|
$TEMPLATE
|
|
$DATA:api$=Z$DATA:api$
|
|
$END$
|
|
$FOOTER$
|
|
;
|
|
; Private entries - not profiled
|
|
;
|
|
; vdmapi.h
|
|
;
|
|
VDMOperationStarted=zVDMOperationStarted
|
|
GetNextVDMCommand=zGetNextVDMCommand
|
|
ExitVDM=zExitVDM
|
|
GetBinaryType=zGetBinaryType
|
|
;
|
|
; conapi.h
|
|
;
|
|
RegisterConsoleVDM=zRegisterConsoleVDM
|
|
VDMConsoleOperation=zVDMConsoleOperation
|
|
;
|
|
; others
|
|
;
|
|
RtlUnwind=zRtlUnwind
|
|
;
|
|
; mips/alpha specific
|
|
;
|
|
RtlCaptureContext=zRtlCaptureContext
|
|
RtlLookupFunctionEntry=zRtlLookupFunctionEntry
|
|
RtlVirtualUnwind=zRtlVirtualUnwind
|
|
;
|
|
; alpha specific
|
|
;
|
|
RtlUnwindRfp=zRtlUnwindRfp
|
|
|
|
;
|
|
; Zdll's exported utility routines
|
|
;
|
|
ApfInitDll @3001
|
|
ApfRecordInfo @3002
|
|
ApfClearData @3003
|
|
ApfDumpData @3004
|
|
ApfGetData @3005
|
|
ApfGetModuleName @3006
|
|
ApfGetApiCount @3007
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zbase.c file
|
|
$SELECT$$IFE:dll:KERNEL32$$END$
|
|
$OUTPUT$zbase.c$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
File: Zbase.c
|
|
|
|
Profiling dll for kernel32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator
|
|
|
|
--*/
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include "windows.h"
|
|
#include "api32prf.h" //Data Structures
|
|
#include "zwinbase.h"
|
|
|
|
extern BOOLEAN fInitDone;
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:KERNEL32$$END$
|
|
$OUTPUT$zbase.c$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE$
|
|
$DATA:type$ $DATA:routine$ Z$DATA:api$ ($IFN:params:void$$LOOP:params$$DATA:params*$ $IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$)
|
|
{
|
|
$IFN:type:void$
|
|
$DATA:type$ RetVal;
|
|
$ENDIF$
|
|
SHORT sTimerHandle;
|
|
ULONG ulElapsedTime;
|
|
|
|
if (fInitDone == FALSE) {
|
|
ApfInitDll();
|
|
}
|
|
TimerOpen(&sTimerHandle, MICROSECONDS);
|
|
TimerInit(sTimerHandle);
|
|
//
|
|
// Call the api
|
|
//
|
|
$IFN:type:void$RetVal = $ENDIF$$DATA:api$($IFN:params:void$$LOOP:params$$IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$);
|
|
//
|
|
// Get the elapsed time
|
|
//
|
|
ulElapsedTime = TimerRead(sTimerHandle);
|
|
ApfRecordInfo(I_$DATA:api$, ulElapsedTime);
|
|
TimerClose(sTimerHandle);
|
|
|
|
return$IFN:type:void$(RetVal)$ENDIF$;
|
|
}
|
|
$END$
|
|
|
|
|
|
//
|
|
// G D I 3 2 . D L L P r o f i l i n g f i l e s
|
|
//
|
|
|
|
$INPUT$winapi$END$ //Build the zwingdi.h file
|
|
$SELECT$$IFE:dll:GDI32$$END$
|
|
$OUTPUT$zwingdi.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
zwingdi.h : header file for win32 api profiling dll for the GDI32
|
|
system dll
|
|
|
|
Provides index by API name into profiling data structures.
|
|
Creates array of API names for use in dumping data.
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
$END$
|
|
$FOOTER$
|
|
|
|
#define MODULE_NAME "gdi32"
|
|
#define API_COUNT $ROWS$
|
|
#define DATA_SEM_NAME "\\BaseNamedObjects\\Gdi32DataSem"
|
|
#define DATA_SEC_NAME "\\BaseNamedObjects\\Gdi32DataSection"
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:GDI32$$END$
|
|
$OUTPUT$zwingdi.h$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE
|
|
#define I_$DATA:api$ ($ROWS$-1)
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:GDI32$$END$
|
|
$OUTPUT$gdiapi.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
gdiapi.h: Defines the list of apis for GDI32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
#ifdef ZGDI32
|
|
char *aszApiNames [] = {
|
|
$END$
|
|
$TEMPLATE
|
|
"$DATA:api$",
|
|
$END$
|
|
$FOOTER
|
|
""
|
|
};
|
|
#endif
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zgdi.def file
|
|
$SELECT$$IFE:dll:GDI32$$END$
|
|
$OUTPUT$zgdi.def$END$
|
|
$HEADER$
|
|
LIBRARY ZDI32
|
|
|
|
DESCRIPTION 'Profiling dll for GDI32.dll api calls'
|
|
|
|
EXPORTS
|
|
$END$
|
|
$TEMPLATE
|
|
$DATA:api$=Z$DATA:api$
|
|
$END$
|
|
$FOOTER$
|
|
;
|
|
; Private entries - not profiled
|
|
;
|
|
DeviceCapabilitiesExA=zDeviceCapabilitiesExA
|
|
DeviceCapabilitiesExW=zDeviceCapabilitiesExW
|
|
DeviceCapabilitiesEx=zDeviceCapabilitiesExA
|
|
;
|
|
GetKerningPairs=zGetKerningPairs
|
|
GetGlyphOutline=zGetGlyphOutline
|
|
GdiCleanCacheDC=zGdiCleanCacheDC
|
|
GdiCvtHnd=zGdiCvtHnd
|
|
GdiReserveHandles=zGdiReserveHandles
|
|
GetCharWidthWOW=zGetCharWidthWOW
|
|
GetOutlineTextMetricsWOW=zGetOutlineTextMetricsWOW
|
|
GetTextMetricsWOW=zGetTextMetricsWOW
|
|
GetRandomRgn=zGetRandomRgn
|
|
GetRelAbs=zGetRelAbs
|
|
SetBkModeWOW=zSetBkModeWOW
|
|
SetPolyFillModeWOW=zSetPolyFillModeWOW
|
|
SetRelAbs=zSetRelAbs
|
|
SetROP2WOW=zSetROP2WOW
|
|
SetStretchBltModeWOW=zSetStretchBltModeWOW
|
|
SetTextAlignWOW=zSetTextAlignWOW
|
|
|
|
;
|
|
; Zdll's exported utility routines
|
|
;
|
|
ApfInitDll @3001
|
|
ApfRecordInfo @3002
|
|
ApfClearData @3003
|
|
ApfDumpData @3004
|
|
ApfGetData @3005
|
|
ApfGetModuleName @3006
|
|
ApfGetApiCount @3007
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zgdi.c file
|
|
$SELECT$$IFE:dll:GDI32$$END$
|
|
$OUTPUT$zgdi.c$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
File: Zgdi.c
|
|
|
|
Profiling dll for GDI32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator
|
|
|
|
--*/
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include "windows.h"
|
|
#include "drivinit.h"
|
|
#include "zwingdi.h"
|
|
#include "api32prf.h" //Data Structures
|
|
|
|
extern BOOLEAN fInitDone;
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:GDI32$$END$
|
|
$OUTPUT$zgdi.c$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE$
|
|
$DATA:type$ $DATA:routine$ Z$DATA:api$ ($IFN:params:void$$LOOP:params$$DATA:params*$ $IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$)
|
|
{
|
|
$IFN:type:void$
|
|
$DATA:type$ RetVal;
|
|
$ENDIF$
|
|
SHORT sTimerHandle;
|
|
ULONG ulElapsedTime;
|
|
|
|
if (fInitDone == FALSE) {
|
|
ApfInitDll();
|
|
}
|
|
TimerOpen(&sTimerHandle,MICROSECONDS);
|
|
TimerInit(sTimerHandle);
|
|
//
|
|
// Call the api
|
|
//
|
|
$IFN:type:void$RetVal = $ENDIF$$DATA:api$($IFN:params:void$$LOOP:params$$IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$);
|
|
//
|
|
// Get the elapsed time
|
|
//
|
|
ulElapsedTime = TimerRead(sTimerHandle);
|
|
ApfRecordInfo(I_$DATA:api$, ulElapsedTime);
|
|
TimerClose(sTimerHandle);
|
|
|
|
return$IFN:type:void$(RetVal)$ENDIF$;
|
|
}
|
|
$END$
|
|
|
|
//
|
|
// U S E R 3 2 . D L L P r o f i l i n g f i l e s
|
|
//
|
|
|
|
$INPUT$winapi$END$ //Build the zwinuser.h file
|
|
$SELECT$$IFE:dll:USER32$$END$
|
|
$OUTPUT$zwinuser.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
zwinuser.h : header file for win32 api profiling dll for the USER32
|
|
system dll
|
|
|
|
Provides index by API name into profiling data structures.
|
|
Creates array of API names for use in dumping data.
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
$END$
|
|
$FOOTER$
|
|
|
|
#define MODULE_NAME "user32"
|
|
#define API_COUNT $ROWS$
|
|
#define DATA_SEM_NAME "\\BaseNamedObjects\\User32DataSem"
|
|
#define DATA_SEC_NAME "\\BaseNamedObjects\\User32DataSection"
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:USER32$$END$
|
|
$OUTPUT$zwinuser.h$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE
|
|
#define I_$DATA:api$ ($ROWS$-1)
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:USER32$$END$
|
|
$OUTPUT$userapi.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
userapi.h: Defines the list of apis for USER32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
#ifdef ZUSER32
|
|
char *aszApiNames [] = {
|
|
$END$
|
|
$TEMPLATE
|
|
"$DATA:api$",
|
|
$END$
|
|
$FOOTER
|
|
""
|
|
};
|
|
#endif
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zuser.def file
|
|
$SELECT$$IFE:dll:USER32$$END$
|
|
$OUTPUT$zuser.def$END$
|
|
$HEADER$
|
|
LIBRARY ZSER32
|
|
|
|
DESCRIPTION 'Profiling dll for USER32.dll api calls'
|
|
|
|
EXPORTS
|
|
$END$
|
|
$TEMPLATE
|
|
$DATA:api$=Z$DATA:api$
|
|
$END$
|
|
$FOOTER$
|
|
;
|
|
; Private entries - not profiled
|
|
;
|
|
CallMsgFilter=ZCallMsgFilterA
|
|
;
|
|
CreateWindowExWOWA=zCreateWindowExWOWA
|
|
DialogBoxIndirectParamAorW=zDialogBoxIndirectParamAorW
|
|
DirectedYield=zDirectedYield
|
|
FreeDDEData=zFreeDDEData
|
|
GetClassWOWWords=zGetClassWOWWords
|
|
GetFullUserHandle=zGetFullUserHandle
|
|
GetMenuIndex=zGetMenuIndex
|
|
InitTask=zInitTask
|
|
MBToWCSEx=zMBToWCSEx
|
|
RegisterClassWOWA=zRegisterClassWOWA
|
|
RegisterUserHungAppHandlers=zRegisterUserHungAppHandlers
|
|
ServerCreateDialog=zServerCreateDialog
|
|
ServerLoadCreateCursorIcon=zServerLoadCreateCursorIcon
|
|
ServerLoadCreateMenu=zServerLoadCreateMenu
|
|
SetCursorContents=zSetCursorContents
|
|
ShowStartGlass=zShowStartGlass
|
|
UserRegisterWowHandlers=zUserRegisterWowHandlers
|
|
WCSToMBEx=zWCSToMBEx
|
|
WOWCleanup=zWOWCleanup
|
|
WOWFindWindow=zWOWFindWindow
|
|
WOWGetIdFromDirectory=zWOWGetIdFromDirectory
|
|
WOWLoadBitmapA=zWOWLoadBitmapA
|
|
WOWLoadCursorIcon=zWOWLoadCursorIcon
|
|
YieldTask=zYieldTask
|
|
|
|
;
|
|
; Zdll's exported utility routines
|
|
;
|
|
ApfInitDll @3001
|
|
ApfRecordInfo @3002
|
|
ApfClearData @3003
|
|
ApfDumpData @3004
|
|
ApfGetData @3005
|
|
ApfGetModuleName @3006
|
|
ApfGetApiCount @3007
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zuser.c file
|
|
$SELECT$$IFE:dll:USER32$$END$
|
|
$OUTPUT$zuser.c$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
File: Zuser.c
|
|
|
|
Profiling dll for USER32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator
|
|
|
|
--*/
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include "windows.h"
|
|
#include "dde.h"
|
|
#include "ddeml.h"
|
|
#include "zwinuser.h"
|
|
#include "api32prf.h" //Data Structures
|
|
|
|
extern BOOLEAN fInitDone;
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:USER32$$END$
|
|
$OUTPUT$zuser.c$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE$
|
|
$IFN:api:wsprintfA$$IFN:api:wsprintfW$
|
|
$DATA:type$ $DATA:routine$ Z$DATA:api$ ($IFN:params:void$$LOOP:params$$DATA:params*$ $IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$)
|
|
{
|
|
$IFN:type:void$
|
|
$DATA:type$ RetVal;
|
|
$ENDIF$
|
|
SHORT sTimerHandle;
|
|
ULONG ulElapsedTime;
|
|
|
|
if (fInitDone == FALSE) {
|
|
ApfInitDll();
|
|
}
|
|
TimerOpen(&sTimerHandle,MICROSECONDS);
|
|
TimerInit(sTimerHandle);
|
|
//
|
|
// Call the api
|
|
//
|
|
$IFN:type:void$RetVal = $ENDIF$$DATA:api$($IFN:params:void$$LOOP:params$$IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$);
|
|
//
|
|
// Get the elapsed time
|
|
//
|
|
ulElapsedTime = TimerRead(sTimerHandle);
|
|
ApfRecordInfo(I_$DATA:api$, ulElapsedTime);
|
|
TimerClose(sTimerHandle);
|
|
|
|
return$IFN:type:void$(RetVal)$ENDIF$;
|
|
}
|
|
$ENDIF$$ENDIF$
|
|
$END$
|
|
|
|
//
|
|
// A D V A P I 3 2 . D L L P r o f i l i n g f i l e s
|
|
//
|
|
|
|
$INPUT$winapi$END$ //Build the zwinadv.h file
|
|
$SELECT$$IFE:dll:ADVAPI32$$END$
|
|
$OUTPUT$zwinadv.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
zwinadv.h : header file for win32 api profiling dll for the ADVAPI32
|
|
system dll
|
|
|
|
Provides index by API name into profiling data structures.
|
|
Creates array of API names for use in dumping data.
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
$END$
|
|
$FOOTER$
|
|
|
|
#define MODULE_NAME "advapi32"
|
|
#define API_COUNT $ROWS$
|
|
#define DATA_SEM_NAME "\\BaseNamedObjects\\Advapi32DataSem"
|
|
#define DATA_SEC_NAME "\\BaseNamedObjects\\Advapi32DataSection"
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:ADVAPI32$$END$
|
|
$OUTPUT$zwinadv.h$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE
|
|
#define I_$DATA:api$ ($ROWS$-1)
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:ADVAPI32$$END$
|
|
$OUTPUT$advapi.h$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
advapi.h: Defines the list of apis for ADVAPI32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator.
|
|
|
|
--*/
|
|
#ifdef ZADVAPI32
|
|
char *aszApiNames [] = {
|
|
$END$
|
|
$TEMPLATE
|
|
"$DATA:api$",
|
|
$END$
|
|
$FOOTER
|
|
""
|
|
};
|
|
#endif
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zadvapi.def file
|
|
$SELECT$$IFE:dll:ADVAPI32$$END$
|
|
$OUTPUT$zadvapi.def$END$
|
|
$HEADER$
|
|
LIBRARY ZDVAPI32
|
|
|
|
DESCRIPTION 'Profiling dll for ADVAPI32.dll api calls'
|
|
|
|
EXPORTS
|
|
$END$
|
|
$TEMPLATE
|
|
$DATA:api$=Z$DATA:api$
|
|
$END$
|
|
$FOOTER$
|
|
; Zdll's exported utility routines
|
|
;
|
|
ApfInitDll @3001
|
|
ApfRecordInfo @3002
|
|
ApfClearData @3003
|
|
ApfDumpData @3004
|
|
ApfGetData @3005
|
|
ApfGetModuleName @3006
|
|
ApfGetApiCount @3007
|
|
$END$
|
|
|
|
$INPUT$winapi$END$ //Build the zadvapi.c file
|
|
$SELECT$$IFE:dll:ADVAPI32$$END$
|
|
$OUTPUT$zadvapi.c$END$
|
|
$HEADER$
|
|
/*++
|
|
|
|
File: Zadvapi.c
|
|
|
|
Profiling dll for ADVAPI32.dll
|
|
|
|
NOTE: This file is generated by WRAPPER code generator
|
|
|
|
--*/
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include "windows.h"
|
|
#include "zwinadv.h"
|
|
#include "api32prf.h" //Data Structures
|
|
|
|
extern BOOLEAN fInitDone;
|
|
$END$
|
|
$FOOTER$
|
|
$END$
|
|
|
|
$INPUT$winapi$END$
|
|
$SELECT$$IFE:dll:ADVAPI32$$END$
|
|
$OUTPUT$zadvapi.c$END$
|
|
$HEADER$
|
|
$END$
|
|
$TEMPLATE$
|
|
$DATA:type$ $DATA:routine$ Z$DATA:api$ ($IFN:params:void$$LOOP:params$$DATA:params*$ $IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$)
|
|
{
|
|
$IFN:type:void$
|
|
$DATA:type$ RetVal;
|
|
$ENDIF$
|
|
SHORT sTimerHandle;
|
|
ULONG ulElapsedTime;
|
|
|
|
if (fInitDone == FALSE) {
|
|
ApfInitDll();
|
|
}
|
|
TimerOpen(&sTimerHandle,MICROSECONDS);
|
|
TimerInit(sTimerHandle);
|
|
//
|
|
// Call the api
|
|
//
|
|
$IFN:type:void$RetVal = $ENDIF$$DATA:api$($IFN:params:void$$LOOP:params$$IFE:names*:$Arg$COUNT$$ELSE$$DATA:names*$$ENDIF$$ENDLOOP:,$$ENDIF$);
|
|
//
|
|
// Get the elapsed time
|
|
//
|
|
ulElapsedTime = TimerRead(sTimerHandle);
|
|
ApfRecordInfo(I_$DATA:api$, ulElapsedTime);
|
|
TimerClose(sTimerHandle);
|
|
|
|
return$IFN:type:void$(RetVal)$ENDIF$;
|
|
}
|
|
$END$
|
|
|
|
|