Re[6]: Чтение данных из физической ячейки памяти
От: Михаил Можаев Россия www.mozhay.chat.ru
Дата: 17.01.03 13:49
Оценка: -1
Здравствуйте, Roman_M, Вы писали:

RM>Очень даже реально. Вам не доводилось программировать вывод графики под DOS в разрешени 640x480 и выше через Linear Frame Buffer (VBE 2.0 +) ? Так вот Frame Buffer вполне может располагаться на подобных адреса, если не верите, посмотрите "Свойства системы"->"Диспетчер устройств"->"Видеоадаптеры"->"Свойства"->"Ресурсы". А также можно посмотреть ресурсы устройства "системная плата" (вроде бы нужен её номер), там адреса будут именно такими.


Неа
Речь идет о физической (!!!!!) памяти. А эти адреса — виртуальные.
"Почувствуйте разницу..." (С)Реклама на ТВ
... << RSDN@Home 1.0 beta 4 >>
Re[6]: Чтение данных из физической ячейки памяти
От: vasketsov Россия http://ntprog.by.ru
Дата: 17.01.03 13:50
Оценка:
Здравствуйте, Sergey, Вы писали:

Вот вы попробуйте из этой секции прочитать по этому адресу, тогда и поговорим.
Васкецов Сергей
http://registry.km.ru
Re[7]: Чтение данных из физической ячейки памяти
От: Михаил Челноков Украина  
Дата: 17.01.03 13:59
Оценка:
Здравствуйте, Михаил Можаев, Вы писали:

RM>>Очень даже реально. Вам не доводилось программировать вывод графики под DOS в разрешени 640x480 и выше через Linear Frame Buffer (VBE 2.0 +) ? Так вот Frame Buffer вполне может располагаться на подобных адреса, если не верите, посмотрите "Свойства системы"->"Диспетчер устройств"->"Видеоадаптеры"->"Свойства"->"Ресурсы". А также можно посмотреть ресурсы устройства "системная плата" (вроде бы нужен её номер), там адреса будут именно такими.


ММ>Неа

ММ>Речь идет о физической (!!!!!) памяти. А эти адреса — виртуальные.

Отнюдь. Эти адреса, как раз физические.
Кто Вам сказал, что все физические адреса относятся к RAM? Этот "кто" Вас обманул...
Re[8]: Чтение данных из физической ячейки памяти
От: SPavel Украина  
Дата: 17.01.03 14:09
Оценка:
Здравствуйте, Михаил Челноков, Вы писали:

ММ>>Неа

ММ>>Речь идет о физической (!!!!!) памяти. А эти адреса — виртуальные.

МЧ>Отнюдь. Эти адреса, как раз физические.

МЧ>Кто Вам сказал, что все физические адреса относятся к RAM? Этот "кто" Вас обманул...


Хм..... О чём спор, уважаемые? Он беспредметен. При формулировании вопроса было указано — физический адрес. Уточню — по этому адресу хранится серийный номер материнской платы (я думаю, что биоса). И это вероятно ROM.

С уважением, Павел.
Re[4]: Чтение данных из физической ячейки памяти
От: Roman_M rgmroman.narod.ru
Дата: 17.01.03 14:15
Оценка:
Здравствуйте, SPavel, Вы писали:

SP>Здравствуйте, vasketsov, Вы писали:


V>>Здравствуйте, Roman_M, Вы писали:


RM>>>есть \device\PhysicalMemory,

V>>Читает именно физическую память, а не ВАП
SP>Хорошо — а как им воспользоваться? В MSDN об этом написано крайне скудно
SP>

SP>The PhysicalMemory property gives the size of the installed RAM in Megabytes

SP>И как я понимаю, это не совсем то, что имелось в виду под "\device\PhysicalMemory"

Да, это что-то другое. Вот ссылка на исходник от Руссиновича.


http://groups.google.com.ru/groups?q=device%5C%5CPhysicalMemory&amp;hl=ru&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;selm=378B46B8.E8091D97%40ssti.fr&amp;rnum=4
Re[6]: Чтение данных из физической ячейки памяти
От: Saddam Россия http://saddam.narod.ru
Дата: 17.01.03 14:34
Оценка:
Здравствуйте, VVV, Вы писали:

