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.

85 lines
2.2 KiB

  1. /*++ BUILD Version: 0001
  2. *
  3. * WOW v1.0
  4. *
  5. * Copyright (c) 1991, Microsoft Corporation
  6. *
  7. * ISVWOW.H
  8. * WOW32 ISV Support. Public Functions and Macros for Multi-Media extensions
  9. * to the WOW thunking mechanism.
  10. *
  11. * History:
  12. * Created 18-Feb-1992 by Stephen Estrop (StephenE)
  13. --*/
  14. /*
  15. ** Public functions that allow for extensions to the WOW thunking
  16. ** system. These two functions enable extension thunk dlls such as
  17. ** Multi-Media video recording to callback into 16 bit code to simulate
  18. ** a hardware interrupt callback and to use the same handle mapping that
  19. ** WOW uses.
  20. */
  21. LPVOID
  22. WOW32ResolveMemory(
  23. VPVOID vp
  24. );
  25. BOOL APIENTRY
  26. WOW32DriverCallback(
  27. DWORD dwCallback,
  28. DWORD dwFlags,
  29. WORD wID,
  30. WORD wMsg,
  31. DWORD dwUser,
  32. DWORD dw1,
  33. DWORD dw2
  34. );
  35. BOOL APIENTRY
  36. WOW32ResolveHandle(
  37. UINT uHandleType,
  38. UINT uMappingDirection,
  39. WORD wHandle16_In,
  40. LPWORD lpwHandle16_Out,
  41. DWORD dwHandle32_In,
  42. LPDWORD lpdwHandle32_Out
  43. );
  44. /*
  45. ** Constants for use with WOW32ResolveHandle
  46. */
  47. #define WOW32_DIR_16IN_32OUT 0x0001
  48. #define WOW32_DIR_32IN_16OUT 0x0002
  49. #define WOW32_USER_HANDLE 0x0001 // Generic user handle
  50. #define WOW32_GDI_HANDLE 0x0002 // Generic gdi handle
  51. // Kernel handles are not mapped
  52. #define WOW32_WAVEIN_HANDLE 0x0003
  53. #define WOW32_WAVEOUT_HANDLE 0x0004
  54. #define WOW32_MIDIOUT_HANDLE 0x0005
  55. #define WOW32_MIDIIN_HANDLE 0x0006
  56. /*
  57. ** These MultiMedia messages expect dwParam1 to be a generic pointer and
  58. ** dwParam2 to be a generic DWORD. auxOutMessage, waveInMessage,
  59. ** waveOutMessage, midiInMessage and midiOutMessage all respect this
  60. ** convention and are thunked accordingly on WOW.
  61. */
  62. #define DRV_BUFFER_LOW (DRV_USER - 0x1000) // 0x3000
  63. #define DRV_BUFFER_USER (DRV_USER - 0x0800) // 0x3800
  64. #define DRV_BUFFER_HIGH (DRV_USER - 0x0001) // 0x3FFF
  65. /*
  66. ** The flags are extensions to those normally used with GetWindowFlags,
  67. ** they allow 16 bit applications to detect if they are running on NT
  68. ** and if the Intel cpu is being emulated.
  69. */
  70. #define WF1_WINNT 0x40 // You are running on NT WOW
  71. #define WF1_CPUEM 0x01 // NT WOW on MIPS or Alpha