<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vmssoftware.com/index.php?action=history&amp;feed=atom&amp;title=%24DELPRC</id>
	<title>$DELPRC - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vmssoftware.com/index.php?action=history&amp;feed=atom&amp;title=%24DELPRC"/>
	<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=$DELPRC&amp;action=history"/>
	<updated>2026-04-30T10:05:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=$DELPRC&amp;diff=1559&amp;oldid=prev</id>
		<title>Jane.doe at 12:46, 28 November 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=$DELPRC&amp;diff=1559&amp;oldid=prev"/>
		<updated>2019-11-28T12:46:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:46, 28 November 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l124&quot;&gt;Line 124:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 124:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[$SUSPND]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[$SUSPND]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[$WAKE]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[$WAKE]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:System Services]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jane.doe</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=$DELPRC&amp;diff=1426&amp;oldid=prev</id>
		<title>Jane.doe: Created page with &quot;&#039;&#039;&#039;$DELPRC&#039;&#039;&#039;, or &#039;&#039;&#039;Delete Process&#039;&#039;&#039;, is a system service that deletes a process.  =Description= The Delete Process service allows a process to delete its...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=$DELPRC&amp;diff=1426&amp;oldid=prev"/>
		<updated>2019-11-13T20:14:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;$DELPRC&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Delete Process&amp;#039;&amp;#039;&amp;#039;, is a &lt;a href=&quot;/System_Service&quot; title=&quot;System Service&quot;&gt;system service&lt;/a&gt; that deletes a process.  =Description= The Delete Process service allows a process to delete its...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;$DELPRC&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Delete Process&amp;#039;&amp;#039;&amp;#039;, is a [[System Service|system service]] that deletes a process.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
