Changeset 828
- Timestamp:
- Sep 3, 2007, 4:02:12 AM (18 years ago)
- Location:
- trunk/dll
- Files:
-
- 7 edited
-
datamin.c (modified) (3 diffs)
-
fm3dlg.h (modified) (1 diff)
-
fm3dll.def (modified) (1 diff)
-
fm3dll.h (modified) (1 diff)
-
fm3res.dlg (modified) (1 diff)
-
init.c (modified) (1 diff)
-
killproc.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/datamin.c
r793 r828 20 20 30 Mar 07 GKY Remove GetPString for window class names 21 21 20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat 22 02 Sep 07 GKY Replaced DosQProcStatus with DosQuerySysState to fix trap in thunk code 22 23 23 24 ***********************************************************************/ … … 796 797 case UM_SETUP5: // Process status 797 798 { 798 CHAR s[134], tm[38], szQty[38];799 800 if (fUseQProcStat && !noqproc) {799 CHAR s[134], tm[38], szQty[38]; 800 801 if (fUseQProcStat && !noqproc) { 801 802 802 803 PROCESSINFO *ppi; … … 837 838 } 838 839 } 840 else if (fUseQSysState && !noqproc) { 841 842 QSPREC *ppi; 843 QSPTRREC *pbh = NULL; 844 QSLREC *pmi; 845 ULONG numprocs = 0, numthreads = 0; 846 APIRET rc; 847 848 rc = DosAllocMem((PVOID) & pbh, USHRT_MAX + 4096, 849 PAG_COMMIT | OBJ_TILE | PAG_READ | PAG_WRITE); 850 if (rc) 851 Dos_Error(MB_CANCEL, rc, hwnd, pszSrcFile, __LINE__, 852 GetPString(IDS_OUTOFMEMORY)); 853 else { //2 Sep 07 GKY 0x05 = process & Mod data only 854 if (DosQuerySysState(QS_PROCESS | QS_MTE, 0, 0, 0, pbh, USHRT_MAX)) 855 noqproc = TRUE; 856 else { 857 ppi = pbh->pProcRec; 858 while (ppi->RecType == 1) { 859 pmi = pbh->pLibRec; 860 while (pmi && ppi->hMte != pmi->hmte) 861 pmi = pmi->pNextRec; 862 if (pmi) { 863 numprocs++; 864 numthreads += ppi->cTCB; 865 } 866 ppi = (QSPREC *) (ppi->pThrdRec + ppi->cTCB); 867 } 868 commafmt(szQty, sizeof(szQty), numprocs); 869 commafmt(tm, sizeof(tm), numthreads); 870 sprintf(s, 871 " %s%s %s%s", 872 GetPString(IDS_PROCSTITLETEXT), 873 szQty, GetPString(IDS_THRDSTITLETEXT), tm); 874 WinSetDlgItemText(hwnd, MINI_PROC, s); 875 } 876 DosFreeMem(pbh); 877 } 878 } 839 879 else { 840 880 commafmt(szQty, sizeof(szQty), -
trunk/dll/fm3dlg.h
r796 r828 521 521 #define KILL_SHOW 23104 522 522 #define KILL_HDR 23105 523 #define KILL2_CHECKBOX 23106 523 524 524 525 #define UNDEL_FRAME 23200 -
trunk/dll/fm3dll.def
r820 r828 11 11 12 12 import DOSQPROCSTATUS DOSCALLS.154 13 # DOSQUERYSYSSTATE DOSCALLS.368 13 14 14 15 export InitFM3DLL_ .1, -
trunk/dll/fm3dll.h
r826 r828 1371 1371 fNoIconsFiles, fNoIconsDirs, fVerify, fDCOpens, 1372 1372 fLinkSetsIcon, fSaveState, fTextTools, fCopyDefault, 1373 fToolTitles, fLogFile, fRealIdle, fNoSaveState, 1373 fToolTitles, fLogFile, fRealIdle, fNoSaveState, fUseQSysState, 1374 1374 fSplitStatus, fArcStuffVisible, fUseMCI, fAmAV2, 1375 1375 fNoTreeGap, fDummy, fVTreeOpensWPS, fUseQProcStat, -
trunk/dll/fm3res.dlg
r796 r828 930 930 PUSHBUTTON "Cancel", DID_CANCEL, 194, 4, 40, 14, 931 931 BS_NOPOINTERFOCUS 932 AUTOCHECKBOX "~Use undocumented DosQProcStat API", KILL_CHECKBOX, 933 30, 20, 178, 10 932 AUTOCHECKBOX "~Use DosQProcStat 16 bit API (thunk)", KILL_CHECKBOX, 933 20, 20, 118, 10, WS_GROUP 934 AUTOCHECKBOX "~Use DosQSysState 32 bit API ", KILL2_CHECKBOX, 935 140, 20, 108, 10 934 936 LTEXT "PID: Name:", KILL_HDR, 6, 156, 86, 8, DT_VCENTER 935 937 PRESPARAMS PP_FONTNAMESIZE, "10.System Monospaced" -
trunk/dll/init.c
r827 r828 1056 1056 size = sizeof(BOOL); 1057 1057 PrfQueryProfileData(fmprof, FM3Str, "UseQProcStat", 1058 &fUseQProcStat, &size); 1058 &fUseQProcStat, &size); 1059 size = sizeof(BOOL); 1060 PrfQueryProfileData(fmprof, FM3Str, "UseQSysState", 1061 &fUseQSysState, &size); 1059 1062 size = sizeof(BOOL); 1060 1063 PrfQueryProfileData(fmprof, FM3Str, "DataMin", &fDataMin, &size); -
trunk/dll/killproc.c
r793 r828 16 16 06 Aug 07 GKY Reduce DosSleep times (ticket 148) 17 17 20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat 18 02 Sep 07 GKY Replaced DosQProcStatus with DosQuerySysState to fix trap in thunk code 18 19 19 20 … … 33 34 #include <limits.h> 34 35 35 #include "procstat.h"36 36 #include "fm3dll.h" 37 37 #include "fm3dlg.h" 38 38 #include "fm3str.h" 39 #include "procstat.h" 39 40 40 41 #pragma data_seg(DATA2) … … 134 135 } 135 136 137 static VOID FillKillListThread3(VOID * arg) 138 { 139 HWND hwnd = *(HWND *) arg; 140 CHAR s[1036]; 141 HAB thab; 142 HMQ thmq; 143 INT rc; 144 QSPREC *ppi; 145 QSPTRREC *pbh; 146 QSLREC *pmi; 147 148 thab = WinInitialize(0); 149 thmq = WinCreateMsgQueue(thab, 0); 150 WinCancelShutdown(thmq, TRUE); 151 IncrThreadUsage(); 152 153 WinSendDlgItemMsg(hwnd, KILL_LISTBOX, LM_DELETEALL, MPVOID, MPVOID); 154 rc = DosAllocMem((PVOID) & pbh, USHRT_MAX + 4096, 155 PAG_COMMIT | OBJ_TILE | PAG_READ | PAG_WRITE); 156 if (rc) 157 Dos_Error(MB_CANCEL, rc, HWND_DESKTOP, pszSrcFile, __LINE__, 158 GetPString(IDS_OUTOFMEMORY)); 159 else { 160 rc = DosQuerySysState(QS_PROCESS | QS_MTE, 0, 0, 0, pbh, USHRT_MAX); 161 if (!rc) { 162 ppi = pbh->pProcRec; 163 while (ppi->RecType == 1) { 164 if (ppi->pid != mypid) { 165 pmi = pbh->pLibRec; 166 while (pmi && ppi->hMte != pmi->hmte) 167 pmi = pmi->pNextRec; 168 if (pmi) { 169 sprintf(s, "%04x ", ppi->pid); 170 if (!stricmp((CHAR *) pmi->pName, "SYSINIT")) 171 GetDosPgmName(ppi->pid, s + strlen(s)); 172 else { 173 if (*pmi->pName) 174 strcat(s, (CHAR *) pmi->pName); 175 else 176 strcat(s, GetPString(IDS_UNKNOWNPROCTEXT)); 177 } 178 if (WinIsWindow(thab, hwnd)) { 179 WinSendDlgItemMsg(hwnd, KILL_LISTBOX, LM_INSERTITEM, 180 MPFROM2SHORT(LIT_SORTASCENDING, 0), 181 MPFROMP(s)); 182 } 183 else 184 break; 185 } 186 } 187 ppi = (QSPREC *) (ppi->pThrdRec + ppi->cTCB); 188 } // while 189 } 190 DosFreeMem(pbh); 191 } 192 193 if (WinIsWindow(thab, hwnd)) 194 PostMsg(hwnd, UM_CONTAINER_FILLED, MPVOID, MPVOID); 195 WinDestroyMsgQueue(thmq); 196 DecrThreadUsage(); 197 WinTerminate(thab); 198 } 199 136 200 static VOID FillKillListThread(VOID * arg) 137 201 { … … 241 305 WinDefDlgProc(hwnd, WM_SETICON, MPFROMLONG(hptrIcon), MPVOID); 242 306 WinCheckButton(hwnd, KILL_CHECKBOX, fUseQProcStat); 307 WinCheckButton(hwnd, KILL2_CHECKBOX, fUseQSysState); 308 if (WinQueryButtonCheckstate(hwnd, KILL2_CHECKBOX)) { 309 WinCheckButton(hwnd, KILL_CHECKBOX, FALSE); 310 WinEnableWindow(WinWindowFromID(hwnd, KILL_CHECKBOX), FALSE); 311 } 312 if (WinQueryButtonCheckstate(hwnd, KILL_CHECKBOX)) { 313 WinCheckButton(hwnd, KILL2_CHECKBOX, FALSE); 314 WinEnableWindow(WinWindowFromID(hwnd, KILL2_CHECKBOX), FALSE); 315 } 243 316 PostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(KILL_RESCAN, 0), MPVOID); 244 317 break; … … 267 340 PrfWriteProfileData(fmprof, 268 341 FM3Str, 269 "UseQProcStat", &fUseQProcStat, sizeof(BOOL));342 "UseQProcStat", &fUseQProcStat, sizeof(BOOL)); 270 343 PostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(KILL_RESCAN, 0), MPVOID); 344 if (WinQueryButtonCheckstate(hwnd, KILL_CHECKBOX)) { 345 WinCheckButton(hwnd, KILL2_CHECKBOX, FALSE); 346 WinEnableWindow(WinWindowFromID(hwnd, KILL2_CHECKBOX), FALSE); 347 } 348 else 349 WinEnableWindow(WinWindowFromID(hwnd, KILL2_CHECKBOX), TRUE); 350 break; 351 case KILL2_CHECKBOX: 352 fUseQSysState = WinQueryButtonCheckstate(hwnd, KILL2_CHECKBOX); 353 PrfWriteProfileData(fmprof, 354 FM3Str, 355 "UseQSysState", &fUseQSysState, sizeof(BOOL)); 356 PostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(KILL_RESCAN, 0), MPVOID); 357 if (WinQueryButtonCheckstate(hwnd, KILL2_CHECKBOX)) { 358 WinCheckButton(hwnd, KILL_CHECKBOX, FALSE); 359 WinEnableWindow(WinWindowFromID(hwnd, KILL_CHECKBOX), FALSE); 360 } 361 else 362 WinEnableWindow(WinWindowFromID(hwnd, KILL_CHECKBOX), TRUE); 271 363 break; 272 364 … … 322 414 DosSleep(100);//05 Aug 07 GKY 250 323 415 else 324 WinDismissDlg(hwnd, 0); 325 } 416 WinDismissDlg(hwnd, 0); 417 } 418 else if (fUseQSysState) 419 if (_beginthread(FillKillListThread3, 420 NULL, 65536, (PVOID) & hwnd) != -1) 421 DosSleep(100);//05 Aug 07 GKY 250 422 else 423 WinDismissDlg(hwnd, 0); 326 424 else { 327 425 if (_beginthread(FillKillListThread, … … 408 506 409 507 #pragma alloc_text(KILLPROC,FillKillListThread,FillKillListThread2,GetDosPgmName,KillDlgProc) 508 #pragma alloc_text(KILLPROC,FillKillListThread)
Note:
See TracChangeset
for help on using the changeset viewer.
