Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

AV при использовании юнита Variants   Найти похожие ветки 

 
Сергей М. ©   (2010-03-09 11:15) [0]

Столкнулся с неожиданной засадой при использовании юнита Variants.

Целевая задача :

реализовать в D7EE DLL-модуль (использующий юнит Classes и собираемый без использования Run-Time пакетов), загружаемый в адр.пространства создаваемых системой процессов с использованием документированного механизма автозагрузки указанием модуля в списке
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

Проблема:

при создании и инициализации процессов ряда приложений в ходе инициализации загружаемого в их АП моего DLL-модуля возбуждается AV-исключение с дословным сообщением постоянного содержания в появляющемся диалоговом окне:

Инструкция по адресу 0x7C918FEA обратилась по адресу 0x00000010. Память не может быть "written".

После закрытия диал.окна эти процессы продолжают и инициализацию и успешно стартуют, естественно без моего DLL-модуля в своих АП, поскольку его инициализация привела к отказу по необработанному моим DLL-модулем исключению.

В ходе анализа причин и условий возникающей проблемы выявлены следующие факты:

1. Исключение возбуждается в коде модуля ntdll.dll в теле ф-ции RtlInitializeCriticalSection()

2. Исключение возбуждается как минимум при условии явного (прямым указанием в USES) или неявного (фигурирантом в USES иных юнитов в составе VCL и RTL, например, Classes) использования в проекте моего DLL-модуля юнита Variants

3. Исключение возбуждается только при условии сборки моего DLL-модуля без использования Run-Time пакетов.

4. Инициализация критической секции фигурирует в тексте юнита Variants в секции INITIALIZATION.

Прошу тех, кто возможно вплотную сталкивался с такой проблемой, высказать свои соображения по ней и возможные варианты ее преодоления в упомянутых выше условиях.

Текст проекта DLL-модуля для тестирования:


library TestDll;

uses
 Variants;

{$R *.res}

begin

end.


Пример списка приложений, запуск которых приводит к возникновению вышеописанной проблемы:

delphi7.exe
mmc.exe
paint.exe
skype.exe
virtualbox.exe
TeamViewer.exe (TeamViewer4)

Пример списка приложений, запуск которых НЕ приводит к возникновению вышеописанной проблемы:

iexplore.exe
firefox.exe
procexpr.exe
calc.exe
wordpad.exe
excel.exe
notepad.exe
TeamViewer.exe (TeamViewer3)
FAR.exe

Воспроизводима ли проблемная ситуация в других условиях (иная ОС, иная Delphi IDE) ?



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

Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.064 c
15-1337023240
Kerk
2012-05-14 23:20
2013.03.22
Ищется компонент/модуль для шифрования/дешифрования AES-256


15-1333088061
macrodens
2012-03-30 10:14
2013.03.22
Outlook 2007


15-1338358473
Bluejohn
2012-05-30 10:14
2013.03.22
Найти быстро место в исходнике


2-1330269660
Незнающий усталости
2012-02-26 19:21
2013.03.22
Как задать фокус ячейки?


15-1333152359
wl
2012-03-31 04:05
2013.03.22
а нет ли программы, которая...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский