1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _NMSUPP_H
7 #define _NMSUPP_H
8 
9 #pragma pack(1)
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #ifndef __cplusplus
16 #ifndef try
17 #define try __try
18 #endif
19 
20 #ifndef except
21 #define except __except
22 #endif
23 #endif
24 
25 #define WINDOWS_VERSION_UNKNOWN 0
26 #define WINDOWS_VERSION_WIN32S 1
27 #define WINDOWS_VERSION_WIN32C 2
28 #define WINDOWS_VERSION_WIN32 3
29 
30 #define FRAME_MASK_ETHERNET ((BYTE) ~0x01)
31 #define FRAME_MASK_TOKENRING ((BYTE) ~0x80)
32 #define FRAME_MASK_FDDI ((BYTE) ~0x01)
33 
34   typedef enum _ACCESSRIGHTS {
35     AccessRightsNoAccess,AccessRightsMonitoring,AccessRightsUserAccess,AccessRightsAllAccess
36   } ACCESSRIGHTS;
37 
38   typedef ACCESSRIGHTS *PACCESSRIGHTS;
39   typedef LPVOID HPASSWORD;
40 
41 #define HANDLE_TYPE_PASSWORD MAKE_IDENTIFIER('P','W','D','$')
42 
43   typedef LPVOID HOBJECTHEAP;
44   typedef VOID (WINAPI *OBJECTPROC)(HOBJECTHEAP,LPVOID);
45 
46 #pragma pack()
47 
48   typedef struct _TIMER *HTIMER;
49   typedef VOID (WINAPI *BHTIMERPROC)(LPVOID);
50   extern HTIMER WINAPI BhSetTimer(BHTIMERPROC TimerProc,LPVOID InstData,DWORD TimeOut);
51 
52   extern VOID WINAPI BhKillTimer(HTIMER hTimer);
53   extern LPVOID WINAPI BhAllocSystemMemory(DWORD nBytes);
54   extern LPVOID WINAPI BhFreeSystemMemory(LPVOID ptr);
55   extern LPVOID WINAPI BhGetNetworkRequestAddress(DWORD NalRequestType);
56   extern DWORD WINAPI BhGetLastError(VOID);
57   extern DWORD WINAPI BhSetLastError(DWORD Error);
58   extern HOBJECTHEAP WINAPI CreateObjectHeap(DWORD ObjectSize,OBJECTPROC ObjectProc);
59   extern HOBJECTHEAP WINAPI DestroyObjectHeap(HOBJECTHEAP hObjectHeap);
60   extern LPVOID WINAPI AllocObject(HOBJECTHEAP hObjectHeap);
61   extern LPVOID WINAPI FreeObject(HOBJECTHEAP hObjectHeap,LPVOID ObjectMemory);
62   extern DWORD WINAPI GrowObjectHeap(HOBJECTHEAP hObjectHeap,DWORD nObjects);
63   extern DWORD WINAPI GetObjectHeapSize(HOBJECTHEAP hObjectHeap);
64   extern VOID WINAPI PurgeObjectHeap(HOBJECTHEAP hObjectHeap);
65   extern LPVOID WINAPI AllocMemory(SIZE_T size);
66   extern LPVOID WINAPI ReallocMemory(LPVOID ptr,SIZE_T NewSize);
67   extern VOID WINAPI FreeMemory(LPVOID ptr);
68   extern VOID WINAPI TestMemory(LPVOID ptr);
69   extern SIZE_T WINAPI MemorySize(LPVOID ptr);
70   extern HANDLE WINAPI MemoryHandle(LPBYTE ptr);
71   extern HPASSWORD WINAPI CreatePassword(LPSTR password);
72   extern VOID WINAPI DestroyPassword(HPASSWORD hPassword);
73   extern ACCESSRIGHTS WINAPI ValidatePassword(HPASSWORD hPassword);
74   extern LPEXPRESSION WINAPI InitializeExpression(LPEXPRESSION Expression);
75   extern LPPATTERNMATCH WINAPI InitializePattern(LPPATTERNMATCH Pattern,LPVOID ptr,DWORD offset,DWORD length);
76   extern LPEXPRESSION WINAPI AndExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern);
77   extern LPEXPRESSION WINAPI OrExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern);
78   extern LPPATTERNMATCH WINAPI NegatePattern(LPPATTERNMATCH Pattern);
79   extern LPADDRESSTABLE WINAPI AdjustOperatorPrecedence(LPADDRESSTABLE AddressTable);
80   extern LPADDRESS WINAPI NormalizeAddress(LPADDRESS Address);
81   extern LPADDRESSTABLE WINAPI NormalizeAddressTable(LPADDRESSTABLE AddressTable);
82   extern HANDLE WINAPI BhOpenService(LPSTR ServiceName);
83   extern VOID WINAPI BhCloseService(HANDLE ServiceHandle);
84   extern DWORD WINAPI BhStartService(HANDLE ServiceHandle);
85   extern DWORD WINAPI BhStopService(HANDLE ServiceHandle);
86   extern DWORD WINAPI BhGetWindowsVersion(VOID);
87   extern WINBOOL WINAPI IsDaytona(VOID);
88   extern VOID __cdecl dprintf(LPSTR format,...);
89 
90 #ifdef __cplusplus
91 }
92 #endif
93 #endif
94