Вывод строк в синий экран при загрузке...
От: Z_i_p_p_e_r Земля www.epozzi.narod.ru
Дата: 24.01.08 10:45
Оценка:
Привет всем!
Не знаю точно, куда писать сию тему, но так как пишу преимущественно на c++, решил обратится к братьям по оружию. Есть NT драйвер на Windows XP, который во время своей загрузки читает все ключи из реестра и находит нужные, ну и что-то там с ними делает. Как, надоумьте меня, вывести строки текста из драйвера в синий экран при загрузке (по типу chkdisk). Подозреваю, что здесь контекст выполнения драйвера (приложения) замешан. Может подскажете, а еще лучше покажете

24.01.08 16:28: Перенесено модератором из 'C/C++. Прикладные вопросы' — Odi$$ey
28.01.08 20:11: Перенесено модератором из 'WIN API' — Hacker_Delphi
Re: Вывод строк в синий экран при загрузке...
От: hurricane_2000 Украина http://difane.com
Дата: 24.01.08 11:08
Оценка:
Здравствуйте, Z_i_p_p_e_r, Вы писали:

Z__>Привет всем!

Z__>Не знаю точно, куда писать сию тему, но так как пишу преимущественно на c++, решил обратится к братьям по оружию. Есть NT драйвер на Windows XP, который во время своей загрузки читает все ключи из реестра и находит нужные, ну и что-то там с ними делает. Как, надоумьте меня, вывести строки текста из драйвера в синий экран при загрузке (по типу chkdisk). Подозреваю, что здесь контекст выполнения драйвера (приложения) замешан. Может подскажете, а еще лучше покажете

chkdisk принадлежит к другому типу приложений — native app. Соответственно искать по данному ключевому слову.
Re[2]: Вывод строк в синий экран при загрузке...
От: Z_i_p_p_e_r Земля www.epozzi.narod.ru
Дата: 24.01.08 11:18
Оценка:
Здравствуйте, hurricane_2000, Вы писали:

_>chkdisk принадлежит к другому типу приложений — native app. Соответственно искать по данному ключевому слову.


Да это поняяятно....
Хорошо, по другому попробую. С использованием каких техник и функций приложения, написанные с использованием Native API (например, chkdisk ), выводят текст в синий экран при загрузке?
Re: Вывод строк в синий экран при загрузке...
От: Аноним  
Дата: 24.01.08 12:02
Оценка:
Здравствуйте, Z_i_p_p_e_r, Вы писали:

Z__>Привет всем!

Z__>Не знаю точно, куда писать сию тему, но так как пишу преимущественно на c++, решил обратится к братьям по оружию. Есть NT драйвер на Windows XP, который во время своей загрузки читает все ключи из реестра и находит нужные, ну и что-то там с ними делает. Как, надоумьте меня, вывести строки текста из драйвера в синий экран при загрузке (по типу chkdisk). Подозреваю, что здесь контекст выполнения драйвера (приложения) замешан. Может подскажете, а еще лучше покажете
Здесь Native Aplication замешаны Загрузил примерчик для затравки...
Re[2]: Вывод строк в синий экран при загрузке...
От: Аноним  
Дата: 24.01.08 13:44
Оценка:
_>chkdisk принадлежит к другому типу приложений — native app. Соответственно искать по данному ключевому слову.
ZwDisplayString экспортируется и ядром, так что возможно может и драйвером использоваться.
Re[3]: Вывод строк в синий экран при загрузке...
От: linc Россия  
Дата: 24.01.08 13:59
Оценка:
А>ZwDisplayString экспортируется и ядром, так что возможно может и драйвером использоваться.

Для отображения строк из ядра с помощью данной функции необходимо предварительно переключить экран в текстовый режим, иначе будет BSoD.
Re[3]: Вывод строк в синий экран при загрузке...
От: Ti9ra  
Дата: 17.02.08 21:27
Оценка:
> Хорошо, по другому попробую. С использованием каких техник и функций приложения, написанные с использованием Native API (например, chkdisk ), выводят текст в синий экран при загрузке?

Текст пишеться уникодом, используя стандартные методы мозврата/перевода каретки. Вот пример
пользуемся тагами для оформления исходников!
void wprint_line( PWSTR wszStr, ... )
{
     va_list args;
     UNICODE_STRING UszStr;
     WCHAR tStr[1024];// = { 0 };

     va_start( args, wszStr );

     NTSTATUS status =
         RtlStringCbVPrintfW( tStr, sizeof tStr, wszStr, args );

     if ( NT_SUCCESS( status ) )
     {
         RtlInitUnicodeString( &UszStr, tStr );
     }
     else
     {
         RtlInitUnicodeString( &UszStr, L"Error formating string" );
     }

     NtDisplayString( &UszStr );
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.