bhsupp.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:7k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //=============================================================================
  2. //  Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1999.
  3. //
  4. //  MODULE: bhsupp.h
  5. //=============================================================================
  6. #if !defined(_BHSUPP_)
  7. #define _BHSUPP_
  8. #pragma pack(1)
  9. //=============================================================================
  10. //  Windows version constants.
  11. //=============================================================================
  12. #define WINDOWS_VERSION_UNKNOWN     0
  13. #define WINDOWS_VERSION_WIN32S      1
  14. #define WINDOWS_VERSION_WIN32C      2
  15. #define WINDOWS_VERSION_WIN32       3
  16. //=============================================================================
  17. //  Frame masks.
  18. //=============================================================================
  19. #define FRAME_MASK_ETHERNET         ((BYTE) ~0x01)
  20. #define FRAME_MASK_TOKENRING        ((BYTE) ~0x80)
  21. #define FRAME_MASK_FDDI             ((BYTE) ~0x01)
  22. //=============================================================================
  23. //  ACCESSRIGHTS
  24. //=============================================================================
  25. typedef enum _ACCESSRIGHTS
  26. {
  27.     AccessRightsNoAccess,               //... Access denied, invalid password.
  28.     AccessRightsMonitoring,             //... Monitoring mode only.
  29.     AccessRightsUserAccess,             //... User-level access rights.
  30.     AccessRightsAllAccess               //... All access.
  31. } ACCESSRIGHTS;
  32. typedef ACCESSRIGHTS *PACCESSRIGHTS;
  33. typedef LPVOID HPASSWORD;
  34. #define HANDLE_TYPE_PASSWORD            MAKE_IDENTIFIER('P', 'W', 'D', '$')
  35. //=============================================================================
  36. //  Object heap type.
  37. //=============================================================================
  38. typedef LPVOID HOBJECTHEAP;                 //... Opaque.
  39. //=============================================================================
  40. //  Object cleanup procedure.
  41. //=============================================================================
  42. typedef VOID (WINAPI *OBJECTPROC)(HOBJECTHEAP, LPVOID);
  43. #pragma pack()
  44. //=============================================================================
  45. //  Bloodhound timers.
  46. //=============================================================================
  47. typedef struct _TIMER *HTIMER;
  48. typedef VOID (WINAPI *BHTIMERPROC)(LPVOID);
  49. extern  HTIMER WINAPI BhSetTimer(BHTIMERPROC TimerProc, LPVOID InstData, DWORD TimeOut);
  50. extern  VOID   WINAPI BhKillTimer(HTIMER hTimer);
  51. //=============================================================================
  52. //  Bloodhound driver support.
  53. //=============================================================================
  54. extern LPVOID WINAPI BhAllocSystemMemory(DWORD nBytes);
  55. extern LPVOID WINAPI BhFreeSystemMemory(LPVOID ptr);
  56. extern LPVOID WINAPI BhGetNetworkRequestAddress(DWORD NalRequestType);
  57. //=============================================================================
  58. //  Bloodhound global error API.
  59. //=============================================================================
  60. extern DWORD  WINAPI BhGetLastError(VOID);
  61. extern DWORD  WINAPI BhSetLastError(DWORD Error);
  62. //=============================================================================
  63. //  Object manager function prototypes.
  64. //=============================================================================
  65. extern HOBJECTHEAP WINAPI CreateObjectHeap(DWORD ObjectSize, OBJECTPROC ObjectProc);
  66. extern HOBJECTHEAP WINAPI DestroyObjectHeap(HOBJECTHEAP hObjectHeap);
  67. extern LPVOID      WINAPI AllocObject(HOBJECTHEAP hObjectHeap);
  68. extern LPVOID      WINAPI FreeObject(HOBJECTHEAP hObjectHeap, LPVOID ObjectMemory);
  69. extern DWORD       WINAPI GrowObjectHeap(HOBJECTHEAP hObjectHeap, DWORD nObjects);
  70. extern DWORD       WINAPI GetObjectHeapSize(HOBJECTHEAP hObjectHeap);
  71. extern VOID        WINAPI PurgeObjectHeap(HOBJECTHEAP hObjectHeap);
  72. //=============================================================================
  73. //  Memory functions.
  74. //=============================================================================
  75. extern LPVOID     WINAPI AllocMemory(DWORD size);
  76. extern LPVOID     WINAPI ReallocMemory(LPVOID ptr, DWORD NewSize);
  77. extern VOID       WINAPI FreeMemory(LPVOID ptr);
  78. extern VOID       WINAPI TestMemory(LPVOID ptr);
  79. extern DWORD      WINAPI MemorySize(LPVOID ptr);
  80. extern HANDLE     WINAPI MemoryHandle(LPBYTE ptr);
  81. //=============================================================================
  82. //  MS BTE format buffer API's.
  83. //=============================================================================
  84. extern HBUFFER    WINAPI BhAllocNetworkBuffer(DWORD NetworkID, DWORD BufferSize, LPDWORD nBytesAllocated);
  85. extern HBUFFER    WINAPI BhFreeNetworkBuffer(HBUFFER hBuffer);
  86. extern VOID       WINAPI BhCompactNetworkBuffer(HBUFFER hBuffer);
  87. extern LPFRAME    WINAPI BhGetNetworkFrame(HBUFFER hBuffer, DWORD FrameNumber);
  88. //=============================================================================
  89. //  Password API's.
  90. //=============================================================================
  91. extern HPASSWORD    WINAPI CreatePassword(LPSTR password);
  92. extern VOID         WINAPI DestroyPassword(HPASSWORD hPassword);
  93. extern ACCESSRIGHTS WINAPI ValidatePassword(HPASSWORD hPassword);
  94. //=============================================================================
  95. //  EXPRESSION API's
  96. //=============================================================================
  97. extern LPEXPRESSION         WINAPI InitializeExpression(LPEXPRESSION Expression);
  98. extern LPPATTERNMATCH       WINAPI InitializePattern(LPPATTERNMATCH Pattern, LPVOID ptr, DWORD offset, DWORD length);
  99. extern LPEXPRESSION         WINAPI AndExpression(LPEXPRESSION Expression, LPPATTERNMATCH Pattern);
  100. extern LPEXPRESSION         WINAPI OrExpression(LPEXPRESSION Expression, LPPATTERNMATCH Pattern);
  101. extern LPPATTERNMATCH       WINAPI NegatePattern(LPPATTERNMATCH Pattern);
  102. extern LPADDRESSTABLE       WINAPI AdjustOperatorPrecedence(LPADDRESSTABLE AddressTable);
  103. extern LPADDRESS            WINAPI NormalizeAddress(LPADDRESS Address);
  104. extern LPADDRESSTABLE       WINAPI NormalizeAddressTable(LPADDRESSTABLE AddressTable);
  105. //=============================================================================
  106. //  SERVICE API's
  107. //=============================================================================
  108. extern HANDLE               WINAPI BhOpenService(LPSTR ServiceName);
  109. extern VOID                 WINAPI BhCloseService(HANDLE ServiceHandle);
  110. extern DWORD                WINAPI BhStartService(HANDLE ServiceHandle);
  111. extern DWORD                WINAPI BhStopService(HANDLE ServiceHandle);
  112. //=============================================================================
  113. //  MISC. API's
  114. //=============================================================================
  115. extern DWORD                WINAPI BhGetWindowsVersion(VOID);
  116. extern BOOL                 WINAPI IsDaytona(VOID);
  117. extern VOID                 dprintf(LPSTR format, ...);
  118. #endif