windows-nt/Source/XPSP1/NT/base/mvdm/wow16/toolhelp/toolhelp.inc
2020-09-26 16:20:57 +08:00

293 lines
8.3 KiB
PHP

;**************************************************************************
;* TOOLHELP.INC
;*
;* Assembly-language public include file for TOOLHELP.DLL
;*
;**************************************************************************
;** General symbol values
MAX_DATA EQU 11
MAX_PATH EQU 255
MAX_MODULE_NAME EQU 8 + 1 ;Leave room for the zero and padding
MAX_CLASSNAME EQU 255
; ----- Global heap walking -----
GLOBALENTRY STRUC
ge_dwSize DD ? ;Structure version
ge_dwAddress DD ? ;This block's address
ge_dwBlockSize DD ? ;This block's size
ge_hBlock DW ? ;This block's handle
ge_wcLock DW ? ;Lock count
ge_wcPageLock DW ? ;Page lock count
ge_wFlags DW ? ;Block flags
ge_wHeapPresent DW ? ;Size of available local heap
ge_hOwner DW ? ;Owner handle
ge_wType DW ? ;Block type
ge_wData DW ? ;Type-specific data
ge_dwNext DD ? ;Pointer to next block
ge_dwNextAlt DD ? ;Next free/LRU block in chain
GLOBALENTRY ENDS
; ** GlobalFirst()/GlobalNext() flags
GLOBAL_ALL EQU 0
GLOBAL_LRU EQU 1
GLOBAL_FREE EQU 2
; ** GLOBALENTRY.ge_wType entries
GT_UNKNOWN EQU 0
GT_DGROUP EQU 1
GT_DATA EQU 2
GT_CODE EQU 3
GT_TASK EQU 4
GT_RESOURCE EQU 5
GT_MODULE EQU 6
GT_FREE EQU 7
GT_INTERNAL EQU 8
GT_SENTINEL EQU 9
GT_BURGERMASTER EQU 10
; ** if GLOBALENTRY.wType==GT_RESOURCE, the following is GLOBALENTRY.wData:
GD_USERDEFINED EQU 0
GD_CURSORCOMPONENT EQU 1
GD_BITMAP EQU 2
GD_ICONCOMPONENT EQU 3
GD_MENU EQU 4
GD_DIALOG EQU 5
GD_STRING EQU 6
GD_FONTDIR EQU 7
GD_FONT EQU 8
GD_ACCELERATORS EQU 9
GD_RCDATA EQU 10
GD_ERRTABLE EQU 11
GD_CURSOR EQU 12
GD_ICON EQU 14
GD_NAMETABLE EQU 15
GD_MAX_RESOURCE EQU 15
;** GLOBALENTRY.wFlags
GF_PDB_OWNER EQU 100h ;Low byte is KERNEL flags
; ----- Local heap walking -----
LOCALENTRY STRUC
le_dwSize DD ?
le_hHandle DW ?
le_wAddress DW ?
le_wSize DW ?
le_wFlags DW ?
le_wcLock DW ?
le_wType DW ?
le_hHeap DW ?
le_wHeapType DW ?
le_wNext DW ?
LOCALENTRY ENDS
; ** LOCALENTRY.wHeapType flags
NORMAL_HEAP EQU 0
USER_HEAP EQU 1
GDI_HEAP EQU 2
;** LOCALENTRY.wFlags
LF_FIXED EQU 1
LF_FREE EQU 2
LF_MOVEABLE EQU 4
;** LOCALENTRY.wType
LT_NORMAL EQU 0
LT_GDI_PEN EQU 1
LT_GDI_BRUSH EQU 2
LT_GDI_FONT EQU 3
LT_GDI_PALETTE EQU 4
LT_GDI_BITMAP EQU 5
LT_GDI_RGN EQU 6
LT_GDI_DC EQU 7
LT_GDI_DISABLED_DC EQU 8
LT_GDI_METADC EQU 9
LT_GDI_METAFILE EQU 10
LT_GDI_MAX EQU LT_GDI_METAFILE
LT_FREE EQU 0ffh
; ----- Stack tracing -----
STACKTRACEENTRY STRUC
st_dwSize DD ?
st_hTask DW ?
st_wSS DW ?
st_wBP DW ?
st_wCS DW ?
st_wIP DW ?
st_hModule DW ?
st_wSegment DW ?
st_wFlags DW ?
STACKTRACEENTRY ENDS
;** STACKTRACEENTRY.wFlags values
FRAME_FAR EQU 0
FRAME_NEAR EQU 1
; ----- Module list walking -----
MODULEENTRY STRUC
me_dwSize DD ?
me_szModule DB MAX_MODULE_NAME + 1 DUP(?)
me_hModule DW ?
me_wcUsage DW ?
me_szExePath DB MAX_PATH + 1 + 1 DUP(?)
me_wNext DW ?
MODULEENTRY ENDS
; ----- Task list walking -----
TASKENTRY STRUC
te_dwSize DD ?
te_hTask DW ?
te_hTaskParent DW ?
te_hInst DW ?
te_hModule DW ?
te_wSS DW ?
te_wSP DW ?
te_wStackTop DW ?
te_wStackMinimum DW ?
te_wStackBottom DW ?
te_wcEvents DW ?
te_hQueue DW ?
te_szModule DB MAX_MODULE_NAME + 1 DUP(?)
te_wPSPOffset DW ?
te_hNext DW ?
TASKENTRY ENDS
;** TaskSwitch() return values
TS_ERROR EQU 0
TS_NEW EQU 1
TS_OLD EQU 2
; ----- Window Class enumeration -----
CLASSENTRY STRUC
ce_dwSize DD ?
ce_hInst DW ?
ce_szClassName DB MAX_CLASSNAME + 1 DUP(?)
ce_wNext DW ?
CLASSENTRY ENDS
; ----- Information functions -----
VMEMMANINFO STRUC
vmm_dwSize DD ?
vmm_dwLargestFreeBlock DD ?
vmm_dwMaxPagesAvailable DD ?
vmm_dwMaxPagesLockable DD ?
vmm_dwTotalLinearSpace DD ?
vmm_dwTotalUnlockedPages DD ?
vmm_dwFreePages DD ?
vmm_dwTotalPages DD ?
vmm_dwFreeLinearSpace DD ?
vmm_dwSwapFilePages DD ?
vmm_wPageSize DW ?
VMEMMANINFO ENDS
SYSHEAPINFO STRUC
si_dwSize DD ?
si_wUserFreePercent DW ?
si_wGDIFreePercent DW ?
si_hUserSegment DW ?
si_hGDISegment DW ?
SYSHEAPINFO ENDS
; ----- Notifications -----
;* NFY_UNKNOWN: An unknown notification has been returned from KERNEL. Apps
;* should ignore these.
;*
NFY_UNKNOWN EQU 0
;** NFY_LOADSEG: dwData points to a NFYLOADSEG structure
NFY_LOADSEG EQU 1
NFYLOADSEG STRUC
nls_dwSize DD ?
nls_wSelector DW ?
nls_wSegNum DW ?
nls_wType DW ? ;Low bit set for DATA, clear for CODE
nls_wcInstance DW ? ;Instance count ONLY VALID FOR DATA!
nls_lpstrModuleName DD ?
NFYLOADSEG ENDS
;** NFY_FREESEG: LOWORD(dwData) is the selector of the segment being freed
NFY_FREESEG EQU 2
;** NFY_STARTDLL: dwData points to a NFYSTARTDLL structure
NFY_STARTDLL EQU 3
NFYSTARTDLL STRUC
nsd_dwSize DD ?
nsd_hModule DW ?
nsd_wCS DW ?
nsd_wIP DW ?
NFYSTARTDLL ENDS
;** NFY_STARTTASK: dwData is the CS:IP of the task start address
NFY_STARTTASK EQU 4
;** NFY_EXITTASK: The low byte of dwData contains the program exit code
NFY_EXITTASK EQU 5
;** NFY_DELMODULE: LOWORD(dwData) is the handle of the module to be freed
NFY_DELMODULE EQU 6
;** NFY_RIP: LOWORD(dwData) is the fatal exit code
;** NFY_RIP: dwData points to a NFYRIP structure
NFY_RIP EQU 7
NFYRIP STRUC
nrp_dwSize DD ?
nrp_wIP DW ?
nrp_wCS DW ?
nrp_wSS DW ?
nrp_wBP DW ?
nrp_wExitCode DW ?
NFYRIP ENDS
;** NFY_TASKIN: No data. Callback should do GetCurrentTask()
NFY_TASKIN EQU 8
;** NFY_TASKOUT: No data. Callback should do GetCurrentTask()
NFY_TASKOUT EQU 9
;** NFY_INCHAR: Return value of callback is used. If FALSE, mapped to 'i'
NFY_INCHAR EQU 10
;** NFY_OUTSTR: dwData points to the string to be displayed
NFY_OUTSTR EQU 11
;** NFY_LOGERROR: dwData points to a NFYLOGERROR struct
NFY_LOGERROR EQU 12
NFYLOGERROR STRUC
nle_dwSize DD ?
nle_wErrCode DW ?
nle_lpInfo DD ? ;Error-code dependent
NFYLOGERROR ENDS
;** NFY_LOGPARAMERROR: dwData points to a NFYLOGPARAMERROR struct
NFY_LOGPARAMERROR EQU 13
NFYLOGPARAMERROR STRUC
nlp_dwSize DD ?
nlp_wErrCode DW ?
nlp_lpfnErrorAddr DD ?
nlp_lpBadParam DD ?
NFYLOGPARAMERROR ENDS
;** NotifyRegister() flags
NF_NORMAL EQU 0
NF_TASKSWITCH EQU 1
NF_RIP EQU 2
;** TerminateApp() flag values
UAE_BOX EQU 0
NO_UAE_BOX EQU 1
TIMERINFO STRUC
ti_dwSize DD ?
ti_dwmsSinceStart DD ?
ti_dwmsThisVM DD ?
TIMERINFO ENDS