![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему при выполнении этого возрастает счетчик дискрипторов? [D7, WinXP]
DVM © (2006-10-10 17:05:00)При первом выполнении этой функции счетчик дискрипторов программы (по данным диспетчера задач) возрастает на 2.
Повторные вызовы приращения не дают. Почему так?
function RunProgram(ProgramPath: string): boolean;
var
si : TSTARTUPINFO;
pi : TPROCESSINFORMATION;
begin
ZeroMemory(@si, sizeof(TSTARTUPINFO));
si.cb := sizeof(TSTARTUPINFO);
CreateProcess(nil, PChar(ProgramPath), nil, nil, FALSE, NORMAL_PRIORITY_CLASS, nil, nil, si, pi);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
result := false;
end;
Ketmar (2006-10-10 19:16:00) [1]security, что ли? %-)
Игорь Шевченко (2006-10-10 18:46:00) [2]DVM © (10.10.06 18:14) [6]
http://www.google.ru/search?hl=ru&q=ShimCacheMutex&lr=
:)
Ketmar (2006-10-10 18:41:00) [3]значит, нужны системе зачем-то. посмотри дебаггером, кто создаёт и зачем. или забей и забудь. %-)
DVM (2006-10-10 18:14:00) [4]Сделал снепшоты сравнил - вот эти два объекта:
Section \BaseNamedObjects\ShimSharedMemory 0x184 0x00000002 0xE198A650
Mutant \BaseNamedObjects\ShimCacheMutex 0x180 0x00120001 0x8653CA58
Теперь ясно что создается, но совсем не ясно зачем они создаются CreateProcess и почему не удаляются?
Ketmar (2006-10-10 18:00:00) [5]сделать шот списка хэндлов "до" и "после". посмотреть. PE умеет такое показывать.
DVM (2006-10-10 17:57:00) [6]
> Игорь Шевченко © (10.10.06 17:42) [3]
Может я не там смотрю, но в окне Properties на закладке Perfomance процесса в Process Explorer увеличивается параметр Handles. GDI и User объекты не растут. Как посмотреть более детальную информацию?
DVM (2006-10-10 17:42:00) [7]Не не падает
Игорь Шевченко (2006-10-10 17:42:00) [8]А запустить Process Explorer и посмотреть, что за объекты появляются ? :)
Ketmar (2006-10-10 17:37:00) [9]подожди немного -- упадёт. %-)