16 bit applications die on headless system

G

Guest

Hi,

I'm experiencing the problem where 16 bit applications don't work on a
headless system. NTVDM.exe fails with an invalid memory read application
error. If a video adapter is plugged this error doesn't occur and
applications like mem.exe, command.com etc work as expected..

I've seen a couple of posts regarding this issues but haven't found a
resolution. Is there one out there?

Thanks.
 
K

KM

SilentCode,

The problem has been know for a while (or XPe headless and Win2003 Server headless).
IIRC, the NTVDM fails to load some default fonts provided by VGA BIOS (loadNativeBIOSfont call from NTVDM).
You can verify the failure if you connect to the headless device with KD.

You can try playing with the fonts (make sure they are in the image) settings under the following key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot] (all .fon values)

I've never tried that so let us know if you find the right key there.

Otherwise, you may want to file a bug to MS Product Team: http://msdn.microsoft.com/embedded/community/community/feedback/feedxp

KM
 
K

KM

And, of course, I assumed you've got "Dos Windows on Windows Support" component included.

KM
SilentCode,

The problem has been know for a while (or XPe headless and Win2003 Server headless).
IIRC, the NTVDM fails to load some default fonts provided by VGA BIOS (loadNativeBIOSfont call from NTVDM).
You can verify the failure if you connect to the headless device with KD.

You can try playing with the fonts (make sure they are in the image) settings under the following key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot] (all .fon values)

I've never tried that so let us know if you find the right key there.

Otherwise, you may want to file a bug to MS Product Team: http://msdn.microsoft.com/embedded/community/community/feedback/feedxp

KM
I'm experiencing the problem where 16 bit applications don't work on a
headless system. NTVDM.exe fails with an invalid memory read application
error. If a video adapter is plugged this error doesn't occur and
applications like mem.exe, command.com etc work as expected..

I've seen a couple of posts regarding this issues but haven't found a
resolution. Is there one out there?

Thanks.
 
G

Guest

Hi,

I've also noticed that the VGASAVE driver wont start. I check it against XP
Pro and the only difference I could see was that the vga256.dll and vga6k.dll
were not present in my image. I added them and got the same results.

If anyone knows what component provides the "Start" and "Stop" Driver page
for non-plug and play drivers I'd really appriciate it :)

Thanks.
 
K

KM

SilentCode,
I've also noticed that the VGASAVE driver wont start.

In headless mode? It won't. Headless VGA Driver (tsddd.dll) will load instead.
Read about headless process in the XPe docs.
I check it against XP
Pro and the only difference I could see was that the vga256.dll and vga6k.dll
were not present in my image. I added them and got the same results.

If anyone knows what component provides the "Start" and "Stop" Driver page
for non-plug and play drivers I'd really appriciate it :)

You mean in Device Manager? You just have to turn on "Show hidden devices" option there.
Or use devcon, it is even easier.
 
G

Guest

Thanks for you replies. I'll try it out and see what happens. As for the
"start" and "stop" I'm looking for the dll that provides the "Current Status"
and "Start up" options for a non plug and play driver.

1). open device manager
2). show hidden devices
3). open properties for one of the non pnp drivers and select the Drivers
tab.

On xp pro I get options to start and stop the device and change its start
type.

In my image I get the default "Driver details..., update driver, rollback
driver and uninstall options".

Thanks
 
K

KM

SilentCode,

Please verify that "Primitive: SysSetup" component is in your image and all component's dependencies are satisfied.

KM
 
G

Guest

Thanks for the tip. After looking at the resources in this file I discover
that the dialog resource is "1086" and that the entry in the registry that
causes this property page to appear was missing for the Legacy Driver device
class.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{8ECC055D-047F-11D1-A537-0000F8753ED1}

REG_SZ:EnumPropPages32=SysSetup.Dll,LegacyDriverPropPageProvider

I beleive that this entry is provided by "Device: LegacyDriver" that
includes the inf file "legcydrv.inf" but as no components depend on it it
never gets included into the configuration.

I'm going to add the component to my configuration and see if the entry is
made automatically.

Thanks Again.
 
K

KM

SilentCode,

Yup. I agree.

Seems like the value is missing from "Class Installer - Non-Plug and Play Drivers" component. One more bug found.
The "Device: LegacyDriver" is only a prototype. There is no software component in the database that depends on it (I am positive
since I checked that with XPProEmul).

KM
 
G

Guest

Hi,

I put windbg on the XPe system and it was indeed failing at the
LoadNativeBIOSfont call.

I installed all of the fonts that were mentioned in the key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot]
but it still failed.

After some more digging around I found this value that looked like a good
candidate
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\"RomFontPointers":REG_BINARY= <......>

I deleted the value and the error went away :) All of the 16 applications
now seem to work :)

My Theory:
When I run fba I have a VGA adapter installed that probably has some fonts
in its ROM (Native BIOS fonts maybe?). WOW reads these and caches the memory
address for later use. Then in the headless units that don't have the vga
adapter the memory address is not there hence the application error.

WinDbg also illuminated the generic error I was getting to:
Winerror 299: Only part of a ReadProcessMemory or WriteProcessMemory
request was completed.


