Sorry guys I found the cause but I wasted 2.5 days on
this. The cause is I'm accessing the server through
terminal services so the shared mem name must be
prefix with Global\

Regards,
Roy

--- Thomas Hruska <[EMAIL PROTECTED]> wrote:

> iduniq iduniq wrote:
> > Hi,
> >      Good day! I have a problem opening a shared
> mem, the error code 
> > of which is 2 (Object does not exist).  This is my
> setup, a Windows 
> > service calls a process A, process A creates
> successfully shared 
> > mem.  Then I have another app which runs on DOS
> prompt which tries to 
> > open the shared mem but encounters error 2.  The
> OS is Windows Server 
> > 2003 for Small Business Server (ServicePack 1). 
> Since process A 
> > calls another process (process B), i tested using
> OpenFilemapping 
> > (same open code with DOS app) in process B and it
> successfully opened 
> > the shared mem.  Any ides?
> > 
> > TIA,
> > Roy
> > 
> > // Shared mem creation (NotQuiteNullDacl clss came
> from codeguru.com)
> 
> CodeGuru has legacy stuff that isn't updated.  I
> don't trust much of 
> anything from there.
> 
> 
> >    int maxlen = 256;
> >    SECURITY_ATTRIBUTES MutexAttributes;
> >    NotQuiteNullDacl Dacl;
> > 
> >    bool bDaclOk = Dacl.Create();
> >    ZeroMemory( &MutexAttributes,
> sizeof(MutexAttributes) );
> >    MutexAttributes.nLength = sizeof(
> MutexAttributes );
> >    MutexAttributes.bInheritHandle = FALSE;
> >    SECURITY_DESCRIPTOR SD;
> >    BOOL bInitOk = InitializeSecurityDescriptor(
> &SD,
> >                        
> SECURITY_DESCRIPTOR_REVISION );
> >    BOOL bSetOk = SetSecurityDescriptorDacl( &SD,
> >                        TRUE,
> >                        Dacl.GetPDACL(),
> >                        FALSE );
> >    MutexAttributes.lpSecurityDescriptor = &SD;
> 
> Why is a default security descriptor not good enough
> for you?  And you 
> aren't testing for errors.  Any of these functions
> might be failing.
> 
> 
> >    hmmf=CreateFileMapping((HANDLE) 0xFFFFFFFF,
> >              
>
&MutexAttributes,PAGE_READWRITE,0,maxlen,"MYSVCNAME");
> > 
> > // Open shared mem
> >    HANDLE hdltest = OpenFileMapping(FILE_MAP_READ,
> TRUE,"MYSVCNAME");
> 
> NT Services operate under a different set of rules
> than a command 
> prompt.  Quick search turned up this link that you
> might find useful:
> 
>
http://msdn2.microsoft.com/en-us/library/aa366551.aspx
> 
> -- 
> Thomas Hruska
> CubicleSoft President
> Ph: 517-803-4197
> 
> *NEW* VerifyMyPC 2.2
> Change tracking and management tool.
> Reduce tech. support times from 2 hours to 5
> minutes.
> 
> Free for personal use, $10 otherwise.
> http://www.CubicleSoft.com/VerifyMyPC/
> 
> 



 
____________________________________________________________________________________
8:00? 8:25? 8:40? Find a flick in no time 
with the Yahoo! Search movie showtime shortcut.
http://tools.search.yahoo.com/shortcuts/#news

Reply via email to