!*** MODULE $REGDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! +===================================================================+ ! | ! | REG - Registry system service ($REGISTRY) definition ! | ! +===================================================================+ ! ! +-------------------------------------------------------------------+ ! | Function codes ! +-------------------------------------------------------------------+ ! PARAMETER REG$FC_CLOSE_KEY = '00000001'X ! Releases the resources for a given key PARAMETER REG$FC_CREATE_KEY = '00000002'X ! Either creates a specified key or opens it if it alre ! Either creates a specified key or opens it if it already ex PARAMETER REG$FC_DELETE_KEY = '00000003'X ! Removes a specified key from the registry PARAMETER REG$FC_DELETE_VALUE = '00000004'X ! Deletes the specified value from a given key PARAMETER REG$FC_ENUM_KEY = '00000005'X ! Retrieves information about a subkey PARAMETER REG$FC_ENUM_VALUE = '00000006'X ! Retrieves information about a value PARAMETER REG$FC_FLUSH_KEY = '00000007'X ! Write all the information of a specified key to disk PARAMETER REG$FC_LOAD_KEY = '00000008'X ! Create a subkey and store information from a given file PARAMETER REG$FC_MODIFY_KEY = '00000009'X ! Modifies information about a specified key PARAMETER REG$FC_MODIFY_TREE_KEY = '0000000A'X ! Modifies information about a specified key and a ! Modifies information about a specified key and all its subk PARAMETER REG$FC_NOTIFY_CHANGE_KEY_VALUE = '0000000B'X ! Notifies the calling process when a spec ! Notifies the calling process when a specified key has chang PARAMETER REG$FC_OPEN_KEY = '0000000C'X ! Opens a specified key PARAMETER REG$FC_QUERY_KEY = '0000000D'X ! Retrieves information about a specified key PARAMETER REG$FC_QUERY_VALUE = '0000000E'X ! Retrieves information about a specified value PARAMETER REG$FC_REPLACE_KEY = '0000000F'X ! Replaces a key and all its subkeys with information ! Replaces a key and all its subkeys with information in a sp PARAMETER REG$FC_RESTORE_KEY = '00000010'X ! Restores a key from a specified file PARAMETER REG$FC_SAVE_KEY = '00000011'X ! Saves a key and its subkeys to a specified file PARAMETER REG$FC_SEARCH_TREE_DATA = '00000012'X ! Scan a key and its subkeys for a given data com PARAMETER REG$FC_SEARCH_TREE_KEY = '00000013'X ! Scan a key and its subkeys for a given subkey PARAMETER REG$FC_SEARCH_TREE_VALUE = '00000014'X ! Scan a key and its subkeys for a given value PARAMETER REG$FC_SET_VALUE = '00000015'X ! Sets value infornation PARAMETER REG$FC_UNLOAD_KEY = '00000016'X ! Removes a key tree form the registry PARAMETER REG$FC_GET_KEY_SECURITY = '00000017'X ! Retrieves a key security profile PARAMETER REG$FC_SET_KEY_SECURITY = '00000018'X ! Sets a key security profile PARAMETER REG$FC_GET_PERFORMANCE = '00000019'X ! Retrieves performance information PARAMETER REG$FC_GET_FILE_INFO = '0000001A'X ! Retrieves file statistics PARAMETER REG$FC_GET_FILE_UPDATE = '0000001B'X ! Retrieves segment allocation information PARAMETER REG$FC_CREATE_DATABASE = '0000001C'X ! Creates the registry database PARAMETER REG$FC_MAKE_SNAPSHOT = '0000001D'X ! Take a snpashot of the Registry database PARAMETER REG$FC_ARCHIVE = '0000001E'X ! Archive the registry database PARAMETER REG$FC_LAST = '0000001F'X ! Always last ! ! +-------------------------------------------------------------------+ ! | Item Code Modifiers ! +-------------------------------------------------------------------+ ! PARAMETER REG$M_UNICODE_STRING = '00002000'X ! 0x2000 string is Unicode ! ! +-------------------------------------------------------------------+ ! | Item Codes ! +-------------------------------------------------------------------+ ! PARAMETER REG$_TERMINATOR = '00000000'X ! network packet terminator PARAMETER REG$_SEPARATOR = '00000001'X ! item code list seperator PARAMETER REG$_SECPROFILE = '00000202'X ! security profile PARAMETER REG$_REQUEST = '00000203'X ! TLV of item code TLVs (request) PARAMETER REG$_ACMODE = '00000504'X ! access mode PARAMETER REG$_ACTIONCODE = '00000505'X ! action code for performance & space PARAMETER REG$_CACHEACTION = '00000506'X ! cache action (thru/behind ) PARAMETER REG$_CANCELNOTIFICATION = '00000207'X ! Cancel notify key change notify PARAMETER REG$_CLASSNAME = '00000108'X ! class name PARAMETER REG$_CLASSNAMEMAX = '00000509'X ! longest class name length PARAMETER REG$_CLASSNAMESIZE = '0000050A'X ! destination's class name buffer size PARAMETER REG$_DATAFLAGS = '0000060B'X ! data flags PARAMETER REG$_DATATYPE = '0000050C'X ! data type PARAMETER REG$_DISPOSITION = '0000050D'X ! createnewkey/openexistingkey PARAMETER REG$_FILEINFODATA = '0000020E'X ! File info data PARAMETER REG$_FILELOAD = '0000070F'X ! OpenVMS file name to load PARAMETER REG$_FILESAVE = '00000710'X ! OpenVMS file name to save PARAMETER REG$_FILEUPDATEDATA = '00000211'X ! File update data PARAMETER REG$_FLAGOPCODE = '00000512'X ! how data flags is used PARAMETER REG$_FLAGSUBKEY = '00000513'X ! report (sub)key changes PARAMETER REG$_KEYID = '00000514'X ! input key id in longword format PARAMETER REG$_KEYID_INTERNAL = '00000215'X ! internal key id in UID/FSO/LH format PARAMETER REG$_KEYFLAGS = '00000516'X ! KEY flags PARAMETER REG$_KEYPATH = '00000117'X ! Path to key object PARAMETER REG$_KEYRESULT = '00000518'X ! output key id in longword format PARAMETER REG$_KEYRESULT_INTERNAL = '00000219'X ! internal key id in UID/FSO/LH format PARAMETER REG$_LASTWRITE = '0000061A'X ! time key was last written PARAMETER REG$_LINKCOUNT = '0000051B'X ! Count of links refer to item PARAMETER REG$_LINKPATH = '0000011C'X ! key path a key is linked to PARAMETER REG$_LINKPATHSIZE = '0000051D'X ! destination's link path buffer size PARAMETER REG$_LINKTYPE = '0000051E'X ! Link type (logical/physical) PARAMETER REG$_LOCK = '0000051F'X ! what lock on open/create key PARAMETER REG$_NEWNAME = '00000120'X ! new name of a key create/rename PARAMETER REG$_NOTIFYFILTER = '00000521'X ! which key changes to reported PARAMETER REG$_PATHBUFFER = '00000222'X ! set of paths separated by null byte PARAMETER REG$_PERFORMANCEDATA = '00000223'X ! Performance data PARAMETER REG$_REQLENGTH = '00000524'X ! required buffer size PARAMETER REG$_RETURNSTATUS = '00000525'X ! return status for a given operation PARAMETER REG$_SECACCESS = '00000526'X ! security access for a new key PARAMETER REG$_SECONDSTATUS = '00000527'X ! secondary status for a given operation PARAMETER REG$_SECURITYPOLICY = '00000528'X ! Security policy to enforce for a key PARAMETER REG$_SEGMENTNUMBER = '00000529'X ! Segment Number for locating space info PARAMETER REG$_SNAPSHOTDESTINATION = '0000072A'X ! Snapshot destination directory PARAMETER REG$_SNAPSHOTVERSIONS = '0000052B'X ! Snapshot versions to maintain PARAMETER REG$_SUBKEYINDEX = '0000052C'X ! Index of the subkey to retrieve PARAMETER REG$_SUBKEYNAME = '0000012D'X ! name of a subkey PARAMETER REG$_SUBKEYNAMEMAX = '0000052E'X ! longest subkey name for a given key PARAMETER REG$_SUBKEYNAMESIZE = '0000052F'X ! destination's subkey name buffer size PARAMETER REG$_SUBKEYSNUMBER = '00000530'X ! Number of subkeys in a given key PARAMETER REG$_SECURITYINFORMATION = '00000531'X ! NT Security information PARAMETER REG$_SECURITYDESCRIPTOR = '00000232'X ! NT Security descriptor PARAMETER REG$_VALUEINDEX = '00000533'X ! index of the value to retrieve PARAMETER REG$_VALUEDATA = '00000234'X ! value data component PARAMETER REG$_VALUEDATAMAX = '00000535'X ! longest value data for a given key PARAMETER REG$_VALUEDATASIZE = '00000536'X ! destination's value data buffer size PARAMETER REG$_VALUENAME = '00000137'X ! specifies the name of a value PARAMETER REG$_VALUENAMEMAX = '00000538'X ! longest value name for a given key PARAMETER REG$_VALUENAMESIZE = '00000539'X ! destination's value name buffer size PARAMETER REG$_VALUENUMBER = '0000053A'X ! number of values in a given key PARAMETER REG$_VOLATILE = '0000053B'X ! Identifies volatility of an object PARAMETER REG$_WILDASTERISK = '0000013C'X ! char to replace asterisk wildcard PARAMETER REG$_WILDPERCENT = '0000013D'X ! char to replace percent wildcard PARAMETER REG$_WILDPERIODS = '0000013E'X ! char to replace periods wildcard PARAMETER REG$_INSTRUMENTFILE = '0000023F'X ! unknown PARAMETER REG$_INSTRUMENTKEY = '00000240'X ! unknown PARAMETER REG$_INSTRUMENTDATA = '00000241'X ! unknown PARAMETER REG$_FILENAME = '00000742'X ! file requested for space monitoring PARAMETER REG$_COUNTER = '00000543'X ! a counter index PARAMETER REG$_SECDESCRIPTORLEN = '00000544'X ! Length of security descriptor PARAMETER REG$_SECDESCLEN_INTERNAL = '00000545'X ! Internal length of security descriptor PARAMETER REG$_VALUEDATASIZE_INTERNAL = '00000546'X ! Internal dest value data buffer size PARAMETER REG$_SAMDESIRED = '00000547'X ! SamDesired - for AS & Bristol only PARAMETER REG$_DATABASE_VERSION = '00000548'X ! Database version for Create Database PARAMETER REG$_LAST = '00000049'X ! Always last ! ! +-------------------------------------------------------------------+ ! | Item Code Values ! +-------------------------------------------------------------------+ ! PARAMETER REG$K_NONE = '00000000'X ! The item is not volatile PARAMETER REG$K_CLUSTER = '00000001'X ! The item is removed when the cluster reboots PARAMETER REG$K_SYSTEM = '00000002'X ! The item is removed when the system reboots PARAMETER REG$K_PROCESS = '00000003'X ! The item is removed when the creating process terminates PARAMETER REG$K_IMAGE = '00000004'X ! The item is removes when the creating image terminates PARAMETER REG$K_WRITEBEHIND = '00000005'X ! The information on the given object can be written to ! The information on the given object can be written to disk PARAMETER REG$K_WRITETHRU = '00000006'X ! The information on the given object must be written to ! The information on the given object must be written to disk PARAMETER REG$K_CREATENEWKEY = '00000007'X ! Created a new key PARAMETER REG$K_OPENEXISTINGKEY = '00000008'X ! Opened an existing key PARAMETER REG$K_POLICY_OPENVMS = '00000009'X ! Access is required to all keys in the key path PARAMETER REG$K_POLICY_NT_40 = '0000000A'X ! Access is required to the first key and the requeste PARAMETER REG$K_INTERNAL = '0000000B'X ! PARAMETER REG$K_HARDLINK = '0000000C'X ! Hard (physical) link PARAMETER REG$K_SYMBOLICLINK = '0000000D'X ! Symbolic (logical) link PARAMETER REG$K_BINARY = '0000000E'X ! Binary data PARAMETER REG$K_DWORD = '0000000F'X ! A 32 bit number PARAMETER REG$K_DWLITTLEENDIAN = '00000010'X ! A 32 bit number in little endian format PARAMETER REG$K_DWBIGENDIAN = '00000011'X ! A 32 bit number in bi endian format PARAMETER REG$K_EXPAND_SZ = '00000012'X ! A string of ISO-1 Latin characters containing environme ! A string of ISO-1 Latin characters containing environment v PARAMETER REG$K_LINK = '00000013'X ! A link to another value PARAMETER REG$K_MULTI_SZ = '00000014'X ! A concatenated array of REG$K_SZ strings PARAMETER REG$K_QWORD = '00000015'X ! A 64 bit number PARAMETER REG$K_RESOURCELIST = '00000016'X ! A device driver resource list PARAMETER REG$K_SZ = '00000017'X ! A null terminated string PARAMETER REG$K_START_FILE = '00000018'X ! PARAMETER REG$K_START_PERF = '00000019'X ! PARAMETER REG$K_STOP_FILE = '0000001A'X ! PARAMETER REG$K_STOP_PERF = '0000001B'X ! PARAMETER REG$K_ZERO_FILE = '0000001C'X ! PARAMETER REG$K_ZERO_PERF = '0000001D'X ! PARAMETER REG$K_SHOW_CTR_FILE = '0000001E'X ! PARAMETER REG$K_SHOW_CTR_PERF = '0000001F'X ! PARAMETER REG$K_SHOW_FILE = '00000020'X ! PARAMETER REG$K_NORMAL = '00000021'X ! String size <= 8K PARAMETER REG$K_LARGE = '00000022'X ! String size > 8K PARAMETER REG$K_EXACTMATCH = '00000023'X ! PARAMETER REG$K_INCLUDE = '00000024'X ! PARAMETER REG$K_EXCLUDE = '00000025'X ! PARAMETER REG$K_ANY = '00000026'X ! PARAMETER REG$K_NOTANY = '00000027'X ! ! ! +-------------------------------------------------------------------+ ! | Function Code Modifiers ! +-------------------------------------------------------------------+ ! PARAMETER REG$M_FC = '000003FF'X PARAMETER REG$M_CASE_SENSITIVE = '00000400'X PARAMETER REG$M_DISABLE_WILDCARDS = '00000800'X PARAMETER REG$M_IGNORE_LINKS = '00001000'X PARAMETER REG$M_NOW = '00002000'X PARAMETER REG$M_NOWAIT = '00004000'X PARAMETER REG$M_UNICODE_VALUES = '00008000'X PARAMETER REG$M_BYPASS = '00010000'X PARAMETER REG$M_INTERNAL = '00020000'X STRUCTURE /REGDEF/ UNION MAP PARAMETER REG$S_FC = 10 PARAMETER REG$V_FC = 0 PARAMETER REG$S_CASE_SENSITIVE = 1 PARAMETER REG$V_CASE_SENSITIVE = 10 ! Indicates that the case sensitivity of keys be uses ! Indicates that the case sensitivity of keys be uses for mat PARAMETER REG$S_DISABLE_WILDCARDS = 1 PARAMETER REG$V_DISABLE_WILDCARDS = 11 ! Indicates that wildcards characters should be tr ! Indicates that wildcards characters should be traited as no PARAMETER REG$S_IGNORE_LINKS = 1 PARAMETER REG$V_IGNORE_LINKS = 12 ! Indicates that symbolic links should not be followed PARAMETER REG$S_NOW = 1 PARAMETER REG$V_NOW = 13 ! Indicates whether or not an operation should be written to di ! Indicates whether or not an operation should be written to PARAMETER REG$S_NOWAIT = 1 PARAMETER REG$V_NOWAIT = 14 ! Indicates that operation should be aborted rather than sta ! Indicates that operation should be aborted rather than stal PARAMETER REG$S_UNICODE_VALUES = 1 PARAMETER REG$V_UNICODE_VALUES = 15 ! Indicates that data is an UNICODE string PARAMETER REG$S_BYPASS = 1 PARAMETER REG$V_BYPASS = 16 ! PARAMETER REG$S_INTERNAL = 1 PARAMETER REG$V_INTERNAL = 17 ! Indicates internal operation BYTE %FILL (3) END MAP END UNION END STRUCTURE ! REGDEF ! ! +-------------------------------------------------------------------+ ! | Key Change Notify Flags ! +-------------------------------------------------------------------+ ! PARAMETER REG$M_CHANGENAME = '00000001'X PARAMETER REG$M_CHANGEATTRIBUTES = '00000002'X PARAMETER REG$M_CHANGELASTSET = '00000004'X PARAMETER REG$M_CHANGESECURITY = '00000008'X STRUCTURE /KEYCHANGEDEF/ UNION MAP PARAMETER REG$S_CHANGENAME = 1 PARAMETER REG$V_CHANGENAME = 0 ! A key name change, includes creation and deletion of it ! A key name change, includes creation and deletion of its su PARAMETER REG$S_CHANGEATTRIBUTES = 1 PARAMETER REG$V_CHANGEATTRIBUTES = 1 ! Attribute change of key or subkeys PARAMETER REG$S_CHANGELASTSET = 1 PARAMETER REG$V_CHANGELASTSET = 2 ! Last write time change of key or subkeys PARAMETER REG$S_CHANGESECURITY = 1 PARAMETER REG$V_CHANGESECURITY = 3 ! Security descriptor change of key or subkeys BYTE %FILL (1) END MAP END UNION END STRUCTURE ! KEYCHANGEDEF ! ! +-------------------------------------------------------------------+ ! | Security access Mask ! +-------------------------------------------------------------------+ ! PARAMETER REG$M_ALLACCESS = '00000001'X PARAMETER REG$M_CREATELINK = '00000002'X PARAMETER REG$M_CREATESUBKEY = '00000004'X PARAMETER REG$M_ENUMSUBKEYS = '00000008'X PARAMETER REG$M_EXECUTE = '00000010'X PARAMETER REG$M_NOTIFY = '00000020'X PARAMETER REG$M_QUERYVALUE = '00000040'X PARAMETER REG$M_READ = '00000080'X PARAMETER REG$M_SETVALUE = '00000100'X PARAMETER REG$M_WRITE = '00000200'X PARAMETER REG$M_DELETEACCESS = '00000400'X PARAMETER REG$M_READCONTROL = '00000800'X PARAMETER REG$M_WRITEDAC = '00001000'X PARAMETER REG$M_WRITEOWNER = '00002000'X PARAMETER REG$M_SYNCHRONIZE = '00004000'X PARAMETER REG$M_ACCESSSYSTEMSECURITY = '00008000'X PARAMETER REG$M_MAXIMUMALLOWED = '00010000'X PARAMETER REG$M_GENERICALL = '00020000'X PARAMETER REG$M_GENERICEXECUTE = '00040000'X PARAMETER REG$M_GENERICWRITE = '00080000'X PARAMETER REG$M_GENERICREAD = '00100000'X STRUCTURE /SECACCESSDEF/ UNION MAP ! NT equivalent PARAMETER REG$S_ALLACCESS = 1 PARAMETER REG$V_ALLACCESS = 0 ! KEY_ALL_ACCESS PARAMETER REG$S_CREATELINK = 1 PARAMETER REG$V_CREATELINK = 1 ! KEY_CREATE_LINK PARAMETER REG$S_CREATESUBKEY = 1 PARAMETER REG$V_CREATESUBKEY = 2 ! KEY_CREATE_SUB_KEY PARAMETER REG$S_ENUMSUBKEYS = 1 PARAMETER REG$V_ENUMSUBKEYS = 3 ! KEY_ENUMERATE_SUB_KEYS PARAMETER REG$S_EXECUTE = 1 PARAMETER REG$V_EXECUTE = 4 ! KEY_EXECUTE PARAMETER REG$S_NOTIFY = 1 PARAMETER REG$V_NOTIFY = 5 ! KEY_NOTIFY PARAMETER REG$S_QUERYVALUE = 1 PARAMETER REG$V_QUERYVALUE = 6 ! KEY_QUERY_VALUE PARAMETER REG$S_READ = 1 PARAMETER REG$V_READ = 7 ! READ_CONTROL|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY PARAMETER REG$S_SETVALUE = 1 PARAMETER REG$V_SETVALUE = 8 ! KEY_SET_VALUE PARAMETER REG$S_WRITE = 1 PARAMETER REG$V_WRITE = 9 ! READ_CONTROL|KEY_SET_VALUE|KEY_CREATE_SUB_KEY PARAMETER REG$S_DELETEACCESS = 1 PARAMETER REG$V_DELETEACCESS = 10 ! DELETE_ACCESS PARAMETER REG$S_READCONTROL = 1 PARAMETER REG$V_READCONTROL = 11 ! READ_CONTROL PARAMETER REG$S_WRITEDAC = 1 PARAMETER REG$V_WRITEDAC = 12 ! WRITE_DAC PARAMETER REG$S_WRITEOWNER = 1 PARAMETER REG$V_WRITEOWNER = 13 ! WRITE_OWNER PARAMETER REG$S_SYNCHRONIZE = 1 PARAMETER REG$V_SYNCHRONIZE = 14 ! SYNCHRONIZE PARAMETER REG$S_ACCESSSYSTEMSECURITY = 1 PARAMETER REG$V_ACCESSSYSTEMSECURITY = 15 ! ACCESS_SYSTEM_SECURITY PARAMETER REG$S_MAXIMUMALLOWED = 1 PARAMETER REG$V_MAXIMUMALLOWED = 16 ! MAXIMUM_ALLOWED PARAMETER REG$S_GENERICALL = 1 PARAMETER REG$V_GENERICALL = 17 ! GENERIC_ALL PARAMETER REG$S_GENERICEXECUTE = 1 PARAMETER REG$V_GENERICEXECUTE = 18 ! GENERIC_EXECUTE PARAMETER REG$S_GENERICWRITE = 1 PARAMETER REG$V_GENERICWRITE = 19 ! GENERIC_WRITE PARAMETER REG$S_GENERICREAD = 1 PARAMETER REG$V_GENERICREAD = 20 ! GENERIC_READ BYTE %FILL (3) END MAP END UNION END STRUCTURE ! SECACCESSDEF ! ! +-------------------------------------------------------------------+ ! | HKEY Definitions ! +-------------------------------------------------------------------+ ! PARAMETER REG$_HKEY_NONE = '00000000'X ! %x00000000 PARAMETER REG$_HKEY_CLASSES_ROOT = '80000000'X ! %x80000000 PARAMETER REG$_HKEY_CURRENT_USER = '80000001'X ! %x80000001 PARAMETER REG$_HKEY_LOCAL_MACHINE = '80000002'X ! %x80000002 PARAMETER REG$_HKEY_USERS = '80000003'X ! %x80000003 PARAMETER REG$_HKEY_PERFORMANCE_DATA = '80000004'X ! %x80000004 PARAMETER REG$_HKEY_LAST_ROOT_KEY = '00000005'X ! !DEC$ END OPTIONS