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
12extern "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