Document revision date: 30 March 2001

## OpenVMS System Services Reference Manual

Previous | Contents | Index

Required Access or Privileges

$DELETE_INTRUSION requires access to the intrusion database. You must have SECURITY privilege to access the database.

Required Quota

None

Related Services

$SCAN_INTRUSION, $SHOW_INTRUSION

### Condition Values Returned

> SS$_NORMAL | The service completed successfully.
> SS$_ACCVIO | The user_criteria argument cannot be read.
> SS$_BADBUFLEN | The length of the user_criteria argument is out of range.
> SS$_BADPARAM | An invalid flag was specified in the flags argument.
> SS$_NOSECURITY | The caller does not have SECURITY privilege.
> This service can also return any of the following messages passed from the security server:
> SECSRV$_CIADBEMPTY | No records in the intrusion database.
> SECSRV$_NOSUCHINTRUDER | No records matching the specified criteria were found in the intrusion database.
> SECSRV$_SERVERNOTACTIVE | The security server is not currently active. Try the request again later.

## $DELETE_PROXY

> Deletes an existing proxy or removes the default user or a local user from an existing proxy in the proxy database.

### Format

> SYS$DELETE_PROXY rem_node ,rem_user ,[local_user] ,[flags]

### D Prototype

> int sys$delete_proxy (void *rem_node, void *rem_user, void *local_user, unsigned int flags);

### Arguments

> #### rem_node

> OpenVMS usage: | char_string
> type: | character-coded text string
> access: | read only
> mechanism: | by descriptor--fixed-length string descriptor

> Remote node name of the proxy to be deleted from or modified in the proxy database. The rem_node argument is the address of a character-string descriptor pointing to the remote node name string.

> A remote node name consists of 1 to 1024 characters. No specific characters, format, or case are required for a remote node name string. All node names are converted to their DECnet for OpenVMS full name unless the PRX$M_BYPASS_EXPAND flag is set with the flags argument.

> Asterisk (*) and percent sign (%) wildcards are allowed for the remote node specification. If you specify wildcards for the rem_node argument, the security server searches for an exact match to the specified remote node first. If it does not find an exact match, the server performs the requested operations on all of the matching proxies in the proxy database.

> #### rem_user

> OpenVMS usage: | char_string
> type: | character-coded text string
> access: | read only
> mechanism: | by descriptor--fixed-length string descriptor

> Remote user name of the proxy to be deleted from or modified in the proxy database. The rem_user argument is the address of a character-string descriptor pointing to the user name string.

> A remote user name consists of 1 to 32 alphanumeric characters, including dollar signs ($), underscores (_), and brackets ([ ]). Any lowercase characters specified are automatically converted to uppercase.

> The rem_user argument can be specified in user identification code (UIC) format ([group, member]). Brackets are allowed only if the remote user name string specifies a UIC. Group and member are character-string representations of octal numbers with no leading zeros.

> Asterisk (*) and percent sign (%) wildcards are allowed for the remote user specification. If you specify wildcards for the rem_user argument, the server searches for an exact match to the specified remote user first. If it does not find an exact match, the server performs the requested operations on all of the matching proxies in the proxy database.

> #### local_user

> OpenVMS usage: | char_string
> type: | character-coded text string
> access: | read only
> mechanism: | by descriptor--fixed-length string descriptor

> Local user name to delete from the proxy record specified by the rem_node and rem_user arguments in the proxy database. The local_user argument is the address of a character-string descriptor pointing to the local user name.

> A local user name consists of 0 to 32 alphanumeric characters, including dollar signs ($) and underscores (_). If the local_user argument is not specified or has a length of 0, the server will delete the entire record or records specified by the rem_node and rem_user arguments from the proxy database.

> If the local_user argument is specified, the server will delete only the user name specified by the local_user argument from the record specified by the rem_node and rem_user arguments. The local_user argument can specify either the proxy's default user or a user name in the proxy's local users list.

> #### flags

> OpenVMS usage: | mask_longword
> type: | longword (unsigned)
> access: | read only
> mechanism: | by value

