195 lines
7 KiB
C
195 lines
7 KiB
C
|
|
|
|
//=============================================================================
|
|
// Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1992.
|
|
//
|
|
// MODULE: bhsupp.h
|
|
//=============================================================================
|
|
|
|
#if !defined(_BHSUPP_)
|
|
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
|
|
#define _BHSUPP_
|
|
|
|
#pragma pack(1)
|
|
|
|
//=============================================================================
|
|
// Windows version constants.
|
|
//=============================================================================
|
|
|
|
#define WINDOWS_VERSION_UNKNOWN 0
|
|
#define WINDOWS_VERSION_WIN32S 1
|
|
#define WINDOWS_VERSION_WIN32C 2
|
|
#define WINDOWS_VERSION_WIN32 3
|
|
|
|
//=============================================================================
|
|
// Frame masks.
|
|
//=============================================================================
|
|
|
|
#define FRAME_MASK_ETHERNET ((BYTE) ~0x01)
|
|
#define FRAME_MASK_TOKENRING ((BYTE) ~0x80)
|
|
#define FRAME_MASK_FDDI ((BYTE) ~0x01)
|
|
|
|
//=============================================================================
|
|
// ACCESSRIGHTS
|
|
//=============================================================================
|
|
|
|
typedef enum _ACCESSRIGHTS
|
|
{
|
|
AccessRightsNoAccess, //... Access denied, invalid password.
|
|
AccessRightsMonitoring, //... Monitoring mode only.
|
|
AccessRightsUserAccess, //... User-level access rights.
|
|
AccessRightsAllAccess //... All access.
|
|
} ACCESSRIGHTS;
|
|
|
|
typedef ACCESSRIGHTS *PACCESSRIGHTS;
|
|
|
|
typedef LPVOID HPASSWORD;
|
|
|
|
#define HANDLE_TYPE_PASSWORD MAKE_IDENTIFIER('P', 'W', 'D', '$')
|
|
|
|
//=============================================================================
|
|
// Object heap type.
|
|
//=============================================================================
|
|
|
|
typedef LPVOID HOBJECTHEAP; //... Opaque.
|
|
|
|
//=============================================================================
|
|
// Object cleanup procedure.
|
|
//=============================================================================
|
|
|
|
typedef VOID (WINAPI *OBJECTPROC)(HOBJECTHEAP, LPVOID);
|
|
|
|
#pragma pack()
|
|
|
|
//=============================================================================
|
|
// Bloodhound timers.
|
|
//=============================================================================
|
|
|
|
typedef struct _TIMER *HTIMER;
|
|
|
|
typedef VOID (WINAPI *BHTIMERPROC)(LPVOID);
|
|
|
|
extern HTIMER WINAPI BhSetTimer(BHTIMERPROC TimerProc, LPVOID InstData, DWORD TimeOut);
|
|
|
|
extern VOID WINAPI BhKillTimer(HTIMER hTimer);
|
|
|
|
//=============================================================================
|
|
// Bloodhound driver support.
|
|
//=============================================================================
|
|
|
|
extern LPVOID WINAPI BhAllocSystemMemory(DWORD nBytes);
|
|
|
|
extern LPVOID WINAPI BhFreeSystemMemory(LPVOID ptr);
|
|
|
|
extern LPVOID WINAPI BhGetNetworkRequestAddress(DWORD NalRequestType);
|
|
|
|
//=============================================================================
|
|
// Bloodhound global error API.
|
|
//=============================================================================
|
|
|
|
extern DWORD WINAPI BhGetLastError(VOID);
|
|
|
|
extern DWORD WINAPI BhSetLastError(DWORD Error);
|
|
|
|
//=============================================================================
|
|
// Object manager function prototypes.
|
|
//=============================================================================
|
|
|
|
extern HOBJECTHEAP WINAPI CreateObjectHeap(DWORD ObjectSize, OBJECTPROC ObjectProc);
|
|
|
|
extern HOBJECTHEAP WINAPI DestroyObjectHeap(HOBJECTHEAP hObjectHeap);
|
|
|
|
extern LPVOID WINAPI AllocObject(HOBJECTHEAP hObjectHeap);
|
|
|
|
extern LPVOID WINAPI FreeObject(HOBJECTHEAP hObjectHeap, LPVOID ObjectMemory);
|
|
|
|
extern DWORD WINAPI GrowObjectHeap(HOBJECTHEAP hObjectHeap, DWORD nObjects);
|
|
|
|
extern DWORD WINAPI GetObjectHeapSize(HOBJECTHEAP hObjectHeap);
|
|
|
|
extern VOID WINAPI PurgeObjectHeap(HOBJECTHEAP hObjectHeap);
|
|
|
|
//=============================================================================
|
|
// Memory functions.
|
|
//=============================================================================
|
|
|
|
extern LPVOID WINAPI AllocMemory(DWORD size);
|
|
|
|
extern LPVOID WINAPI ReallocMemory(LPVOID ptr, DWORD NewSize);
|
|
|
|
extern VOID WINAPI FreeMemory(LPVOID ptr);
|
|
|
|
extern VOID WINAPI TestMemory(LPVOID ptr);
|
|
|
|
extern DWORD WINAPI MemorySize(LPVOID ptr);
|
|
|
|
extern HANDLE WINAPI MemoryHandle(LPBYTE ptr);
|
|
|
|
//=============================================================================
|
|
// MS BTE format buffer API's.
|
|
//=============================================================================
|
|
|
|
extern HBUFFER WINAPI BhAllocNetworkBuffer(DWORD NetworkID, DWORD BufferSize, LPDWORD nBytesAllocated);
|
|
|
|
extern HBUFFER WINAPI BhFreeNetworkBuffer(HBUFFER hBuffer);
|
|
|
|
extern VOID WINAPI BhCompactNetworkBuffer(HBUFFER hBuffer);
|
|
|
|
extern LPFRAME WINAPI BhGetNetworkFrame(HBUFFER hBuffer, DWORD FrameNumber);
|
|
|
|
//=============================================================================
|
|
// Password API's.
|
|
//=============================================================================
|
|
|
|
extern HPASSWORD WINAPI CreatePassword(LPSTR password);
|
|
|
|
extern VOID WINAPI DestroyPassword(HPASSWORD hPassword);
|
|
|
|
extern ACCESSRIGHTS WINAPI ValidatePassword(HPASSWORD hPassword);
|
|
|
|
//=============================================================================
|
|
// EXPRESSION API's
|
|
//=============================================================================
|
|
|
|
extern LPEXPRESSION WINAPI InitializeExpression(LPEXPRESSION Expression);
|
|
|
|
extern LPPATTERNMATCH WINAPI InitializePattern(LPPATTERNMATCH Pattern, LPVOID ptr, DWORD offset, DWORD length);
|
|
|
|
extern LPEXPRESSION WINAPI AndExpression(LPEXPRESSION Expression, LPPATTERNMATCH Pattern);
|
|
|
|
extern LPEXPRESSION WINAPI OrExpression(LPEXPRESSION Expression, LPPATTERNMATCH Pattern);
|
|
|
|
extern LPPATTERNMATCH WINAPI NegatePattern(LPPATTERNMATCH Pattern);
|
|
|
|
extern LPADDRESSTABLE WINAPI AdjustOperatorPrecedence(LPADDRESSTABLE AddressTable);
|
|
|
|
extern LPADDRESS WINAPI NormalizeAddress(LPADDRESS Address);
|
|
|
|
extern LPADDRESSTABLE WINAPI NormalizeAddressTable(LPADDRESSTABLE AddressTable);
|
|
|
|
//=============================================================================
|
|
// SERVICE API's
|
|
//=============================================================================
|
|
|
|
extern HANDLE WINAPI BhOpenService(LPSTR ServiceName);
|
|
|
|
extern VOID WINAPI BhCloseService(HANDLE ServiceHandle);
|
|
|
|
extern DWORD WINAPI BhStartService(HANDLE ServiceHandle);
|
|
|
|
extern DWORD WINAPI BhStopService(HANDLE ServiceHandle);
|
|
|
|
//=============================================================================
|
|
// MISC. API's
|
|
//=============================================================================
|
|
|
|
extern DWORD WINAPI BhGetWindowsVersion(VOID);
|
|
|
|
extern BOOL WINAPI IsDaytona(VOID);
|
|
|
|
extern VOID dprintf(LPSTR format, ...);
|
|
|
|
#pragma option pop /*P_O_Pop*/
|
|
#endif
|