SP>>С уважением, Павел


VVV>Попробуй этот скрипт (сгенерён с помощью Scriptomatic) запиши скрипт в файл baseboard.vbs и запусти cscript baseboard.vbs или просто даблкликом.


Вот, что он выдал:
Даже не пахнет сериалом
- Вы знаете — жаль, просто по-человечески жаль Памелу Андерсон, которая никогда не сможет сыграть на баяне...
Re[7]: Чтение данных из физической ячейки памяти
От: Sergey Россия  
Дата: 17.01.03 15:02
Оценка: 21 (1)
Здравствуйте, vasketsov, Вы писали:

V>Вот вы попробуйте из этой секции прочитать по этому адресу, тогда и поговорим.


Попробовал. То, что хотел SPavel, сидит по адресу 0x0FEC71 — он, IMHO, линейную адресацию с сегментной попутал. Но насчет старших адресов ты все равно не прав:

:PEEK d 0xfffFEC00
0x00000000   00000000000000000000000000000000   0
:PEEK d 0xfffFE000
0x72617741   01110010011000010111011101000001   1918990145
:PEEK d 0xfffFEA00
0x00000000   00000000000000000000000000000000   0
:PEEK d 0xfffFEAFF
0x00000000   00000000000000000000000000000000   0
:PEEK d 0xfffFE004
0x6F422064   01101111010000100010000001100100   1866604644
:PEEK d 0xfffFE008
0x6C42746F   01101100010000100111010001101111   1816294511
:PEEK d 0xfffFE00A
0x636F6C42   01100011011011110110110001000010   1668246594
:g
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[7]: Чтение данных из физической ячейки памяти
От: AssAsin  
Дата: 18.01.03 01:24
Оценка: 7 (1)
Здравствуйте, Whisperer, Вы писали:

W>ДрайверА


Как нынче в Win32 с драйверами, я не знаю, но под Windows 3.11 мне приходилось писать виртуальный драйвер (именно VxD: нулевое кольцо, FLAT-модель) для доступа к физической памяти (для работы с шиной VME, адресное пространство которой отображалось в верхние адреса оперативной памяти). По другому никак не выходило, потому что и процессы, и даже виртуальные драйвера оперируют линейными адресами, которые отображаются на физические через механизм виртуальной памяти (постраничная подкачка), которым можно управлять только с уровня VxD. Конкретно я делал следующее:

1. При инициализации своего VxD вызывал функцию, отменяющую пейджинг на нужном мне диапазоне адресов, в результате чего видимые моему драйверу линейные адреса в этом диапазоне совпадали с физическими. Но эти линейные адреса доступны только VxD-драйверам во FLAT-модели, а прикладные программы оперируют каждая своим собственным линейным адресным пространством, ничего общего с FLAT-моделью не имеющим.

2. Поэтому драйвер экспортировал функции Read/WriteMemory(address, data, size), которые вызывались из прикладной программы, и выполняли собственно обращение к физической памяти. Вызов драйвера из программы представлял отдельный геморрой, про который вообще ничего не помню. Сначала, кажись, нужно было получить хэндл драйвера по имени, или что-то в этом духе, ну и т.д.

Видите, как все было просто! Интересно, изменилось ли что в Win32? Думаю, в Win9x — вряд ли.
Re[7]: Чтение данных из физической ячейки памяти
От: AssAsin  
Дата: 18.01.03 01:29
Оценка: 28 (2)
Здравствуйте, Михаил Можаев, Вы писали:

ММ>Речь идет о физической (!!!!!) памяти. А эти адреса — виртуальные.


Шина VME фирмы Industrial Computers (один из главных субподрядчиков американской оборонки) вешает свое адресное пространство чуть ли не в 0x80000000-... Sorry, точно не помню. И перед ее базовым адресом получается приличных размеров дыра. Что не мешает системе нормально работать, непонятно каким чудом.
Re[8]: Дополнение
От: AssAsin  
Дата: 18.01.03 01:34
Оценка:
AA>Шина VME вешает свое адресное пространство чуть ли не в 0x80000000-... Sorry, точно не помню.

