The NetErrorLogRead API reads from the specified computer error log. The NetErrorLogRead API replaces the NetErrorLogOpen API, which is now obsolete.
Restrictions
This API can be called from DLS and OS/2 workstations, but DLS workstations can issue this call only to a remote LAN Server workstation. Administrator authority is required.
#include <netcons.h> #include <errlog.h> NetErrorLogRead(pszServername, reserved1, pLogHandle, offset, reserved2, reserved3, flags, buf, usBuflen, pusBytesReturned, pusBytesAvail); /* 16 bit */ Net32ErrorLogRead(pszServername, reserved1, pLogHandle, offset, reserved2, reserved3, flags, buf, ulBuflen, pulBytesReturned, pulBytesAvail); /* 32 bit */Parameters
See Common Parameter Definitions for descriptions of parameters not defined here.
reserved1
where the least significant bit (LSB) is the last (rightmost) bit.
Note: The record offset parameter is zero-based from both directions, depending on the direction of the read. If reading backward is specified, then record 0 is the last record in the file. If reading forward is specified, then record 0 is the first record in the file.
Note: If pusBytesReturned is 0 and pusBytesAvail is not 0, the buffer is too small to hold the next record in the file.
The error log can contain much more than 64KB of data. If pusBytesAvail is returned with a value of 0xFFFF, there can be 0xFFFF or more bytes of data available. The application should continue to read the log until the value returned in pusBytesAvail is 0.
pusBytesReturned applies to the last complete record in the buffer. However, a partial record may be left at the end of the buffer. You might not know whether the area following the last entry is null unless you check.
The following table lists the return codes most significant to this API.
(See API Return Codes for a complete
list of return codes.) ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³SYMBOLICCONSTANT
³VALUE³MEANING ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR _Success ³ 0 ³ No errors were
encountered. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ERROR_ACCESS_DENIED ³ 5 ³ Administrator privilege is required. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ERROR_SHARING_VIOLATION ³ 32 ³ A sharing violation occurred. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ERROR_BAD_NETPATH ³ 53 ³ The network path cannot be found. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ERROR_NETWORK_ACCESS_DENIED ³ 65 ³ Network access is denied. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ERROR_INVALID_PARAMETER ³ 87 ³ At least one parameter value is not
³
³ ³ ³ valid. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_NetNotStarted ³ 2102 ³ The redirector NETWKSTA.200 has not
³
³ ³ ³ been started. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_RemoteOnly ³ 2106 ³ This operation is not supported on ³
³ ³ ³ workstations. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_BufTooSmall ³ 2123 ³ The buffer is too small for fixed- ³
³ ³ ³ length data. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_WkstaNotStarted ³ 2138 ³ The Requester service has not been
³
³ ³ ³ started. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_InternalError ³ 2140 ³ An internal error has occurred. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_BadTransactConfig ³ 2141 ³ The server is not configured for
³
³ ³ ³ transactions. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_InvalidAPI ³ 2142 ³ The requested API is not supported on
³
³ ³ ³ the remote server. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_InvalidComputer ³ 2351 ³ The specified computer name is not
³
³ ³ ³ valid. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_LogFileChanged ³ 2378 ³ This log file has changed between
³
³ ³ ³ reads. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_LogFileCorrupt ³ 2379 ³ This log file is damaged. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ NERR_InvalidLogSeek ³ 2440 ³ The log file does not contain the
³
³ ³ ³ requested record number. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Other codes could be returned from the following functions:
To read the contents of an error log, an application calls NetErrorLogRead repeatedly until the function indicates (through the pusBytesAvail parameter) that there is no more data to be read. Each call to NetErrorLogRead returns a handle that must be provided to any subsequent read call. This handle changes with each subsequent call. The handle is not a system file handle and should never be treated as such.
The 64-bit log handle must be initialized by using the fields in the structure defined in ERRLOG.H. The structure definition is:
typedef struct loghandle { unsigned long time; unsigned long last_flags; unsigned long offset; unsigned long rec_offset; } HLOG;
Using the log-handle structure, the bits can be initialized in the following manner:
ploghndl.time = 0L; ploghndl.last_flags = 0L; ploghndl.offset = 0xFFFFFFFF; ploghndl.rec_offset = 0xFFFFFFFF;
Thereafter, each call to NetErrorLogRead must be given the value for the log handle that was returned by the previous call to NetErrorLogRead. The data is returned in the buffer. The application should use the pusBytesReturned value to determine the end of valid data in the buffer.
Any application calling either the NetErrorLogRead or Net32ErrorLogRead API uses the DosGetMessage API to retrieve the message text corresponding to the el_error value from the appropriate message file. Most entries in the error log resolve to either the NET.MSG( forLANServer )orOSO001 . MSG( forOS / 2 )files ,althoughapplicationscanlogerrorsthatresolvetoothermessagefiles . RelatedInformation
For information about: