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.

73 lines
1.6 KiB

  1. CodeData equ <THUNK16BCodeData>
  2. include cbcheck.inc
  3. HKEY_ROOT_WIN32 equ 80000000h
  4. HKEY_ROOT_WIN31 equ 00000001h
  5. PUSH_MAPPED_HKEY macro iOffset
  6. local hkey_ok
  7. mov eax,dword ptr [bp+iOffset]
  8. cmp eax,HKEY_ROOT_WIN32
  9. jne hkey_ok
  10. rol eax,1
  11. hkey_ok:
  12. push eax
  13. endm
  14. ; Entry: DS:ESI --> source
  15. ; ES:EDI --> dest
  16. UNPACK_MAPPED_HKEY macro iOffset, iTempOffset
  17. local hkey_ok
  18. lods dword ptr ds:[esi]
  19. cmp eax,HKEY_ROOT_WIN31
  20. jne hkey_ok
  21. ror eax,1
  22. hkey_ok:
  23. stos dword ptr es:[edi]
  24. endm
  25. PUSH__REGDELETEKEYA_hkey macro iOffset, iTempOffset
  26. PUSH_MAPPED_HKEY iOffset
  27. endm
  28. PUSH__REGENUMKEYA_hkey macro iOffset, iTempOffset
  29. PUSH_MAPPED_HKEY iOffset
  30. endm
  31. PUSH__REGCREATEKEYA_hkey macro iOffset, iTempOffset
  32. PUSH_MAPPED_HKEY iOffset
  33. endm
  34. UNPACK__REGCREATEKEYA_phkResult macro iOffset, iTempOffset
  35. UNPACK_MAPPED_HKEY iOffset, iTempOffset
  36. endm
  37. PUSH__REGCLOSEKEY_hkey macro iOffset, iTempOffset
  38. PUSH_MAPPED_HKEY iOffset
  39. endm
  40. PUSH__REGOPENKEYA_hkey macro iOffset, iTempOffset
  41. PUSH_MAPPED_HKEY iOffset
  42. endm
  43. UNPACK__REGOPENKEYA_phkResult macro iOffset, iTempOffset
  44. UNPACK_MAPPED_HKEY iOffset, iTempOffset
  45. endm
  46. PUSH__REGQUERYVALUEA_hkey macro iOffset, iTempOffset
  47. PUSH_MAPPED_HKEY iOffset
  48. endm
  49. PUSH__REGSETVALUEA_hkey macro iOffset, iTempOffset
  50. PUSH_MAPPED_HKEY iOffset
  51. endm