Почитав другие посты, добавлю: обращаются к ней как к обычной RAM: чтение, запись. Но эти обращения прозрачным образом передаются портам присоединенных к шине внешних устройств, или даже в адресное пространство другого компьютера, висящего на этой же шине, при этом для оповещения об изменении данных в памяти резервируется IRQ.
Re[8]: Чтение данных из физической ячейки памяти
От: vasketsov Россия http://ntprog.by.ru
Дата: 19.01.03 07:15
Оценка:
Здравствуйте, Sergey, Вы писали:

[]

Я не заю, что у Вас за PEEK и что он делает, Вам виднее, но имхо он ВАП ядра читает.

Вот вывод програмки от Руссиновича (PHYSMEM.EXE).

Physmem v1.0: physical memory viewer
By Mark Russinovich
Systems Internals — http://www.sysinternals.com

Enter values in hexadecimal. Enter 'q' to quit.

Address: f000ec71
Bytes: 21
Could not map view of F000EC71 length 21: The parameter is incorrect.

Address: fec71
Bytes: 21
000FE000: 41 77 61 72 64 20 53 6F -66 74 77 61 72 65 49 42 Award SoftwareIB
000FE010: 4D 20 43 4F 4D 50 41 54 -49 42 4C 45 20 34 38 36 M COMPATIBLE 486
000FE020: 20 42 49 4F 53 20 43 4F -50 59 52 49 47 48 54 20 BIOS COPYRIGHT
000FE030: 41 77 61 72 64 20 53 6F -66 74 77 61 72 65 20 49 Award Software I
000FE040: 6E 63 2E 6F 66 74 77 61 -72 65 20 49 6E 63 2E 20 nc.oftware Inc.
000FE050: 41 77 03 0C 04 01 01 6F -66 74 77 E9 11 14 20 43 Aw.....oftwщ.. C
000FE060: 1B 41 77 61 72 64 20 4D -6F 64 75 6C 61 72 20 42 .Award Modular B
000FE070: 49 4F 53 20 76 34 2E 35 -31 50 47 00 DB 32 EC 33 IOS v4.51PG.█2.3
000FE080: EC 35 EC 38 EC 3C EC 41 -EC 47 EC 4E EC 77 61 72 .5.8...A.G.N.war
000FE090: 2C 43 6F 70 79 72 69 67 -68 74 20 28 43 29 20 31 .Copyright .C. 1
000FE0A0: 39 38 34 2D 39 38 2C 20 -41 77 61 72 64 20 53 6F 984.98. Award So
000FE0B0: 66 74 77 61 72 65 2C 20 -49 6E 63 2E 00 74 77 61 ftware. Inc..twa
000FE0C0: 4E 41 53 55 53 20 50 32 -2D 39 39 42 20 41 43 50 NASUS P2.99B ACP
000FE0D0: 49 20 42 49 4F 53 20 52 -65 76 69 73 69 6F 6E 20 I BIOS Revision
000FE0E0: 31 30 31 31 00 42 65 74 -61 20 30 30 38 00 00 00 1011.Beta 008...
000FE0F0: 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 ................
000FE100: 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 31 ...............1
000FE110: 20 49 42 4D 20 49 53 20 -41 20 54 52 41 44 45 4D IBM IS A TRADEM
000FE120: 41 52 4B 20 4F 46 20 49 -4E 54 45 52 4E 41 54 49 ARK OF INTERNATI
000FE130: 4F 4E 41 4C 20 42 55 53 -49 4E 45 53 53 20 4D 41 ONAL BUSINESS MA
000FE140: 43 48 49 4E 45 53 20 43 -4F 52 50 2E 55 8B EC 56 CHINES CORP.UЛ.V
000FE150: 1E C5 76 02 81 3C 0F 05 -74 3E 81 3C 0F 04 74 17 .┼v.Б...t.Б...t.
000FE160: 80 3C F0 74 0A 80 3C F2 -74 05 80 3C F3 75 04 46 ..Ёt...Єt...єu.F
000FE170: 89 76 02 1F 5E 5D CF E9 -32 2C 20 00 00 08 00 00 Йv....╧щ2. .....
000FE180: FF FF 00 00 0F 9B 00 00 -00 00 00 00 00 00 00 00 .....Ы..........
000FE190: 00 00 00 00 00 00 00 00 -33 C0 8E D8 8E C0 8E 16 ........3└.╪.└..

