HalDisplayString()
作者:陆麟
转载请征得作者同意.
1999.9.1
今天更新了HALPATCH.SYS,使有些东西显示在屏幕上.免得是否已经加载HALPATCH.SYS也不知道.嘿嘿,估计大家不知道如何在NT的启动兰屏幕上显示东西吧:)当然,今天就讲这个东西.
在普通的NT DDK里根本找不到任何有关兰屏显示的文档,当然,写这篇东西说明本人有办法:DDD又要介绍2个未公开的函数喽!
如果是DRIVER的话,我们就可以用标题函数.该函数的用法是
void HalDisplayString(PSTRING);
USTRING是ASCIIZ字符串.千万记住,不是UNICODE的,这和NT的通常做法有一点点区别.
啊,那么如果是NATIVE APPLICATION呢?讲得通俗一点,就是DRIVER已经加载,WIN32子系统还没有加载,这个时候根本就不能用KERNEL32.DLL,USER32.DLL...等引出的任何WIN32函数.这时乃是系统真空,因为没有WIN32服务.NT的CHKDSK就是这样的一个程序.因为它只能在没有任何文件打开的时候运行,而一旦WIN32子系统运作起来,根本就不具备CHKDSK的运行可能性.因为永远都有文件打开着.但是,由于NATIVE
APPLICATION不是DRIVER,它不能直接调用HAL函数,所以,他能够使用的是NTDLL.DLL引出的NATIVE
API.
NATIVE API里用于显示字符串的函数是......................
NtDisplayString(PUNICODE_STRING);
这回对了,终于有恢复到NT号称的所有函数都用UNICODE沟通的形式上来了.:)
好了好了,函数的用法说完了,大家应该少了个问题了:DDD
现在,如果需要HALPATCH.SYS的1.01版的朋友请点这里.