> Functional specification for the service and type of user the local_user argument represents. The flags argument is a longword bit mask wherein each bit corresponds to an option.

> Each flag option has a symbolic name. The $PRXDEF macro defines the following symbolic names:

> Symbolic Name | Description
> --- | ---
> PRX$M_BYPASS_EXPAND | The service should not convert the node name specified in the rem_node argument to its corresponding DECnet full name. If this flag is set, it is the caller's responsibility to ensure that the fully expanded node name is passed into the service.
> PRX$M_IGNORE_RETURN | The service should not wait for a return status from the security server. No return status from the server's function will be returned to the caller.
> PRX$M_EXACT | The service should match exactly the remote node and remote user and ignore wildcards.

### Description

> The Delete Proxy service deletes a proxy from, or modifies an existing proxy in, the proxy database.

> Required Access or Privileges

> $DELETE_PROXY requires access to the proxy database. To achieve access, the caller must have either SYSPRV privilege or a UIC group less than or equal to the MAXSYSGRP system parameter.

> Required Quota

> None

> Related Services

> $ADD_PROXY, $DISPLAY_PROXY, $VERIFY_PROXY

### Condition Values Returned

> SS$_NORMAL | The service completed successfully.
> SS$_ACCVIO | The rem_node, rem_user, local_user, or flags argument cannot be read by the service.
> SS$_BADBUFLEN | The length of the rem_node, rem_user, or local_user argument was out of range.
> SS$_BADPARAM | An invalid flag was specified in the flags argument.
> SS$_NOSYSPRV | The caller does not have access to the proxy database.
> This service can also return any of the following messages passed from the security server:
> SECSRV$_BADNODENAMELEN | The node name length is out of range.
> SECSRV$_BADREMUSERLEN | The remote user name length is out of range.
> SECSRV$_INVALIDDELETE | You attempted to remove the last local user with no default user remaining, or you tried to remove the last default user with no local user remaining. You must have at least one local user or one default user.
> SECSRV$_NOSUCHPROXY | The proxy specified by the rem_node and rem_user arguments does not exist in the proxy database.
> SECSRV$_NOSUCHUSER | The specified local user does not exist in the proxy's local user list, or is not the proxy's default user.
> SECSRV$_PROXYNOTACTIVE | Proxy processing is currently stopped. Try the request again later.
> SECSRV$_SERVERNOTACTIVE | The security server is not currently active. Try the request again later.

## $DELETE_REGION_64 (Alpha Only)

> On Alpha systems, deletes a virtual region within the process's address space, including all created virtual addresses within the region.

> This service accepts 64-bit addresses.

### Format

> SYS$DELETE_REGION_64 region_id_64 ,acmode ,return_va_64 ,return_length_64

### C Prototype

> nt sys$delete_region_64 (struct _generic_64 *region_id_64, unsigned int acmode, void *(*(return_va_64)), unsigned __int64 *return_length_64);

### Arguments

> #### region_id_64

> OpenVMS usage: | region identifier
> type: | quadword (unsigned)
> access: | read only
> mechanism: | by 32- or 64-bit reference

> The region ID associated with the region to be deleted. The region ID specified must be one returned by the $CREATE_REGION_64 service. You cannot specify VA$C_P0, VA$C_P1, or VA$C_P2.

> #### acmode

> OpenVMS usage: | access_mode
> type: | longword (unsigned)
> access: | read only
> mechanism: | by value

> Access mode associated with the call to $DELETE_REGION_64. The acmode argument is a longword containing the access mode.

> The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the following symbols and their values for the four access modes:

> Value | Symbolic Name | Access Mode
> --- | --- | ---
> 0 | PSL$C_KERNEL | Kernel
> 1 | PSL$C_EXEC | Executive
> 2 | PSL$C_SUPER | Supervisor
> 3 | PSL$C_USER | User

> The most privileged access mode used is the access mode of the caller. The caller can delete pages only if those pages are owned by an access mode equal to or less privileged than the access mode of the caller.

