{******************************************************************************} { } { Lan Manager Error Log API interface Unit for Object Pascal } { } { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } { Corporation. All Rights Reserved. } { } { The original file is: lmerrlog.h, released November 2001. The original Pascal} { code is: LmErrLog.pas, released Februari 2002. The initial developer of the } { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } { } { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } { Marcel van Brakel. All Rights Reserved. } { } { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } { } { You may retrieve the latest version of this file at the Project JEDI } { APILIB home page, located at http://jedi-apilib.sourceforge.net } { } { The contents of this file are used with permission, subject to the Mozilla } { Public License Version 1.1 (the "License"); you may not use this file except } { in compliance with the License. You may obtain a copy of the License at } { http://www.mozilla.org/MPL/MPL-1.1.html } { } { Software distributed under the License is distributed on an "AS IS" basis, } { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } { the specific language governing rights and limitations under the License. } { } { Alternatively, the contents of this file may be used under the terms of the } { GNU Lesser General Public License (the "LGPL License"), in which case the } { provisions of the LGPL License are applicable instead of those above. } { If you wish to allow use of your version of this file only under the terms } { of the LGPL License and not to allow others to use your version of this file } { under the MPL, indicate your decision by deleting the provisions above and } { replace them with the notice and other provisions required by the LGPL } { License. If you do not delete the provisions above, a recipient may use } { your version of this file under either the MPL or the LGPL License. } { } { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } { } {******************************************************************************} // $Id: JwaLmErrLog.pas,v 1.10 2005/09/07 09:54:54 marquardt Exp $ {$IFNDEF JWA_INCLUDEMODE} unit JwaLmErrLog; {$WEAKPACKAGEUNIT} {$I jediapilib.inc} interface uses JwaWindows, JwaLmCons; {$ENDIF !JWA_INCLUDEMODE} {$IFDEF JWA_INTERFACESECTION} {$HPPEMIT ''} {$HPPEMIT '#include "lmerrlog.h"'} {$HPPEMIT ''} // // Data Structures - Config // type _ERROR_LOG = record el_len: DWORD; el_reserved: DWORD; el_time: DWORD; el_error: DWORD; el_name: LPWSTR; // pointer to service name el_text: LPWSTR; // pointer to string array el_data: LPBYTE; // pointer to BYTE array el_data_size: DWORD; // byte count of el_data area el_nstrings: DWORD; // number of strings in el_text. end; {$EXTERNALSYM _ERROR_LOG} ERROR_LOG = _ERROR_LOG; {$EXTERNALSYM ERROR_LOG} PERROR_LOG = ^ERROR_LOG; {$EXTERNALSYM PERROR_LOG} LPERROR_LOG = ^ERROR_LOG; {$EXTERNALSYM LPERROR_LOG} TErrorLog = ERROR_LOG; PErrorLog = PERROR_LOG; {$DEFINE REVISED_ERROR_LOG_STRUCT} _HLOG = record time: DWORD; last_flags: DWORD; offset: DWORD; rec_offset: DWORD; end; {$EXTERNALSYM _HLOG} HLOG = _HLOG; {$EXTERNALSYM HLOG} PHLOG = ^HLOG; {$EXTERNALSYM PHLOG} LPHLOG = ^HLOG; {$EXTERNALSYM LPHLOG} const LOGFLAGS_FORWARD = 0; {$EXTERNALSYM LOGFLAGS_FORWARD} LOGFLAGS_BACKWARD = $1; {$EXTERNALSYM LOGFLAGS_BACKWARD} LOGFLAGS_SEEK = $2; {$EXTERNALSYM LOGFLAGS_SEEK} // // Function Prototypes - ErrorLog // function NetErrorLogClear(server, backupfile: LPCWSTR; reserved: LPBYTE): NET_API_STATUS; stdcall; {$EXTERNALSYM NetErrorLogClear} function NetErrorLogRead(server: LPCWSTR; reserved1: LPWSTR; errloghandle: LPHLOG; offset: DWORD; reserved2: LPDWORD; reserved3, offsetflag: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; bytesread, totalbytes: LPDWORD): NET_API_STATUS; stdcall; {$EXTERNALSYM NetErrorLogRead} function NetErrorLogWrite(reserved1: LPBYTE; code: DWORD; component: LPCWSTR; buffer: LPBYTE; numbytes: DWORD; msgbuf: LPBYTE; strcount: DWORD; reserved2: LPBYTE): NET_API_STATUS; stdcall; {$EXTERNALSYM NetErrorLogWrite} // // Special Values and Constants // // // Generic (could be used by more than one service) // error log messages from 0 to 25 // // Do not change the comments following the manifest constants without // understanding how mapmsg works. // const ERRLOG_BASE = 3100; { NELOG errors start here } {$EXTERNALSYM ERRLOG_BASE} NELOG_Internal_Error = ERRLOG_BASE + 0; {$EXTERNALSYM NELOG_Internal_Error} { * The operation failed because a network software error occurred. } NELOG_Resource_Shortage = ERRLOG_BASE + 1; {$EXTERNALSYM NELOG_Resource_Shortage} { * The system ran out of a resource controlled by the %1 option. } NELOG_Unable_To_Lock_Segment = ERRLOG_BASE + 2; {$EXTERNALSYM NELOG_Unable_To_Lock_Segment} { * The service failed to obtain a long-term lock on the * segment for network control blocks (NCBs). The error code is the data. } NELOG_Unable_To_Unlock_Segment = ERRLOG_BASE + 3; {$EXTERNALSYM NELOG_Unable_To_Unlock_Segment} { * The service failed to release the long-term lock on the * segment for network control blocks (NCBs). The error code is the data. } NELOG_Uninstall_Service = ERRLOG_BASE + 4; {$EXTERNALSYM NELOG_Uninstall_Service} { * There was an error stopping service %1. * The error code from NetServiceControl is the data. } NELOG_Init_Exec_Fail = ERRLOG_BASE + 5; {$EXTERNALSYM NELOG_Init_Exec_Fail} { * Initialization failed because of a system execution failure on * path %1. The system error code is the data. } NELOG_Ncb_Error = ERRLOG_BASE + 6; {$EXTERNALSYM NELOG_Ncb_Error} { * An unexpected network control block (NCB) was received. The NCB is the data. } NELOG_Net_Not_Started = ERRLOG_BASE + 7; {$EXTERNALSYM NELOG_Net_Not_Started} { * The network is not started. } NELOG_Ioctl_Error = ERRLOG_BASE + 8; {$EXTERNALSYM NELOG_Ioctl_Error} { * A DosDevIoctl or DosFsCtl to NETWKSTA.SYS failed. * The data shown is in this format: * DWORD approx CS:IP of call to ioctl or fsctl * WORD error code * WORD ioctl or fsctl number } NELOG_System_Semaphore = ERRLOG_BASE + 9; {$EXTERNALSYM NELOG_System_Semaphore} { * Unable to create or open system semaphore %1. * The error code is the data. } NELOG_Init_OpenCreate_Err = ERRLOG_BASE + 10; {$EXTERNALSYM NELOG_Init_OpenCreate_Err} { * Initialization failed because of an open/create error on the * file %1. The system error code is the data. } NELOG_NetBios = ERRLOG_BASE + 11; {$EXTERNALSYM NELOG_NetBios} { * An unexpected NetBIOS error occurred. * The error code is the data. } NELOG_SMB_Illegal = ERRLOG_BASE + 12; {$EXTERNALSYM NELOG_SMB_Illegal} { * An illegal server message block (SMB) was received. * The SMB is the data. } NELOG_Service_Fail = ERRLOG_BASE + 13; {$EXTERNALSYM NELOG_Service_Fail} { * Initialization failed because the requested service %1 * could not be started. } NELOG_Entries_Lost = ERRLOG_BASE + 14; {$EXTERNALSYM NELOG_Entries_Lost} { * Some entries in the error log were lost because of a buffer * overflow. } // // Server specific error log messages from 20 to 40 // NELOG_Init_Seg_Overflow = ERRLOG_BASE + 20; {$EXTERNALSYM NELOG_Init_Seg_Overflow} { * Initialization parameters controlling resource usage other * than net buffers are sized so that too much memory is needed. } NELOG_Srv_No_Mem_Grow = ERRLOG_BASE + 21; {$EXTERNALSYM NELOG_Srv_No_Mem_Grow} { * The server cannot increase the size of a memory segment. } NELOG_Access_File_Bad = ERRLOG_BASE + 22; {$EXTERNALSYM NELOG_Access_File_Bad} { * Initialization failed because account file %1 is either incorrect * or not present. } NELOG_Srvnet_Not_Started = ERRLOG_BASE + 23; {$EXTERNALSYM NELOG_Srvnet_Not_Started} { * Initialization failed because network %1 was not started. } NELOG_Init_Chardev_Err = ERRLOG_BASE + 24; {$EXTERNALSYM NELOG_Init_Chardev_Err} { * The server failed to start. Either all three chdev * parameters must be zero or all three must be nonzero. } NELOG_Remote_API = ERRLOG_BASE + 25; {$EXTERNALSYM NELOG_Remote_API} { A remote API request was halted due to the following * invalid description string: %1. } NELOG_Ncb_TooManyErr = ERRLOG_BASE + 26; {$EXTERNALSYM NELOG_Ncb_TooManyErr} { The network %1 ran out of network control blocks (NCBs). You may need to increase NCBs * for this network. The following information includes the * number of NCBs submitted by the server when this error occurred: } NELOG_Mailslot_err = ERRLOG_BASE + 27; {$EXTERNALSYM NELOG_Mailslot_err} { The server cannot create the %1 mailslot needed to send * the ReleaseMemory alert message. The error received is: } NELOG_ReleaseMem_Alert = ERRLOG_BASE + 28; {$EXTERNALSYM NELOG_ReleaseMem_Alert} { The server failed to register for the ReleaseMemory alert, * with recipient %1. The error code from * NetAlertStart is the data. } NELOG_AT_cannot_write = ERRLOG_BASE + 29; {$EXTERNALSYM NELOG_AT_cannot_write} { The server cannot update the AT schedule file. The file * is corrupted. } NELOG_Cant_Make_Msg_File = ERRLOG_BASE + 30; {$EXTERNALSYM NELOG_Cant_Make_Msg_File} { The server encountered an error when calling * NetIMakeLMFileName. The error code is the data. } NELOG_Exec_Netservr_NoMem = ERRLOG_BASE + 31; {$EXTERNALSYM NELOG_Exec_Netservr_NoMem} { Initialization failed because of a system execution failure on * path %1. There is not enough memory to start the process. * The system error code is the data. } NELOG_Server_Lock_Failure = ERRLOG_BASE + 32; {$EXTERNALSYM NELOG_Server_Lock_Failure} { Longterm lock of the server buffers failed. * Check swap disk's free space and restart the system to start the server. } // // Message service and POPUP specific error log messages from 40 to 55 // NELOG_Msg_Shutdown = ERRLOG_BASE + 40; {$EXTERNALSYM NELOG_Msg_Shutdown} { * The service has stopped due to repeated consecutive * occurrences of a network control block (NCB) error. The last bad NCB follows * in raw data. } NELOG_Msg_Sem_Shutdown = ERRLOG_BASE + 41; {$EXTERNALSYM NELOG_Msg_Sem_Shutdown} { * The Message server has stopped due to a lock on the * Message server shared data segment. } NELOG_Msg_Log_Err = ERRLOG_BASE + 50; {$EXTERNALSYM NELOG_Msg_Log_Err} { * A file system error occurred while opening or writing to the * system message log file %1. Message logging has been * switched off due to the error. The error code is the data. } NELOG_VIO_POPUP_ERR = ERRLOG_BASE + 51; {$EXTERNALSYM NELOG_VIO_POPUP_ERR} { * Unable to display message POPUP due to system VIO call error. * The error code is the data. } NELOG_Msg_Unexpected_SMB_Type = ERRLOG_BASE + 52; {$EXTERNALSYM NELOG_Msg_Unexpected_SMB_Type} { * An illegal server message block (SMB) was received. The SMB is the data. } // // Workstation specific error log messages from 60 to 75 // NELOG_Wksta_Infoseg = ERRLOG_BASE + 60; {$EXTERNALSYM NELOG_Wksta_Infoseg} { * The workstation information segment is bigger than 64K. * The size follows, in DWORD format: } NELOG_Wksta_Compname = ERRLOG_BASE + 61; {$EXTERNALSYM NELOG_Wksta_Compname} { * The workstation was unable to get the name-number of the computer. } NELOG_Wksta_BiosThreadFailure = ERRLOG_BASE + 62; {$EXTERNALSYM NELOG_Wksta_BiosThreadFailure} { * The workstation could not initialize the Async NetBIOS Thread. * The error code is the data. } NELOG_Wksta_IniSeg = ERRLOG_BASE + 63; {$EXTERNALSYM NELOG_Wksta_IniSeg} { * The workstation could not open the initial shared segment. * The error code is the data. } NELOG_Wksta_HostTab_Full = ERRLOG_BASE + 64; {$EXTERNALSYM NELOG_Wksta_HostTab_Full} { * The workstation host table is full. } NELOG_Wksta_Bad_Mailslot_SMB = ERRLOG_BASE + 65; {$EXTERNALSYM NELOG_Wksta_Bad_Mailslot_SMB} { * A bad mailslot server message block (SMB) was received. The SMB is the data. } NELOG_Wksta_UASInit = ERRLOG_BASE + 66; {$EXTERNALSYM NELOG_Wksta_UASInit} { * The workstation encountered an error while trying to start the user accounts database. * The error code is the data. } NELOG_Wksta_SSIRelogon = ERRLOG_BASE + 67; {$EXTERNALSYM NELOG_Wksta_SSIRelogon} { * The workstation encountered an error while responding to an SSI revalidation request. * The function code and the error codes are the data. } // // Alerter service specific error log messages from 70 to 79 // NELOG_Build_Name = ERRLOG_BASE + 70; {$EXTERNALSYM NELOG_Build_Name} { * The Alerter service had a problem creating the list of * alert recipients. The error code is %1. } NELOG_Name_Expansion = ERRLOG_BASE + 71; {$EXTERNALSYM NELOG_Name_Expansion} { * There was an error expanding %1 as a group name. Try * splitting the group into two or more smaller groups. } NELOG_Message_Send = ERRLOG_BASE + 72; {$EXTERNALSYM NELOG_Message_Send} { * There was an error sending %2 the alert message - * ( * %3 ) * The error code is %1. } NELOG_Mail_Slt_Err = ERRLOG_BASE + 73; {$EXTERNALSYM NELOG_Mail_Slt_Err} { * There was an error in creating or reading the alerter mailslot. * The error code is %1. } NELOG_AT_cannot_read = ERRLOG_BASE + 74; {$EXTERNALSYM NELOG_AT_cannot_read} { * The server could not read the AT schedule file. } NELOG_AT_sched_err = ERRLOG_BASE + 75; {$EXTERNALSYM NELOG_AT_sched_err} { * The server found an invalid AT schedule record. } NELOG_AT_schedule_file_created = ERRLOG_BASE + 76; {$EXTERNALSYM NELOG_AT_schedule_file_created} { * The server could not find an AT schedule file so it created one. } NELOG_Srvnet_NB_Open = ERRLOG_BASE + 77; {$EXTERNALSYM NELOG_Srvnet_NB_Open} { * The server could not access the %1 network with NetBiosOpen. } NELOG_AT_Exec_Err = ERRLOG_BASE + 78; {$EXTERNALSYM NELOG_AT_Exec_Err} { * The AT command processor could not run %1. } // // Cache Lazy Write and HPFS386 specific error log messages from 80 to 89 // NELOG_Lazy_Write_Err = ERRLOG_BASE + 80; {$EXTERNALSYM NELOG_Lazy_Write_Err} { * WARNING: Because of a lazy-write error, drive %1 now * contains some corrupted data. The cache is stopped. } NELOG_HotFix = ERRLOG_BASE + 81; {$EXTERNALSYM NELOG_HotFix} { * A defective sector on drive %1 has been replaced (hotfixed). * No data was lost. You should run CHKDSK soon to restore full * performance and replenish the volume's spare sector pool. * * The hotfix occurred while processing a remote request. } NELOG_HardErr_From_Server = ERRLOG_BASE + 82; {$EXTERNALSYM NELOG_HardErr_From_Server} { * A disk error occurred on the HPFS volume in drive %1. * The error occurred while processing a remote request. } NELOG_LocalSecFail1 = ERRLOG_BASE + 83; {$EXTERNALSYM NELOG_LocalSecFail1} { * The user accounts database (NET.ACC) is corrupted. The local security * system is replacing the corrupted NET.ACC with the backup * made at %1. * Any updates made to the database after this time are lost. * } NELOG_LocalSecFail2 = ERRLOG_BASE + 84; {$EXTERNALSYM NELOG_LocalSecFail2} { * The user accounts database (NET.ACC) is missing. The local * security system is restoring the backup database * made at %1. * Any updates made to the database made after this time are lost. * } NELOG_LocalSecFail3 = ERRLOG_BASE + 85; {$EXTERNALSYM NELOG_LocalSecFail3} { * Local security could not be started because the user accounts database * (NET.ACC) was missing or corrupted, and no usable backup * database was present. * * THE SYSTEM IS NOT SECURE. } NELOG_LocalSecGeneralFail = ERRLOG_BASE + 86; {$EXTERNALSYM NELOG_LocalSecGeneralFail} { * Local security could not be started because an error * occurred during initialization. The error code returned is %1. * * THE SYSTEM IS NOT SECURE. * } // // NETWKSTA.SYS specific error log messages from 90 to 99 // NELOG_NetWkSta_Internal_Error = ERRLOG_BASE + 90; {$EXTERNALSYM NELOG_NetWkSta_Internal_Error} { * A NetWksta internal error has occurred: * %1 } NELOG_NetWkSta_No_Resource = ERRLOG_BASE + 91; {$EXTERNALSYM NELOG_NetWkSta_No_Resource} { * The redirector is out of a resource: %1. } NELOG_NetWkSta_SMB_Err = ERRLOG_BASE + 92; {$EXTERNALSYM NELOG_NetWkSta_SMB_Err} { * A server message block (SMB) error occurred on the connection to %1. * The SMB header is the data. } NELOG_NetWkSta_VC_Err = ERRLOG_BASE + 93; {$EXTERNALSYM NELOG_NetWkSta_VC_Err} { * A virtual circuit error occurred on the session to %1. * The network control block (NCB) command and return code is the data. } NELOG_NetWkSta_Stuck_VC_Err = ERRLOG_BASE + 94; {$EXTERNALSYM NELOG_NetWkSta_Stuck_VC_Err} { * Hanging up a stuck session to %1. } NELOG_NetWkSta_NCB_Err = ERRLOG_BASE + 95; {$EXTERNALSYM NELOG_NetWkSta_NCB_Err} { * A network control block (NCB) error occurred (%1). * The NCB is the data. } NELOG_NetWkSta_Write_Behind_Err = ERRLOG_BASE + 96; {$EXTERNALSYM NELOG_NetWkSta_Write_Behind_Err} { * A write operation to %1 failed. * Data may have been lost. } NELOG_NetWkSta_Reset_Err = ERRLOG_BASE + 97; {$EXTERNALSYM NELOG_NetWkSta_Reset_Err} { * Reset of driver %1 failed to complete the network control block (NCB). * The NCB is the data. } NELOG_NetWkSta_Too_Many = ERRLOG_BASE + 98; {$EXTERNALSYM NELOG_NetWkSta_Too_Many} { * The amount of resource %1 requested was more * than the maximum. The maximum amount was allocated. } // // Spooler specific error log messages from 100 to 103 // NELOG_Srv_Thread_Failure = ERRLOG_BASE + 104; {$EXTERNALSYM NELOG_Srv_Thread_Failure} { * The server could not create a thread. * The THREADS parameter in the CONFIG.SYS file should be increased. } NELOG_Srv_Close_Failure = ERRLOG_BASE + 105; {$EXTERNALSYM NELOG_Srv_Close_Failure} { * The server could not close %1. * The file is probably corrupted. } NELOG_ReplUserCurDir = ERRLOG_BASE + 106; {$EXTERNALSYM NELOG_ReplUserCurDir} { *The replicator cannot update directory %1. It has tree integrity * and is the current directory for some process. } NELOG_ReplCannotMasterDir = ERRLOG_BASE + 107; {$EXTERNALSYM NELOG_ReplCannotMasterDir} { *The server cannot export directory %1 to client %2. * It is exported from another server. } NELOG_ReplUpdateError = ERRLOG_BASE + 108; {$EXTERNALSYM NELOG_ReplUpdateError} { *The replication server could not update directory %2 from the source * on %3 due to error %1. } NELOG_ReplLostMaster = ERRLOG_BASE + 109; {$EXTERNALSYM NELOG_ReplLostMaster} { *Master %1 did not send an update notice for directory %2 at the expected * time. } NELOG_NetlogonAuthDCFail = ERRLOG_BASE + 110; {$EXTERNALSYM NELOG_NetlogonAuthDCFail} { *This computer could not authenticate with %2, a Windows domain controller * for domain %1, and therefore this computer might deny logon requests. * This inability to authenticate might be caused by another computer on the * same network using the same name or the password for this computer account * is not recognized. If this message appears again, contact your system * administrator. } NELOG_ReplLogonFailed = ERRLOG_BASE + 111; {$EXTERNALSYM NELOG_ReplLogonFailed} { *The replicator attempted to log on at %2 as %1 and failed. } NELOG_ReplNetErr = ERRLOG_BASE + 112; {$EXTERNALSYM NELOG_ReplNetErr} { * Network error %1 occurred. } NELOG_ReplMaxFiles = ERRLOG_BASE + 113; {$EXTERNALSYM NELOG_ReplMaxFiles} { * Replicator limit for files in a directory has been exceeded. } NELOG_ReplMaxTreeDepth = ERRLOG_BASE + 114; {$EXTERNALSYM NELOG_ReplMaxTreeDepth} { * Replicator limit for tree depth has been exceeded. } NELOG_ReplBadMsg = ERRLOG_BASE + 115; {$EXTERNALSYM NELOG_ReplBadMsg} { * Unrecognized message received in mailslot. } NELOG_ReplSysErr = ERRLOG_BASE + 116; {$EXTERNALSYM NELOG_ReplSysErr} { * System error %1 occurred. } NELOG_ReplUserLoged = ERRLOG_BASE + 117; {$EXTERNALSYM NELOG_ReplUserLoged} { * Cannot log on. User is currently logged on and argument TRYUSER * is set to NO. } NELOG_ReplBadImport = ERRLOG_BASE + 118; {$EXTERNALSYM NELOG_ReplBadImport} { * IMPORT path %1 cannot be found. } NELOG_ReplBadExport = ERRLOG_BASE + 119; {$EXTERNALSYM NELOG_ReplBadExport} { * EXPORT path %1 cannot be found. } NELOG_ReplSignalFileErr = ERRLOG_BASE + 120; {$EXTERNALSYM NELOG_ReplSignalFileErr} { * Replicator failed to update signal file in directory %2 due to * %1 system error. } NELOG_DiskFT = (ERRLOG_BASE+121); {$EXTERNALSYM NELOG_DiskFT} { * Disk Fault Tolerance Error * * %1 } NELOG_ReplAccessDenied = ERRLOG_BASE + 122; {$EXTERNALSYM NELOG_ReplAccessDenied} { * Replicator could not access %2 * on %3 due to system error %1. } NELOG_NetlogonFailedPrimary = ERRLOG_BASE + 123; {$EXTERNALSYM NELOG_NetlogonFailedPrimary} { *The primary domain controller for domain %1 has apparently failed. } NELOG_NetlogonPasswdSetFailed = ERRLOG_BASE + 124; {$EXTERNALSYM NELOG_NetlogonPasswdSetFailed} { * Changing machine account password for account %1 failed with * the following error: %n%2 } NELOG_NetlogonTrackingError = ERRLOG_BASE + 125; {$EXTERNALSYM NELOG_NetlogonTrackingError} { *An error occurred while updating the logon or logoff information for %1. } NELOG_NetlogonSyncError = ERRLOG_BASE + 126; {$EXTERNALSYM NELOG_NetlogonSyncError} { *An error occurred while synchronizing with primary domain controller %1 } NELOG_NetlogonRequireSignOrSealError = ERRLOG_BASE + 127; {$EXTERNALSYM NELOG_NetlogonRequireSignOrSealError} { * The session setup to the Windows NT or Windows 2000 Domain Controller %1 for the domain %2 * failed because %1 does not support signing or sealing the Netlogon * session. * * Either upgrade the Domain controller or set the RequireSignOrSeal * registry entry on this machine to 0. } // // UPS service specific error log messages from 130 to 135 // NELOG_UPS_PowerOut = ERRLOG_BASE + 130; {$EXTERNALSYM NELOG_UPS_PowerOut} { * A power failure was detected at the server. } NELOG_UPS_Shutdown = ERRLOG_BASE + 131; {$EXTERNALSYM NELOG_UPS_Shutdown} { * The UPS service performed server shut down. } NELOG_UPS_CmdFileError = ERRLOG_BASE + 132; {$EXTERNALSYM NELOG_UPS_CmdFileError} { * The UPS service did not complete execution of the * user specified shut down command file. } NELOG_UPS_CannotOpenDriver = (ERRLOG_BASE+133); {$EXTERNALSYM NELOG_UPS_CannotOpenDriver} { * The UPS driver could not be opened. The error code is * the data. } NELOG_UPS_PowerBack = ERRLOG_BASE + 134; {$EXTERNALSYM NELOG_UPS_PowerBack} { * Power has been restored. } NELOG_UPS_CmdFileConfig = ERRLOG_BASE + 135; {$EXTERNALSYM NELOG_UPS_CmdFileConfig} { * There is a problem with a configuration of user specified * shut down command file. } NELOG_UPS_CmdFileExec = ERRLOG_BASE + 136; {$EXTERNALSYM NELOG_UPS_CmdFileExec} { * The UPS service failed to execute a user specified shutdown * command file %1. The error code is the data. } // // Remoteboot server specific error log messages are from 150 to 157 // NELOG_Missing_Parameter = ERRLOG_BASE + 150; {$EXTERNALSYM NELOG_Missing_Parameter} { * Initialization failed because of an invalid or missing * parameter in the configuration file %1. } NELOG_Invalid_Config_Line = ERRLOG_BASE + 151; {$EXTERNALSYM NELOG_Invalid_Config_Line} { * Initialization failed because of an invalid line in the * configuration file %1. The invalid line is the data. } NELOG_Invalid_Config_File = ERRLOG_BASE + 152; {$EXTERNALSYM NELOG_Invalid_Config_File} { * Initialization failed because of an error in the configuration * file %1. } NELOG_File_Changed = ERRLOG_BASE + 153; {$EXTERNALSYM NELOG_File_Changed} { * The file %1 has been changed after initialization. * The boot-block loading was temporarily terminated. } NELOG_Files_Dont_Fit = ERRLOG_BASE + 154; {$EXTERNALSYM NELOG_Files_Dont_Fit} { * The files do not fit to the boot-block configuration * file %1. Change the BASE and ORG definitions or the order * of the files. } NELOG_Wrong_DLL_Version = ERRLOG_BASE + 155; {$EXTERNALSYM NELOG_Wrong_DLL_Version} { * Initialization failed because the dynamic-link * library %1 returned an incorrect version number. } NELOG_Error_in_DLL = ERRLOG_BASE + 156; {$EXTERNALSYM NELOG_Error_in_DLL} { * There was an unrecoverable error in the dynamic- * link library of the service. } NELOG_System_Error = ERRLOG_BASE + 157; {$EXTERNALSYM NELOG_System_Error} { * The system returned an unexpected error code. * The error code is the data. } NELOG_FT_ErrLog_Too_Large = ERRLOG_BASE + 158; {$EXTERNALSYM NELOG_FT_ErrLog_Too_Large} { * The fault-tolerance error log file, LANROOT\LOGS\FT.LOG, * is more than 64K. } NELOG_FT_Update_In_Progress = ERRLOG_BASE + 159; {$EXTERNALSYM NELOG_FT_Update_In_Progress} { * The fault-tolerance error-log file, LANROOT\LOGS\FT.LOG, had the * update in progress bit set upon opening, which means that the * system crashed while working on the error log. } NELOG_Joined_Domain = ERRLOG_BASE + 160; {$EXTERNALSYM NELOG_Joined_Domain} { * This computer has been successfully joined to %1 '%2'. } NELOG_Joined_Workgroup = ERRLOG_BASE + 161; {$EXTERNALSYM NELOG_Joined_Workgroup} (* * This computer has been successfully joined to workgroup '%1'. *) // // Microsoft has created a generic error log entry for OEMs to use to // log errors from OEM value added services. The code, which is the // 2nd arg to NetErrorLogWrite, is 3299. This value is manifest in // NET/H/ERRLOG.H as NELOG_OEM_Code. The text for error log entry // NELOG_OEM_Code is: "%1 %2 %3 %4 %5 %6 %7 %8 %9.". // // Microsoft suggests that OEMs use the insertion strings as follows: // %1: OEM System Name (e.g. 3+Open) // %2: OEM Service Name (e.g. 3+Mail) // %3: Severity level (e.g. error, warning, etc.) // %4: OEM error log entry sub-identifier (e.g. error code #) // %5 - % 9: Text. // // The call to NetErrorWrite must set nstrings = 9, and provide 9 // ASCIIZ strings. If the caller does not have 9 insertion strings, // provide null strings for the empty insertion strings. // NELOG_OEM_Code = ERRLOG_BASE + 199; {$EXTERNALSYM NELOG_OEM_Code} { * %1 %2 %3 %4 %5 %6 %7 %8 %9. } // // another error log range defined for NT Lanman. // ERRLOG2_BASE = 5700 { New NT NELOG errors start here }; {$EXTERNALSYM ERRLOG2_BASE} NELOG_NetlogonSSIInitError = ERRLOG2_BASE + 0; {$EXTERNALSYM NELOG_NetlogonSSIInitError} { * The Netlogon service could not initialize the replication data * structures successfully. The service was terminated. The following * error occurred: %n%1 } NELOG_NetlogonFailedToUpdateTrustList = ERRLOG2_BASE + 1; {$EXTERNALSYM NELOG_NetlogonFailedToUpdateTrustList} { * The Netlogon service failed to update the domain trust list. The * following error occurred: %n%1 } NELOG_NetlogonFailedToAddRpcInterface = ERRLOG2_BASE + 2; {$EXTERNALSYM NELOG_NetlogonFailedToAddRpcInterface} { * The Netlogon service could not add the RPC interface. The * service was terminated. The following error occurred: %n%1 } NELOG_NetlogonFailedToReadMailslot = ERRLOG2_BASE + 3; {$EXTERNALSYM NELOG_NetlogonFailedToReadMailslot} { * The Netlogon service could not read a mailslot message from %1 due * to the following error: %n%2 } NELOG_NetlogonFailedToRegisterSC = ERRLOG2_BASE + 4; {$EXTERNALSYM NELOG_NetlogonFailedToRegisterSC} (* * The Netlogon service failed to register the service with the * service controller. The service was terminated. The following * error occurred: %n%1 *) NELOG_NetlogonChangeLogCorrupt = ERRLOG2_BASE + 5; {$EXTERNALSYM NELOG_NetlogonChangeLogCorrupt} { * The change log cache maintained by the Netlogon service for %1 * database changes is inconsistent. The Netlogon service is resetting * the change log. } NELOG_NetlogonFailedToCreateShare = ERRLOG2_BASE + 6; {$EXTERNALSYM NELOG_NetlogonFailedToCreateShare} { * The Netlogon service could not create server share %1. The following * error occurred: %n%2 } NELOG_NetlogonDownLevelLogonFailed = ERRLOG2_BASE + 7; {$EXTERNALSYM NELOG_NetlogonDownLevelLogonFailed} { * The down-level logon request for the user %1 from %2 failed. } NELOG_NetlogonDownLevelLogoffFailed = ERRLOG2_BASE + 8; {$EXTERNALSYM NELOG_NetlogonDownLevelLogoffFailed} { * The down-level logoff request for the user %1 from %2 failed. } NELOG_NetlogonNTLogonFailed = ERRLOG2_BASE + 9; {$EXTERNALSYM NELOG_NetlogonNTLogonFailed} { * The Windows NT or Windows 2000 %1 logon request for the user %2\%3 from %4 (via %5) * failed. } NELOG_NetlogonNTLogoffFailed = ERRLOG2_BASE + 10; {$EXTERNALSYM NELOG_NetlogonNTLogoffFailed} { * The Windows NT or Windows 2000 %1 logoff request for the user %2\%3 from %4 * failed. } NELOG_NetlogonPartialSyncCallSuccess = ERRLOG2_BASE + 11; {$EXTERNALSYM NELOG_NetlogonPartialSyncCallSuccess} { * The partial synchronization request from the server %1 completed * successfully. %2 changes(s) has(have) been returned to the * caller. } NELOG_NetlogonPartialSyncCallFailed = ERRLOG2_BASE + 12; {$EXTERNALSYM NELOG_NetlogonPartialSyncCallFailed} { * The partial synchronization request from the server %1 failed with * the following error: %n%2 } NELOG_NetlogonFullSyncCallSuccess = ERRLOG2_BASE + 13; {$EXTERNALSYM NELOG_NetlogonFullSyncCallSuccess} { * The full synchronization request from the server %1 completed * successfully. %2 object(s) has(have) been returned to * the caller. } NELOG_NetlogonFullSyncCallFailed = ERRLOG2_BASE + 14; {$EXTERNALSYM NELOG_NetlogonFullSyncCallFailed} { * The full synchronization request from the server %1 failed with * the following error: %n%2 } NELOG_NetlogonPartialSyncSuccess = ERRLOG2_BASE + 15; {$EXTERNALSYM NELOG_NetlogonPartialSyncSuccess} { * The partial synchronization replication of the %1 database from the * primary domain controller %2 completed successfully. %3 change(s) is(are) * applied to the database. } NELOG_NetlogonPartialSyncFailed = ERRLOG2_BASE + 16; {$EXTERNALSYM NELOG_NetlogonPartialSyncFailed} { * The partial synchronization replication of the %1 database from the * primary domain controller %2 failed with the following error: %n%3 } NELOG_NetlogonFullSyncSuccess = ERRLOG2_BASE + 17; {$EXTERNALSYM NELOG_NetlogonFullSyncSuccess} { * The full synchronization replication of the %1 database from the * primary domain controller %2 completed successfully. } NELOG_NetlogonFullSyncFailed = ERRLOG2_BASE + 18; {$EXTERNALSYM NELOG_NetlogonFullSyncFailed} { * The full synchronization replication of the %1 database from the * primary domain controller %2 failed with the following error: %n%3 } NELOG_NetlogonAuthNoDomainController = ERRLOG2_BASE + 19; {$EXTERNALSYM NELOG_NetlogonAuthNoDomainController} { * This computer was not able to set up a secure session with a domain * controller in domain %1 due to the following: %n%2 * %nThis may lead to authentication problems. Make sure that this * computer is connected to the network. If the problem persists, * please contact your domain administrator. * * %n%nADDITIONAL INFO * %nIf this computer is a domain controller for the specified domain, it * sets up the secure session to the primary domain controller emulator in the specified * domain. Otherwise, this computer sets up the secure session to any domain controller * in the specified domain. } NELOG_NetlogonAuthNoTrustLsaSecret = ERRLOG2_BASE + 20; {$EXTERNALSYM NELOG_NetlogonAuthNoTrustLsaSecret} { * The session setup to the Windows NT or Windows 2000 Domain Controller %1 for the domain %2 * failed because the computer %3 does not have a local security database account. } NELOG_NetlogonAuthNoTrustSamAccount = ERRLOG2_BASE + 21; {$EXTERNALSYM NELOG_NetlogonAuthNoTrustSamAccount} { * The session setup to the Windows NT or Windows 2000 Domain Controller %1 for the domain %2 * failed because the Domain Controller did not have an account %4 * needed to set up the session by this computer %3. * * %n%nADDITIONAL DATA * %nIf this computer is a member of or a Domain Controller in the specified domain, the * aforementioned account is a computer account for this computer in the specified domain. * Otherwise, the account is an interdomain trust account with the specified domain. } NELOG_NetlogonServerAuthFailed = ERRLOG2_BASE + 22; {$EXTERNALSYM NELOG_NetlogonServerAuthFailed} { * The session setup from the computer %1 failed to authenticate. * The name(s) of the account(s) referenced in the security database is * %2. The following error occurred: %n%3 } NELOG_NetlogonServerAuthNoTrustSamAccount = ERRLOG2_BASE + 23; {$EXTERNALSYM NELOG_NetlogonServerAuthNoTrustSamAccount} { * The session setup from computer '%1' failed because the security database * does not contain a trust account '%2' referenced by the specified computer. * * %n%nUSER ACTION * * %nIf this is the first occurrence of this event for the specified computer * and account, this may be a transient issue that doesn't require any action * at this time. Otherwise, the following steps may be taken to resolve this problem: * * %n%nIf '%2' is a legitimate machine account for the computer '%1', then '%1' * should be rejoined to the domain. * * %n%nIf '%2' is a legitimate interdomain trust account, then the trust should * be recreated. * * %n%nOtherwise, assuming that '%2' is not a legitimate account, the following * action should be taken on '%1': * * %n%nIf '%1' is a Domain Controller, then the trust associated with '%2' should be deleted. * * %n%nIf '%1' is not a Domain Controller, it should be disjoined from the domain. } // // General log messages for NT services. // NELOG_FailedToRegisterSC = ERRLOG2_BASE + 24; {$EXTERNALSYM NELOG_FailedToRegisterSC} { * Could not register control handler with service controller %1. } NELOG_FailedToSetServiceStatus = ERRLOG2_BASE + 25; {$EXTERNALSYM NELOG_FailedToSetServiceStatus} { * Could not set service status with service controller %1. } NELOG_FailedToGetComputerName = ERRLOG2_BASE + 26; {$EXTERNALSYM NELOG_FailedToGetComputerName} { * Could not find the computer name %1. } NELOG_DriverNotLoaded = ERRLOG2_BASE + 27; {$EXTERNALSYM NELOG_DriverNotLoaded} { * Could not load %1 device driver. } NELOG_NoTranportLoaded = ERRLOG2_BASE + 28; {$EXTERNALSYM NELOG_NoTranportLoaded} { * Could not load any transport. } // // More Netlogon service events // NELOG_NetlogonFailedDomainDelta = ERRLOG2_BASE + 29; {$EXTERNALSYM NELOG_NetlogonFailedDomainDelta} { * Replication of the %1 Domain Object "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonFailedGlobalGroupDelta = ERRLOG2_BASE + 30; {$EXTERNALSYM NELOG_NetlogonFailedGlobalGroupDelta} { * Replication of the %1 Global Group "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonFailedLocalGroupDelta = ERRLOG2_BASE + 31; {$EXTERNALSYM NELOG_NetlogonFailedLocalGroupDelta} { * Replication of the %1 Local Group "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonFailedUserDelta = ERRLOG2_BASE + 32; {$EXTERNALSYM NELOG_NetlogonFailedUserDelta} { * Replication of the %1 User "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonFailedPolicyDelta = ERRLOG2_BASE + 33; {$EXTERNALSYM NELOG_NetlogonFailedPolicyDelta} { * Replication of the %1 Policy Object "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonFailedTrustedDomainDelta = ERRLOG2_BASE + 34; {$EXTERNALSYM NELOG_NetlogonFailedTrustedDomainDelta} { * Replication of the %1 Trusted Domain Object "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonFailedAccountDelta = ERRLOG2_BASE + 35; {$EXTERNALSYM NELOG_NetlogonFailedAccountDelta} { * Replication of the %1 Account Object "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonFailedSecretDelta = ERRLOG2_BASE + 36; {$EXTERNALSYM NELOG_NetlogonFailedSecretDelta} { * Replication of the %1 Secret "%2" from primary domain controller * %3 failed with the following error: %n%4 } NELOG_NetlogonSystemError = ERRLOG2_BASE + 37; {$EXTERNALSYM NELOG_NetlogonSystemError} { * The system returned the following unexpected error code: %n%1 } NELOG_NetlogonDuplicateMachineAccounts = ERRLOG2_BASE + 38; {$EXTERNALSYM NELOG_NetlogonDuplicateMachineAccounts} { * Netlogon has detected two machine accounts for server "%1". * The server can be either a Windows 2000 Server that is a member of the * domain or the server can be a LAN Manager server with an account in the * SERVERS global group. It cannot be both. } NELOG_NetlogonTooManyGlobalGroups = ERRLOG2_BASE + 39; {$EXTERNALSYM NELOG_NetlogonTooManyGlobalGroups} { * This domain has more global groups than can be replicated to a LanMan * BDC. Either delete some of your global groups or remove the LanMan * BDCs from the domain. } NELOG_NetlogonBrowserDriver = ERRLOG2_BASE + 40; {$EXTERNALSYM NELOG_NetlogonBrowserDriver} { * The Browser driver returned the following error to Netlogon: %n%1 } NELOG_NetlogonAddNameFailure = ERRLOG2_BASE + 41; {$EXTERNALSYM NELOG_NetlogonAddNameFailure} { * Netlogon could not register the %1<1B> name for the following reason: %n%2 } // // More Remoteboot service events. // NELOG_RplMessages = ERRLOG2_BASE + 42; {$EXTERNALSYM NELOG_RplMessages} { * Service failed to retrieve messages needed to boot remote boot clients. } NELOG_RplXnsBoot = ERRLOG2_BASE + 43; {$EXTERNALSYM NELOG_RplXnsBoot} { * Service experienced a severe error and can no longer provide remote boot * for 3Com 3Start remote boot clients. } NELOG_RplSystem = ERRLOG2_BASE + 44; {$EXTERNALSYM NELOG_RplSystem} { * Service experienced a severe system error and will shut itself down. } NELOG_RplWkstaTimeout = ERRLOG2_BASE + 45; {$EXTERNALSYM NELOG_RplWkstaTimeout} { * Client with computer name %1 failed to acknowledge receipt of the * boot data. Remote boot of this client was not completed. } NELOG_RplWkstaFileOpen = ERRLOG2_BASE + 46; {$EXTERNALSYM NELOG_RplWkstaFileOpen} { * Client with computer name %1 was not booted due to an error in opening * file %2. } NELOG_RplWkstaFileRead = ERRLOG2_BASE + 47; {$EXTERNALSYM NELOG_RplWkstaFileRead} { * Client with computer name %1 was not booted due to an error in reading * file %2. } NELOG_RplWkstaMemory = ERRLOG2_BASE + 48; {$EXTERNALSYM NELOG_RplWkstaMemory} { * Client with computer name %1 was not booted due to insufficient memory * at the remote boot server. } NELOG_RplWkstaFileChecksum = ERRLOG2_BASE + 49; {$EXTERNALSYM NELOG_RplWkstaFileChecksum} { * Client with computer name %1 will be booted without using checksums * because checksum for file %2 could not be calculated. } NELOG_RplWkstaFileLineCount = ERRLOG2_BASE + 50; {$EXTERNALSYM NELOG_RplWkstaFileLineCount} { * Client with computer name %1 was not booted due to too many lines in * file %2. } NELOG_RplWkstaBbcFile = ERRLOG2_BASE + 51; {$EXTERNALSYM NELOG_RplWkstaBbcFile} { * Client with computer name %1 was not booted because the boot block * configuration file %2 for this client does not contain boot block * line and/or loader line. } NELOG_RplWkstaFileSize = ERRLOG2_BASE + 52; {$EXTERNALSYM NELOG_RplWkstaFileSize} { * Client with computer name %1 was not booted due to a bad size of * file %2. } NELOG_RplWkstaInternal = ERRLOG2_BASE + 53; {$EXTERNALSYM NELOG_RplWkstaInternal} { * Client with computer name %1 was not booted due to remote boot * service internal error. } NELOG_RplWkstaWrongVersion = ERRLOG2_BASE + 54; {$EXTERNALSYM NELOG_RplWkstaWrongVersion} { * Client with computer name %1 was not booted because file %2 has an * invalid boot header. } NELOG_RplWkstaNetwork = ERRLOG2_BASE + 55; {$EXTERNALSYM NELOG_RplWkstaNetwork} { * Client with computer name %1 was not booted due to network error. } NELOG_RplAdapterResource = ERRLOG2_BASE + 56; {$EXTERNALSYM NELOG_RplAdapterResource} { * Client with adapter id %1 was not booted due to lack of resources. } NELOG_RplFileCopy = ERRLOG2_BASE + 57; {$EXTERNALSYM NELOG_RplFileCopy} { * Service experienced error copying file or directory %1. } NELOG_RplFileDelete = ERRLOG2_BASE + 58; {$EXTERNALSYM NELOG_RplFileDelete} { * Service experienced error deleting file or directory %1. } NELOG_RplFilePerms = ERRLOG2_BASE + 59; {$EXTERNALSYM NELOG_RplFilePerms} { * Service experienced error setting permissions on file or directory %1. } NELOG_RplCheckConfigs = ERRLOG2_BASE + 60; {$EXTERNALSYM NELOG_RplCheckConfigs} { * Service experienced error evaluating RPL configurations. } NELOG_RplCreateProfiles = ERRLOG2_BASE + 61; {$EXTERNALSYM NELOG_RplCreateProfiles} { * Service experienced error creating RPL profiles for all configurations. } NELOG_RplRegistry = ERRLOG2_BASE + 62; {$EXTERNALSYM NELOG_RplRegistry} { * Service experienced error accessing registry. } NELOG_RplReplaceRPLDISK = ERRLOG2_BASE + 63; {$EXTERNALSYM NELOG_RplReplaceRPLDISK} { * Service experienced error replacing possibly outdated RPLDISK.SYS. } NELOG_RplCheckSecurity = ERRLOG2_BASE + 64; {$EXTERNALSYM NELOG_RplCheckSecurity} { * Service experienced error adding security accounts or setting * file permissions. These accounts are the RPLUSER local group * and the user accounts for the individual RPL workstations. } NELOG_RplBackupDatabase = ERRLOG2_BASE + 65; {$EXTERNALSYM NELOG_RplBackupDatabase} { * Service failed to back up its database. } NELOG_RplInitDatabase = ERRLOG2_BASE + 66; {$EXTERNALSYM NELOG_RplInitDatabase} { * Service failed to initialize from its database. The database may be * missing or corrupted. Service will attempt restoring the database * from the backup. } NELOG_RplRestoreDatabaseFailure = ERRLOG2_BASE + 67; {$EXTERNALSYM NELOG_RplRestoreDatabaseFailure} { * Service failed to restore its database from the backup. Service * will not start. } NELOG_RplRestoreDatabaseSuccess = ERRLOG2_BASE + 68; {$EXTERNALSYM NELOG_RplRestoreDatabaseSuccess} { * Service successfully restored its database from the backup. } NELOG_RplInitRestoredDatabase = ERRLOG2_BASE + 69; {$EXTERNALSYM NELOG_RplInitRestoredDatabase} { * Service failed to initialize from its restored database. Service * will not start. } // // More Netlogon and RPL service events // NELOG_NetlogonSessionTypeWrong = ERRLOG2_BASE + 70; {$EXTERNALSYM NELOG_NetlogonSessionTypeWrong} { * The session setup to the Windows NT or Windows 2000 Domain Controller %1 from computer * %2 using account %4 failed. %2 is declared to be a BDC in domain %3. * However, %2 tried to connect as either a DC in a trusted domain, * a member workstation in domain %3, or as a server in domain %3. * Use the Active Directory Users and Computers tool or Server Manager to remove the BDC account for %2. } NELOG_RplUpgradeDBTo40 = ERRLOG2_BASE + 71; {$EXTERNALSYM NELOG_RplUpgradeDBTo40} { * The Remoteboot database was in NT 3.5 / NT 3.51 format and NT is * attempting to convert it to NT 4.0 format. The JETCONV converter * will write to the Application event log when it is finished. } NELOG_NetlogonLanmanBdcsNotAllowed = ERRLOG2_BASE + 72; {$EXTERNALSYM NELOG_NetlogonLanmanBdcsNotAllowed} { * Global group SERVERS exists in domain %1 and has members. * This group defines Lan Manager BDCs in the domain. * Lan Manager BDCs are not permitted in NT domains. } NELOG_NetlogonNoDynamicDns = ERRLOG2_BASE + 73; {$EXTERNALSYM NELOG_NetlogonNoDynamicDns} { * The following DNS server that is authoritative for the DNS domain controller * locator records of this domain controller does not support dynamic DNS updates: * * %n%nDNS server IP address: %1 * %nReturned Response Code (RCODE): %2 * %nReturned Status Code: %3 * * %n%nUSER ACTION * * %nConfigure the DNS server to allow dynamic DNS updates or manually add the DNS * records from the file '%SystemRoot%\System32\Config\Netlogon.dns' to the DNS database. } NELOG_NetlogonDynamicDnsRegisterFailure = ERRLOG2_BASE + 74; {$EXTERNALSYM NELOG_NetlogonDynamicDnsRegisterFailure} { * * The dynamic registration of the DNS record '%1' failed on the following DNS server: * * %n%nDNS server IP address: %3 * %nReturned Response Code (RCODE): %4 * %nReturned Status Code: %5 * * %n%nFor computers and users to locate this domain controller, this record must be * registered in DNS. * * %n%nUSER ACTION * * %nDetermine what might have caused this failure, resolve the problem, and initiate * registration of the DNS records by the domain controller. To determine what might * have caused this failure, run DCDiag.exe. You can find this program on the Windows * Server 2003 installation CD in Support\Tools\support.cab. To learn more about * DCDiag.exe, see Help and Support Center. To initiate registration of the DNS records by * this domain controller, run 'nltest.exe /dsregdns' from the command prompt on the domain * controller or restart Net Logon service. Nltest.exe is available in the Microsoft Windows * Server Resource Kit CD. %n Or, you can manually add this record to DNS, but it is not * recommended. * * %n%nADDITIONAL DATA * %nError Value: %2 * } NELOG_NetlogonDynamicDnsDeregisterFailure = ERRLOG2_BASE + 75; {$EXTERNALSYM NELOG_NetlogonDynamicDnsDeregisterFailure} { * The dynamic deletion of the DNS record '%1' failed on the following DNS server: * * %n%nDNS server IP address: %3 * %nReturned Response Code (RCODE): %4 * %nReturned Status Code: %5 * * %n%nUSER ACTION * * %nTo prevent remote computers from connecting unnecessarily to the domain controller, * delete the record manually or troubleshoot the failure to dynamically delete the * record. To learn more about debugging DNS, see Help and Support Center. * * %n%nADDITIONAL DATA * %nError Value: %2 } NELOG_NetlogonFailedFileCreate = ERRLOG2_BASE + 76; {$EXTERNALSYM NELOG_NetlogonFailedFileCreate} { * Failed to create/open file %1 with the following error: %n%2 } NELOG_NetlogonGetSubnetToSite = ERRLOG2_BASE + 77; {$EXTERNALSYM NELOG_NetlogonGetSubnetToSite} { * Netlogon got the following error while trying to get the subnet to site * mapping information from the DS: %n%1 } NELOG_NetlogonNoSiteForClient = ERRLOG2_BASE + 78; {$EXTERNALSYM NELOG_NetlogonNoSiteForClient} { * '%1' tried to determine its site by looking up its IP address ('%2') * in the Configuration\Sites\Subnets container in the DS. No subnet matched * the IP address. Consider adding a subnet object for this IP address. } NELOG_NetlogonBadSiteName = ERRLOG2_BASE + 79; {$EXTERNALSYM NELOG_NetlogonBadSiteName} { * The site name for this computer is '%1'. That site name is not a valid * site name. A site name must be a valid DNS label. * Rename the site to be a valid name. } NELOG_NetlogonBadSubnetName = ERRLOG2_BASE + 80; {$EXTERNALSYM NELOG_NetlogonBadSubnetName} { * The subnet object '%1' appears in the Configuration\Sites\Subnets * container in the DS. The name is not syntactically valid. The valid * syntax is xx.xx.xx.xx/yy where xx.xx.xx.xx is a valid IP subnet number * and yy is the number of bits in the subnet mask. * * Correct the name of the subnet object. } NELOG_NetlogonDynamicDnsServerFailure = ERRLOG2_BASE + 81; {$EXTERNALSYM NELOG_NetlogonDynamicDnsServerFailure} { * Dynamic registration or deletion of one or more DNS records associated with DNS * domain '%1' failed. These records are used by other computers to locate this * server as a domain controller (if the specified domain is an Active Directory * domain) or as an LDAP server (if the specified domain is an application partition). * * %n%nPossible causes of failure include: * * %n- TCP/IP properties of the network connections of this computer contain wrong IP address(es) of the preferred and alternate DNS servers * %n- Specified preferred and alternate DNS servers are not running * %n- DNS server(s) primary for the records to be registered is not running * %n- Preferred or alternate DNS servers are configured with wrong root hints * %n- Parent DNS zone contains incorrect delegation to the child zone authoritative for the DNS records that failed registration * * %n%nUSER ACTION * * %nFix possible misconfiguration(s) specified above and initiate registration or deletion of * the DNS records by running 'nltest.exe /dsregdns' from the command prompt or by restarting * Net Logon service. Nltest.exe is available in the Microsoft Windows Server Resource Kit CD. } NELOG_NetlogonDynamicDnsFailure = ERRLOG2_BASE + 82; {$EXTERNALSYM NELOG_NetlogonDynamicDnsFailure} { * Dynamic registration or deregistration of one or more DNS records failed with the following error: %n%1 } NELOG_NetlogonRpcCallCancelled = ERRLOG2_BASE + 83; {$EXTERNALSYM NELOG_NetlogonRpcCallCancelled} { * The session setup to the Windows NT or Windows 2000 Domain Controller %1 for the domain %2 * is not responsive. The current RPC call from Netlogon on \\%3 to %1 has been cancelled. } NELOG_NetlogonDcSiteCovered = ERRLOG2_BASE + 84; {$EXTERNALSYM NELOG_NetlogonDcSiteCovered} { * Site '%2' does not have any Domain Controllers for domain '%3'. * Domain Controllers in site '%1' have been automatically * selected to cover site '%2' for domain '%3' based on configured * Directory Server replication costs. } NELOG_NetlogonDcSiteNotCovered = ERRLOG2_BASE + 85; {$EXTERNALSYM NELOG_NetlogonDcSiteNotCovered} { * This Domain Controller no longer automatically covers site '%1' for domain '%2'. } NELOG_NetlogonGcSiteCovered = ERRLOG2_BASE + 86; {$EXTERNALSYM NELOG_NetlogonGcSiteCovered} { * Site '%2' does not have any Global Catalog servers for forest '%3'. * Global Catalog servers in site '%1' have been automatically * selected to cover site '%2' for forest '%3' based on configured * Directory Server replication costs. } NELOG_NetlogonGcSiteNotCovered = ERRLOG2_BASE + 87; {$EXTERNALSYM NELOG_NetlogonGcSiteNotCovered} { * This Global Catalog server no longer automatically covers site '%1' for forest '%2'. } NELOG_NetlogonFailedSpnUpdate = ERRLOG2_BASE + 88; {$EXTERNALSYM NELOG_NetlogonFailedSpnUpdate} { * Attempt to update HOST Service Principal Names (SPNs) of the computer * object in Active Directory failed. The updated values were '%1' and '%2'. * The following error occurred: %n%3 } NELOG_NetlogonFailedDnsHostNameUpdate = ERRLOG2_BASE + 89; {$EXTERNALSYM NELOG_NetlogonFailedDnsHostNameUpdate} { * Attempt to update DNS Host Name of the computer object * in Active Directory failed. The updated value was '%1'. * The following error occurred: %n%2 } NELOG_NetlogonAuthNoUplevelDomainController = ERRLOG2_BASE + 90; {$EXTERNALSYM NELOG_NetlogonAuthNoUplevelDomainController} { * No suitable Domain Controller is available for domain %1. * An NT4 or older domain controller is available but it cannot * be used for authentication purposes in the Windows 2000 or newer * domain that this computer is a member of. * The following error occurred:%n%2 } NELOG_NetlogonAuthDomainDowngraded = ERRLOG2_BASE + 91; {$EXTERNALSYM NELOG_NetlogonAuthDomainDowngraded} { * The domain of this computer, %1 has been downgraded from Windows 2000 * or newer to Windows NT4 or older. The computer cannot function properly * in this case for authentication purposes. This computer needs to rejoin * the domain. * The following error occurred:%n%2 } NELOG_NetlogonNdncSiteCovered = ERRLOG2_BASE + 92; {$EXTERNALSYM NELOG_NetlogonNdncSiteCovered} { * Site '%2' does not have any LDAP servers for non-domain NC '%3'. * LDAP servers in site '%1' have been automatically selected to * cover site '%2' for non-domain NC '%3' based on configured * Directory Server replication costs. } NELOG_NetlogonNdncSiteNotCovered = ERRLOG2_BASE + 93; {$EXTERNALSYM NELOG_NetlogonNdncSiteNotCovered} { * This LDAP server no longer automatically covers site '%1' for non-domain NC '%2'. } NELOG_NetlogonDcOldSiteCovered = ERRLOG2_BASE + 94; {$EXTERNALSYM NELOG_NetlogonDcOldSiteCovered} { * Site '%2' is no longer manually configured in the registry as * covered by this Domain Controller for domain '%3'. As a result, * site '%2' does not have any Domain Controllers for domain '%3'. * Domain Controllers in site '%1' have been automatically * selected to cover site '%2' for domain '%3' based on configured * Directory Server replication costs. } NELOG_NetlogonDcSiteNotCoveredAuto = ERRLOG2_BASE + 95; {$EXTERNALSYM NELOG_NetlogonDcSiteNotCoveredAuto} { * This Domain Controller no longer automatically covers site '%1' for domain '%2'. * However, site '%1' is still (manually) covered by this Domain Controller for * domain '%2' since this site has been manually configured in the registry. } NELOG_NetlogonGcOldSiteCovered = ERRLOG2_BASE + 96; {$EXTERNALSYM NELOG_NetlogonGcOldSiteCovered} { * Site '%2' is no longer manually configured in the registry as * covered by this Global Catalog server for forest '%3'. As a result, * site '%2' does not have any Global Catalog servers for forest '%3'. * Global Catalog servers in site '%1' have been automatically * selected to cover site '%2' for forest '%3' based on configured * Directory Server replication costs. } NELOG_NetlogonGcSiteNotCoveredAuto = ERRLOG2_BASE + 97; {$EXTERNALSYM NELOG_NetlogonGcSiteNotCoveredAuto} { * This Global Catalog server no longer automatically covers site '%1' for forest '%2'. * However, site '%1' is still (manually) covered by this Global catalog for * forest '%2' since this site has been manually configured in the registry. } NELOG_NetlogonNdncOldSiteCovered = ERRLOG2_BASE + 98; {$EXTERNALSYM NELOG_NetlogonNdncOldSiteCovered} { * Site '%2' is no longer manually configured in the registry as * covered by this LDAP server for non-domain NC '%3'. As a result, * site '%2' does not have any LDAP servers for non-domain NC '%3'. * LDAP servers in site '%1' have been automatically * selected to cover site '%2' for non-domain NC '%3' based on * configured Directory Server replication costs. } NELOG_NetlogonNdncSiteNotCoveredAuto = ERRLOG2_BASE + 99; {$EXTERNALSYM NELOG_NetlogonNdncSiteNotCoveredAuto} { * This LDAP server no longer automatically covers site '%1' for non-domain NC '%2'. * However, site '%1' is still (manually) covered by this LDAP server for * non-domain NC '%2' since this site has been manually configured in the registry. } NELOG_NetlogonSpnMultipleSamAccountNames = ERRLOG2_BASE + 100; {$EXTERNALSYM NELOG_NetlogonSpnMultipleSamAccountNames} { * Attempt to update DnsHostName and HOST Service Principal Name (SPN) attributes * of the computer object in Active Directory failed because the Domain Controller * '%1' had more than one account with the name '%2' corresponding to this computer. * Not having SPNs registered may result in authentication failures for this computer. * Contact your domain administrator who may need to manually resolve the account name * collision. } NELOG_NetlogonSpnCrackNamesFailure = ERRLOG2_BASE + 101; {$EXTERNALSYM NELOG_NetlogonSpnCrackNamesFailure} { * Attempt to update DnsHostName and HOST Service Principal Name (SPN) attributes * of the computer object in Active Directory failed because this computer account * name, '%2' could not be mapped to the computer object on Domain Controller '%1'. * Not having SPNs registered may result in authentication failures for this computer. * Contact your domain administrator. The following technical information may be * useful for the resolution of this failure:%n * DsCrackNames status = 0x%3, crack error = 0x%4. } NELOG_NetlogonNoAddressToSiteMapping = ERRLOG2_BASE + 102; {$EXTERNALSYM NELOG_NetlogonNoAddressToSiteMapping} { * None of the IP addresses (%2) of this Domain Controller map to the configured site '%1'. * While this may be a temporary situation due to IP address changes, it is generally * recommended that the IP address of the Domain Controller (accessible to machines in * its domain) maps to the Site which it services. If the above list of IP addresses is * stable, consider moving this server to a site (or create one if it does not already * exist) such that the above IP address maps to the selected site. This may require the * creation of a new subnet object (whose range includes the above IP address) which maps * to the selected site object. } NELOG_NetlogonInvalidGenericParameterValue = ERRLOG2_BASE + 103; {$EXTERNALSYM NELOG_NetlogonInvalidGenericParameterValue} { * The following error occurred while reading a parameter '%2' in the * Netlogon %1 registry section:%n%3 } NELOG_NetlogonInvalidDwordParameterValue = ERRLOG2_BASE + 104; {$EXTERNALSYM NELOG_NetlogonInvalidDwordParameterValue} { * The Netlogon %1 registry key contains an invalid value 0x%2 for parameter '%3'. * The minimum and maximum values allowed for this parameter are 0x%4 and 0x%5, respectively. * The value of 0x%6 has been assigned to this parameter. } NELOG_NetlogonServerAuthFailedNoAccount = ERRLOG2_BASE + 105; {$EXTERNALSYM NELOG_NetlogonServerAuthFailedNoAccount} { * The session setup from the computer %1 failed to authenticate. * The following error occurred: %n%2 } NELOG_NetlogonNoDynamicDnsManual = ERRLOG2_BASE + 106; {$EXTERNALSYM NELOG_NetlogonNoDynamicDnsManual} (* * Dynamic DNS updates have been manually disabled on this domain controller. * * %n%nUSER ACTION * * %nReconfigure this domain controller to use dynamic DNS updates or manually add the DNS * records from the file '%SystemRoot%\System32\Config\Netlogon.dns' to the DNS database. *) NELOG_NetlogonNoSiteForClients = ERRLOG2_BASE + 107; {$EXTERNALSYM NELOG_NetlogonNoSiteForClients} { * During the past %1 hours there have been %2 connections to this Domain * Controller from client machines whose IP addresses don't map to any of * the existing sites in the enterprise. Those clients, therefore, have * undefined sites and may connect to any Domain Controller including * those that are in far distant locations from the clients. A client's site * is determined by the mapping of its subnet to one of the existing sites. * To move the above clients to one of the sites, please consider creating * subnet object(s) covering the above IP addresses with mapping to one of the * existing sites. The names and IP addresses of the clients in question have * been logged on this computer in the following log file * '%SystemRoot%\debug\netlogon.log' and, potentially, in the log file * '%SystemRoot%\debug\netlogon.bak' created if the former log becomes full. * The log(s) may contain additional unrelated debugging information. To filter * out the needed information, please search for lines which contain text * 'NO_CLIENT_SITE:'. The first word after this string is the client name and * the second word is the client IP address. The maximum size of the log(s) is * controlled by the following registry DWORD value * 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\LogFileMaxSize'; * the default is %3 bytes. The current maximum size is %4 bytes. To set a * different maximum size, create the above registry value and set the desired * maximum size in bytes. } NELOG_NetlogonDnsDeregAborted = ERRLOG2_BASE + 108; {$EXTERNALSYM NELOG_NetlogonDnsDeregAborted} (* * The deregistration of some DNS domain controller locator records was aborted * at the time of this domain controller demotion because the DNS deregistrations * took too long. * * %n%nUSER ACTION * * %nManually delete the DNS records listed in the file * '%SystemRoot%\System32\Config\Netlogon.dns' from the DNS database. *) NELOG_NetlogonRpcPortRequestFailure = ERRLOG2_BASE + 109; {$EXTERNALSYM NELOG_NetlogonRpcPortRequestFailure} (* * The NetLogon service on this domain controller has been configured to use port %1 * for incoming RPC connections over TCP/IP from remote machines. However, the * following error occurred when Netlogon attempted to register this port with the RPC * endpoint mapper service: %n%2 %nThis will prevent the NetLogon service on remote * machines from connecting to this domain controller over TCP/IP that may result in * authentication problems. * * %n%nUSER ACTION * * %nThe specified port is configured via the Group Policy or via a registry value 'DcTcpipPort' * under the 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters' * registry key; the value configured through the Group Policy takes precedence. If the * port specified is in error, reset it to a correct value. You can also remove this * configuration for the port in which case the port will be assigned dynamically by * the endpoint mapper at the time the NetLogon service on remote machines makes RPC connections * to this domain controller. After the misconfiguration is corrected, restart the NetLogon * service on this machine and verify that this event log no longer appears. *) {$ENDIF JWA_INTERFACESECTION} {$IFNDEF JWA_INCLUDEMODE} implementation uses JwaWinDLLNames; {$ENDIF !JWA_INCLUDEMODE} {$IFDEF JWA_IMPLEMENTATIONSECTION} {$IFDEF DYNAMIC_LINK} var _NetErrorLogClear: Pointer; function NetErrorLogClear; begin GetProcedureAddress(_NetErrorLogClear, netapi32, 'NetErrorLogClear'); asm MOV ESP, EBP POP EBP JMP [_NetErrorLogClear] end; end; var _NetErrorLogRead: Pointer; function NetErrorLogRead; begin GetProcedureAddress(_NetErrorLogRead, netapi32, 'NetErrorLogRead'); asm MOV ESP, EBP POP EBP JMP [_NetErrorLogRead] end; end; var _NetErrorLogWrite: Pointer; function NetErrorLogWrite; begin GetProcedureAddress(_NetErrorLogWrite, netapi32, 'NetErrorLogWrite'); asm MOV ESP, EBP POP EBP JMP [_NetErrorLogWrite] end; end; {$ELSE} function NetErrorLogClear; external netapi32 name 'NetErrorLogClear'; function NetErrorLogRead; external netapi32 name 'NetErrorLogRead'; function NetErrorLogWrite; external netapi32 name 'NetErrorLogWrite'; {$ENDIF DYNAMIC_LINK} {$ENDIF JWA_IMPLEMENTATIONSECTION} {$IFNDEF JWA_INCLUDEMODE} end. {$ENDIF !JWA_INCLUDEMODE}