Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

CryptAcquireContext - съедает память   Найти похожие ветки 

 
pargo   (2004-03-22 08:48) [0]

Неужели так и должно быть ?
var
pName:PAnsiChar;
//.............................................................................
if CryptAcquireContext(@hProv,nil,pName,dwType,CRYPT_VERIFYCONTEXT) then
 begin
  if not CryptReleaseContext(hProv,0) then ShowMessage("CryptReleaseContext");
 end
else  ShowMessage("CryptReleaseContext");

Если pName - имя провайдера, а не nil, то
после выполнения этого куска кода, приложение занимает памяти, примерно, на 2 Mb больше.
( повторно добавляет примерно по 100 Kb)
Причем CryptReleaseContext не ругается.
Для эксперемента убирал CryptReleaseContext - с ним и без него пропадает примерно
одно и то же количество памяти.
Такое впечатление, что CryptReleaseContext никак не влияет.
В чем может быть дело ?


 
Reindeer Moss Eater ©   (2004-03-22 09:04) [1]

Для паники нет причин. Функция не только возвращает новый контекст, но еще и инициирует криптопровайдер, если он еще не инициализирован. И нет никаких причин (у авторов криптопровайдера) сразу же деинициализировать провайдера если этот контекст освобождается. Кэширование одним словом + особенности диспетчера задач (ты же по его показаниям определяешь выделение памяти)

Кроме того, Если pName - имя провайдера, а не nil, - значит запрашивается конкретный провайдер, который может быть написан с ошибками и иметь утечки памяти.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
9-1065440122
@ndrew
2003-10-06 15:35
2004.04.11
спрайты и DelphiX ...


1-1079634833
Script
2004-03-18 21:33
2004.04.11
Работа с GroupBox


14-1079305222
putyaga
2004-03-15 02:00
2004.04.11
за мобилу


14-1079365683
Alexander666
2004-03-15 18:48
2004.04.11
Высказывания Буша и Путина


1-1080105759
Folder
2004-03-24 08:22
2004.04.11
Как программно удалить папку?