Я вижу данные только BIOS.
Это все — на тестовой ASUS-овской мамке, ОЗУ — 384 мега, ткните носом, где серийный номер ASUS-а?
Васкецов Сергей
http://registry.km.ru
Re[9]: Чтение данных из физической ячейки памяти
От: Михаил Челноков Украина  
Дата: 19.01.03 14:11
Оценка:
Здравствуйте, SPavel, Вы писали:

SP>Хм..... О чём спор, уважаемые? Он беспредметен. При формулировании вопроса было указано — физический адрес. Уточню — по этому адресу хранится серийный номер материнской платы (я думаю, что биоса). И это вероятно ROM.


Спора никакого нет, просто там, где ты поскипал, было неверное утверждение одного товарища, к твоему вопросу напрямую не относящееся.

Кстати, у меня по нужному тебе адресу находится строка
02/06/2002-i815E-W83627H-6A69RA1KC-7U

"Серийным номером" материнки это не назовешь. Дата и версия BIOS'а, не более того. Эта же строка выводится внизу экрана при включении питания.
И, IMHO, если какие-нибудь производители и прошивают серийный номер материнки куда-нить, то это жутко непортабельно. Увы...
Re[9]: Чтение данных из физической ячейки памяти
От: Andrew S Россия http://alchemy-lab.com
Дата: 19.01.03 21:12
Оценка: 9 (1)
Ткнуть?? Запросто. Читайте спецификацию DMI и SMBIOS

Там ясно сказано, как найти таблицы DMI и что где и как расположено.

таблица DMI ищется в 128 кб начиная с физического адреса 0xE0000. Ищется строка _SMBIOS_, просматриваются блоки по 16 байт, т.к. эта строка проалигнена на 16 байт. Собственно, далее идет entry-point DMI со всеми делами — указателем на таблицы и т.п. Это все разбирается, в результате получаем кучу системной инфы. И серийный номер Shassis в том числе.


V>Я вижу данные только BIOS.

V>Это все — на тестовой ASUS-овской мамке, ОЗУ — 384 мега, ткните носом, где серийный номер ASUS-а?
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[10]: Чтение данных из физической ячейки памяти
От: vasketsov Россия http://ntprog.by.ru
Дата: 20.01.03 04:29
Оценка:
Здравствуйте, Andrew S, Вы писали:

AS>Ткнуть?? Запросто.

Я имел в виду на предоставленном мной листинге, а не в теории.
Васкецов Сергей
http://registry.km.ru
Re[11]: Чтение данных из физической ячейки памяти
От: Andrew S Россия http://alchemy-lab.com
Дата: 20.01.03 04:36
Оценка:
Ну так предоставьте листинг 128 кб начиная с адреса 0xe0000 — тогда ткнем не в теории
(на самом деле DMI почти всегда находится выше 0xf000, но не все же не всегда)
V> Я имел в виду на предоставленном мной листинге, а не в теории.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[12]: Чтение данных из физической ячейки памяти
От: vasketsov Россия http://ntprog.by.ru
Дата: 20.01.03 04:44
Оценка:
Здравствуйте, Andrew S, Вы писали:

[]
И не собираюсь
Я просто опровергал посты, в которых это утверждалось для адресов 0xF000EC71 и 0xFEC71, первый вообще не прочитался (не знаю кто как там это пробовал делать, якобы удачно, некоторые даже под досом ), второй я вывел тут.
Васкецов Сергей
http://registry.km.ru
Re[13]: Чтение данных из физической ячейки памяти
От: Andrew S Россия http://alchemy-lab.com
Дата: 20.01.03 04:52
Оценка:
V>И не собираюсь
И праально.

V>Я просто опровергал посты, в которых это утверждалось для адресов 0xF000EC71 и 0xFEC71, первый вообще не прочитался (не знаю кто как там это пробовал делать, якобы удачно, некоторые даже под досом ), второй я вывел тут.

