mirror of https://github.com/tongzx/nt5src
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
85 lines
2.2 KiB
/*++ 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
|