Object Names
Named objects provide an easy way for processes to share object handles. The
name specified by the creating process is limited to MAX_PATH characters, and
can include any character except the backslash path-separator character (\). Once
a process has created a named event, mutex, semaphore, or timer object, other
processes can use the name to call the appropriate function (
OpenEvent,
OpenMutex,
OpenSemaphore, or
OpenWaitableTimer) to open a handle to the object. Name comparison is case sensitive.
The names of event, mutex, semaphore, timer, and file-mapping objects share
the same name space. If you specify a name that is in use by an object of another
type when creating an object, the function succeeds, but
GetLastError returns ERROR_ALREADY_EXISTS. Therefore, when creating named objects, use
unique names and be sure to check function return values for duplicate-name
errors.
For example, if the name specified in a call to the
CreateMutex function matches the name of an existing mutex object, the function returns a
handle of the existing object. In this case, the call to
CreateMutex is equivalent to a call to the
OpenMutex function. Having multiple processes use
CreateMutex for the same mutex is therefore equivalent to having one process that calls
CreateMutex while the other processes call
OpenMutex, except that it eliminates the need to ensure that the creating process is
started first. When using this technique for mutex objects, however, none of the
calling processes should request immediate ownership of the mutex. If multiple
processes do request immediate ownership, it can be difficult to predict which
process actually gets the initial ownership.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database