Прикол в том, что есть несколько материнских плат (IBM), в которых область DMI таблиц лежит как раз выше 0xF???????. Что это — ошибка в entry point биоса или еще что — для меня осталось загадкой. Я просто ограничил область положения DMI первыми 64 кб выше первого мегабайта. Но тем не менее — факт, что некоторые материнские платы отдают похожие адреса.
В данном случае, конечно, автор постинга скорее всего просто ошибся в адресе.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[9]: Чтение данных из физической ячейки памяти
От: Sergey Россия  
Дата: 20.01.03 08:04
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Я не заю, что у Вас за PEEK и что он делает, Вам виднее, но имхо он ВАП ядра читает.


Я приводил кусок лога SoftIce'а. Если верить документации, команда PEEK читает именно по физическим адресам. В той же доке читаем "PEEK is useful for reading memory-mapped I/O registers.", которые, IMHO, и наблючаются на моем компьютере по адресам 0xfffFE000 и т.д.

V>Вот вывод програмки от Руссиновича (PHYSMEM.EXE).


V>Address: f000ec71

V>Bytes: 21
V>Could not map view of F000EC71 length 21: The parameter is incorrect.

Заметь, это PHYSMEM прочитать ничего по этому адресу не может, а ты утверждаешь, что оттуда вообще никак читать невозможно. Это немного разные вещи. Я могу придумать десяток причин, почему \Device\PhysicalMemory предоставляет доступ не по всем физическим адресам.

V>Address: fec71

V>Bytes: 21
V>000FE000: 41 77 61 72 64 20 53 6F -66 74 77 61 72 65 49 42 Award SoftwareIB

V>Я вижу данные только BIOS.

V>Это все — на тестовой ASUS-овской мамке, ОЗУ — 384 мега, ткните носом, где серийный номер ASUS-а?

И где в там адрес F000EC71 или 000FEC71? Дамп ты почему-то на 000FE19F закончил.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[10]: Чтение данных из физической ячейки памяти
От: SPavel Украина  
Дата: 20.01.03 08:42
Оценка:
Здравствуйте, Михаил Челноков, Вы писали:
МЧ>
МЧ>02/06/2002-i815E-W83627H-6A69RA1KC-7U
МЧ>

МЧ>"Серийным номером" материнки это не назовешь. Дата и версия BIOS'а, не более того. Эта же строка выводится внизу экрана при включении питания.
МЧ>И, IMHO, если какие-нибудь производители и прошивают серийный номер материнки куда-нить, то это жутко непортабельно. Увы...

ВОТ! Именно эта информация мне и нужна! Именно эта! Тут есть дата, модель, и серийный номер. И действительно — это инфа биоса.
Скажите, пожалуйста, каким образом Вы её получили?

С уважением, Павел
Re[10]: Чтение данных из физической ячейки памяти
От: vasketsov Россия http://ntprog.by.ru
Дата: 20.01.03 09:11
Оценка:
Здравствуйте, Sergey, Вы писали:

[]

При загрузке BIOS не может быть спроецирован на физическую память за 0xF0000000, потому что неизвестно, поддерживает ли этот регион система. Однако, он проецируется на нижние адреса (при загрузке системы данные из BIOS, в том числе, по дискам, шинам и устройствам и выделенным для них пулам, получает ntdetect.com, которая 16-разрядная, реального режима, даже если Windows устанавливает свои порты, то не факт, что устройства будут работать, ибо они могут быть и без Plug'n'play и драйвера у них могут быть без P'n'P, так что изменение номеров портов может быть невозможным), потом диспетчер памяти организует доступ из ВАП ядра по адресу 0xFxxxxxxx так, чтобы адресовались именно биосовские страницы. Так что физически памяти 0xFxxxxxxx может не быть (у меня, например, нет), а если она и есть — уж точно там никаких биосов и устройств (если только их разработчики не совсем еще кретины) быть не может. А та память, что выделяется — из ВАП ядра, в том числе и из подкачиваемого пула, физические адреса — только нижние, ибо верхние могут не поддерживаться самими устройствами. Как пример — данные о векторах прерываний, в ВАП ядра они за 0x80000000 идут, а физически — наверное сами знаете где.

