CASA/LoginCapture/windows/external/xplatapi/include/nwdsevnt.h
2005-10-11 19:51:00 +00:00

706 lines
34 KiB
C

/******************************************************************************
Source module name: nwdsevnt.h
Release Version:
%name: nwdsevnt.h %
%version: 1 %
%date_modified: Mon Aug 08 13:08:00 2005 %
$Copyright:
Copyright (c) 1989-1998 Novell, Inc. All Rights Reserved.
THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND
TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED
COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED,
EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED
WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION
OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO
CRIMINAL AND CIVIL LIABILITY.$
*****************************************************************************/
#ifndef _NWDSEVNT_HEADER_
#define _NWDSEVNT_HEADER_
/*---------------------------------------------------------------------------
* definitions and functions required to receive event reports
*/
typedef enum DSEventPriority {EP_INLINE, EP_JOURNAL, EP_WORK} DSEventPriority;
/*---------------------------------------------------------------------------
* event types
*/
#define DSE_INLINE_ONLY 0x80000000
#define DSE_EVENT_MASK 0x7FFFFFFF
/* First 19 events in 4.10 release; events 20-25 added to IW2 */
#define DSE_INVALID 0
#define DSE_CREATE_ENTRY 1 /* data is DSEEntryInfo */
#define DSE_DELETE_ENTRY 2 /* data is DSEEntryInfo */
#define DSE_RENAME_ENTRY 3 /* data is DSEEntryInfo */
#define DSE_MOVE_SOURCE_ENTRY 4 /* data is DSEEntryInfo */
#define DSE_ADD_VALUE 5 /* data is DSEValueInfo */
#define DSE_DELETE_VALUE 6 /* data is DSEValueInfo */
#define DSE_CLOSE_STREAM 7 /* data is DSEValueInfo */
#define DSE_DELETE_ATTRIBUTE 8 /* data is DSEValueInfo */
#define DSE_SET_BINDERY_CONTEXT 9 /* no data */
#define DSE_CREATE_BINDERY_OBJECT 10 /* data is DSEBinderyObjectInfo */
#define DSE_DELETE_BINDERY_OBJECT 11 /* data is DSEBinderyObjectInfo */
#define DSE_CHECK_SEV 12 /* data is DSESEVInfo */
#define DSE_UPDATE_SEV 13 /* no data */
#define DSE_MOVE_DEST_ENTRY 14 /* data is DSEEntryInfo */
#define DSE_DELETE_UNUSED_EXTREF 15 /* data is DSEEntryInfo */
#define DSE_REMOTE_SERVER_DOWN 17 /* data is DSENetAddress */
#define DSE_NCP_RETRY_EXPENDED 18 /* data is DSENetAddress */
#define DSE_REMOTE_CONN_CLEARED 19 /* data is DSENetAddress */
#define DSE_PARTITION_OPERATION_EVENT 20 /* data is DSEEventData; used by SCALE */
#define DSE_CHANGE_MODULE_STATE 21 /* data is DSEModuleState */
#define DSE_RESERVED_2 22 /* reserved */
#define DSE_RESERVED_3 23 /* reserved */
#define DSE_RESERVED_4 24 /* reserved */
#define DSE_RESERVED_5 25 /* reserved */
/* Events added post 4.10 */
/* All the DSE_DB_... events are "debug" trace events, each event
* corresponds to one old DSTrace type TV_..., most have many messages
* using the same event ID. No attempt has been made to make these calls
* outside the NDS locks, so you must presume that all these calls come
* inside the locks. These all use the DSEDebugInfo data structure,
* and the result (error) field is always 0 for these events
*/
#define DSE_DB_AUTHEN 26 /* authentication */
#define DSE_DB_BACKLINK 27 /* backlink */
#define DSE_DB_BUFFERS 28 /* request buffer display */
#define DSE_DB_COLL 29 /* collisions */
#define DSE_DB_DSAGENT 30 /* low level DSA tracing */
#define DSE_DB_EMU 31 /* bindery emulator */
#define DSE_DB_FRAGGER 32 /* fragger */
#define DSE_DB_INIT 33 /* initialization */
#define DSE_DB_INSPECTOR 34 /* inspector */
#define DSE_DB_JANITOR 35 /* janitor */
#define DSE_DB_LIMBER 36 /* limber */
#define DSE_DB_LOCKING 37 /* locking */
#define DSE_DB_MOVE 38 /* move */
#define DSE_DB_MIN 39 /* default dstrace messages (equivalent to ON) */
#define DSE_DB_MISC 40 /* miscellaneous */
#define DSE_DB_PART 41 /* partition operations */
#define DSE_DB_RECMAN 42 /* record manager */
#define DSE_DB_RESNAME 44 /* resolve name */
#define DSE_DB_SAP 45 /* SAP */
#define DSE_DB_SCHEMA 46 /* schema */
#define DSE_DB_SKULKER 47 /* skulker */
#define DSE_DB_STREAMS 48 /* streams */
#define DSE_DB_SYNC_IN 49 /* incoming sync traffic */
#define DSE_DB_THREADS 50 /* DS thread scheduling */
#define DSE_DB_TIMEVECTOR 51 /* time vectors */
#define DSE_DB_VCLIENT 52 /* virtual client */
/* Nearly all the following events use the same DSEEventData structure.
* Not all fields are filled in for each event. The data in the
* structure is shown for each event. Any unused fields are set to -1
* for the ids or values, or set to 0 for the pointers.
*/
#define DSE_AGENT_OPEN_LOCAL 53 /* d1-state(2-Audit, 1-start, 0-end), result-valid for end state only, not in locks */
#define DSE_AGENT_CLOSE_LOCAL 54 /* d1-state(1-start, 0-end), not in locks */
#define DSE_DS_ERR_VIA_BINDERY 55 /* d1-error code being returned via the bindery, not in locks */
#define DSE_DSA_BAD_VERB 56 /* d1-bad verb number given to DSA Request (NCP 104, 2), not in locks */
#define DSE_DSA_REQUEST_START 57 /* d1-verb number (NCP 104, 2), not in locks */
#define DSE_DSA_REQUEST_END 58 /* d1-verb number, d2-primaryID, d3-request size, d4-reply size, not in locks */
#define DSE_MOVE_SUBTREE 59 /* d1-source ID, d1-Dest ID, not in locks */
#define DSE_NO_REPLICA_PTR 60 /* d1-partitionID of partition, inside locks */
#define DSE_SYNC_IN_END 61 /* d1-ID of server sending changes, d2 - partition Root ID, p3-Number entries sent(if no error), not in locks */
#define DSE_BKLINK_SEV 62 /* d1-ID of object being updated, not in locks */
#define DSE_BKLINK_OPERATOR 63 /* d1-ID of object whose console operator privilegs were changes, d2-ID of server privileges changed on, not in locks */
#define DSE_DELETE_SUBTREE 64 /* d1-ID of subtree root, d2-count of objects deleted, inside locks & transaction */
#define DSE_SET_NEW_MASTER 65 /* d1-ID of partition being changed, not in locks */
#define DSE_PART_STATE_CHG_REQ 66 /* d1-ID of partition, d2-partnerPartID, d3-(function<<16)|type, d4-state */
#define DSE_REFERRAL 67 /* d1-ID of local entry, d2-ID of partition, d3-referral type */
#define DSE_UPDATE_CLASS_DEF 68 /* uname-name of schema class updated (added), inside locks & transaction */
#define DSE_UPDATE_ATTR_DEF 69 /* uname-name of schema attribute updated (added), inside locks & transaction */
#define DSE_LOST_ENTRY 70 /* d1-parent ID of entry, d2-timestamp.seconds of entry, d3-timestamp.replicaNumber, d4-timestamp.event, uname-unicode name of entry, inside locks & transaction */
#define DSE_PURGE_ENTRY_FAIL 71 /* d1-ID of entry that failed, inside lock & transaction */
#define DSE_PURGE_START 72 /* d1-ID of partition being purged, d2-replica type, inside lock */
#define DSE_PURGE_END 73 /* d1-ID of partition purged, d2-number entries purged, d3-number values purged, not in locks */
#define DSE_FLAT_CLEANER_END 74 /* d1-number entries purged, d2-number values purged, not in locks */
#define DSE_ONE_REPLICA 75 /* d1-ID of partition with only one replica, inside lock */
#define DSE_LIMBER_DONE 76 /* d1-all initialized (boolean value), d2-found new RDN (boolean), not in lock */
#define DSE_SPLIT_DONE 77 /* d1-ID of parent partition root, d2-ID of child partition root, not in lock */
#define DSE_SYNC_SVR_OUT_START 78 /* d1-ID of server, d2-rootID, d3-replica number, d4-replica state&type&flags, not in locks */
#define DSE_SYNC_SVR_OUT_END 79 /* d1-ID of server, d2-partition rootID, d3-objects sent, d4-values sent, not in locks */
#define DSE_SYNC_PART_START 80 /* d1-partition ID, d2-partition state, d3-replica type, inside lock */
#define DSE_SYNC_PART_END 81 /* d1-partition ID, d2-(boolean value=)AllProcessed, not in lock */
#define DSE_MOVE_TREE_START 82 /* d1-ID of subtree root being moved, d2-destination (parent) ID, d3-server ID starting from, not in lock */
#define DSE_MOVE_TREE_END 83 /* d1-ID of subtree root being moved, d2-server ID starting from, not in lock */
#define DSE_RECERT_PUB_KEY 84 /* d1-ID of entry whose keys are being certified, inside locks & transaction */
#define DSE_GEN_CA_KEYS 85 /* d1-ID of entry having CA Keys generated, inside locks & transaction */
#define DSE_JOIN_DONE 86 /* d1-ID of parent partition root, d2-ID of child partition root, inside lock */
#define DSE_PARTITION_LOCKED 87 /* d1-ID of partition being locked, not in locks */
#define DSE_PARTITION_UNLOCKED 88 /* d1-ID of partition being unlocked, not in locks */
#define DSE_SCHEMA_SYNC 89 /* d1-(boolean value=)allProcessed, not in locks */
#define DSE_NAME_COLLISION 90 /* d1-ID of original entry, d2-ID of duplicate entry, inside locks & transaction */
#define DSE_NLM_LOADED 91 /* d1-module handle of NLM that was loaded, not in locks */
#define DSE_PARTITION_EVENT 92 /* ** Uses DSEPartitionData structure */
#define DSE_SKULKER_EVENT 93 /* ** Uses DSESkulkData structure */
#define DSE_LUMBER_DONE 94 /* no parameters, not in lock */
#define DSE_BACKLINK_PROC_DONE 95 /* no parameters, not in lock */
#define DSE_SERVER_RENAME 96 /* name-ascii new server name, inside locks */
#define DSE_SYNTHETIC_TIME 97 /* d1-root entry ID of partition issuing timestamp, d2-partition id, d3-count of timestamps requested, inside locks & transaction */
#define DSE_SERVER_ADDRESS_CHANGE 98 /* no parameters, in locks */
#define DSE_DSA_READ 99 /* d1-ID of entry being read, not in locks */
/* The following section of events are primarily for auditing, and thus
* whenever possible, the event is inside a transaction, so they can
* return an error and abort the transaction if necessary
*/
#define DSE_LOGIN 100 /* d1-parent id, d2-entry id, d3-usedNullPassword(boolean), d4-bindery login(0) or NDS login (-1) */
#define DSE_CHGPASS 101 /* d1-parent id, d2-entry id */
#define DSE_LOGOUT 102 /* d1-parent id, d2-entry id */
#define DSE_ADD_REPLICA 103 /* d1-partition root id, d2-server ID, d3-replicaType, uname-servername */
#define DSE_REMOVE_REPLICA 104 /* d1-partition root id, d2-server ID, uname-servername */
#define DSE_SPLIT_PARTITION 105 /* d1-parent partition root id, d2-new partition root id, uname-new partition entry name */
#define DSE_JOIN_PARTITIONS 106 /* d1-parent partition root id, d2-child partition root id */
#define DSE_CHANGE_REPLICA_TYPE 107 /* d1-partition root id, d2-target server ID, d3-old type, d4-new type*/
#define DSE_REMOVE_ENTRY 108 /* d1-parent id, d2-entry id, uname-entry name */
#define DSE_ABORT_PARTITION_OP 109 /* d1-parent id, d2-entry id */
#define DSE_RECV_REPLICA_UPDATES 110 /* d1-replica root id */
#define DSE_REPAIR_TIME_STAMPS 111 /* d1-replica root id */
#define DSE_SEND_REPLICA_UPDATES 112 /* d1-replica root id */
#define DSE_VERIFY_PASS 113 /* d1-parent id, d2-entry id */
#define DSE_BACKUP_ENTRY 114 /* d1-entry id */
#define DSE_RESTORE_ENTRY 115 /* d1-parent id, name-entry rdn */
#define DSE_DEFINE_ATTR_DEF 116 /* uname-attribute name*/
#define DSE_REMOVE_ATTR_DEF 117 /* d1-attr id, d2-schema root ID, uname-attribute name */
#define DSE_REMOVE_CLASS_DEF 118 /* d1-class id, d2-schema root ID, uname-class name */
#define DSE_DEFINE_CLASS_DEF 119 /* uname-class name*/
#define DSE_MODIFY_CLASS_DEF 120 /* d1-class id, d2-schema root ID, uname-class name */
#define DSE_RESET_DS_COUNTERS 121 /* d2-server ID */
#define DSE_REMOVE_ENTRY_DIR 122 /* d1-parent id, d2-entry id, uname-entry name*/
#define DSE_COMPARE_ATTR_VALUE 123 /* d1-parent id, d2-entry id, uname-attribute name*/
#define DSE_STREAM 124 /* d1-DSE_ST_OPEN, d2-entry id, d3-attr id, d4-requested rights */
/* d1-DSE_ST_CLOSE, d2-entry id, d3-attr id */
#define DSE_LIST_SUBORDINATES 125 /* d1-parent id, d2-entry id, uname-entry name */
#define DSE_LIST_CONT_CLASSES 126 /* d1-parent id, d2-entry id, uname-entry name */
#define DSE_INSPECT_ENTRY 127 /* d1-parent id, d2-entry id */
#define DSE_RESEND_ENTRY 128 /* d1-parent id, d2-entry id */
#define DSE_MUTATE_ENTRY 129 /* d1-entry id, d2-new class id, uname-new class name */
#define DSE_MERGE_ENTRIES 130 /* d1-winner parent id, d2-winner entry id, uname-loser entry name*/
#define DSE_MERGE_TREE 131 /* d1-root entry id */
#define DSE_CREATE_SUBREF 132 /* d1-sub ref id */
#define DSE_LIST_PARTITIONS 133 /* d1-partition root entry id */
#define DSE_READ_ATTR 134 /* d1-entry id, d2-attribute id */
#define DSE_READ_REFERENCES 135 /* d1-entry id */
#define DSE_UPDATE_REPLICA 136 /* d1-partition root id, d2-entry id, uname-entry name */
#define DSE_START_UPDATE_REPLICA 137 /* d1-partition root id */
#define DSE_END_UPDATE_REPLICA 138 /* d1-parititon root id */
#define DSE_SYNC_PARTITION 139 /* d1-partition root id */
#define DSE_SYNC_SCHEMA 140 /* d1-tree root id */
#define DSE_CREATE_BACKLINK 141 /* d1-tree root id, d2-server ID request came from, d3-local entry ID, d4-remote entry ID */
#define DSE_CHECK_CONSOLE_OPERATOR 142 /* d1-tree root id, d2-server ID, d3-isOperator boolean, d4-object ID being checked */
#define DSE_CHANGE_TREE_NAME 143 /* d1-tree root id, uname-new tree name */
#define DSE_START_JOIN 144 /* d1-parent partition root id, d2-child partition root id */
#define DSE_ABORT_JOIN 145 /* d1-parent partition root id, d2-child partition root id */
#define DSE_UPDATE_SCHEMA 146 /* d1-tree root id, d2-server id, inside locks & transaction */
#define DSE_START_UPDATE_SCHEMA 147 /* d1-tree root id, d2-server id */
#define DSE_END_UPDATE_SCHEMA 148 /* d1-tree root id, d2-server id */
#define DSE_MOVE_TREE 149 /* d1-source parent id, d2-dest. parent id, d3-type (0|1), uname-(0=source DN)|(1=newName) */
#define DSE_RELOAD_DS 150 /* d1-tree root id */
#define DSE_ADD_PROPERTY 151 /* d1-object id, d3-security, d4-flags, name-object name */
#define DSE_DELETE_PROPERTY 152 /* d1-object id, name-object name */
#define DSE_ADD_MEMBER 153 /* d1-object id, d3-member id, name-property name */
#define DSE_DELETE_MEMBER 154 /* d1-object id, d3-member id, name-property name */
#define DSE_CHANGE_PROP_SECURITY 155 /* d1-object id, d3-new security, name-property name */
#define DSE_CHANGE_OBJ_SECURITY 156 /* d1-object parent id, d2-object id, d3-new security */
#define DSE_READ_OBJ_INFO 157 /* d1-parent id, d2-entry id */
#define DSE_CONNECT_TO_ADDRESS 158 /* d1-task id, d3-address type, d4-address size, name-address data */
#define DSE_SEARCH 159 /* d1-base object id, d2-scope, d3-nodes to search (not used currently) d4-infoType */
#define DSE_PARTITION_STATE_CHG 160 /* d1-partitionRootID, d2-partnerPartID, d3-(function<<16)|type, d4-state */
#define DSE_REMOVE_BACKLINK 161 /* d1-object ID affected, d2-serverID of removed backlink, d3-remoteID of removed backlink */
#define DSE_LOW_LEVEL_JOIN 162 /* d1-parent partition Root ID, d2-child partition Root ID, not in lock */
#define DSE_CREATE_NAMEBASE 163 /* no data, not in lock */
#define DSE_CHANGE_SECURITY_EQUALS 164 /* d1-object ID, d2-equiv ID, d3-0=delete,1=add equivalence, inside locks & transaction */
#define DSE_DB_NCPENG 166
#define DSE_CRC_FAILURE 167 /* d1-CRC failure type (0=server | 1=client) d2-server | client CRC error count */
#define DSE_ADD_ENTRY 168 /* d1-parent id, d2-object id, (success DSE_DATATYPE_STRUCT1) */
#define DSE_MODIFY_ENTRY 169 /* d1-parent id, d2-object id, (success DSE_DATATYPE_STRUCT1) */
#define DSE_OPEN_BINDERY 171 /* d1-tree root id */
#define DSE_CLOSE_BINDERY 172 /* d1-tree root id */
#define DSE_CHANGE_CONN_STATE 173 /* data is DSEChangeConnState */
#define DSE_NEW_SCHEMA_EPOCH 174 /* d1-tree root id */
#define DSE_DB_AUDIT 175 /* auditing debug messages */
#define DSE_DB_AUDIT_NCP 176 /* audit ncp debug messages */
#define DSE_DB_AUDIT_SKULK 177 /* audit skulking debug messages */
#define DSE_MODIFY_RDN 178 /* d1-parentID, d2-entry ID, uname-oldRDN */
#define DSE_DB_LDAP 179 /* ldap trace messages */
#define DSE_ORPHAN_PARTITION 180 /* d1-DSE_OP_CREATE, d2-newPartitionID, d3-targetPartitionID */
/* d1-DSE_OP_REMOVE, d2-partitionID */
/* d1-DSE_OP_LINK, d2-partitionID, d3-targetPartitionID, d4-targetServerID */
/* d1-DSE_OP_UNLINK, d2-partitionID, d3-targetPartitionID */
#define DSE_ENTRYID_SWAP 181 /* d1-srcID, d2-destID */
#define DSE_DB_NCP_REQUEST 182 /* no data - used by lock check */
#define DSE_DB_LOST_ENTRY 183 /* uses DSEDebugInfo */
#define DSE_DB_CHANGE_CACHE 184 /* uses DSEDebugInfo */
#define DSE_LOW_LEVEL_SPLIT 185 /* d1-parent partition Root ID, d2-child partition Root ID, not in lock */
#define DSE_DB_PURGE 186 /* uses DSEDebugInfo */
#define DSE_END_NAMEBASE_TRANSACTION 187 /* no data */
#define DSE_ALLOW_LOGIN 188 /* d1-entryID, d2-flags */
#define DSE_DB_CLIENT_BUFFERS 189 /* uses DSEDebugInfo, request buffer display */
/* The following section of events are primarily for WAN Traffic Manager,
* and thus are expected to be used as inline events so that the policy
* results can be returned to DS.
*/
#define DSE_DB_WANMAN 190 /* uses DSEDebugInfo */
#define DSE_WTM_NDS_BACKLINKS 191 /* DSEWtmInfo */
#define DSE_WTM_NDS_SCHEMA_SYNC 192 /* DSEWtmInfo */
#define DSE_WTM_NDS_LIMBER 193 /* DSEWtmInfo */
#define DSE_WTM_NDS_LOGIN_RESTRICTIONS 194 /* DSEWtmInfo */
#define DSE_WTM_NDS_JANITOR 195 /* DSEWtmInfo */
#define DSE_WTM_NDS_OPEN_CONNECTION 196 /* DSEWtmOpenInfo */
#define DSE_LOCAL_REPLICA_CHANGE 197 /* d1-DSE_LRC_* opcode, d2-replicaRootID */
#define DSE_DB_DRL 198 /* reference link debug messages */
#define DSE_MOVE_ENTRY_SOURCE 199 /* d1-parentID, d2-dest parentID, d3-sourceID, uname-name */
#define DSE_MOVE_ENTRY_DEST 200 /* d1-parentID, d2-dest parentID, d3-sourceID, uname-newName */
#define DSE_NOTIFY_REF_CHANGE 201 /* d1-entryID used by obituary added to */
#define DSE_DB_ALLOC 202 /* uses DSEDebugInfo */
#define DSE_CONSOLE_OPERATION 203 /* d1-opCode - DSC_* flag */
#define DSE_DB_SERVER_PACKET 204 /* uses DSEDebugInfo */
#define DSE_START_DIB_CHECK 205 /* RecMan DIB validation */
#define DSE_END_DIB_CHECK 206 /* RecMan DIB validation, d1-error status */
#define DSE_DB_OBIT 207 /* uses DSEDebugInfo */
#define DSE_REPLICA_IN_TRANSITION 208 /* d1-partition root ID, d2-last ID */
#define DSE_DB_SYNC_DETAIL 209 /* uses DSEDebugInfo */
#define DSE_DB_CONN_TRACE 210 /* uses DSEDebugInfo */
#define DSE_BEGIN_NAMEBASE_TRANSACTION 211 /* no data */
#define DSE_DB_VIRTUAL_REPLICA 212 /* uses DSEDebugInfo */
#define DSE_VR_DRIVER_STATE_CHANGE 213 /* used DSEEntryInfo */
#define DSE_CHANGE_CONFIG_PARM 214 /* uses DSEChangeConfigParm */
#define DSE_MAX_EVENTS 215
/*---------------------------------------------------------------------------
* data structures used for the data associated with events
*/
/* DSE_STREAM operation definitions */
#define DSE_ST_OPEN 0x0001
#define DSE_ST_CLOSE 0x0002
/* DSE_ORPHAN_PARTITION operation definitions */
#define DSE_OP_CREATE 0x0001
#define DSE_OP_REMOVE 0x0002
#define DSE_OP_LINK 0x0003
#define DSE_OP_UNLINK 0x0004
typedef struct
{
nuint32 seconds;
nuint16 replicaNumber;
nuint16 event;
} DSETimeStamp;
typedef struct
{
nuint8 data[16];
} DSEGUID;
/* newDN used for DSE_MOVE_SOURCE_ENTRY and DSE_RENAME_ENTRY,
* otherwise it is 0
*/
/* NetWare 4.x returns DSEntryInfo structure, NetWare 5.x returns
* DSEntryInfo2 structure
*/
typedef struct
{
nuint32 perpetratorID;
nuint32 verb;
nuint32 entryID;
nuint32 parentID;
nuint32 classID;
nuint32 flags;
DSETimeStamp creationTime;
const unicode *dn;
const unicode *newDN;
char data[1]; /* used to store data for dn and newDN fields */
} DSEEntryInfo;
typedef struct
{
nuint32 perpetratorID;
nuint32 verb;
nuint32 entryID;
nuint32 parentID;
nuint32 classID;
nuint32 flags;
DSETimeStamp creationTime;
const unicode *dn;
const unicode *newDN;
nuint32 connID;
char data[1]; /* used to store data for dn and newDN fields */
} DSEEntryInfo2;
/* DSEEntryInfo flag definitions */
#define DSEF_PARTITION_ROOT 0x0001
#define DSEF_EXTREF 0x0002
#define DSEF_ALIAS 0x0004
typedef struct
{
nuint32 perpetratorID;
nuint32 verb;
nuint32 entryID;
nuint32 attrID;
nuint32 syntaxID;
nuint32 classID;
DSETimeStamp timeStamp;
nuint size;
char data[1]; /* see DSEVal... structures for meanings of this field */
} DSEValueInfo;
typedef struct
{
nuint32 entryID;
nuint32 parentID;
nuint32 type;
nuint32 emuObjFlags;
nuint32 security;
char name[48];
} DSEBinderyObjectInfo;
typedef struct
{
nuint32 entryID;
nuint32 retryCount;
nuint32 valueID;
unicode valueDN[MAX_DN_CHARS + 1];
char referral[1];
} DSESEVInfo;
typedef struct
{
nuint32 type;
nuint32 length;
nuint8 data[1];
} DSENetAddress;
typedef struct
{
nuint32 entryID;
nuint32 attrID[2];
} DSESkulkData;
/* DSE_LOCAL_REPLICA_CHANGE flag definitions */
#define DSE_LRC_ADD 0x0001
#define DSE_LRC_REMOVE 0x0002
#define DSE_LRC_MODIFY 0x0003
/* DSE_PARTITION_OPERATION_EVENT flag definitions */
#define DSE_PF_STATE_CHANGE 0x0001
#define DSE_PF_ADD 0x0002
#define DSE_PF_PURGE 0x0004
#define DSE_PF_JOIN 0x0008
#define DSE_PF_SPLIT 0x0010
/* DSE_CHANGE_CONN_STATE flag definitions */
#define DSE_CONN_VALID 0x0001
#define DSE_CONN_AUTHENTIC 0x0002
#define DSE_CONN_SUPERVISOR 0x0004
#define DSE_CONN_OPERATOR 0x0008
#define DSE_CONN_LICENSED 0x0010
#define DSE_CONN_SEV_IS_STALE 0x0020
#define DSE_CONN_IS_NCP 0x0040
#define DSE_CONN_CHECKSUMMING 0x0080
#define DSE_CONN_OPERATIONAL_FLAGS 0x00FF
#define DSE_CONN_SIGNATURES 0x0100
#define DSE_CONN_CSIGNATURES 0x0200
#define DSE_CONN_ENCRYPTION 0x0400
#define DSE_CONN_SECURITY_FLAGS 0x0700
typedef struct
{
nuint32 connID;
nuint32 entryID;
nuint32 oldFlags;
nuint32 newFlags;
} DSEChangeConnState;
/* DSEChangeConfigState parameter values */
#define DSE_CFG_UNSPECIFIED 0
#define DSE_CFG_RESPOND_TO_GET_NEAREST 1
#define DSE_CFG_SERVER_NAME 2
typedef struct
{
nuint32 configParm;
} DSEChangeConfigParm;
/* DSEModuleState flags, the CHANGING flag is combined with LOADED
* to show starting to load or starting to unload.
*/
#define DSE_MOD_CHANGING 0x01
#define DSE_MOD_LOADED 0x02
#define DSE_MOD_AUTOLOAD 0x04
#define DSE_MOD_HIDDEN 0x08
#define DSE_MOD_ENGINE 0x10
#define DSE_MOD_AUTOMATIC 0x20
#define DSE_MOD_DISABLED 0x40
#define DSE_MOD_MANUAL 0x80
#define DSE_MOD_SYSTEM 0x100 /* This is entries with PRELOAD_MODULE */
#define DSE_MOD_WAITING 0x200 /* state change is queued */
#define DSE_MAX_MODULE_NAME_CHARS 32
typedef struct DSEModuleState
{
nuint32 connID;
nuint32 flags;
long handle;
unicode name[DSE_MAX_MODULE_NAME_CHARS];
} DSEModuleState;
/*---------------------------------------------------------------------------
* data structures used for contents of the data member of the
* DSEValueInfo structure.
*/
typedef struct
{
nuint32 nameSpaceType;
nuint32 volumeEntryID;
nuint32 length;
unicode data[1];
} DSEPath;
typedef struct
{
nuint32 serverID;
nuint32 type;
nuint32 number;
nuint32 replicaRootID; /* partition root ID on server where replica resides */
char referral[1]; /* transport address data in wire format */
} DSEReplicaPointer;
typedef struct
{
nuint32 serverID;
nuint32 remoteID;
} DSEBackLink;
typedef struct
{
nuint32 entryID;
nuint32 attrID;
nuint32 privileges;
} DSEACL;
typedef struct
{
nuint32 entryID;
nuint32 level;
nuint32 interval;
} DSETypedName;
typedef struct
{
nuint32 entryID;
nuint32 amount;
} DSEHold;
typedef struct
{
nuint32 type; /* SMF70, SMF71, SMTP, X400, SNADS, PROFS */
nuint32 length; /* length of address unicode string */
unicode address[1/*or more*/]; /* null terminated unicode string */
} DSEEmailAddress;
typedef struct
{
nuint32 numOfBits;
nuint32 numOfBytes;
char data;
} DSEBitString;
typedef struct
{
nuint32 length; /* length of telephone number unicode string */
unicode telephoneNumber[1/*or more*/]; /* null terminated unicode string */
/* The following field is dword aligned after unicode NULL:
DSEBitString parameters;
*/
} DSEFaxNumber;
typedef struct
{
nuint32 numOfStrings; /* number of uint32 length proceeded, null terminated,
dword aligned unicode strings to follow */
nuint32 length1; /* length of first unicode string */
unicode string1[1]; /* 1st unicode string */
} DSECIList;
typedef struct
{
nuint32 numOfStrings; /* number of null terminated, dword aligned byte
strings to follow */
nuint8 string1[1]; /* 1st octet string */
} DSEOctetList;
typedef union
{
/* used for SYN_CE_STRING, SYN_CI_STRING, SYN_PR_STRING,
* SYN_NU_STRING, and SYN_TEL_NUMBER
*/
unicode string[1/*or more*/]; /* null terminated unicode string */
nuint32 num; /* used for SYN_INTEGER, SYN_COUNTER, SYN_TIME, SYN_INTERVAL */
nuint32 entryID; /* used for SYN_DIST_NAME */
nuint32 classID; /* used for SYN_CLASS_NAME */
nuint8 boolean; /* used for SYN_BOOLEAN */
DSENetAddress netAddress; /* used for SYN_NET_ADDRESS */
DSEPath path; /* used for SYN_PATH */
DSEReplicaPointer replica; /* used for SYN_REPLICA_POINTER */
DSEACL acl; /* used for SYN_OBJECT_ACL */
DSETimeStamp timeStamp; /* used for SYN_TIMESTAMP */
DSEBackLink backLink; /* used for SYN_BACK_LINK */
DSETypedName typedName; /* used for SYN_TYPED_NAME */
DSEHold hold; /* used for SYN_HOLD */
DSEEmailAddress emailAddress; /* used for SYN_EMAIL_ADDRESS */
DSEFaxNumber faxNumber; /* used for SYN_FAX_NUMBER */
DSECIList ciList; /* used for SYN_CI_LIST, SYN_PO_ADDRESS */
nuint8 octetString[1]; /* used for SYN_OCTET_STRING, SYN_STREAM */
DSEOctetList octetList; /* used for SYN_OCTET_LIST */
} DSEValData;
#define MAX_EVENT_PARMS 32
typedef struct
{
nuint32 dstime; /* time event occurred */
nuint32 milliseconds;
nuint32 curThread; /* thread running when event occurs */
nuint32 connID; /* connection number that caused this event */
nuint32 perpetratorID; /* "user" id that owns the connection */
char *fmtStr; /* sprintf type format string describing parms */
char *parms[MAX_EVENT_PARMS];/* pseudo stack of parameters for va_list */
char data[1]; /* variable size, holds fmtStr & non-integer parm data */
} DSEDebugInfo;
#define DSE_DATATYPE_CHAR 1
#define DSE_DATATYPE_UNICODE 2
#define DSE_DATATYPE_STRUCT_1 3
typedef struct
{
nuint32 attrID;
nuint32 flags;
nint len;
void *data;
} DSES1data;
typedef struct
{
nuint32 count;
DSES1data value[1];
} DSEStruct1;
typedef struct
{
nuint32 dstime; /* time event occurred */
nuint32 milliseconds;
nuint32 curProcess; /* process running when event occurred */
nuint32 connID; /* connection number that caused this event */
nuint32 verb; /* verb */
nuint32 perpetratorID; /* "user" id that owns the connection */
nuint32 d1; /* remaining fields vary depending on event number */
nuint32 d2;
nuint32 d3;
nuint32 d4;
nuint32 dataType;
const void *dataPtr;
char data[1]; /* variable size, holds either name or uname data */
} DSEEventData;
typedef struct /* use for WAN Traffic Manager Events */
{
nuint32 lastTime;
nint32 version;
nint checkEachNewOpen;
nint checkEachAlreadyOpen;
nuint32 expirationInterval;
nuint32 nextTime;
nuint32 result;
nint send;
nuint32 trafficTypeSubClass;
} DSEWtmInfo;
typedef struct /* used for WAN Traffic Manager Open Events */
{
nint32 version;
nuint32 expirationInterval;
nint connIsAlreadyOpen;
nuint32 lastAccessTime;
nuint32 trafficType;
char *trafficTypeName;
nint send;
nint dstAdrType;
nuint dstAdrSize;
void *dstAdrData;
char *localReferral;
nuint32 lastSyncTime;
nuint32 trafficTypeSubClass;
} DSEWtmOpenInfo;
/*
* End data structures used for contents of the data member of the
* DSEValueInfo structure.
*-------------------------------------------------------------------------*/
/* define trace vector category numbers */
#define TV_ON 0x00000001L /* if set, tracing is enabled */
#define TV_AUDIT 0x00000002L /* auditing */
#define TV_INIT 0x00000004L /* initialization */
#define TV_FRAGGER 0x00000008L /* fragger */
#define TV_MISC 0x00000010L /* miscellaneous */
#define TV_RESNAME 0x00000020L /* resolve name */
#define TV_STREAMS 0x00000040L /* streams */
#define TV_LIMBER 0x00000080L /* limber */
#define TV_JANITOR 0x00000100L /* janitor */
#define TV_BACKLINK 0x00000200L /* backlink */
#define TV_MERGE 0x00000400L /* merge */
#define TV_SKULKER 0x00000800L /* skulker */
#define TV_LOCKING 0x00001000L /* locking */
#define TV_SAP 0x00002000L /* SAP */
#define TV_SCHEMA 0x00004000L /* schema */
#define TV_COLL 0x00008000L /* collisions */
#define TV_INSPECTOR 0x00010000L /* inspector */
#define TV_ERRORS 0x00020000L /* errors */
#define TV_PART 0x00040000L /* partition operations */
#define TV_EMU 0x00080000L /* bindery emulator */
#define TV_VCLIENT 0x00100000L /* virtual client */
#define TV_AUTHEN 0x00200000L /* authentication */
#define TV_RECMAN 0x00400000L /* record manager */
#define TV_TIMEVECTOR 0x00800000L /* time vectors */
#define TV_REPAIR 0x01000000L /* ds_repair */
#define TV_DSAGENT 0x02000000L /* low level DSA tracing */
#define TV_ERRET 0x04000000L /* ERRET and ERRTRACE */
#define TV_SYNC_IN 0x08000000L /* incoming sync traffic */
#define TV_THREADS 0x10000000L /* DS thread scheduling */
#define TV_MIN 0x20000000L /* default dstrace messages */
#define TV_CHECK_BIT 0x80000000L /* all TV_ values must have this bit */
#define TV_ALL 0xBFFFFFFEL /* All vectors--default for DSTrace */
/*===========================================================================*/
/* Event handler flags - for NWDSERegisterForEventWithResult.
*/
#define HF_ALL 0x0000 /* Invoke handler regardless of event status */
#define HF_SUCCESS_ONLY 0x0004 /* Invoke handler if event is successful */
#define HF_FAIL_ONLY 0x0008 /* Invoke handler if event fails */
#endif