summaryrefslogtreecommitdiffstats
path: root/private/mvdm/wow32/isvwow.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/mvdm/wow32/isvwow.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/mvdm/wow32/isvwow.h')
-rw-r--r--private/mvdm/wow32/isvwow.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/private/mvdm/wow32/isvwow.h b/private/mvdm/wow32/isvwow.h
new file mode 100644
index 000000000..68b8072b8
--- /dev/null
+++ b/private/mvdm/wow32/isvwow.h
@@ -0,0 +1,85 @@
+/*++ BUILD Version: 0001
+ *
+ * WOW v1.0
+ *
+ * Copyright (c) 1991, Microsoft Corporation
+ *
+ * ISVWOW.H
+ * WOW32 ISV Support. Public Functions and Macros for Multi-Media extensions
+ * to the WOW thunking mechanism.
+ *
+ * History:
+ * Created 18-Feb-1992 by Stephen Estrop (StephenE)
+--*/
+
+
+/*
+** Public functions that allow for extensions to the WOW thunking
+** system. These two functions enable extension thunk dlls such as
+** Multi-Media video recording to callback into 16 bit code to simulate
+** a hardware interrupt callback and to use the same handle mapping that
+** WOW uses.
+*/
+LPVOID
+WOW32ResolveMemory(
+ VPVOID vp
+ );
+
+BOOL APIENTRY
+WOW32DriverCallback(
+ DWORD dwCallback,
+ DWORD dwFlags,
+ WORD wID,
+ WORD wMsg,
+ DWORD dwUser,
+ DWORD dw1,
+ DWORD dw2
+ );
+
+BOOL APIENTRY
+WOW32ResolveHandle(
+ UINT uHandleType,
+ UINT uMappingDirection,
+ WORD wHandle16_In,
+ LPWORD lpwHandle16_Out,
+ DWORD dwHandle32_In,
+ LPDWORD lpdwHandle32_Out
+ );
+
+
+/*
+** Constants for use with WOW32ResolveHandle
+*/
+
+#define WOW32_DIR_16IN_32OUT 0x0001
+#define WOW32_DIR_32IN_16OUT 0x0002
+
+#define WOW32_USER_HANDLE 0x0001 // Generic user handle
+#define WOW32_GDI_HANDLE 0x0002 // Generic gdi handle
+ // Kernel handles are not mapped
+
+#define WOW32_WAVEIN_HANDLE 0x0003
+#define WOW32_WAVEOUT_HANDLE 0x0004
+#define WOW32_MIDIOUT_HANDLE 0x0005
+#define WOW32_MIDIIN_HANDLE 0x0006
+
+
+
+/*
+** These MultiMedia messages expect dwParam1 to be a generic pointer and
+** dwParam2 to be a generic DWORD. auxOutMessage, waveInMessage,
+** waveOutMessage, midiInMessage and midiOutMessage all respect this
+** convention and are thunked accordingly on WOW.
+*/
+#define DRV_BUFFER_LOW (DRV_USER - 0x1000) // 0x3000
+#define DRV_BUFFER_USER (DRV_USER - 0x0800) // 0x3800
+#define DRV_BUFFER_HIGH (DRV_USER - 0x0001) // 0x3FFF
+
+
+/*
+** The flags are extensions to those normally used with GetWindowFlags,
+** they allow 16 bit applications to detect if they are running on NT
+** and if the Intel cpu is being emulated.
+*/
+#define WF1_WINNT 0x40 // You are running on NT WOW
+#define WF1_CPUEM 0x01 // NT WOW on MIPS or Alpha