This is not really a driver question but it involves stuff found only in
the DDK and I don’t know of anywhere else to ask …
I’m writing a native application that runs early in the boot process much
like autochk does. What I have so far works like a champ on Windows 2000
but I can’t see any evidence that it even runs on Windows XP.
I added the /NOGUIBOOT switch to the XP line in boot.ini and the startup
graphics go away but no output text is visable from my little app.
This is on SP 2. Any tricks to make this work?
Thanks,
Mickey,
although I am not sure whether this would work on XP this is how I do it in
my SMSS replacement:
Get a handle to “\Device\Video0”
Use ZwDeviceIoControlFile() to issue the following IOCTLs:
- IOCTL_VIDEO_RESET_DEVICE
- IOCTL_VIDEO_SET_CURRENT_MODE
- IOCTL_VIDEO_MAP_VIDEO_MEMORY
- IOCTL_VIDEO_LOAD_AND_SET_FONT
It works fine so far, but there are other problems then. As far as I
remember, only a KMode component can request the display ownership and draw
to it then (contrary information is welcome!). Once the this is done,
SMSS.EXE (or native apps started by it) should be able to use
ZwDisplayString()
These are the relevant (but undocumented) functions from NTOSKRNL.EXE which
can be used from KMode:
- InbvAcquireDisplayOwnership
- InbvCheckDisplayOwnership
- InbvDisplayString
- InbvEnableBootDriver
- InbvEnableDisplayString
- InbvInstallDisplayStringFilter
- InbvIsBootDriverInstalled
- InbvNotifyDisplayOwnershipLost
- InbvResetDisplay
- InbvSetScrollRegion
- InbvSetTextColor
- InbvSolidColorFill
Oliver
— Ursprüngliche Nachricht —
Von: Mickey Lane
> An: “Windows System Software Devs Interest List”
> Betreff: [ntdev] NtXxx calls in native app
> Datum: Mon, 03 Oct 2005 06:21:34 -0400
>
> This is not really a driver question but it involves stuff found only in
> the DDK and I don’t know of anywhere else to ask …
>
> I’m writing a native application that runs early in the boot process much
> like autochk does. What I have so far works like a champ on Windows 2000
> but I can’t see any evidence that it even runs on Windows XP.
>
> I added the /NOGUIBOOT switch to the XP line in boot.ini and the startup
> graphics go away but no output text is visable from my little app.
>
> This is on SP 2. Any tricks to make this work?
–
---------------------------------------------------
May the source be with you, stranger 
ICQ: #281645
URL: http://assarbad.net
Oliver,
Thanks. Couple of questions:
What’s difference between ZwDisplayString and NtDisplayString? I’m using
the latter. (I’m using the ZwXxx routines for file open, read, etc.)
Additional experiments have shown that the display works as expected on the
first release of XP (no service packs). I get nothing on XP SP 2 but the
program does run and do what it is supposed to do.
Mickey.
Oliver Schneider wrote:
Mickey,
although I am not sure whether this would work on XP this is how I do it in
my SMSS replacement:
Get a handle to “\Device\Video0”
Use ZwDeviceIoControlFile() to issue the following IOCTLs:
- IOCTL_VIDEO_RESET_DEVICE
- IOCTL_VIDEO_SET_CURRENT_MODE
- IOCTL_VIDEO_MAP_VIDEO_MEMORY
- IOCTL_VIDEO_LOAD_AND_SET_FONT
It works fine so far, but there are other problems then. As far as I
remember, only a KMode component can request the display ownership and draw
to it then (contrary information is welcome!). Once the this is done,
SMSS.EXE (or native apps started by it) should be able to use
ZwDisplayString()
These are the relevant (but undocumented) functions from NTOSKRNL.EXE which
can be used from KMode:
- InbvAcquireDisplayOwnership
- InbvCheckDisplayOwnership
- InbvDisplayString
- InbvEnableBootDriver
- InbvEnableDisplayString
- InbvInstallDisplayStringFilter
- InbvIsBootDriverInstalled
- InbvNotifyDisplayOwnershipLost
- InbvResetDisplay
- InbvSetScrollRegion
- InbvSetTextColor
- InbvSolidColorFill
Oliver
>— Ursprüngliche Nachricht —
>Von: Mickey Lane
>>An: “Windows System Software Devs Interest List”
>>Betreff: [ntdev] NtXxx calls in native app
>>Datum: Mon, 03 Oct 2005 06:21:34 -0400
>>
>>This is not really a driver question but it involves stuff found only in
>>the DDK and I don’t know of anywhere else to ask …
>>
>>I’m writing a native application that runs early in the boot process much
>>like autochk does. What I have so far works like a champ on Windows 2000
>>but I can’t see any evidence that it even runs on Windows XP.
>>
>>I added the /NOGUIBOOT switch to the XP line in boot.ini and the startup
>>graphics go away but no output text is visable from my little app.
>>
>>This is on SP 2. Any tricks to make this work?
>
>
Mickey,
In user space there is no difference. These are two labels on the same
function.
–
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Remove StopSpam from the email to reply
“Mickey Lane” wrote in message news:xxxxx@ntdev…
> Oliver,
>
> Thanks. Couple of questions:
>
> What’s difference between ZwDisplayString and NtDisplayString? I’m using
> the latter. (I’m using the ZwXxx routines for file open, read, etc.)
>
> Additional experiments have shown that the display works as expected on
> the first release of XP (no service packs). I get nothing on XP SP 2 but
> the program does run and do what it is supposed to do.
>
> Mickey.
>
> Oliver Schneider wrote:
>> Mickey,
>>
>> although I am not sure whether this would work on XP this is how I do it
>> in
>> my SMSS replacement:
>>
>> Get a handle to “\Device\Video0”
>> Use ZwDeviceIoControlFile() to issue the following IOCTLs:
>> - IOCTL_VIDEO_RESET_DEVICE
>> - IOCTL_VIDEO_SET_CURRENT_MODE
>> - IOCTL_VIDEO_MAP_VIDEO_MEMORY
>> - IOCTL_VIDEO_LOAD_AND_SET_FONT
>>
>> It works fine so far, but there are other problems then. As far as I
>> remember, only a KMode component can request the display ownership and
>> draw
>> to it then (contrary information is welcome!). Once the this is done,
>> SMSS.EXE (or native apps started by it) should be able to use
>> ZwDisplayString()
>>
>> These are the relevant (but undocumented) functions from NTOSKRNL.EXE
>> which
>> can be used from KMode:
>> - InbvAcquireDisplayOwnership
>> - InbvCheckDisplayOwnership
>> - InbvDisplayString
>> - InbvEnableBootDriver
>> - InbvEnableDisplayString
>> - InbvInstallDisplayStringFilter
>> - InbvIsBootDriverInstalled
>> - InbvNotifyDisplayOwnershipLost
>> - InbvResetDisplay
>> - InbvSetScrollRegion
>> - InbvSetTextColor
>> - InbvSolidColorFill
>>
>> Oliver
>>
>>
>>
>>>— Ursprüngliche Nachricht —
>>>Von: Mickey Lane
>>>An: “Windows System Software Devs Interest List”
>>>Betreff: [ntdev] NtXxx calls in native app
>>>Datum: Mon, 03 Oct 2005 06:21:34 -0400
>>>
>>>This is not really a driver question but it involves stuff found only in
>>>the DDK and I don’t know of anywhere else to ask …
>>>
>>>I’m writing a native application that runs early in the boot process much
>>>like autochk does. What I have so far works like a champ on Windows 2000
>>>but I can’t see any evidence that it even runs on Windows XP.
>>>
>>>I added the /NOGUIBOOT switch to the XP line in boot.ini and the startup
>>>graphics go away but no output text is visable from my little app.
>>>
>>>This is on SP 2. Any tricks to make this work?
>>
>>
>
>What’s difference between ZwDisplayString and NtDisplayString? I’m using
the latter. (I’m using the ZwXxx routines for file open, read, etc.)
Does this link help?
http://www.osronline.com/article.cfm?id=257