[comp.windows.ms.programmer] Accessing data between 640K and 1024K.

wilcox@wucs1.wustl.edu (Don Wilcox) (06/06/91)

A question...

I am attempting to write a Windows 3.0 program which interfaces with a part-
icularly ill-behaved I/O card.  It acquires binary data (about 230K worth) from
an external device, and then writes this data into memory starting at 0xb00000.
A stand-alone program which the designers sent to me then reads the data into
the standard DOS address space using INT 15H, service 87H, which enters pro-
tected mode and make a block transfer.

The card designers had intended to use this in a standard 286 running DOS until
the end of time, and were not concerned about other cards.  My task, whether I
choose to accept or not, is to get this data into a Windows program where it
can be manipulated.

I have been able to get the standalone program to run in a DOS window (using
386Enh mode), but naturally the block transfer using int 15H will not work from
a normal Windows program (just to be sure, I checked).  My question is this:
what is the "best" way for me to get access to this data.  I have considered
having a DOS application much like the standalone which simply places the data
into a buffer which my Windows program allocated using the GlobalDOSAlloc()
service.  Here I am left with wondering if the address which is returned can
be used by a standalone DOS programming running under Windows.  If so, any
pointers on how to send this address to a DOS program?  Even better would be
to be able to access the data at 0xb00000 from Windows itself, but I can find
nothing about this in either the SDK or the DDK.  If anyone out there has any
experience with this, I would be very grateful for pointers.  I'll even buy
lunch for you if you are ever in St. Louis.

Thanks,

Don
Don Wilcox                         | "Hear, O Israel, the Lord your God, the
Washington University in St. Louis |     Lord is One."
email: wilcox@cs.wustl.edu         |