Guardian Procedure Calls Reference Manual
This process is not privileged, is not the target process, and does not own the target process.
SEGMENT_PIN_REUSED17
The SEGMENT_GETINFOSTRUCT_ procedure is being used in iterative mode on a different process than
itself and that process terminated between iterations. A different process is now using the same PIN that was
used by the terminated process.
Structure Definitions for info
The segmentInfo structure is defined in kmem.h for C as:
/* structure for info parameter */
typedef struct segmentInfo { /* structure for info parameter */
uint16 resultVersion; /* Reported version */
int16 errorDetail; /* 0 unless a distinctive error results */
segid_t segID; /* ID of reported segment, or nullSegID as input to start iterations */
int16 usageFlags; /* see enum segmentInfoUsage */
uint64 baseAddress; /* base address of segment */
uint64 segmentSize; /* size of reported segment */
uint64 maxSegSize; /* maxSize of reported segment */
int32 useCount; /* total users (sharers) of segment*/
int32 numDataSegs; /* segments with assigned ID in this process */
uint8 fileNameLen; /* file name length, or 0 */
char fileName[39]; /* file name, NUL terminated */
uint64 verifier; /* internal use only */
} segmentInfo;
An equivalent data structure is defined in KMEM for TAL.
UsageFlags Values
The following bit values defined in kmem.h for C and KMEM for TAL may be set in the usageFlags
field of the segmentInfo structure:
Segment is in 64-bit address space.MM_SegIs64Mask (0x1000)
Segment is accessible only with privilege.MM_HideableSegMask
(0x0800)
Segment is unmapped (formerly "hidden").MM_UnmappedSegMask
(0x0400)
Segment is KMS backed.MM_KMSSegMask (0x0200)
Segment is an OSS shared segment.MM_OSSSegMask (0x0100)
Segment is unaliased.MM_UnAliasedSegMask
(0x0080)
Segment is flat.MM_FlatSegMask (0x0040)
Segment is resident cache.MM_ResidentCacheSegMask
(0x0020)
Segment is subject to sharing.MM_SharedSegMask (0x0010)
Segment is currently selected.MM_CurrentSegMask (0x0008)
Segment is read-only.MM_ReadOnlySegMask
(0x0004)
Segment is extensible.MM_ExtensibleSegMask
(0x0002)
Segment is resident.MM_ResidentSegMask
(0x0001)
Considerations
• This procedure supports TNS as well as native callers. For TNS, info is a 32-bit pointer.
• The caller must pass as info a pointer to a memory area of at least version &
segmentInfoSizeMask bytes. This requirement is met by passing as info a pointer to an
SEGMENT_GETINFOSTRUCT_ Procedure 1293