APPMEMI.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*++ BUILD Version: 0001    // Increment this if a change has global effects
  2. Copyright (c) 1995-1997 Microsoft Corporation
  3. Header Name:
  4.     appmem.h
  5. Abstract:
  6.     Contains the global definitions for use by the performance DLL and
  7.     the DLL used by the application to allocate and track memory. The
  8.     definitions in this file ARE NOT used by the application programmer
  9. Created:    
  10.     Bob Watson 24 august 1995
  11. Revision History
  12.     None
  13. --*/
  14. #ifndef _APPMEM_H_
  15. #define _APPMEM_H_
  16. #define MAX_SIZEOF_INSTANCE_NAME    32
  17. typedef struct _APPMEM_INSTANCE {
  18.     DWORD   dwOffsetOfNext;     // offset from mem base to next item in list
  19.     DWORD   dwProcessId;        // id of process using this instance
  20.     HANDLE  hProcessHeap;       // handle of process's default heap
  21.     DWORD   dwApplicationBytes; // current count of heap bytes allocated
  22.                                 //  by the app mem allocation DLL functions
  23.     DWORD   dwAllocCalls;       // number of memory allocation calls
  24.     DWORD   dwReAllocCalls;     // number of Re-Allocation calls
  25.     DWORD   dwFreeCalls;        // number of memory free calls
  26.     WCHAR   wcszInstanceName[MAX_SIZEOF_INSTANCE_NAME]; // SZ instance name
  27.     DWORD   dwReserved1;        // unused
  28.     DWORD   dwReserved2;        // unused
  29. } APPMEM_INSTANCE, *PAPPMEM_INSTANCE;
  30. #define SHARED_MEMORY_ITEM_COUNT    100
  31. #define SHARED_MEMORY_OBJECT_SIZE   (sizeof(PDWORD) + (sizeof(PAPPMEM_INSTANCE) * 2) + (SHARED_MEMORY_ITEM_COUNT * sizeof(APPMEM_INSTANCE)))
  32. #define SHARED_MEMORY_OBJECT_NAME   (TEXT("APPMEM_PERF_DATA"))
  33. #define SHARED_MEMORY_MUTEX_NAME    (TEXT("APPMEM_PERF_DATA_MUTEX"))
  34. #define SHARED_MEMORY_MUTEX_TIMEOUT ((DWORD)1000L)
  35. typedef struct _APPMEM_DATA_HEADER {
  36.     DWORD               dwInstanceCount;        // number of entries In Use
  37.     DWORD               dwFirstInUseOffset;     // offset from mem base
  38.     DWORD               dwFirstFreeOffset;      // offset from mem base
  39. } APPMEM_DATA_HEADER, *PAPPMEM_DATA_HEADER;
  40. #define     FIRST_FREE(base)    ((PAPPMEM_INSTANCE)((LPBYTE)(base) + ((PAPPMEM_DATA_HEADER)(base))->dwFirstFreeOffset))
  41. #define     FIRST_INUSE(base)   ((PAPPMEM_INSTANCE)((LPBYTE)(base) + ((PAPPMEM_DATA_HEADER)(base))->dwFirstInUseOffset))
  42. #define     APPMEM_INST(base, offset)   ((PAPPMEM_INSTANCE)((LPBYTE)(base) + (DWORD)(offset)))
  43. LONG
  44. _stdcall
  45. GetSharedMemoryDataHeader (
  46.     IN  HANDLE              *phAppMemSharedMemory,
  47.     IN  HANDLE              *phAppMemMutex,
  48.     IN  PAPPMEM_DATA_HEADER *pHeader,
  49.     IN  BOOL                bReadOnlyAccess
  50. );
  51. #endif //_APPMEM_H_