S>И где в там адрес F000EC71 или 000FEC71? Дамп ты почему-то на 000FE19F закончил.

Согласен, проглядел, вот оно:
-- more -- ('q' to abort)
000FEB60: 11 05 83 4E 16 01 E8 35 -E6 5D 07 1F 5F 5E 5A 59 ...N..ш5ц..._.ZY
000FEB70: 5B 58 CF 8A 46 0F A8 FE -75 D2 F6 06 27 00 80 74 .X¦.F.и.uTЎ....t
000FEB80: DD 34 01 04 F4 E8 24 E6 -75 CE E8 D3 F9 EB D7 80 ¦4..Їш.цu+шL•ы+.
000FEB90: 26 26 00 F8 B0 FF E8 13 -E6 75 BD E8 C2 F9 75 C6 ...°..ш.цu-шT•u¦
000FEBA0: E8 FC F9 74 B3 88 46 0E -E8 F4 F9 74 AB 88 46 0F ш.•t¦.F.шЇ•tл.F.
000FEBB0: EB 90 80 7E 0F 06 77 9A -B0 F3 E8 EF E5 75 99 E8 ы.....wЪ.єшяхuЩш
000FEBC0: 9E F9 75 A2 8D 36 DD EB -32 E4 8A 46 0F 03 F0 2E Ю•uвН6¦ы2ф.F..Ё.
000FEBD0: AC E8 D8 E5 74 02 EB 80 -E8 85 F9 EB 89 0A 14 28 мш+хt.ы.шЕ•ыЙ...
000FEBE0: 3C 50 64 C8 80 7E 0F 03 -76 03 E9 65 FF B0 E8 E8 .PdL....v.щe..шш
000FEBF0: BA E5 74 03 E9 61 FF E8 -66 F9 74 03 E9 67 FF 8A ¦хt.щa.шf•t.щg..
000FEC00: 46 0F E8 A7 E5 74 03 E9 -4E FF E8 53 F9 E9 56 FF F.шзхt.щN.шS•щV.
000FEC10: EA 00 80 08 00 65 20 49 -6E 63 2E 20 41 77 61 72 ъ....e Inc. Awar
000FEC20: 64 20 53 6F 66 74 77 61 -72 65 20 49 6E 63 2E 20 d Software Inc.
000FEC30: C3 CB 06 06 07 06 04 02 -06 07 04 02 06 04 02 05 +...............
000FEC40: 03 06 07 04 02 05 03 06 -04 02 00 05 03 01 06 07 ................
000FEC50: 04 02 00 05 03 01 2E 20 -41 E9 34 C0 64 20 53 6F ....... Aщ4Ld So
000FEC60: AA 1E 14 61 72 65 20 49 -6E 63 2E 20 41 77 61 72 ...are Inc. Awar
000FEC70: 1A 31 30 2F 32 31 2F 39 -39 2D 69 34 34 30 5A 58 .10.21.99.i440ZX
000FEC80: 2D 50 32 2D 39 39 42 2D -30 30 00 30 30 00 30 30 .P2.99B.00.00.00
000FEC90: 30 30 43 2D 30 30 00 E8 -06 00 75 03 E9 27 F6 CF 00C.00.ш..u.щ.Ў¦
000FECA0: 1E 50 B8 40 00 8E D8 F7 -06 15 00 08 00 58 1F C3 .P¬...+ў.....X.+
000FECB0: B0 F2 E8 F7 E4 74 03 E9 -9E FE E8 A3 F8 74 03 E9 .Єшўфt.щЮ.шг°t.щ
000FECC0: A4 FE E8 DA F8 74 06 88 -46 0F E9 75 FE E9 88 FE д.ш-°t..F.щu.щ..
000FECD0: 94 72 01 AA 4D 1A 4D 1A -AA 74 77 61 72 65 20 49 Фr..M.M..tware I
000FECE0: 50 32 2D 39 39 42 00 72 -64 20 20 20 00 00 77 61 P2.99B.rd ..wa
000FECF0: E9 A9 CD 50 B0 20 E6 A0 -58 CD 0A CF 64 20 53 6F щй=P. цаX=.¦d So

Все равно не вижу .
Васкецов Сергей
http://registry.km.ru
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.