Форум: "WinAPI";
Текущий архив: 2010.10.03;
Скачать: [xml.tar.bz2];
ВнизBIOS, ZwOpenSection и Vista Найти похожие ветки
← →
TAG (2009-04-15 11:13) [0]Добрый день.
Для определения конфига компьютера я читаю BIOS (SMBIOS) с помощью GetProcAddress(NtLayer, "ZwOpenSection"); (текст как-то пробегал на этом форуме).
Проблема в том, что под Vista и выше получаю STATUS_ACCESS_DENIED.
А очень хотелось бы таки прочесть :)
Помогите, пожалуйста ( checkcfg (Зобака) narod.ru )
← →
Palladin © (2009-04-15 11:45) [1]1. Не Зобака, а AT. )
2. http://www.delphimaster.ru/forums.shtml#rule Рекомендуется: п.11
3. Хочется - запускай под Администраторской учетной записью. Попробуй по крайней мере, подозрение на недостаточность прав учетной записи. И почитай, что это значит в MSDN.
← →
TAG (2009-04-15 11:59) [2]Palladin :
про п.11 - не понял, при чем тут мой пост ???
про права и MSDN - права Админские. Что значит сообщение - понятно.
Не понятно ЧЕМ вызвано и как обойти (если можно).
Более того, если читать БИОС с помощью 16-битного приложения - выводить кусок БИОСА через INT21 DosCall(0x40) - DOS_WRITE_TO_HANDLE где HANDLE=STDOUT то на однотипных машинах под Win2003 выводится кусок, а под Win2000 - весь запрашиваемый фрагмент E000:0000-E000:FFFE
← →
Игорь Шевченко © (2009-04-15 13:17) [3]
> Проблема в том, что под Vista и выше получаю STATUS_ACCESS_DENIED.
что, при GetProcAddress ?
← →
12 © (2009-04-15 14:13) [4]А выше Vista это какая?
← →
TAG (2009-04-15 14:24) [5]Выше WinXP - Vista,2003, ( 2008 и 7ка наверно тоже )
Шевченко :
GetProcAddress(NtLayer, "ZwOpenSection")
GetProcAddress(NtLayer, "RtlNtStatusToDosError")
- все Ок
Status := ZwOpenSection(Section, SECTION_MAP_READ,
@ObjectPhysicalMemoryAttributes);
получаю STATUS_ACCESS_DENIED
вот аналог.кусок кода http://book.77169.org/ask24/how163755.htm
(поиск на странице текста "@ObjectPhysicalMemoryAttributes")
← →
Игорь Шевченко © (2009-04-15 14:36) [6]
> получаю STATUS_ACCESS_DENIED
Ну да. Закрыли эту дырку наконец.
"access to this object is denied starting in Windows 2003 Service Pack 1 and Windows Vista. "
← →
TAG (2009-04-15 14:44) [7]П.С. это - не "аналог.кусок" - это то, на основании чего я и замутил чтение SMBIOSа.
В вышепр.куске читается память F000:0000-F000:FFFF, в ней лежит заголовок SMBIOSа, он разбирается моей прогой и при необходимости дочитывается кусок с данными о железе компа.
Например, Compaq ML350 - Заголовок в F000 сегменте, а данные - в E000 сегменте, с адреса C000
Попытка читать через NTLayer выдает ошибку, тогда файлом, сделанным по чудо-методе _RomDumpCode (см.ссылку) читаем сегменты E000 и F000 под Win2000 и Win2003.
итог :
под 2003 до адреса E000:E000 считываются только нули, далее считанные данные до F000:FFFE совпадают.
т.о. получаем - и так не прочесть и так - лажа получается... а програмка нужная, популярная, хочется довести :)
Андрей.
← →
Alex Konshin © (2009-04-20 03:45) [8]У меня нет Vista (и видимо не будет), но думаю, что всё станет ясно, если посмотреть на права объекта через WinObj Руссиновича.
← →
TAG (2009-04-22 16:41) [9]2 Alex Konshin : Не пойму - на какой объект, извините ?
← →
TAG (2009-04-22 16:44) [10]если PhisicalMemory - то Admins - QueryData & QueryState разрешены
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.10.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c