V
Vassil Daskalov
Hello. I have this problem, that IMHO might be a bug. The exact description
of the problem follows.
I have a new laptop with Vista Home Basic, connected to an old parallel
dot-matrix printer (Epson FX-80 compatible) via an USB-to-LPT adapter cable.
The printer is recognized without trouble and prints the Test Page correctly.
Next, I share the printer, say, under the name EPSON, and the computer name
is USER-PC. I install the Microsoft Loopback network adapter to ensure the
"network" will always be up. I have an old DOS application that I want to run
on the laptop and I want it to print to that printer. Let's suppose that
application is named APP.EXE. I compose a batch file with the following
contents:
net use LPT2 \\USER-PC\EPSON /YES
C:\APP\APP.EXE
The applications runs properly, but doesn't want to print, but gives an
error message instead. It is configured to use port LPT2 for printing. The
error message is:
DOS Error 5: Access Denied
printing to LPT2 FAILED!
The fun part is that the MS-DOS editor EDIT prints to that printer properly.
Under Windows XP Pro SP2 with exactly the same configuration everything works
fine.
After some fiddling with debuggers/disassemblers I was able to determine the
possible source of this problem. The MS-DOS editor EDIT uses the 0x716C
function of interrupt 0x21 (Extended Open/Create, LFN support, DOS 7+) to
open the port LPT2 and the port opens successfully, but if an older DOS API
function is used, such as the 0x6C function of interrupt 0x21 (Extended
Open/Create, DOS 4+), the port does not open and an error is returned
instead. IMHO, this is a bug in the NTVDM. Can someone look into this?
----------------
This post is a suggestion for Microsoft, and Microsoft responds to the
suggestions with the most votes. To vote for this suggestion, click the "I
Agree" button in the message pane. If you do not see the button, follow this
link to open the suggestion in the Microsoft Web-based Newsreader and then
click "I Agree" in the message pane.
http://windowshelp.microsoft.com/co...a88&dg=microsoft.public.windows.vista.general
of the problem follows.
I have a new laptop with Vista Home Basic, connected to an old parallel
dot-matrix printer (Epson FX-80 compatible) via an USB-to-LPT adapter cable.
The printer is recognized without trouble and prints the Test Page correctly.
Next, I share the printer, say, under the name EPSON, and the computer name
is USER-PC. I install the Microsoft Loopback network adapter to ensure the
"network" will always be up. I have an old DOS application that I want to run
on the laptop and I want it to print to that printer. Let's suppose that
application is named APP.EXE. I compose a batch file with the following
contents:
net use LPT2 \\USER-PC\EPSON /YES
C:\APP\APP.EXE
The applications runs properly, but doesn't want to print, but gives an
error message instead. It is configured to use port LPT2 for printing. The
error message is:
DOS Error 5: Access Denied
printing to LPT2 FAILED!
The fun part is that the MS-DOS editor EDIT prints to that printer properly.
Under Windows XP Pro SP2 with exactly the same configuration everything works
fine.
After some fiddling with debuggers/disassemblers I was able to determine the
possible source of this problem. The MS-DOS editor EDIT uses the 0x716C
function of interrupt 0x21 (Extended Open/Create, LFN support, DOS 7+) to
open the port LPT2 and the port opens successfully, but if an older DOS API
function is used, such as the 0x6C function of interrupt 0x21 (Extended
Open/Create, DOS 4+), the port does not open and an error is returned
instead. IMHO, this is a bug in the NTVDM. Can someone look into this?
----------------
This post is a suggestion for Microsoft, and Microsoft responds to the
suggestions with the most votes. To vote for this suggestion, click the "I
Agree" button in the message pane. If you do not see the button, follow this
link to open the suggestion in the Microsoft Web-based Newsreader and then
click "I Agree" in the message pane.
http://windowshelp.microsoft.com/co...a88&dg=microsoft.public.windows.vista.general