nwnss: import ZLSS salvage dependency runtime
This commit is contained in:
377
include/nwnss/support/lnxmbINC/nwreg.h
Normal file
377
include/nwnss/support/lnxmbINC/nwreg.h
Normal file
@@ -0,0 +1,377 @@
|
||||
/****************************************************************************
|
||||
|
|
||||
| (C) Copyright 2004 Novell, Inc.
|
||||
| All Rights Reserved.
|
||||
|
|
||||
| This program is free software; you can redistribute it and/or
|
||||
| modify it under the terms of version 2 of the GNU General Public
|
||||
| License as published by the Free Software Foundation.
|
||||
|
|
||||
| This program is distributed in the hope that it will be useful,
|
||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
| GNU General Public License for more details.
|
||||
|
|
||||
| You should have received a copy of the GNU General Public License
|
||||
| along with this program; if not, contact Novell, Inc.
|
||||
|
|
||||
| To contact Novell about this file by physical or electronic mail,
|
||||
| you may find current contact information at www.novell.com
|
||||
|
|
||||
|***************************************************************************/
|
||||
/* ----------------------------------------------------------------------------
|
||||
NetWare Registry Information
|
||||
|
||||
This file documents the NetWare registry extentions that allow NLMs
|
||||
to access to the NetWare registry database. All Registry API's have
|
||||
been defined and documented below.
|
||||
|
||||
IMPORTANT NOTE: It is possible to make your system unbootable by
|
||||
corrupting the registry database!
|
||||
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
//
|
||||
// Well Known
|
||||
//
|
||||
#define HKEY LONG
|
||||
#define REGSAM LONG
|
||||
//#ifndef BOOL
|
||||
//#define BOOL unsigned int
|
||||
//#endif
|
||||
#define REGEVT struct LoadDefinitionStructure *
|
||||
#define SECURITY_ATTRIBUTES LONG /* Connection Number */
|
||||
//
|
||||
// Reserved Key Handles.
|
||||
//
|
||||
#define HKEY_ROOT ((HKEY)0x80000000)
|
||||
#define HKEY_LOCAL_MACHINE ((HKEY)0x80000002)
|
||||
#define HKEY_PERFORMANCE_DATA ((HKEY)0x80000004)
|
||||
#define HKEY_DYN_DATA ((HKEY)0x80000006)
|
||||
|
||||
#define HKLM HKEY_LOCAL_MACHINE
|
||||
#define HKPD HKEY_PERFORMANCE_DATA
|
||||
#define HKDD HKEY_DYN_DATA
|
||||
|
||||
//
|
||||
// Data Types
|
||||
//
|
||||
#define REG_NONE 0 // No value type
|
||||
#define REG_SZ 1 // ASCIIZ null terminated string
|
||||
#define REG_EXPAND_SZ 2 // ASCIIZ null terminated string (with environment variable references)
|
||||
#define REG_BINARY 3 // Free form binary
|
||||
#define REG_DWORD 4 // 32-bit number
|
||||
#define REG_DWORD_BIG_ENDIAN 5 // 32-bit number
|
||||
#define REG_LINK 6 // Symbolic Link
|
||||
#define REG_MULTI_SZ 7 // Multiple ASCIIZ null terminated strings
|
||||
#define REG_RESOURCE_LIST 8 // Resource list in the resource map
|
||||
#define REG_FULL_RESOURCE_DESCRIPTOR 9 // Resource list in the hardware description
|
||||
#define REG_RESOURCE_REQUIREMENTS_LIST 10
|
||||
#define REG_QWORD 11 // 64-bit number
|
||||
|
||||
|
||||
//
|
||||
// Open/Create Options
|
||||
//
|
||||
|
||||
#define REG_OPTION_RESERVED 0x00000000 // Parameter is reserved
|
||||
#define REG_OPTION_NON_VOLATILE 0x00000000 // Key is preserved when system is rebooted
|
||||
#define REG_OPTION_VOLATILE 0x00000001 // Key is not preserved when system is rebooted
|
||||
#define REG_OPTION_CREATE_LINK 0x00000002 // Created key is a symbolic link
|
||||
#define REG_OPTION_BACKUP_RESTORE 0x00000004 // open for backup or restore special access rules privilege required
|
||||
#define REG_OPTION_OPEN_LINK 0x00000008 // Open symbolic link
|
||||
|
||||
//
|
||||
// Key creation/open disposition
|
||||
//
|
||||
#define REG_CREATED_NEW_KEY 0x00000001 // New Registry Key created
|
||||
#define REG_OPENED_EXISTING_KEY 0x00000002 // Existing Key opened
|
||||
|
||||
//
|
||||
// Security Access Mask values
|
||||
//
|
||||
#define KEY_QUERY_VALUE 0x00000001
|
||||
#define KEY_SET_VALUE 0x00000002
|
||||
#define KEY_CREATE_SUB_KEY 0x00000004
|
||||
#define KEY_ENUMERATE_SUB_KEYS 0x00000008
|
||||
#define KEY_NOTIFY 0x00000010
|
||||
#define KEY_CREATE_LINK 0x00000020
|
||||
|
||||
#define KEY_READ (KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY)
|
||||
#define KEY_WRITE (KEY_SET_VALUE | KEY_CREATE_SUB_KEY)
|
||||
#define KEY_EXECUTE (KEY_READ)
|
||||
#define KEY_ALL_ACCESS (KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY | KEY_CREATE_LINK)
|
||||
|
||||
//
|
||||
// Notify filter values
|
||||
//
|
||||
#define REG_NOTIFY_CHANGE_NAME 0x00000001 // Create or delete (child)
|
||||
#define REG_NOTIFY_CHANGE_ATTRIBUTES 0x00000002
|
||||
#define REG_NOTIFY_CHANGE_LAST_SET 0x00000004 // time stamp
|
||||
#define REG_NOTIFY_CHANGE_SECURITY 0x00000008
|
||||
|
||||
#define REG_LEGAL_CHANGE_FILTER \
|
||||
(REG_NOTIFY_CHANGE_NAME |\
|
||||
REG_NOTIFY_CHANGE_ATTRIBUTES |\
|
||||
REG_NOTIFY_CHANGE_LAST_SET |\
|
||||
REG_NOTIFY_CHANGE_SECURITY)
|
||||
|
||||
|
||||
//
|
||||
// InValid Character Set for Names (Case Preserved, Case Insensitive)
|
||||
//
|
||||
#define NULL_CHAR 0x00
|
||||
#define SLASH_CHAR 0x5c
|
||||
|
||||
|
||||
//
|
||||
// VALENT Definition
|
||||
//
|
||||
typedef struct val_ent
|
||||
{
|
||||
BYTE *vValueName; /* SET BY CALLER -- contains name of value to get */
|
||||
LONG vValueLen; /* SET BY OS -- contains size of value */
|
||||
void *vValueData; /* SET BY OS -- pointer to where data place in specified buffer */
|
||||
LONG vDataType; /* SET BY OS -- contains the data type */
|
||||
} VALENT;
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
|
||||
NetWare Registry APIs
|
||||
---------------------
|
||||
RegCloseKey
|
||||
RegCreateKeyEx
|
||||
RegDeleteKey
|
||||
RegDeleteValue
|
||||
RegEnumKeyEx
|
||||
RegEnumValue
|
||||
RegNotifyChangeKeyValue
|
||||
RegOpenKeyEx
|
||||
RegQueryInfoKey
|
||||
RegQueryValueEx
|
||||
RegSetValueEx
|
||||
|
||||
---------------------------------------------------------------------------- */
|
||||
|
||||
extern LONG RegCloseKey(HKEY hKey);
|
||||
|
||||
extern LONG RegCreateKeyEx(
|
||||
HKEY hKey,
|
||||
BYTE *SubKey,
|
||||
LONG Reserved, /* reserved for future use */
|
||||
BYTE *reserved0, /* reserved for future use */
|
||||
LONG Options, /* volatile or not */
|
||||
REGSAM samDesired, /* security access mask */
|
||||
LONG Reserved1, /* reserved for future use */
|
||||
HKEY *newHKey, /* new handle */
|
||||
LONG *rtnDisposition); /* disposition taken */
|
||||
|
||||
extern LONG RegDeleteKey(
|
||||
HKEY hKey,
|
||||
BYTE *ptrSubKey); /* string identifying the subkey to delete */
|
||||
|
||||
extern LONG RegDeleteValue(
|
||||
HKEY hKey,
|
||||
BYTE *ptrValueName); /* name of value to delete */
|
||||
|
||||
extern LONG RegEnumKeyEx(
|
||||
HKEY hKey,
|
||||
LONG dwIndex, /* numeric index of key to enumerate */
|
||||
BYTE *Name, /* returned key name */
|
||||
LONG *lenName, /* sizeof key name*/
|
||||
LONG *Reserved, /* reserved for future use */
|
||||
BYTE *Reserved0, /* reserved for future use */
|
||||
LONG *Reserved1, /* reserved for future use */
|
||||
LONG *ptrLastWriteTime); /* DOS time of last modification of $subkey */
|
||||
|
||||
extern LONG RegEnumValue(
|
||||
HKEY hKey,
|
||||
LONG dwIndex, /* numeric index of key to enumerate */
|
||||
BYTE *Name, /* returned value name */
|
||||
LONG *lenName, /* sizeof value name */
|
||||
LONG *Reserved, /* must be zero */
|
||||
LONG *lpType, /* returned type of $valname */
|
||||
void *Data, /* data associated with $valname (of data type $type) */
|
||||
LONG *sizeData); /* sizeof data returned */
|
||||
|
||||
extern LONG RegFlushKey(
|
||||
HKEY hKey);
|
||||
|
||||
extern LONG RegLoadKey(
|
||||
HKEY hKey,
|
||||
BYTE *keyName, /* string identifying key to created under the specified HKEY */
|
||||
BYTE *pathAndFileName); /* path and file name point the hive created by a RegSaveKey */
|
||||
|
||||
|
||||
extern LONG RegNotifyChangeKeyValue(
|
||||
HKEY hKey,
|
||||
BOOL bWatchSubtree,
|
||||
LONG dwNotifyFilter,
|
||||
REGEVT hEvent,
|
||||
BOOL fAsynchronus);
|
||||
|
||||
extern LONG RegOpenKeyEx(
|
||||
HKEY hKey,
|
||||
BYTE *SubKey, /* string identifying subkey of $key */
|
||||
LONG ulOptions,
|
||||
REGSAM samDesired, /* requested security access mask */
|
||||
HKEY *newHKey); /* returned key handle */
|
||||
|
||||
extern LONG RegQueryInfoKey(
|
||||
HKEY hKey,
|
||||
BYTE *reserved2,
|
||||
LONG *reserved3,
|
||||
LONG *Reserved, /* reserved for future use */
|
||||
LONG *rtnSubKeys, /* number of subkeys for this key */
|
||||
LONG *rtnMaxSubKeyLen, /* size of largest subkey */
|
||||
LONG *Reserved0, /* reserved for future use */
|
||||
LONG *rtnValues, /* number of values associated with this key */
|
||||
LONG *MaxValueNameLen, /* size of largest value name */
|
||||
LONG *MaxValueLen, /* size of largest value data */
|
||||
LONG Reserved1, /* reserved for future use */
|
||||
LONG *ptrLastWriteTime); /* time of last write (DOS Time Format )*/
|
||||
|
||||
extern LONG RegQueryMultipleValues(
|
||||
HKEY hKey,
|
||||
VALENT *pValent,
|
||||
LONG numOfValents,
|
||||
void *data,
|
||||
LONG *totalSize);
|
||||
|
||||
|
||||
extern LONG RegQueryValue(
|
||||
HKEY hKey,
|
||||
BYTE *SubKey, /* string identifying subkey of $key */
|
||||
void *lpData, /* returned type of $data */
|
||||
LONG *DataLen); /* returned data associated with $valname */
|
||||
|
||||
|
||||
extern LONG RegQueryValueEx(
|
||||
HKEY hKey,
|
||||
BYTE *ptrValueName, /* string identifying value to retreive */
|
||||
LONG *Reserved, /* reserved for future use */
|
||||
LONG *lpType, /* returned type of data */
|
||||
void *lpData, /* returned data associated with $valname */
|
||||
LONG *DataLen); /* sizeof returned data */
|
||||
|
||||
extern LONG RegSaveKey(
|
||||
HKEY hkey,
|
||||
BYTE *pathAndFileName, /* path and file name */
|
||||
SECURITY_ATTRIBUTES SecurityAttrs); /* security attributes */
|
||||
|
||||
extern LONG RegSetValue(
|
||||
HKEY hKey,
|
||||
BYTE *SubKey,
|
||||
LONG dataType, /* data type of $data */
|
||||
void *Data, /* data to associate with valname */
|
||||
LONG sizeOfData); /* sizeof $data */
|
||||
|
||||
|
||||
extern LONG RegSetValueEx(
|
||||
HKEY hKey,
|
||||
BYTE *ValueName, /* name of value to set */
|
||||
LONG Reserved, /* reserved for future use */
|
||||
LONG dataType, /* data type of $data */
|
||||
BYTE *Data, /* data to associate with valname */
|
||||
LONG sizeOfData); /* sizeof $data */
|
||||
|
||||
/*------------------------------------------------------------------------------------------------------------------**
|
||||
** extern LONG CloseConfigFile(); * THIS API IS ONLY TO BE USED BY ORION NLMs * **
|
||||
** extern void InitializeClusterCfgFileJumpTable(void *, ...); * THIS API IS ONLY TO BE USED BY ORION NLMs * **
|
||||
** extern void InitializeLocalCfgFileJumpTable(void); * THIS API IS ONLY TO BE USED BY ORION NLMs * **
|
||||
**------------------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
|
||||
NetWare Remote Registry Access NCPs
|
||||
----------------------------------
|
||||
ncp xx 00 f_RegCloseKey
|
||||
ncp xx 01 f_RegCreateKeyEx
|
||||
ncp xx 02 f_RegDeleteKey
|
||||
ncp xx 03 f_RegDeleteValue
|
||||
ncp xx 04 f_RegEnumKeyEx
|
||||
ncp xx 05 f_RegEnumValue
|
||||
ncp xx 06 f_RegNotifyChangeKeyValue
|
||||
ncp xx 07 f_RegOpenKeyEx
|
||||
ncp xx 08 f_RegQueryInfoKey
|
||||
ncp xx 09 f_RegQueryValueEx
|
||||
ncp xx 10 f_RegSetValueEx
|
||||
|
||||
---------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
/*
|
||||
Error Codes
|
||||
*/
|
||||
#define REG_ERR_INVALID_HANDLE 0x40000001
|
||||
#define REG_ERR_INPUT_PARAMETER_NO_DATA 0x40000002
|
||||
#define REG_ERR_VALUE_NOT_SET 0x40000003
|
||||
#define REG_ERR_ENUM_INDEX_OUT_OF_RANGE 0x40000004
|
||||
#define REG_ERR_NAME_BUFFER_TOO_SMALL 0x40000005
|
||||
#define REG_ERR_VALUE_BUFFER_TOO_SMALL 0x40000006
|
||||
#define REG_ERR_SAM_CHECK_FAILED 0x40000007
|
||||
#define REG_ERR_DATABASE_IS_CORRUPT 0x40000008
|
||||
#define REG_ERR_INCOMPLETE_SUBKEY_PATH 0x40000009
|
||||
#define REG_ERR_VALUE_SEARCH_FAILED 0x4000000a
|
||||
#define REG_ERR_INTERNAL_RESOURCE_FAILURE 0x4000000b
|
||||
#define REG_ERR_DB_WRITE_ERROR 0x4000000c
|
||||
#define REG_ERR_RESERVED_KEYS_NO_DELETE 0x4000000d
|
||||
#define REG_ERR_SUBKEY_SEARCH_FAILED 0x4000000e
|
||||
#define REG_ERR_NOT_ACCESSIBLE 0x4000000f
|
||||
#define REG_ERR_REG_SZ_ONLY_ALLOWED 0x40000010
|
||||
#define REG_ERR_NO_FREE_HANDLE_SLOTS 0x40000011
|
||||
#define REG_ERR_DATABASE_NOT_ACCESSIBLE 0x40000012
|
||||
#define REG_ERR_INVALID_CHARACTER 0x40000013
|
||||
#define REG_ERR_FILE_CREATION_FOR_SAVEKEY 0x40000014
|
||||
#define REG_ERR_SERVICE_NOT_AVAILABLE 0x40000015
|
||||
#define REG_ERR_VALUE_SIZE_TOO_LARGE 0x40000016
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
|
||||
Reserved NetWare PATHS & KEYS under HKEY_LOCAL_MACHINE
|
||||
|
||||
---------------------------------------------------------------------------- */
|
||||
|
||||
#define REGSTR_SET_PARAMETERS "Setable Parameters"
|
||||
#define REGSTR_SET_PARAMETER_CURRENT_VALUE "Current Value"
|
||||
#define REGSTR_SET_PARAMETER_PENDING_VALUE "Pending Value"
|
||||
#define REGSTR_SET_PARAMETER_CONTROL_INFO "Control Info"
|
||||
#define REGSTR_SET_PARAMETER_DEFAULT_VALUE "Default Value"
|
||||
|
||||
#define REGSTR_SERVER_NAME "Server Name"
|
||||
#define REGSTR_SERVER_OPERATION_MODE "Operational Mode"
|
||||
|
||||
#define REGSTR_NO_SPLASH "No Splash"
|
||||
#define REGSTR_PROTOCOL_IPX_INTERNAL_NET_NUMBER "Protocols\\IPX\\Internal Net Number"
|
||||
|
||||
|
||||
#define REGSTR_LOAD_ORDER "Load Control"
|
||||
#define REGSTR_LOAD_ORDER_CREATOR "Load Control\\Creator Info"
|
||||
#define REGSTR_LOAD_ORDER_STAGE0 "Load Control\\Stage0"
|
||||
#define REGSTR_LOAD_ORDER_STAGE1 "Load Control\\Stage1"
|
||||
#define REGSTR_LOAD_ORDER_STAGE2 "Load Control\\Stage2"
|
||||
#define REGSTR_LOAD_ORDER_STAGE3 "Load Control\\Stage3"
|
||||
#define REGSTR_LOAD_ORDER_STAGE4 "Load Control\\Stage4"
|
||||
#define REGSTR_LOAD_ORDER_STAGE5 "Load Control\\Stage5"
|
||||
#define REGSTR_CREATOR_INFO "Creator Info"
|
||||
#define REGSTR_LOAD_ORDER_BOOT_INFO "Load Control\\Boot Info"
|
||||
#define REGSTR_BOOT_NCF_DATE_TIME_INFO "Startup & AutoExec Info"
|
||||
|
||||
#define REGSTR_NCP_CONTROL_INFO "NCP Control"
|
||||
|
||||
#define REGSTR_SERVER_GUID_INFO "Server GUID"
|
||||
#define REGSTR_LAST_ISSUED_GUID "Last Issued GUID"
|
||||
|
||||
#define REGSTR_ALERT_CONTROL "Alert Control"
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
|
||||
Reserved NetWare PATHS & KEYS under HKEY_PERFORMANCE_DATA
|
||||
|
||||
---------------------------------------------------------------------------- */
|
||||
#define REGSTR_SERVER_WORKING_SET "Server Working Set"
|
||||
#define REGSTR_LEGACY_FILE_SYSTEM "Legacy File System"
|
||||
#define REGSTR_LEGACY_CACHE "Legacy Cache"
|
||||
#define REGSTR_LEGACY_PROCESSES "Legacy Processes"
|
||||
#define REGSTR_LEGACY_DIRECTORY_CACHE "Legacy Directory Cache"
|
||||
#define REGSTR_LEGACY_VOLUMES "Legacy Volumes"
|
||||
Reference in New Issue
Block a user