source: trunk/dll/procstat.h@ 354

Last change on this file since 354 was 354, checked in by root, 19 years ago

Comments

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 KB
RevLine 
[2]1/**********************************************************************
2 * MODULE NAME : procstat.h AUTHOR: Rick Fishman *
3 * DATE WRITTEN: 2-10-92 *
4 * *
5 * DESCRIPTION: *
6 * *
7 * This header file contains the function prototype for the asofyet *
8 * undocumented DosQProcStatus API. It also contains the structure *
9 * definitions that are used in the buffer that is returned by the *
10 * API call. *
11 * *
12 * In order to invoke DosQProcStatus, your .DEF file must contain *
13 * this entry: *
14 * *
15 * IMPORTS DOSQPROCSTATUS=DOSCALLS.154 *
16 * *
17 **********************************************************************/
18
19#pragma linkage( DosQProcStatus, far16 pascal )
20USHORT DosQProcStatus( PVOID pvBuf, USHORT cbBuf );
21
22#define PROCESS_END_INDICATOR 3 // Indicates end of process structs
23
24#pragma pack(1)
25
26typedef struct _SUMMARY
27{
28 ULONG ulThreadCount; // Number of threads in system
29 ULONG ulProcessCount; // Number of processes in system
30 ULONG ulModuleCount; // Number of modules in system
31
32} SUMMARY, *PSUMMARY;
33
34
35typedef struct _THREADINFO
36{
37 ULONG ulRecType; // Record type (thread = 100)
38 USHORT tidWithinProcess; // TID within process (TID is 4 bytes!!)
39 USHORT usSlot; // Unique thread slot number
40 ULONG ulBlockId; // Sleep id thread is sleeping on
41 ULONG ulPriority; // Priority
42 ULONG ulSysTime; // Thread System Time
43 ULONG ulUserTime; // Thread User Time
44 UCHAR uchState; // 1=ready,2=blocked,5=running
45 UCHAR uchPad; // Filler
46 USHORT usPad; // Filler
47
48} THREADINFO, *PTHREADINFO;
49
50
51typedef struct _PROCESSINFO
52{
53 ULONG ulEndIndicator; // 1 means not end, 3 means last entry
54 PTHREADINFO ptiFirst; // Address of the 1st Thread Control Blk
55 USHORT pid; // Process ID (2 bytes - PID is 4 bytes)
56 USHORT pidParent; // Parent's process ID
57 ULONG ulType; // Process Type
58 ULONG ulStatus; // Process Status
59 ULONG idSession; // Session ID
60 USHORT hModRef; // Module handle of EXE
61 USHORT usThreadCount; // Number of threads in this process
62 ULONG ulReserved; // Unknown
63 PVOID pvReserved; // Unknown
64 USHORT usSem16Count; // Number of 16-bit system semaphores
65 USHORT usDllCount; // Number of Dlls used by process
66 USHORT usShrMemHandles; // Number of shared memory handles
67 USHORT usReserved; // Unknown
68 PUSHORT pusSem16TableAddr; // Address of a 16-bit semaphore table
69 PUSHORT pusDllTableAddr; // Address of a Dll table
70 PUSHORT pusShrMemTableAddr; // Address of a shared memory table
71
72} PROCESSINFO, *PPROCESSINFO;
73
74
75typedef struct _SEMINFO
76{
77 struct _SEMINFO *pNext; // Ptr to next block (NULL on last one)
78 UINT idOwningThread; // ID of owning thread?
79 UCHAR fbFlags; // Semaphore flags
80 UCHAR uchReferenceCount; // Number of references
81 UCHAR uchRequestCount; // Number of requests
82 UCHAR uchReserved; // Unknown
83 ULONG ulReserved; // Unknown
84 UINT uiReserved; // Unknown
85 CHAR szSemName[ 1 ]; // ASCIIZ semaphore name
86
87
88} SEMINFO, *PSEMINFO;
89
90typedef struct _SHRMEMINFO
91{
92 struct _SHRMEMINFO *pNext; // Ptr to next block (NULL on last one)
93 USHORT usMemHandle; // Shared memory handle (?)
94 SEL selMem; // Selector
95 USHORT usReferenceCount; // Number of references
96 CHAR szMemName[ 1 ]; // ASCIIZ shared memory name
97
98} SHRMEMINFO, *PSHRMEMINFO;
99
100
101typedef struct _MODINFO
102{
103 struct _MODINFO *pNext; // Ptr to next block (NULL on last one)
104 USHORT hMod; // Module handle
105 USHORT usModType; // Module type (0=16bit,1=32bit)
106 ULONG ulModRefCount; // Count of module references
107 ULONG ulSegmentCount; // Number of segments in module
108 ULONG ulDontKnow1; //
109 PSZ szModName; // Addr of fully qualified module name
110 USHORT usModRef[ 1 ]; // Handles of module references
111
112} MODINFO, *PMODINFO;
113
114
115typedef struct _BUFFHEADER
116{
[354]117 PSUMMARY psumm; // SUMMARY section ptr
[2]118 PPROCESSINFO ppi; // PROCESS section ptr
119 PSEMINFO psi; // SEM section ptr (add 16 to offset)
120 PVOID pDontKnow1; //
121 PSHRMEMINFO psmi; // SHARED MEMORY section ptr
122 PMODINFO pmi; // MODULE section ptr
123 PVOID pDontKnow2; //
124 PVOID pDontKnow3; //
125
126} BUFFHEADER, *PBUFFHEADER;
127
128#pragma pack()
Note: See TracBrowser for help on using the repository browser.