Avoid buffer overflows in builtin dll loading (with the help of Dmitry
[wine/multimedia.git] / include / syslevel.h
blob800a4d273f358068a1a039cc2bb72a5f44aea63b
1 /*
2 * Win32 'syslevel' routines
4 * Copyright 1998 Ulrich Weigand
5 */
7 #ifndef __WINE_SYSLEVEL_H
8 #define __WINE_SYSLEVEL_H
10 #include "windef.h"
11 #include "winbase.h"
13 typedef struct tagSYSLEVEL
15 CRITICAL_SECTION crst;
16 INT level;
17 } SYSLEVEL;
19 extern WORD SYSLEVEL_Win16CurrentTeb;
20 extern WORD SYSLEVEL_EmergencyTeb;
22 void SYSLEVEL_Init(void);
23 VOID WINAPI SYSLEVEL_EnterWin16Lock(void);
24 VOID WINAPI SYSLEVEL_LeaveWin16Lock(void);
25 VOID SYSLEVEL_ReleaseWin16Lock(void);
26 VOID SYSLEVEL_RestoreWin16Lock(void);
27 VOID SYSLEVEL_CheckNotLevel( INT level );
29 VOID WINAPI GetpWin16Lock(SYSLEVEL **lock);
30 SEGPTR WINAPI GetpWin16Lock16(void);
31 DWORD WINAPI _ConfirmWin16Lock(void);
33 VOID WINAPI _CreateSysLevel(SYSLEVEL *lock, INT level);
34 VOID WINAPI _EnterSysLevel(SYSLEVEL *lock);
35 VOID WINAPI _LeaveSysLevel(SYSLEVEL *lock);
36 DWORD WINAPI _ConfirmSysLevel(SYSLEVEL *lock);
38 VOID WINAPI ReleaseThunkLock(DWORD *mutex_count);
39 VOID WINAPI RestoreThunkLock(DWORD mutex_count);
41 #endif /* __WINE_SYSLEVEL_H */