> Once all pages are deleted within the region, the region can be deleted only if the region is owned by an access mode equal to or less privileged than the access mode of the caller.

> #### return_va_64

> OpenVMS usage: | address
> type: | quadword address
> access: | write only
> mechanism: | by 32- or 64-bit reference

> The lowest process virtual address of the pages that $DELETE_REGION_64 has successfully deleted. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address of the first page deleted. Virtual addresses are deleted from low address to high address, regardless of the direction in which virtual addresses expand for that region.

> #### return_length_64

> OpenVMS usage: | byte count
> type: | quadword (unsigned)
> access: | write only
> mechanism: | by 32- or 64-bit reference

> The length of the virtual address range that $DELETE_REGION_64 has successfully deleted. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the deleted virtual address range in bytes.

### Description

> The Delete a Virtual Region service is a kernel mode service that can be called from any mode. This service deletes the user-defined region specified by the region_id_64 argument. You cannot delete the program (P0), control (P1), or 64-bit program (P2) regions.

> The Delete a Virtual Region service also deletes all created virtual addresses within the specified region before deleting the region itself.

> If a page within the region is owned by an access mode more privileged than the access mode of the caller, the condition value SS$_PAGOWNVIO is returned. The return_va_64 and return_length_64 arguments contain the virtual address range that was actually deleted by $DELETE_REGION_64. In this case, the region is not deleted because there are still some pages mapped within the region.

> To delete a virtual region, the caller's access mode must be at least as privileged as the access mode associated with the region. If the caller is not privileged enough to delete the region, the condition value SS$_REGOWNVIO is returned only if all pages were successfully deleted from within the region.

> If the condition value SS$_ACCVIO is returned by this service, a value cannot be returned in the memory locations pointed to by the return_va_64 and return_length_64 arguments. If the condition value SS$_ACCVIO is returned, no pages have been deleted, and the region has not been deleted.

> If an error other than SS$_ACCVIO occurs, the returned address and returned length indicate the pages that were successfully deleted before the error occurred. If no pages were deleted, the return_va_64 argument contains the value --1 and a value cannot be returned in the memory location pointed to by the return_length_64 argument.

> Required Privileges

> None

> Required Quota

> None

> Related Services

> $CREATE_REGION_64, $CRETVA_64, $CRMPSC_FILE_64, $CRMPSC_GFILE_64, $CRMPSC_GPFILE_64, $CRMPSC_GPFN_64, $CRMPSC_PFN_64, $DELTVA_64, $EXPREG_64, $GET_REGION_INFO, $MGBLSC_64, $MGBLSC_GPFN_64

### Condition Values Returned

> SS$_NORMAL | Successful completion. All pages within the region have been deleted as well as the region itself.
> SS$_ACCVIO | The return_va_64 argument or the return_length_64 argument cannot be written by the caller.
> SS$_IVREGID | Invalid region ID specified. This condition value is returned if P0, P1, or P2 space is specified because these regions cannot be deleted, or if no region exists for the specified ID.
> SS$_REGOWNVIO | The region is owned by a more privileged access mode than the access mode of the caller. All pages within the region have been deleted; however, the region has not been deleted.
> SS$_PAGOWNVIO | A page within the specified region is owned by a more privileged access mode than the access mode of the caller.
> SS$_VA_IN_USE | The existing underlying page cannot be deleted because it is associated with a buffer object.

## $DELLNM

> Deletes all logical names with the specified name at the specified access mode or outer access mode, or it deletes all the logical names with the specified access mode or outer access mode in a specified table.

> On Alpha systems, this service accepts 64-bit addresses.

### Format

> SYS$DELLNM tabnam ,[lognam] ,[acmode]

### C Prototype

> int sys$dellnm (void *tabnam, void *lognam, unsigned char *acmode);

### Arguments

> #### tabnam

> OpenVMS usage: | logical_name
> type: | character-coded text string
> access: | read only
> mechanism: | by 32- or 64-bit descriptor--fixed-length string descriptor (Alpha)
> mechanism: | by 32-bit descriptor--fixed-length string descriptor (VAX)

