Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
5.8 KiB

  1. ;*****************************************************************************
  2. ;* THKSHARE.INC
  3. ;*
  4. ;* Thunk shared data between Kernel16 and Kernel32.
  5. ;*
  6. ;* Created: 23-Aug-93 [KevinR]
  7. ;*
  8. ;****************************************************************************
  9. ;
  10. ; Thunk shared data between Kernel16 and Kernel32.
  11. ;
  12. THUNKDATA STRUC
  13. td_dwSize dd ? ;Used for version checking
  14. td_pfnC32ThkSL dd ? ;0:32 ptr to 32-bit setup code for 16=>32 thunks
  15. td_pfnC32ThkSL01 dd ? ;0:32 ptr to 32-bit setup code for 16=>32 thunks
  16. td_pfnKrn32ThkSL dd ? ;0:32 ptr, krnthksl entry pt., 16=>32 thk
  17. td_TargetTable16ThkLSF dd ? ;16:16 ptr, krnfthk target table, 32=>16 flat thk
  18. td_pfnCommon16ThkLSF dd ? ;16:16 ptr to 16-bit cleanup, 32=>16 flat thk
  19. td_pfnCommon16ThunkFTLSFWin32Lock dd ? ;16:16 ptr to 16-bit cleanup, 32=>16 flat thk
  20. td_pfnCommon16ThunkQTLSFWin32Lock dd ? ;16:16 ptr to 16-bit cleanup, 32=>16 flat thk
  21. td_pfnCommon16ThunkFTLSFWin16Lock dd ? ;16:16 ptr to 16-bit cleanup, 32=>16 flat thk
  22. td_pfnCommon16ThunkQTLSFWin16Lock dd ? ;16:16 ptr to 16-bit cleanup, 32=>16 flat thk
  23. td_pfnCommon16ThunkQTLSFWin32NoLock dd ? ;16:16 ptr to 16-bit cleanup, 32=>16 flat thk
  24. td_pfLogLS dd ? ;16:16 addr of flag to control API logging
  25. td_Checksum16SL dd ? ;kernel16 16=>32 checksum
  26. td_Checksum16LSF dd ? ;kernel16 flat 32=>16 checksum
  27. td_pfnOleDispatchLS dd ? ;flat addr of k32's OLE LS dispatch wrapper
  28. td_pfnK16LateBind dd ? ;16:16 address of K16 late-bind fixup routine.
  29. td_lpThunkWhineLevel dd ? ;16:16 addr of K16 thunk debugging variable
  30. td_pfnWOWCallback16Helper dd ? ;16:16 addr of K16 WOWCalback16 stub
  31. td_lpCountFreeSel dd ? ;16:16 addr of K16 CountFreeSel variable
  32. td_lpwLRThresh dd ? ;16:16 addr of K16 wLRThresh variable
  33. td_lpSCallRet dd ? ;16:16 addr of K16 SCallRet label
  34. THUNKDATA ENDS
  35. ;
  36. ; Structure of a version 'LS01' common data block:
  37. ;
  38. TDLS_01_VERSION equ 3130534ch
  39. TDLS32_01 STRUCT
  40. dwVersion dd ? ;Statically set to "LS01"
  41. dwChecksum dd ? ;Statically set to checksum
  42. lpJumpTable dd ? ;Dynamically set to flat address of jump table
  43. dwLBSig dd ? ;Statically set to "LB01"
  44. dwFlags dd ? ;Flags
  45. dwUnused1 dd ?
  46. dwUnused2 dd ?
  47. lpRelQTP dd ? ;Self-relative ptr to QT_Thunk_* patch area
  48. lpRelFPP dd ? ;Self-relative ptr to FT_Prolog_* patch area
  49. TDLS32_01 ENDS
  50. TDLS16_01 STRUCT
  51. dwVersion dd ? ;Statically set to "LS01"
  52. dwChecksum dd ? ;Statically set to checksum
  53. lpJumpTable dd ? ;Statically set to segmented address of jump table
  54. dwFlags dd ? ;Flags
  55. TDLS16_01 ENDS
  56. TDLS16_01F_JumpTableFixed equ 000000001h ;Run-time flag to indicate the jump table has been
  57. ; GlobalFixed
  58. TDLS16_01F_TC16Ran equ 000000002h ;Run-time flag to indicate successful ThunkConnect16
  59. ;
  60. ; Structure of a version 'SL01' common data block:
  61. ;
  62. TDSL_01_VERSION equ 31304c53h
  63. MAX_THKDLL_NAME equ 255
  64. TDSL16_01 STRUCT
  65. dwVersion dd ? ;Statically set to "SL01"
  66. dwChecksum dd ? ;Statically set to checksum
  67. dwFlags dd ? ;Flags
  68. dwApiTable dd ? ;16:16 ptr to api information table
  69. hMod16 dw ? ;hModule of 16-bit dll
  70. wBaseTable dw ? ;Win16 movable global handle -- multi-base mode
  71. dwNEntries dd ? ;# of entries avaialble in MBA table.
  72. dwNUsed dd ? ;# of entries used in MBA table.
  73. dwExFlags dd ? ;More flags
  74. pszDll16Name db (MAX_THKDLL_NAME+1) dup(0) ;0-terminated dll16 name
  75. pszDll32Name db (MAX_THKDLL_NAME+1) dup(0) ;0-terminated dll16 name
  76. TDSL16_01 ENDS
  77. ; This is the version that's passed into ThunkConnect16. Since
  78. ; this block lives in the dll's dgroup, we don't want to lock it
  79. TDSL16_01P STRUCT
  80. tsl16p_dwVersion dd ? ;Statically set to "SL01"
  81. tsl16p_dwChecksum dd ? ;Statically set to checksum
  82. tsl16p_dwFlags dd ? ;Flags (Statically set)
  83. tsl16p_dwUnused1 dd ? ;Reserved (set to 0)
  84. tsl16p_lp32TD16 dd ? ;32:0 address to TDSL16_01 structure
  85. tsl16p_lp16TD16 dd ? ;16:0 ptr to TDSL16_01 (some old code needs this)
  86. tsl16p_dwUnused2 dd ? ;Reserved (set to 0)
  87. tsl16p_dwLBSig dd ? ;Statically set to "LB01" sig
  88. tsl16p_dwExFlags dd ? ;Reserved (set to 0)
  89. tsl16p_dwUnused4 dd ? ;Reserved (set to 0)
  90. tsl16p_dwApiTable dd ? ;16:16 ptr to api information table
  91. TDSL16_01P ENDS
  92. TDSL16_01F_TC16Ran equ 000000001h ;Set on *successful* completion of ThunkConnect16 (INC)
  93. TDSL16_01FEx_fPreload equ 080000000h ;Set by thunk compiler to eagerly load
  94. ; Win32 partner
  95. TDSL16_01FEx_fWin31 equ 040000000h ;Mark for win3.1 legacy dll's
  96. MBA_USAGE_COUNT_CUTOFF equ 010000h ;MBA entries smaller than this
  97. ; are virtual ref counts, rather than
  98. ; base addresses.
  99. TDSL32_01 STRUCT
  100. dwVersion dd ? ;Statically set to "SL01"
  101. dwChecksum dd ? ;Statically set to checksum
  102. lpOldJunk dd ? ;Not used anymore. MUST IGNORE
  103. lpThkData16 dd ? ;Flat address of ThunkData16
  104. dwLBSig dd ? ;Statically set to "LB01"
  105. dwFlags dd ? ;Flags
  106. dwUnused1 dd ? ;Statically set to 0
  107. dwUnused2 dd ? ;Statically set to 0
  108. dwRelJumpTable dd ? ;Jump Table ptr relative to name export string
  109. TDSL32_01 ENDS