Now all I have to do is ensure that the "RomFontPointers" value is deleted
on each cloned unit.

Thanks for your help,
Ed.




KM said:
SilentCode,

The problem has been know for a while (or XPe headless and Win2003 Server headless).
IIRC, the NTVDM fails to load some default fonts provided by VGA BIOS (loadNativeBIOSfont call from NTVDM).
You can verify the failure if you connect to the headless device with KD.

You can try playing with the fonts (make sure they are in the image) settings under the following key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot] (all .fon values)

I've never tried that so let us know if you find the right key there.

Otherwise, you may want to file a bug to MS Product Team: http://msdn.microsoft.com/embedded/community/community/feedback/feedxp

KM
I'm experiencing the problem where 16 bit applications don't work on a
headless system. NTVDM.exe fails with an invalid memory read application
error. If a video adapter is plugged this error doesn't occur and
applications like mem.exe, command.com etc work as expected..

I've seen a couple of posts regarding this issues but haven't found a
resolution. Is there one out there?

Thanks.
 
K

KM

Ed,

I didn't know about the exact value RomFontPointers but it was expected that
it fails on some value presented in registry (not missing).

Thanks for sharing out your finding with us!

KM
Hi,

I put windbg on the XPe system and it was indeed failing at the
LoadNativeBIOSfont call.

I installed all of the fonts that were mentioned in the key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot]
but it still failed.

After some more digging around I found this value that looked like a good
candidate.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\"RomFontPointers":REG_BINARY=
<......>

I deleted the value and the error went away :) All of the 16 applications
now seem to work :)

My Theory:
When I run fba I have a VGA adapter installed that probably has some fonts
in its ROM (Native BIOS fonts maybe?). WOW reads these and caches the
memory
address for later use. Then in the headless units that don't have the vga
adapter the memory address is not there hence the application error.

WinDbg also illuminated the generic error I was getting to:
Winerror 299: Only part of a ReadProcessMemory or WriteProcessMemory
request was completed.


Now all I have to do is ensure that the "RomFontPointers" value is deleted
on each cloned unit.

Thanks for your help,
Ed.




KM said:
SilentCode,

The problem has been know for a while (or XPe headless and Win2003 Server
headless).
IIRC, the NTVDM fails to load some default fonts provided by VGA BIOS
(loadNativeBIOSfont call from NTVDM).
You can verify the failure if you connect to the headless device with KD.

You can try playing with the fonts (make sure they are in the image)
settings under the following key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot] (all .fon
values)

I've never tried that so let us know if you find the right key there.

Otherwise, you may want to file a bug to MS Product Team:
http://msdn.microsoft.com/embedded/community/community/feedback/feedxp

KM
I'm experiencing the problem where 16 bit applications don't work on a
headless system. NTVDM.exe fails with an invalid memory read
application
error. If a video adapter is plugged this error doesn't occur and
applications like mem.exe, command.com etc work as expected..

I've seen a couple of posts regarding this issues but haven't found a
resolution. Is there one out there?

Thanks.
 
K

KM

Ed,

Btw, just for the sake of finishing the investigation, try to remove
videoprt.sys driver (or disable it in "VGA Save" component File section) fom
your original image and see if the problem with ntvdm crash is still there.
(I mean don't delete the registry value explicetely)

KM

I put windbg on the XPe system and it was indeed failing at the
LoadNativeBIOSfont call.

I installed all of the fonts that were mentioned in the key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot]
but it still failed.

After some more digging around I found this value that looked like a good
candidate.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\"RomFontPointers":REG_BINARY=
<......>

I deleted the value and the error went away :) All of the 16 applications
now seem to work :)

My Theory:
When I run fba I have a VGA adapter installed that probably has some fonts
in its ROM (Native BIOS fonts maybe?). WOW reads these and caches the
memory
address for later use. Then in the headless units that don't have the vga
adapter the memory address is not there hence the application error.

WinDbg also illuminated the generic error I was getting to:
Winerror 299: Only part of a ReadProcessMemory or WriteProcessMemory
request was completed.


Now all I have to do is ensure that the "RomFontPointers" value is deleted
on each cloned unit.

Thanks for your help,
Ed.




KM said:
SilentCode,

The problem has been know for a while (or XPe headless and Win2003 Server
headless).
IIRC, the NTVDM fails to load some default fonts provided by VGA BIOS
(loadNativeBIOSfont call from NTVDM).
You can verify the failure if you connect to the headless device with KD.

You can try playing with the fonts (make sure they are in the image)
settings under the following key:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WOW\boot] (all .fon
values)

I've never tried that so let us know if you find the right key there.

Otherwise, you may want to file a bug to MS Product Team:
http://msdn.microsoft.com/embedded/community/community/feedback/feedxp

KM
I'm experiencing the problem where 16 bit applications don't work on a
headless system. NTVDM.exe fails with an invalid memory read
application
error. If a video adapter is plugged this error doesn't occur and
applications like mem.exe, command.com etc work as expected..

I've seen a couple of posts regarding this issues but haven't found a
resolution. Is there one out there?

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top