Previous | Contents | Index |
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_FLAGSUBKEY | Yes | Input |
REG$_KEYID | Yes | Input |
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_NOTIFYFILTER | Yes | Input |
REG$_RETURNSTATUS | No | Output |
If REG$_KEYID specifies a key other than a predefined key, the system opens the key again (duplicates the key).
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_KEYID | Yes | Input |
REG$_KEYRESULT | Yes | Output |
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_RETURNSTATUS | No | Output |
REG$_SECACCESS | Yes | Input |
REG$_SUBKEYNAME | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_CACHEACTION | No | Output |
REG$_CLASSNAME | No | Output (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_CLASSNAMEMAX | No | Output |
REG$_KEYID | Yes | Input |
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_LASTWRITE | No | Output |
REG$_LINKCOUNT | No | Output |
REG$_LINKPATH | No | Output (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_LINKTYPE | No | Output |
REG$_RETURNSTATUS | No | Output |
REG$_SECURITYPOLICY | No | Output |
REG$_SUBKEYNAMEMAX | No | Output |
REG$_SUBKEYSNUMBER | Yes | Output |
REG$_VALUEDATAMAX | No | Output |
REG$_VALUENAMEMAX | No | Output |
REG$_VALUENUMBER | No | Output |
REG$_VOLATILE | No | Output |
Using this function code, you can group multiple requests into a single call to the $REGISTRY service.
If you use this multiple-request feature, use the REG$_SEPARATOR item code to indicate the end of the set of item codes for the current request and that there is another request to process.
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_DATAFLAGS | No | Output |
REG$_DATATYPE | No | Output |
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_KEYID | Yes | Input |
REG$_LINKCOUNT | No | Output |
REG$_LINKPATH | No | Output (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_LINKTYPE | No | Output |
REG$_RETURNSTATUS | No | Output |
REG$_SEPARATOR | No | n/a |
REG$_VALUEDATA | No | Output |
REG$_VALUEDATASIZE | No | Output |
REG$_VALUENAME | Yes | Input |
REG$_VOLATILE | No | Output |
The set of data information can be either the REG$_DATAFLAGS item code, or the pair REG$_DATATYPE and REG$_VALUEDATA item codes, or all three item codes.
The REG$_FLAGOPCODE item code specifies how the REG$_DATAFLAGS item code should be matched against the database. (See the item codes description for more information about the REG$_FLAGOPCODE item code.)
Every time the system finds a match, it appends the path name relative to the specified key to the REG$_PATHBUFFER item code. A Unicode null character is used to separate the value path names.
If the buffer supplied by the application is not big enough to hold all the value path names found, the system returns the SS$_BUFFEROVF error message in the iosb argument, and the length required to complete the operation successfully is returned in the REG$_REQLENGTH item (if specified).
Use the ellipsis (...) wildcard to match zero or more subkeys in the REG$_KEYPATH item code.
(For example, Hardware\...\disks finds all the paths that start with the Hardware subkey and end with the disk subkey, with zero or more subkeys in between.)
Use the asterisk (*) wildcard to match an entire subkey or a portion of a subkey in the REG$_KEYPATH item code.
Use the percent (%) wildcard to match one character in a key name in the REG$_KEYPATH item code.
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_DATAFLAGS | No | Input |
REG$_DATATYPE | No | Input |
REG$_FLAGOPCODE | No | Input |
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_KEYID | Yes | Input |
REG$_PATHBUFFER | Yes | Output |
REG$_REQLENGTH | No | Output |
REG$_RETURNSTATUS | No | Output |
REG$_VALUEDATA | No | Input |
For this function code, a valid key path is a Unicode string that can include the ellipsis (...), asterisk (*), or percent (%) wildcard character, but that cannot start with the backslash character (\).
Use the ellipsis (...) wildcard to match zero or more subkeys in the REG$_KEYPATH item code. (For example, Hardware\...\disks finds all the paths that start with the Hardware subkey and end with the disk subkey, with zero or more subkeys in between.)
Use the asterisk (*) wildcard to match an entire subkey or a portion of a subkey in the REG$_KEYPATH item code.
Use the percent (%) wildcard to match one character in a key name in the REG$_KEYPATH item code.
An example of a valid key path is as follows:
hardware\system\*\disk%% |
Every time the system finds a match, the system appends its path name relative to the specified key identifier to the REG$_PATHBUFFER item code. A Unicode null character (4 bytes) separates the subkey path names.
If the buffer supplied by the application is not big enough to contain all the subkey path names found, the system returns the SS$_BUFFEROVF error message in the iosb argument, and the system returns the required length to complete the operation successfully in the REG$_REQLENGTH item (if specified).
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_KEYID | Yes | Input |
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_PATHBUFFER | Yes | Output |
REG$_REQLENGTH | No | Output |
REG$_RETURNSTATUS | No | Output |
For this function code a valid key name is a Unicode string that can include the ellipsis (...), asterisk (*), or percent (%) wildcard character, but cannot start with the backslash character (\).
Use the ellipsis (...) wildcard to match zero or more subkeys in the REG$_KEYPATH item code. (For example, Hardware\...\disks finds all the paths that start with the Hardware subkey and end with the disk subkey, with zero or more subkeys in between.)
Use the asterisk (*) wildcard to match an entire subkey or a portion of a subkey in the REG$_KEYPATH item code.
Use the percent (%) wildcard to match one character in a key name in the REG$_KEYPATH item code.
An example of a valid key path is as follows:
hardware\system\... |
For this function code, a valid name is a Unicode string that can include the asterisk (*) and percent (%) wildcard characters.
Every time the system finds a match, the system appends its path name relative to the specified key identifier to the REG$_PATHBUFFER item code. A Unicode null character (4 bytes) separates the subkey path names.
If the buffer supplied by the application is not big enough to contain all the subkey path names found, the system returns the SS$_BUFFEROVF error message in the iosb argument, and the system returns the required length to complete the operation successfully in the REG$_REQLENGTH item (if specified).
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_KEYID | Yes | Input |
REG$_PATHBUFFER | Yes | Output |
REG$_REQLENGTH | No | Output |
REG$_RETURNSTATUS | No | Output |
REG$_VALUENAME | Yes | Input |
Using this function code, you can group multiple requests into a single call to the $REGISTRY service.
If you use this multiple-request feature, use the REG$_SEPARATOR item code to indicate the end of the set of item codes for the current request and that there is another request to process.
When a value is set to a link, the system validates the link unless you specify the REG$M_IGNORE_LINKS function code modifier.
Specify the item codes as follows:
Item Code | Required | Parameter Type |
---|---|---|
REG$_DATAFLAGS | No | Input |
REG$_DATATYPE | No | Input |
REG$_KEYID | Yes | Input |
REG$_KEYPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_LINKPATH | No | Input (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_LINKTYPE | No | Input |
REG$_RETURNSTATUS | No | Output |
REG$_SEPARATOR | No | n/a |
REG$_VALUEDATA | No | Input |
REG$_VALUENAME | No | Input |
Complete descriptions of each item code are provided in the sections that follow this table.
Item Code | Input/Output | Data Type |
---|---|---|
REG$_CACHEACTION | Input, output | Longword |
REG$_CLASSNAME | Input, output | (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_CLASSNAMEMAX | Output | Longword |
REG$_DATAFLAGS | Input, output | Quadword |
REG$_DATATYPE | Input, output | Longword |
REG$_DISPOSITION | Output | Longword |
REG$_FLAGOPCODE | Input | Longword |
REG$_FLAGSUBKEY | Input | Longword |
REG$_KEYID | Input, output | Longword |
REG$_KEYPATH | Input | (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_KEYRESULT | Output | Longword |
REG$_LASTWRITE | Output | Quadword |
REG$_LINKCOUNT | Output | Longword |
REG$_LINKPATH | Input, output | (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_LINKTYPE | Input, output | Longword |
REG$_NEWNAME | Input | Unicode string |
REG$_NOTIFYFILTER | Input | Longword |
REG$_PATHBUFFER | Output | Buffer |
REG$_REQLENGTH | Output | Longword |
REG$_RETURNSTATUS | Output | Longword |
REG$_SECACCESS | Input | Longword |
REG$_SECURITYPOLICY | Input, output | Longword |
REG$_SEPARATOR | n/a | None |
REG$_SUBKEYINDEX | Input | Longword |
REG$_SUBKEYNAME | Input, output | (Pointer to Unicode string. Unicode character is 4 bytes long.) |
REG$_SUBKEYNAMEMAX | Output | Longword |
REG$_SUBKEYSNUMBER | Output | Longword |
REG$_VALUEDATA | Input, output | Buffer |
REG$_VALUEDATAMAX | Output | Longword |
REG$_VALUEDATASIZE | Output | Longword |
REG$_VALUEINDEX | Input | Longword |
REG$_VALUENAME | Input, output | Unicode string |
REG$_VALUENAMEMAX | Output | Longword |
REG$_VALUENUMBER | Output | Longword |
REG$_VOLATILE | Input, output | Longword |
REG$_CACHEACTION
The REG$_CACHEACTION item code is an input item code. It is a longword flag that specifies whether the information on a specified object should be written to disk immediately. It takes one of the following values:
Cache Value Description REG$K_WRITEBEHIND Write information about the specified object written to disk at a later time (default). REG$K_WRITETHRU Write information about the specified object to disk immediately.
Note
If you do not specify this item code, the value or key inherits its value from the parent object. By default, the entry points (REG$_HKEY_CLASSES_ROOT, REG$_HKEY_LOCAL_MACHINE, and REG$_HKEY_USERS) are set with a value equal to that of REG$K_WRITEBEHIND.REG$_CLASSNAME
The REG$_CLASSNAME item code is, depending on the function code, either an input or output item code.The class name is an information field for a key. The type of an object is an example of a class name. It can be composed of any string of Unicode characters. A Unicode character is 4 bytes long.
REG$_CLASSNAMEMAX
The REG$_CLASSNAMEMAX item code is an output item code. It receives the length, in bytes, of the longest string specifying a subkey class name.REG$_DATAFLAGS
Depending on the function code, the REG$_DATAFLAGS item code is either an input or output item code. It is a 64-bit application-dependent value data flag.REG$_DATATYPE
Depending on the function code, the REG$_DATATYPE item code is either an input or output item code.It is a longword that either specifies the type of information to be stored as a value data or receives the type of information of a specified value data component.
It takes one of the following values:
Type code Description REG$K_BINARY Binary data REG$K_DWORD A 32-bit number REG$K_EXPAND_SZ A string of Unicode characters REG$K_MULTI_SZ A concatenated array of REG$K_SZ strings REG$K_NONE No defined value type (default) REG$K_QWORD A 64-bit number REG$K_SZ A null-terminated Unicode string
Note
The difference between REG$K_EXPAND_SZ and REG$K_SZ:A string is a set of characters usually in human-readable form. Many value entries in the OpenVMS Registry are written using a string (REG_SZ) or an expandable string (REG_EXPAND_SZ) format.
An expandable string is usually human-readable text, but it can also include a variable that will be replaced when the string is called by an application.
For example, on a Windows NT system, in the value entry %SystemRoot%\System32\Bootok.exe , %SystemRoot% is the expandable portion of the variable. This part is replaced with the actual location of the directory that contains the Windows NT system files.
REG$_DISPOSITION
The REG$_DISPOSITION item code is an output item code. It is a longword and takes one of the following values:
Disposition value Description REG$K_CREATENEWKEY The key did not exist and was created. REG$K_OPENEXISTINGKEY The key existed and was opened. REG$_FLAGOPCODE
The REG$_FLAGOPCODE item code is an input item code. It is a longword flag that indicates how the REG$_DATAFLAGS input item code should be matched against the data flags field in the OpenVMS Registry database. It takes one of the following values:
Operator code options Description REG$K_ANY The data field in the OpenVMS Registry database must contain at least one of the flags in the REG$_DATAFLAGS input item code. REG$K_EXACTMATCH The REG$_DATAFLAGS input item code must match exactly the data flags field in the OpenVMS Registry database. REG$K_EXCLUDE The data flags field in the OpenVMS Registry database must not contain the flags in the REG$_DATAFLAGS input item code. REG$K_INCLUDE The data flags field in the OpenVMS Registry database must contain, at a minimum, the flags in the REG$_DATAFLAGS input item code. REG$K_NOTANY The data field in the OpenVMS Registry database must not contain any of the flags in the REG$_DATAFLAGS input item code. REG$_FLAGSUBKEY
The REG$_FLAGSUBKEY item code is an input item code. It is a longword Boolean field that indicates the following:
- If set to 1, report changes in a specified key and any of its subkeys.
- If set to 0, report changes to a specified key only.
REG$_KEYID
The REG$_KEYID item code is an input item code. It is a longword that contains the key identifier.REG$_KEYRESULT
The REG$_KEYRESULT item code is an output item code. It is a longword that receives a key identifier. The key identifier can be passed to other Registry calls using the REG$_KEYID item code.REG$_KEYPATH
The REG$_KEYPATH item code is an input item code. It is a string of Unicode characters that specifies a key path. A Unicode character is 4 bytes long.REG$_LASTWRITE
The REG$_LASTWRITE item code is an output item code. It is a quadword representation of absolute time that receives the time a specified key was last written to (including changes to its values).REG$_LINKCOUNT
The REG$_LINKCOUNT item code is an output item code. It is longword count of the number of symbolic links that refer to the item.REG$_LINKPATH
The REG$_LINKPATH item code is, depending on the function code, either an input or an output item code. It is a string of Unicode characters that specifies the key path to which a specified key is linked. A Unicode character is 4 bytes long.REG$_LINKTYPE
The REG$_LINKTYPE item code is, depending on the function code, either an input or an output item code. It is longword type that indicates the link type.
Link Type Description REG$K_NONE No link (default) REG$K_SYMBOLICLINK Symbolic (logical) link REG$_NEWNAME
The REG$_NEWNAME item code is a string of Unicode characters that specifies the new name of the key.REG$_NOTIFYFILTER
The REG$_NOTIFYFILTER item code is an input item code. It is a longword mask that specifies which changes to the specified key and its subkeys and values to report. It takes any combination of the following values:
Value Description REG$M_CHANGEATTRIBUTES An attribute change of the specified key or its subkeys. REG$M_CHANGELASTSET Changes to the last write time of the specified key or its subkeys. REG$M_CHANGENAME A key name change, including creation and deletion, of the specified key or its subkeys.
Previous Next Contents Index