[comp.windows.ms.programmer] Storing far pointers in windows programs.

venkat@tandoori.East.Sun.COM (Desikan Venkatrangan - Sun BOS Software CONTRACTOR) (05/15/91)

I have a Windows DLL and multiple applications using the DLL.  Because of
other non-technical requirements, the following is unavoidable -- storing
far pointers to near data in the applications.  Now at several places in
the SDK I came across statements that storing far pointers to near data
would not work if the data segment is marked MOVEABLE; but this statement
appears to be made only for real-mode (Windows using the Basic Memory
configuration).  Is there a problem with storing far pointers to near
data segment (which is marked MOVEABLE) when Windows is using the other
memory configurations? (The EMS4.0 configuration, the Standard Mode 
configuration and Enhanced mode configuration)  What negative side effects
result if the data segment is marked FIXED in real-mode?

Thanks.


D. Venkatrangan
(508) 671-0276
Sun Microsystems Inc.

kend@data.UUCP (Ken Dickey) (05/16/91)

For that matter, what about far pointers on the App stack when a
low-level routine in a DLL "Blocks" waiting for a message {via
GetMessage() or PeekMessage()}?  

It appears from the SDK documents that Windows locks the application's
data segment when it gives it the CPU.  If the DS is unlocked in a
DLL's GetMessage() call, and far pointers are required to pass data
through DLLs, then there is no way to safely "block" within a DLL to
present a synchronous interface to its caller!

Does anyone know more about this?

Thanks,
-Ken Dickey					kend@data.uucp