> Name of a logical name table or a list of tables to be searched for the logical name to be deleted. The tabnam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor that points to the table name. This argument is required.

> If tabnam is not the name of a logical name table, it is assumed to be a logical name and is translated iteratively until either the name of a logical name table is found or the number of translations allowed by the system has been performed.

> If tabnam translates to the name of a list of tables, $DELLNM does the following:

> - If you specify the lognam argument, $DELLNM searches (in order) each table in the list until it finds the first table that contains the specified logical name. If the logical name is at the specified access mode, $DELLNM then deletes occurrences of the logical name at the specified access mode and at outer access modes within the table.
> - If you do not specify the lognam argument, $DELLNM deletes all of the logical names at the specified access mode or at outer access modes from the first table in the list whose access mode is equal to or less privileged than the caller's access mode.

> #### lognam

> OpenVMS usage: | logical_name
> type: | character-coded text string
> access: | read only
> mechanism: | by 32- or 64-bit descriptor--fixed-length string descriptor (Alpha)
> mechanism: | by 32-bit descriptor--fixed-length string descriptor (VAX)

> Logical name to be deleted. The lognam argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a descriptor that points to the logical name string.

> #### acmode

> OpenVMS usage: | access_mode
> type: | byte (unsigned)
> access: | read only
> mechanism: | by 32- or 64-bit reference (Alpha)
> mechanism: | by 32-bit reference (VAX)

> Access mode to be used in the delete operation. The acmode argument is the 32-bit address (on VAX systems) or the 32- or 64-bit address (on Alpha systems) of a byte containing this access mode. The $PSLDEF macro defines symbolic names for the four access modes.

> You determine the access mode actually used in the delete operation by maximizing the access mode of the caller with the access mode specified by the acmode argument; that is, the less privileged of the two is used.

> However, if you have SYSNAM privilege, the delete operation is executed at the specified access mode regardless of the caller's access mode.

> If you omit this argument or specify it as 0, the access mode of the caller is used in the delete operation. The access mode used in the delete operation determines which tables are used and which names are deleted.

### Description

> The Delete Logical Name service deletes all logical names with the specified name at the specified access mode or outer access mode, or it deletes all the logical names with the specified access mode or outer access mode in a specified table. If any logical names being deleted are also the names of logical name tables, then all of the logical names contained within those tables and all of their subtables are also deleted.

> Required Access or Privileges

> Depending on the operation, the calling process might need one of the following access or rights privileges to use $DELLNM:

> - Write and delete access to the logical name table to delete a logical name
> - Write access to the directory table that contains the table name, or SYSPRV privilege, to delete a shareable logical name table
> - SYSNAM privilege to delete a logical name or table at an inner access mode
> - GRPNAM or SYSPRV privilege to delete a logical name from a group table
> - SYSNAM or SYSPRV privilege to delete a logical name from a system table

> Required Quota

> None

> Related Services

> $CRELNM, $CRELNT, $TRNLNM

### Condition Values Returned

> SS$_NORMAL | The service completed successfully.
> SS$_ACCVIO | The service cannot access the locations specified by one or more arguments.
> SS$_BADPARAM | One or more arguments have an invalid value, or a logical name table name was not specified.
> SS$_INSFMEM | There is insufficient dynamic memory to build a message describing the deletion of a clusterwide name.
> SS$_IVLOGNAM | The lognam argument specifies a string whose length is not in the required range of 1 through 255 characters.
> SS$_IVLOGTAB | The tabnam argument does not specify a logical name table.
> SS$_NOLOGNAM | The specified logical name table does not exist, or a logical name with an access mode equal to or less privileged than the caller's access mode does not exist in the logical name table.
> SS$_NOLOGTAB | The specified logical name table does not exist.
> SS$_NOPRIV | The caller lacks the necessary privilege to delete the logical name.
> SS$_TOOMANYLNAM | The logical name translation of the table name exceeded the allowable depth (10 translations).

Previous | Next | Contents | Index

| privacy and legal statement |
4527PRO_029.HTML