The Delete Process service allows a process to delete itself or another process. If you specify neither the [[#pidadr|pidadr]] nor the [[#prcnam|prcnam]] argument, $DELPRC deletes the calling process; control is not returned. If the longword at address [[#pidadr|pidadr]] is 0, the PID of the target process is returned. This system service requires system dynamic memory.&lt;br /&gt;
&lt;br /&gt;
When you delete a [[Process|process]] or [[Subprocess|subprocess]], a termination message is sent to its creating process, provided the [[Mailbox|mailbox]] to receive the message still exists and the creating process has access to the mailbox. The termination message is sent before the final rundown is initiated; thus, the creating process might receive the message before the process deletion is complete.&lt;br /&gt;
&lt;br /&gt;
Due to the complexity of the required rundown operations, a significant time interval occurs between a delete request and the actual deletion of the process. However, the $DELPRC service returns to the caller immediately after initiating the rundown operation.&lt;br /&gt;
&lt;br /&gt;
If you issue subsequent delete requests for a process currently being deleted, the requests return immediately with a successful completion status.&lt;br /&gt;
&lt;br /&gt;
Process exit handlers are not invoked when a process is deleted. For details on exit handlers, see the [[$DCLEXH]] service.&lt;br /&gt;
&lt;br /&gt;
=Syntax=&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;SYS$DELPRC [&amp;lt;/nowiki&amp;gt;[[#pidadr|pidadr]]&amp;lt;nowiki&amp;gt;] ,[&amp;lt;/nowiki&amp;gt;[[#prcnam|prcnam]]&amp;lt;nowiki&amp;gt;] ,[&amp;lt;/nowiki&amp;gt;[[#flags|flags]]&amp;lt;nowiki&amp;gt;] &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
C prototype:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; int sys$delprc (unsigned int *pidadr, void *prcnam);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Arguments=&lt;br /&gt;
==pidadr==&lt;br /&gt;
{{SyservArgument|process_id|longword (unsigned)|modify|by reference}}&lt;br /&gt;
&lt;br /&gt;
[[PID|Process identification (PID)]] of the process to be deleted. The pidadr argument is the address of a longword that contains the PID. The pidadr argument can refer to a process running on the local node or a process running on another node in the OpenVMS Cluster system.&lt;br /&gt;
You must specify the pidadr argument to delete processes in other [[UIC]] groups.&lt;br /&gt;
&lt;br /&gt;
==prcnam==&lt;br /&gt;
{{SyservArgument|process_name|character-coded text string|read only|by descriptor–fixed-length string descriptor}}&lt;br /&gt;
&lt;br /&gt;
Process name of the process to be deleted. The prcnam is the address of a character string descriptor pointing to the process name string. A process running on the local node can be identified with a 1- to 15-character string. To identify a process on a particular node on a cluster, specify the full process name, which includes the node name as well as the process name. The full process name can contain up to 23 characters.&lt;br /&gt;
&lt;br /&gt;
You use the prcnam argument to delete only processes in the same UIC group as the calling process, because process names are unique to UIC groups, and the operating system uses the UIC group number of the calling process to interpret the process name specified by the prcnam argument.&lt;br /&gt;
&lt;br /&gt;
You must use the pidadr argument to delete processes in other groups.&lt;br /&gt;
&lt;br /&gt;
==flags==&lt;br /&gt;
{{SyservArgument|mask|longword(unsigned)|read only|by value}}&lt;br /&gt;
&lt;br /&gt;
The flags argument can be used to control whether exit handlers are called by $DELPRC. If the flags argument is not specified or is specified with a zero, the system parameter DELPRC_EXIT controls what exit handlers, if any, are called by $DELPRC.&lt;br /&gt;
The $DELPRCSYMDEF macro defines a symbolic name for EXIT and NOEXIT. The EXIT flag should be or&amp;#039;d with the access mode defined by the $PSLDEF macro for the initial exit handler.&lt;br /&gt;
The following table describes each flag:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;col&amp;quot; | Flag &lt;br /&gt;
| colspan=&amp;quot;col&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| DELPRC$M_EXIT &lt;br /&gt;
| When set, exit handlers as specified by DELPRC$M_MODE are called.&lt;br /&gt;
This flag is ignored for a hard suspended process.&lt;br /&gt;
|-&lt;br /&gt;
| DELPRC$M_MODE &lt;br /&gt;
| 2 bit field: values psl$c_kernel, psl$c_exec, psl$c_super, psl$c_user (from&lt;br /&gt;
the $PSLDEF macro)&lt;br /&gt;
|-&lt;br /&gt;
| DELPRC$M_NOEXIT &lt;br /&gt;
| Set to disable any exit handler execution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Deleting the current process:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
When $DELPRC is used to delete the current process, execution cannot continue in the mode from which $DELPRC was called. The first exit handlers that are called will be in the next more privileged mode relative to the mode from which $DELPRC was called (subject to options defined). For example:&lt;br /&gt;
&lt;br /&gt;
* $DELPRC called from user mode can call supervisor mode exit handlers.&lt;br /&gt;
* $DELPRC called from exec mode can only execute kernel mode exit handlers.&lt;br /&gt;
* $DELPRC called from kernel mode cannot call exit handlers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Condition Values Returned=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;col&amp;quot; | Value&lt;br /&gt;
! colspan=&amp;quot;col&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NORMAL&lt;br /&gt;
| This service completed successfully.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_ACCVIO&lt;br /&gt;
| The process name string or string descriptor cannot be read by the caller, or the process identification cannot be written by the caller.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_INCOMPAT&lt;br /&gt;
| The remote node is running an incompatible version of the operating system.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_INSFMEM&lt;br /&gt;
| The system dynamic memory is insufficient for completing the operation.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NONEXPR&lt;br /&gt;
| The specified process does not exist, or an invalid process identification was specified.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NOPRIV&lt;br /&gt;
| The caller does not have the privilege to delete the specified process.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_NOSUCHNODE&lt;br /&gt;
| The process name refers to a node that is not currently recognized as part of the cluster.&lt;br /&gt;
|-&lt;br /&gt;
| SS$_REMRSRC&lt;br /&gt;
| The remote node has insufficient resources to respond to the request. (Bring this error to the attention of your system manager.)&lt;br /&gt;
|-&lt;br /&gt;
| SS$_UNREACHABLE&lt;br /&gt;
| The remote node is a member of the cluster but is not accepting requests. (This is normal for a brief period early in the system boot process.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Privileges Required=&lt;br /&gt;
Depending on the operation, the calling process might need one of the following privileges to use $DELPRC:&lt;br /&gt;
* [[GROUP]] privilege to delete processes in the same group that do not have the same UIC&lt;br /&gt;
* [[WORLD]] privilege to delete any process in the system&lt;br /&gt;
&lt;br /&gt;
=Quota Required=&lt;br /&gt;
None. Deductible resource quotas granted to subprocesses are returned to the creating process when&lt;br /&gt;
the subprocesses are deleted.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[$CANEXH]]&lt;br /&gt;
* [[$CREPRC]]&lt;br /&gt;
* [[$DCLEXH]]&lt;br /&gt;
* [[$EXIT]]&lt;br /&gt;
* [[$FORCEX]]&lt;br /&gt;
* [[$GETJPI]]&lt;br /&gt;
* [[$GETJPIW]]&lt;br /&gt;
* [[$HIBER]]&lt;br /&gt;
* [[$PROCESS_SCAN]]&lt;br /&gt;
* [[$RESUME]]&lt;br /&gt;
* [[$SETPRI]]&lt;br /&gt;
* [[$SETPRN]]&lt;br /&gt;
* [[$SETPRV]]&lt;br /&gt;
* [[$SETRWM]]&lt;br /&gt;
* [[$SUSPND]]&lt;br /&gt;
* [[$WAKE]]&lt;/div&gt;</summary>
		<author><name>Jane.doe</name></author>
	</entry>
</feed>