{{page>en:templates:fapiint}}
====== DosGetShrSeg ======
This call accesses a shared memory segment previously allocated by another process.
===== Syntax =====
DosGetShrSeg (Name, Selector)
===== Parameters =====
* Name ([[PSZ]]) - input : Address of the name string associated with the shared memory segment to be accessed. The name is an ASCIIZ string in the format of an OS/2 filename in a subdirectory called \SHAREMEM\, for example, \SHAREMEM\PUBLIC.DAT.
* Selector ([[PSEL]]) - output : Address of the selector for the shared memory segment.
===== Return Code =====
rc ([[USHOR]]T) - return: Return code
*0 NO_ERROR
*2 ERROR_FILE_NOT_FOUND
*4 ERROR_TOO_MANY_OPEN_FILES
*123 ERROR_INVALID_NAME
===== Remarks =====
DosGetShrSeg provides access to a named shared segment allocated by another process with [[DosAllocShrSeg]]. The selector returned by DosGetShrSeg is the same as the one returned by the [[DosAllocShrSeg]] call.
A usage count is maintained for a named shared segment. Issuing DosGetShrSeg increments the count, and issuing [[DosFreeSeg]] decrements the count. When the usage count equals zero, the named shared segment is deallocated. Once the segment has been deallocated, it must be reinitialized by a call to [[DosAllocShrSeg]].
To access shared memory that is allocated by another process with [[DosAllocSeg]] and [[DosAllocHuge]] requests, a process issues [[DosGetSeg]].
===== Bindings =====
==== C ====
#define INCL_DOSMEMMGR
USHORT rc = DosGetShrSeg(Name, Selector);
PSZ Name; /* Name string */
PSEL Selector; /* Selector of shared segment */
USHORT rc; /* return code /*
==== MASM ====
EXTRN DosGetShrSeg:FAR
INCL_DOSMEMMGR EQU 1
PUSH@ ASCIIZ Name ;Name string
PUSH@ WORD Selector ;Selector of shared segment (returned)
CALL DosGetShrSeg
Returns WORD
{{page>en:templates:fapi}}