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 |