From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: Accesing real mode services.... Date: Wed, 14 Nov 2001 10:20:56 Organization: Aspen Technology, Inc. Lines: 12 Message-ID: <3bf24588.sandmann@clio.rice.edu> References: <9stl4l$9ki$1 AT sirius DOT dur DOT ac DOT uk> NNTP-Posting-Host: dcloan.hou.aspentech.com X-Trace: selma.aspentech.com 1005755218 32451 10.32.115.107 (14 Nov 2001 16:26:58 GMT) X-Complaints-To: postmaster AT aspentech DOT com NNTP-Posting-Date: 14 Nov 2001 16:26:58 GMT X-NewsEditor: ED-1.5.8 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > I've been writing a application which uses a packet driver to talk to the > network card, ive been able to pass instructions to the packet driver > through the registers using int86x command but the problem starts when i > send the packet driver a pointer (es:di / code segment:offset) to one of my > programmes functions, when it calls it back teh whole thing just crashes, > without error message. Is this because it is a real mode service trying to > call my protected programme? Is there anyway to call the interrupt and pass > the pointer from my programme so it does not do this? You would need to allocate a real mode callback function from DPMI and pass the callback to the packet driver. Look in dpmi.h, in particular the functions _go32_dpmi_allocate_real_mode_callback*