home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / os2db2.zip / DOSCALL.HPP < prev    next >
Text File  |  1994-09-03  |  6KB  |  121 lines

  1.  /******************************************************
  2. *  DOSCALL.HPP - Query Process Status                   *
  3.  ******************************************************/
  4.  
  5. #ifndef   DOSCALL_CLASS
  6. #define   DOSCALL_CLASS                               // doscall class
  7.  
  8. #define   NOPID          0L                           // process ID
  9.  
  10. #pragma   pack(1)                                     // byte packing
  11.  
  12. TYPEDEF   STRUCT        _SYSTEMINFO                   // system info
  13. {
  14.           ULONG          threadCount;                 // number of threads
  15.           ULONG          processCount;                // number of processes
  16.           ULONG          moduleCount;                 // number of modules
  17.  
  18. } SYSTEMINFO, *PSYSTEMINFO;                           // system info
  19.  
  20. TYPEDEF   STRUCT        _THREADINFO                   // thread info
  21. {
  22.           ULONG          recType;                     // record type (thread = 100)
  23.           USHORT         withinProcess;               // TID within process
  24.           USHORT         slot;                        // unique thread slot number
  25.           ULONG          blockId;                     // block ID thread is sleeping on
  26.           ULONG          priority;                    // priority
  27.           ULONG          sysTime;                     // thread system time
  28.           ULONG          userTime;                    // thread user time
  29.           UCHAR          state;                       // 1=ready,2=blocked,5=running
  30.           UCHAR          reserved1;                   // reserved field
  31.           USHORT         reserved2;                   // reserved field
  32.  
  33. } THREADINFO, *PTHREADINFO;                           // thread info
  34.  
  35. TYPEDEF   STRUCT        _PROCESSINFO                  // process info
  36. {
  37.           ULONG          endIndicator;                // end indicator
  38.           PTHREADINFO    threadInfo;                  // thread information
  39.           USHORT         processID;                   // process ID
  40.           USHORT         parentPID;                   // parent process ID
  41.           ULONG          processType;                 // process type
  42.           ULONG          processStatus;               // process status
  43.           ULONG          sessionID;                   // session ID
  44.           USHORT         moduleRef;                   // module reference
  45.           USHORT         threadCount;                 // number of threads
  46.           ULONG          reserved1;                   // reserved field
  47.           ULONG          reserved2;                   // reserved field
  48.           USHORT         sem16Count;                  // number of semaphores
  49.           USHORT         dllCount;                    // number of DLLs
  50.           USHORT         shrMemHandles;               // shared memory handles
  51.           USHORT         reserved3;                   // reserved field
  52.           PUSHORT        sem16Table;                  // semaphore table
  53.           PUSHORT        dllTable;                    // DLL table
  54.           PUSHORT        shrMemTable;                 // shared memory table
  55.  
  56. } PROCESSINFO, *PPROCESSINFO;                         // process info
  57.  
  58. TYPEDEF   STRUCT        _SEMAPHOREINFO                // semaphore info
  59. {
  60.           STRUCT
  61.          _SEMAPHOREINFO *nextSemaphore;               // semaphore info
  62.           ULONG          owningThread;                // ID of owning thread
  63.           UCHAR          semaphoreFlags;              // semaphore flags
  64.           UCHAR          referenceCount;              // number of references
  65.           UCHAR          requestCount;                // number of requests
  66.           UCHAR          reserved1;                   // reserved field
  67.           ULONG          reserved2;                   // reserved field
  68.           ULONG          reserved3;                   // reserved field
  69.           CHAR           semName[1];                  // semaphore name
  70.  
  71. } SEMAPHOREINFO, *PSEMAPHOREINFO;                     // semaphore info
  72.  
  73. TYPEDEF   STRUCT        _SHAREDMEMINFO                // sharedmem info
  74. {
  75.           STRUCT
  76.          _SHAREDMEMINFO *nextSharedMem;               // shared information
  77.           USHORT         memHandle;                   // shared memory handle
  78.           SEL            selector;                    // segment selector
  79.           USHORT         referenceCount;              // number of references
  80.           CHAR           memName[1];                  // shared memory name
  81.  
  82. } SHREDMMEMINFO, *PSHAREDMEMINFO;                     // sharedmem info
  83.  
  84. TYPEDEF   STRUCT        _MODULEINFO                   // module info
  85. {
  86.           STRUCT
  87.          _MODULEINFO    *nextModule;                  // next module
  88.           USHORT         moduleRef;                   // module reference
  89.           USHORT         moduleType;                  // (0=16bit,1=32bit)
  90.           ULONG          referenceCount;              // reference count
  91.           ULONG          segmentCount;                // segment count
  92.           ULONG          reserved1;                   // reserved field
  93.           PSZ            moduleName;                  // qualified name
  94.           USHORT         handleRef[1];                // handle reference
  95.  
  96. } MODULEINFO, *PMODULEINFO;                           // module info
  97.  
  98. TYPEDEF   STRUCT        _HEADERINFO                   // header info
  99. {
  100.           PSYSTEMINFO    systemInfo;                  // system info
  101.           PPROCESSINFO   processInfo;                 // process info
  102.           PSEMAPHOREINFO semaphoreInfo;               // semaphore info
  103.           PVOID          reserved1;                   // reserved info
  104.           PSHAREDMEMINFO sharedMemInfo;               // sharedmem info
  105.           PMODULEINFO    moduleInfo;                  // module info
  106.           PVOID          reserved2;                   // reserved info
  107.           PVOID          reserved3;                   // reserved info
  108.  
  109. } HEADERINFO, *PHEADERINFO;                           // header info
  110.  
  111. #pragma   pack()
  112.  
  113. extern "C" {
  114. #undef    PASCAL                                      // make undefined
  115. #define   PASCAL         USHORT _Far16 _Pascal        // pascal linkage
  116. PASCAL    DosQProcStatus(PVOID statusBuffer, USHORT bufferSize);
  117. }
  118.  
  119. #endif                                                // doscall class
  120.  
  121.