mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1241 lines
28 KiB
1241 lines
28 KiB
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
errorlog.c
|
|
|
|
Abstract:
|
|
|
|
This module implements the error logging in the appletalk stack
|
|
|
|
Author:
|
|
|
|
Nikhil Kamkolkar ([email protected])
|
|
|
|
Revision History:
|
|
28 Jun 1992 Initial version (jameelh)
|
|
28 Jun 1992 Adapter for stack use (nikhilk)
|
|
|
|
--*/
|
|
|
|
#define IncludeErrorLogErrors 1
|
|
|
|
#include "atalk.h"
|
|
|
|
//
|
|
// LOCAL Functions
|
|
//
|
|
|
|
LOCAL
|
|
NTSTATUS
|
|
ConvertToNTStatus(
|
|
LONG PortableError,
|
|
USHORT RoutineType);
|
|
|
|
LOCAL
|
|
BOOLEAN
|
|
ConvertPortableErrorToLogError(
|
|
IN INT PortableError,
|
|
OUT PULONG NtErrorCode);
|
|
|
|
LOCAL
|
|
VOID
|
|
NTErrorLog(
|
|
const char *RoutineName,
|
|
INT Severity,
|
|
LONG LineNumber,
|
|
INT PortNumber,
|
|
INT ErrorCode,
|
|
INT ExtraArgCount,
|
|
va_list ArgCount);
|
|
|
|
|
|
|
|
VOID
|
|
ShutdownErrorLogging(
|
|
VOID
|
|
)
|
|
{
|
|
return;
|
|
|
|
} // ShutdownErrorLogging
|
|
|
|
|
|
|
|
VOID
|
|
_cdecl
|
|
ErrorLogger(
|
|
const char *routineName,
|
|
ErrorSeverity severity,
|
|
long lineNumber,
|
|
int portNumber,
|
|
int errorCode,
|
|
int extraArgCount,
|
|
...
|
|
)
|
|
{
|
|
va_list ap;
|
|
unsigned long ntErrorCode;
|
|
|
|
if (ConvertPortableErrorToLogError(errorCode, &ntErrorCode)) {
|
|
if (extraArgCount > 0)
|
|
va_start(ap, extraArgCount);
|
|
|
|
//
|
|
// Pass all of this info off to the NT error logging subsystem. If
|
|
// there are any replacements (extraArgCount > 0), they will be the
|
|
// following variable arguments, but in this environment they must
|
|
// all be strings. Sigh.
|
|
//
|
|
|
|
NTErrorLog(routineName, severity, lineNumber, portNumber,
|
|
ntErrorCode, extraArgCount, ap);
|
|
|
|
if (extraArgCount > 0)
|
|
va_end(ap);
|
|
}
|
|
|
|
} // ErrorLog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VOID
|
|
NTErrorLog(
|
|
const char *RoutineName,
|
|
INT Severity,
|
|
LONG LineNumber,
|
|
INT PortNumber,
|
|
INT ErrorCode,
|
|
INT ExtraArgCount,
|
|
va_list ArgCount
|
|
)
|
|
{
|
|
INT i;
|
|
PUNICODE_STRING insertionString = NULL;
|
|
|
|
DBGPRINT(ATALK_DEBUG_ALL, DEBUG_LEVEL_ERROR,
|
|
("NTErrorLog: Routine Name - %s Line Number - %d Port - %d Error - %lx\n",
|
|
RoutineName, LineNumber, PortNumber, ErrorCode));
|
|
|
|
DBGPRINT(ATALK_DEBUG_ALL, DEBUG_LEVEL_INFOCLASS1,
|
|
("NTErrorLog: ExtraArgCount - %d\n", ExtraArgCount));
|
|
|
|
//
|
|
// We need to convert all the strings to unicode
|
|
// BUGBUG: Get port name as part of the insertion parameters
|
|
//
|
|
|
|
if (ExtraArgCount > 0) {
|
|
PCHAR string;
|
|
ANSI_STRING ansiString;
|
|
|
|
//
|
|
// Allocate memory for insertion strings
|
|
//
|
|
|
|
insertionString =
|
|
(PUNICODE_STRING)AtalkAllocNonPagedMemory(sizeof(UNICODE_STRING)*ExtraArgCount);
|
|
|
|
if (insertionString == NULL)
|
|
return;
|
|
|
|
for (i=0; i < ExtraArgCount; i++) {
|
|
string = va_arg(ArgCount, PCHAR);
|
|
|
|
DBGPRINT(ATALK_DEBUG_ALL, DEBUG_LEVEL_INFOCLASS1,
|
|
("INFO1: NTErrorLog - String %s\n", string));
|
|
|
|
//
|
|
// Set the string in Unicode format
|
|
//
|
|
|
|
RtlInitAnsiString(&ansiString, string);
|
|
if (!NT_SUCCESS(RtlAnsiStringToUnicodeString(&insertionString[i], &ansiString, TRUE))) {
|
|
|
|
//
|
|
// BUGBUG: Cleanup
|
|
//
|
|
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
#if DBG // Send in RoutineName as RawData...
|
|
AtalkWriteErrorLogEntry(
|
|
(ULONG)ErrorCode, // error code
|
|
(ULONG)LineNumber, // unique error value
|
|
STATUS_UNSUCCESSFUL, // NtStatusCode
|
|
(PVOID)RoutineName, // RawDataBuf OPTIONAL
|
|
strlen(RoutineName), // RawDataLen
|
|
ExtraArgCount, // InsertionStringCount
|
|
insertionString // InsertionString OPTIONAL
|
|
);
|
|
#else
|
|
AtalkWriteErrorLogEntry(
|
|
(ULONG)ErrorCode, // UniqueErrorCode
|
|
(ULONG)LineNumber, // unique error value
|
|
STATUS_UNSUCCESSFUL, // NtStatusCode
|
|
NULL, // RawDataBuf OPTIONAL
|
|
0, // RawDataLen
|
|
ExtraArgCount, // InsertionStringCount
|
|
insertionString // InsertionString OPTIONAL
|
|
);
|
|
#endif
|
|
|
|
//
|
|
// BUGBUG: Need to free up the Unicode strings...
|
|
//
|
|
|
|
if (insertionString != NULL) {
|
|
AtalkFreeNonPagedMemory(insertionString);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOLEAN
|
|
ConvertPortableErrorToLogError(
|
|
IN INT PortableError,
|
|
OUT PULONG NtErrorCode
|
|
)
|
|
{
|
|
BOOLEAN logError = TRUE;
|
|
|
|
DBGPRINT(ATALK_DEBUG_ALL, DEBUG_LEVEL_ERROR,
|
|
("ERROR: ConvertPortableErrorToLogError - portable error %lx %ld\n",
|
|
PortableError, PortableError));
|
|
|
|
switch (PortableError) {
|
|
case IErrInitialRegisterOkay:
|
|
|
|
*NtErrorCode = EVENT_ATALK_NAME_REGISTERED;
|
|
break;
|
|
|
|
case IErrInitialAppleTalkUnloaded:
|
|
|
|
*NtErrorCode = EVENT_ATALK_UNLOAD;
|
|
break;
|
|
|
|
case IErrNegativeHashValue:
|
|
case IErrAarpBad8022header:
|
|
case IErrAarpBadAddressLength:
|
|
case IErrAarpBadLogicalProt:
|
|
case IErrAarpPacketLenMismatch:
|
|
case IErrAarpBadSendProbeResp:
|
|
case IErrAarpBadCommandType:
|
|
case IErrAarpBadSource:
|
|
case IErrAarpBadDest:
|
|
case IErrAarpOutOfMemory:
|
|
case IErrAarpBadZipOpenSocket:
|
|
case IErrAarpCouldNotReleaseNode:
|
|
case IErrAarpCouldNotFindNode:
|
|
case IErrAarpBadProbeSend:
|
|
case IErrAdspBadFrwdResetSend:
|
|
case IErrAdspBadCloseAdviseSend:
|
|
case IErrAdspBufferQueueError:
|
|
case IErrAdspFunnyErrorCode:
|
|
case IErrAdspLosingData:
|
|
case IErrAdspOutOfMemory:
|
|
case IErrAdspListenerMissing:
|
|
case IErrAdspOddProtocol:
|
|
case IErrAdspMissingHeader:
|
|
case IErrAdspFunnyRequest:
|
|
case IErrAdspBadVersion:
|
|
case IErrAdspCantDeny:
|
|
case IErrAdspDeadDest:
|
|
case IErrAdspFunnyValue:
|
|
case IErrAdspAttnOutOfSeq:
|
|
case IErrAdspBadAckSend:
|
|
case IErrAdspShrinkingWindow:
|
|
case IErrAdspBadFrwdResetAckSend:
|
|
case IErrAdspBadRetranSend:
|
|
case IErrAdspBadWindowSize:
|
|
case IErrAdspBadData:
|
|
case IErrAdspConnectionLost:
|
|
case IErrAdspResetNotPending:
|
|
case IErrAdspBadProbeSend:
|
|
case IErrAdspTimerNotCanceled:
|
|
case IErrAdspBadOpenSend:
|
|
case IErrAdspBadAttnSend:
|
|
case IErrAdspBadNonDataAckSend:
|
|
case IErrAdspWindowSizeErrorToo:
|
|
case IErrAdspNoData:
|
|
case IErrAdspWindowSizeOverMax:
|
|
case IErrAdspNotOnRefNumList:
|
|
case IErrAdspBadSocketClose:
|
|
case IErrAdspOutOfIds:
|
|
case IErrAdspOutOfRefNums:
|
|
case IErrAdspZeroDeferCount:
|
|
case IErrAdspBadDeferCount:
|
|
case IErrAdspBadStartIndex:
|
|
case IErrAdspQueueIsEmpty:
|
|
case IErrAdspAuxQueueError:
|
|
case IErrAdspTooMuchDiscard:
|
|
case IErrAdspTooMuchFree:
|
|
case IErrAdspCantDiscard:
|
|
case IErrAspBadError:
|
|
case IErrAspOutOfMemory:
|
|
case IErrAspCouldntMapAddress:
|
|
case IErrAspNotOnSLSList:
|
|
case IErrAspCouldntCancelTickle:
|
|
case IErrAspRefNumMapMissing:
|
|
case IErrAspBadSocketClose:
|
|
case IErrAspListNotEmpty:
|
|
case IErrAspListenerInfoMissing:
|
|
case IErrAspLostSLSPacket:
|
|
case IErrAspBadSrvrBusySend:
|
|
case IErrAspBadBadVersionSend:
|
|
case IErrAspBadAddrNotMappedSend:
|
|
case IErrAspBadNoSocketsSend:
|
|
case IErrAspBadOpenOkaySend:
|
|
case IErrAspCouldntStartTickle:
|
|
case IErrAspCouldNotEnqueue:
|
|
case IErrAspSessionInfoMissing:
|
|
case IErrAspBadStatusSend:
|
|
case IErrAspBadCommandToSLS:
|
|
case IErrAspIncomingError:
|
|
case IErrAspSessionBufMissing:
|
|
case IErrAspWrongBuffer:
|
|
case IErrAspTargetSessionMissing:
|
|
case IErrAspWrongSLS:
|
|
case IErrAspWrongAddress:
|
|
case IErrAspBadCancelResponse:
|
|
case IErrAspBadCommand:
|
|
case IErrAspNotWriteCommand:
|
|
case IErrAspBadWritePacket:
|
|
case IErrAspFunnyCommand:
|
|
case IErrAspSocketNotFound:
|
|
case IErrAspBadUsageCount:
|
|
case IErrAspCouldNotCloseSess:
|
|
case IErrAspSessionInfoBad:
|
|
case IErrAspCommandInfoMissing:
|
|
case IErrAspGetRequestListBad:
|
|
case IErrAtpOutOfMemory:
|
|
case IErrAtpAtpInfoMissing:
|
|
case IErrAtpDeferCountZero:
|
|
case IErrAtpBadDeferCount:
|
|
case IErrAtpFunnyIncomingError:
|
|
case IErrAtpLosingData:
|
|
case IErrAtpPacketTooShort:
|
|
case IErrAtpWhyUs:
|
|
case IErrAtpFunnyTRelTimerValue:
|
|
case IErrAtpTooMuchData:
|
|
case IErrAtpRespToDeadReq:
|
|
case IErrAtpOutOfSequence:
|
|
case IErrAtpDeadRelease:
|
|
case IErrAtpBadBitmap:
|
|
case IErrAtpBadDataSize:
|
|
case IErrAtpSocketClosed:
|
|
case IErrAtpMissingResponse:
|
|
case IErrAtpMissingRequest:
|
|
case IErrDdpPacketTooLong:
|
|
case IErrDdpLosingData:
|
|
case IErrDdpOutOfMemory:
|
|
case IErrDdpLengthCorrupted:
|
|
case IErrDdpShortDdp:
|
|
case IErrDdpShortDdpTooLong:
|
|
case IErrDdpBadSourceShort:
|
|
case IErrDdpBadDestShort:
|
|
case IErrDdpLongDdpTooLong:
|
|
case IErrDdpBadSourceLong:
|
|
case IErrDdpBadDestLong:
|
|
case IErrDdpBadDest:
|
|
case IErrDdpBadSource:
|
|
case IErrDdpBadShortSend:
|
|
case IErrDdpBadSend:
|
|
case IErrDdpSourceAddrBad:
|
|
case IErrDdpZeroDeferCount:
|
|
case IErrDdpBadDeferCount:
|
|
case IErrDdpBadAarpReqSend:
|
|
case IErrDdpBadData:
|
|
case IErrDdpBadRetrySend:
|
|
case IErrDdpForwardError:
|
|
case IErrDependBadProtocol:
|
|
case IErrDependBadPacketSize:
|
|
case IErrDependBadRoutingInfoSize:
|
|
case IErrDependBadDdpSize:
|
|
case IErrDependDataMissing:
|
|
case IErrDependBadAarpSize:
|
|
case IErrDependSourceNotKnown:
|
|
case IErrDependCouldNotCoalesce:
|
|
case IErrEpBadIncomingError:
|
|
case IErrEpBadReplySend:
|
|
case IErrEpOutOfMemory:
|
|
case IErrInitialBadPortType:
|
|
case IErrInitialBadHalfPortType:
|
|
case IErrInitialBadRemoteAccessType:
|
|
case IErrInitialNonRoutingHalfPort:
|
|
case IErrInitialRoutingRemoteAccess:
|
|
case IErrInitialCantBeDefault:
|
|
case IErrInitialCantHavePram:
|
|
case IErrInitialNoRemoteConfig:
|
|
case IErrInitialCantConfigRemote:
|
|
case IErrInitialBadServerName:
|
|
case IErrInitialBadPortName:
|
|
case IErrInitialNoRouter:
|
|
case IErrInitialLocalTalkNetRange:
|
|
case IErrInitialRangeOverlap:
|
|
case IErrInitialZoneNotAllowed:
|
|
case IErrInitialBadZone:
|
|
case IErrInitialZonesForNonSeed:
|
|
case IErrInitialBadDefaultZone:
|
|
case IErrInitialZoneInfoNeeded:
|
|
case IErrInitialNetRangeNeeded:
|
|
case IErrInitialTooManyZones:
|
|
case IErrInitialBadZoneInfo:
|
|
case IErrInitialOneZoneOnly:
|
|
case IErrInitialBadZoneList:
|
|
case IErrInitialZoneNotOnList:
|
|
case IErrInitialBadDefault:
|
|
case IErrInitialBadDefaultToo:
|
|
case IErrInitialCouldNotInit:
|
|
case IErrInitialOhMy:
|
|
case IErrInitialCouldNotCatchAarp:
|
|
case IErrInitialCouldNotCatchAt:
|
|
case IErrInitialNoDefaultPort:
|
|
case IErrInitialCouldNotGetNode:
|
|
case IErrInitialMallocFailed:
|
|
case IErrInitialNamesSocketNotOpen:
|
|
case IErrInitialBadRegisterStart:
|
|
case IErrInitialBadMakeOpaque:
|
|
case IErrInitialBadRegisterComplete:
|
|
case IErrInitialErrorOnRegister:
|
|
case IErrInitialRanOutOfNames:
|
|
case IErrInitialHaveProxyNode:
|
|
case IErrInitialBadRouterFlags:
|
|
case IErrInitialNotRoutingOnDefault:
|
|
case IErrInitialBadDesiredPort:
|
|
case IErrInitialCantGetPort:
|
|
case IErrInitialShutdownDefault:
|
|
case IErrInitialPRamNotInRange:
|
|
case IErrNbpBadIncomingCode:
|
|
case IErrNbpTupleCountBadReq:
|
|
case IErrNbpBadZoneReq:
|
|
case IErrNbpBadLTZone:
|
|
case IErrNbpBadFwdReqSend:
|
|
case IErrNbpTupleCountBadLookup:
|
|
case IErrNbpCouldntMapSocket:
|
|
case IErrNbpDeadReply:
|
|
case IErrNbpTupleCountBadReply:
|
|
case IErrNbpBadTupleStored:
|
|
case IErrNbpTuplesMunged:
|
|
case IErrNbpBadPendingFlag:
|
|
case IErrNbpBadCommandType:
|
|
case IErrNbpCouldntFormAddress:
|
|
case IErrNbpOutOfMemory:
|
|
case IErrNbpBadSend:
|
|
case IErrNbpBadData:
|
|
case IErrNbpSocketClosed:
|
|
case IErrNbpNoLongerPending:
|
|
case IErrNbpBadBrRqSend:
|
|
case IErrNbpOpenSocketMissing:
|
|
case IErrNbpBadReplySend:
|
|
case IErrNbpBadSourceSocket:
|
|
case IErrNbpBadMutlicastAddr:
|
|
case IErrNbpBadMulticastSend:
|
|
case IErrNbpBadBroadcastSend:
|
|
case IErrNodeNoLocalTalkNode:
|
|
case IErrNodeOutOfMemory:
|
|
case IErrNodeCouldStartListeners:
|
|
case IErrNodeCouldNotClose:
|
|
case IErrPapNoMoreSLRefNums:
|
|
case IErrPapOutOfMemory:
|
|
case IErrPapBadSocketMake:
|
|
case IErrPapJobNotOnSLList:
|
|
case IErrPapBadCloseConnSend:
|
|
case IErrPapBadSocketClose:
|
|
case IErrPapBadSendDataSend:
|
|
case IErrPapSLGonePoof:
|
|
case IErrPapLostSLPacket:
|
|
case IErrPapBadSrvrAddrMap:
|
|
case IErrPapBadPrinterBusySend:
|
|
case IErrPapBadSLSAddress:
|
|
case IErrPapBadSetSize:
|
|
case IErrPapBadOkaySend:
|
|
case IErrPapBadTickleStart:
|
|
case IErrPapBadRequestHandler:
|
|
case IErrPapBadSendStatSend:
|
|
case IErrPapBadCommand:
|
|
case IErrPapBadReEnqueue:
|
|
case IErrPapNoMoreJobRefNums:
|
|
case IErrPapBadData:
|
|
case IErrPapJobNotActive:
|
|
case IErrPapJobGonePoof:
|
|
case IErrPapIdMismatch:
|
|
case IErrPapSendDataSeqError:
|
|
case IErrPapFunnyCommand:
|
|
case IErrPapDefaultPortMissing:
|
|
case IErrPapBadTempSocketClose:
|
|
case IErrPapLostNode:
|
|
case IErrPapCouldNotOpen:
|
|
case IErrPapBadOpenConnReqSend:
|
|
case IErrPapBadStatusResp:
|
|
case IErrPapOpenJobMissing:
|
|
case IErrPapTooShort:
|
|
case IErrPapTooLong:
|
|
case IErrPapNotOpenReply:
|
|
case IErrPapActiveJobMissing:
|
|
case IErrPapBadUserBytes:
|
|
case IErrPapWhyAreWeHere:
|
|
|
|
logError = FALSE;
|
|
break;
|
|
|
|
case IErrPapBadResponseSend:
|
|
case IErrPapLostActiveNode:
|
|
case IErrRtmpStubBadIncomingError:
|
|
case IErrRtmpStubTooShortExt:
|
|
case IErrRtmpStubTooShort:
|
|
case IErrRtmpStubBadIdLength:
|
|
case IErrRtmpStubNetNumChanged:
|
|
case IErrRtmpStubCouldntMapAddr:
|
|
case IErrSocketFailedTwice:
|
|
case IErrSocketNotOnSocketList:
|
|
case IErrSocketNotOnBySocketList:
|
|
case IErrSocketNotOnByAddressList:
|
|
case IErrTimersTooManyCalls:
|
|
case IErrTimersOutOfTimers:
|
|
case IErrTimersTimerMissing:
|
|
case IErrTimersNegativeDeferCount:
|
|
case IErrTimersBadReuseCount:
|
|
case IErrTimersTooManyReuseTimers:
|
|
case IErrTimersOutOfMemory:
|
|
case IErrUtilsNoDefaultPort:
|
|
case IErrUtilsBad8022Header:
|
|
case IErrUtilsBadProtocol:
|
|
case IErrUtilsBadNetworkNumber:
|
|
case IErrUtilsNegativeRange:
|
|
case IErrUtilsStartupRange:
|
|
case IErrUtilsOutOfMemory:
|
|
case IErrZipStubBadIncomingError:
|
|
case IErrZipStubNonExtended:
|
|
case IErrZipStubZoneLenMissing:
|
|
case IErrZipStubBadZoneLength:
|
|
case IErrZipStubZoneMissing:
|
|
case IErrZipStubZonesDontMatch:
|
|
case IErrZipStubMulticastMissing:
|
|
case IErrZipStubBadMulticast:
|
|
case IErrZipStubAddressMissing:
|
|
case IErrZipStubSigh:
|
|
case IErrZipStubBadGetNetSend:
|
|
case IErrZipStubBadARouterSend:
|
|
case IErrZipStubBadSocketClose:
|
|
case IErrZipStubBadData:
|
|
case IErrZipStubOutOfMemory:
|
|
case IErrFullRtmpIgnoredNetRange:
|
|
case IErrFullRtmpBadSocketOpen:
|
|
case IErrFullRtmpBadIncomingError:
|
|
case IErrFullRtmpReqTooShort:
|
|
case IErrFullRtmpDataTooShort:
|
|
case IErrFullRtmpBadReqCommand:
|
|
case IErrFullRtmpBadRoutingTables:
|
|
case IErrFullRtmpBadRespSend:
|
|
case IErrFullRtmpBadNodeIdLen:
|
|
case IErrFullRtmpBadVersion:
|
|
case IErrFullRtmpBadTuple:
|
|
case IErrFullRtmpBadVersionExt:
|
|
case IErrFullRtmpOverlappingNets:
|
|
case IErrFullRtmpSigh:
|
|
case IErrFullRtmpBadReqSend:
|
|
case IErrFullRtmpIgnoredNet:
|
|
case IErrFullRtmpNoSeedCantStart:
|
|
case IErrFullRtmpBadEntryState:
|
|
case IErrFullRtmpBadDataSend:
|
|
case IErrFullRtmpOutOfMemory:
|
|
case IErrFullZipBadSocketOpen:
|
|
case IErrFullZipBadIncomingError:
|
|
case IErrFullZipNonExtended:
|
|
case IErrFullZipMissingZoneLen:
|
|
case IErrFullZipBadZone:
|
|
case IErrFullZipBadInfoReplySend:
|
|
case IErrFullZipBadZoneList:
|
|
case IErrFullZipBadReplySend:
|
|
case IErrFullZipBadReplyPacket:
|
|
case IErrFullZipTooManyZones:
|
|
case IErrFullZipCantAddZone:
|
|
case IErrFullZipFunnyCommand:
|
|
case IErrFullZipLongReplyExpected:
|
|
case IErrFullZipFunnyRequest:
|
|
case IErrFullZipBadMyZoneSend:
|
|
case IErrFullZipBadZoneListSend:
|
|
case IErrFullZipSocketNotOpen:
|
|
case IErrFullZipBadQuerySend:
|
|
case IErrFullZipRoutingTablesBad:
|
|
case IErrFullZipCouldNotCopy:
|
|
case IErrFullZipNoThisZone:
|
|
case IErrFullZipBadThisZone:
|
|
case IErrFullZipNeedSeedInfo:
|
|
case IErrFullZipBadPortType:
|
|
case IErrFullZipOutOfMemory:
|
|
case IErrIRouterCouldntGetNode:
|
|
case IErrIRouterCouldNotStart:
|
|
case IErrIRouterCouldntRelease:
|
|
case IErrIRouterNonRoutingPort:
|
|
case IErrRouterBadTransmit:
|
|
case IErrRouterOutOfMemory:
|
|
case IErrBuffDescBadFreeCount:
|
|
case IErrBuffDescBadRealPrepend:
|
|
case IErrBuffDescBadAdjustment:
|
|
case IErrBuffDescBadSize:
|
|
case IErrBuffDescFreeingDescriptor:
|
|
case IErrArapLengthMismatch:
|
|
case IErrArapPacketTooShort:
|
|
case IErrArapLinkNotUp:
|
|
case IErrArapOutOfMemory:
|
|
case IErrArapBadNbpTuple:
|
|
case IErrArapBadProxyForward:
|
|
case IErrArapFunnyCall:
|
|
case IErrArapCantSend:
|
|
case IErrArapBadLinkArb:
|
|
case IErrArapBadPacketSize:
|
|
case IErrArapNoActionForState:
|
|
case IErrArapBadState:
|
|
case IErrArapBadCommand:
|
|
case IErrArapCantGetZoneList:
|
|
case IErrArapBadSendZones:
|
|
|
|
logError = FALSE;
|
|
break;
|
|
}
|
|
|
|
return(logError);
|
|
}
|
|
|
|
|
|
|
|
|
|
NTSTATUS
|
|
ConvertToNTStatus(
|
|
LONG PortableError,
|
|
USHORT RoutineType
|
|
)
|
|
{
|
|
NTSTATUS status;
|
|
|
|
//
|
|
// All the portable errors are negative
|
|
//
|
|
|
|
ASSERT(PortableError <= 0);
|
|
|
|
switch (PortableError) {
|
|
case ATnoError:
|
|
|
|
if (RoutineType == ASYNC_REQUEST) {
|
|
status = STATUS_PENDING;
|
|
} else
|
|
status = STATUS_SUCCESS;
|
|
|
|
break;
|
|
|
|
case ATaspBadVersionNumber:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspBufferTooSmall:
|
|
|
|
status = STATUS_BUFFER_TOO_SMALL;
|
|
break;
|
|
|
|
case ATaspNoMoreSessions:
|
|
|
|
// NOT USED BY PORTABLE CODE BASE
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNoServers:
|
|
|
|
// NOT USED BY PORTABLE CODE BASE
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspParameterError:
|
|
|
|
status = STATUS_INVALID_PARAMETER;
|
|
break;
|
|
|
|
case ATaspServerBusy:
|
|
|
|
// USED ONLY ON THE WIRE
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspLocalSessionClose:
|
|
|
|
status = STATUS_LOCAL_DISCONNECT;
|
|
break;
|
|
|
|
case ATaspRemoteSessionClose:
|
|
|
|
status = STATUS_REMOTE_DISCONNECT;
|
|
break;
|
|
|
|
case ATaspSizeError:
|
|
|
|
status = STATUS_INVALID_PARAMETER;
|
|
break;
|
|
|
|
case ATaspTooManyClients:
|
|
|
|
status = STATUS_TOO_MANY_SESSIONS;
|
|
break;
|
|
|
|
case ATaspNoAck:
|
|
|
|
// NOT USED BY PORTABLE CODE BASE
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATbadSocketNumber:
|
|
|
|
status = STATUS_INVALID_PARAMETER;
|
|
break;
|
|
|
|
case ATallSocketsInUse:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATsocketAlreadyOpen:
|
|
|
|
status = STATUS_SHARING_VIOLATION;
|
|
break;
|
|
|
|
case ATsocketNotOpen:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATbadNetworkNumber:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATinternalError:
|
|
|
|
status = STATUS_DRIVER_INTERNAL_ERROR;
|
|
break;
|
|
|
|
case ATbadNodeNumber:
|
|
|
|
status = STATUS_INVALID_PARAMETER;
|
|
break;
|
|
|
|
case ATnetworkDown:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATtransmitError:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpTooManyNbpActionsPending:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpTooManyRegisteredNames:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpBadObjectOrTypeOrZone:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpNoWildcardsAllowed:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpZoneNotAllowed:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpBadParameter:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpNotConfirmed:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpConfirmedWithNewSocket:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpNameNotRegistered:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpNameInUse:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnbpBufferNotBigEnough:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnoMoreNodes:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnodeNotInUse:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnotYourNode:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpRequestBufferTooSmall:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case AToutOfMemory:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpCouldNotEnqueueRequest:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpTransactionAborted:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpBadBufferSize:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpBadRetryInfo:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpRequestTimedOut:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpCouldNotPostRequest:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpResponseBufferTooSmall:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpNoRelease:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpResponseTooBig:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpNoMatchingTransaction:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpAlreadyRespondedTo:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpCompletionRoutineRequired:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATbadBufferSize:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNoSuchSessionListener:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpCouldNotPostResponse:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspStatusBufferTooBig:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotSetStatus:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotEnqueueHandler:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNotServerSession:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNotWorkstationSession:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNoSuchSession:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotGetRequest:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspBufferTooBig:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNoSuchRequest:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspWrongRequestType:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotPostReply:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotPostWriteContinue:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspOperationAlreadyInProgress:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNoOperationInProgress:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotGetStatus:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotOpenSession:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspCouldNotPostRequest:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapBadQuantum:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapNoSuchServiceListener:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapBadStatus:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapClosedByServer:
|
|
|
|
status = STATUS_LOCAL_DISCONNECT;
|
|
break;
|
|
|
|
case ATpapClosedByWorkstation:
|
|
|
|
status = STATUS_REMOTE_DISCONNECT;
|
|
break;
|
|
|
|
case ATpapClosedByConnectionTimer:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapNoSuchJob:
|
|
|
|
status = STATUS_REMOTE_DISCONNECT;
|
|
break;
|
|
|
|
case ATpapServiceListenerDeleted:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATcouldNotOpenStaticSockets:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapNotServerJob:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapNotWorkstationJob:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapOpenAborted:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapServerBusy:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapOpenTimedOut:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapReadAlreadyPending:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapWriteAlreadyPending:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapWriteTooBig:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATsocketClosed:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapServiceListenerNotFound:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapNonUniqueLookup:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATzipBufferTooSmall:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATnoSuchNode:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATatpBadTRelTimer:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspSocketNotAdsp:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspBadWindowSize:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspOpenFailed:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspConnectionDenied:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspNoSuchConnection:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspAttentionAlreadyPending:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspBadAttentionCode:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspBadAttentionBufferSize:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspCouldNotEnqueueSend:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspReadAlreadyPending:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspBadBufferSize:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspAttentionReceived:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspConnectionClosed:
|
|
|
|
// BUGBUG: Stack should split this into local/remote
|
|
status = STATUS_REMOTE_DISCONNECT;
|
|
break;
|
|
|
|
case ATadspNoSuchConnectionListener:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspConnectionListenerDeleted:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspFwdResetAlreadyPending:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspForwardReset:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspHandlerAlreadyQueued:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspSessionListenerDeleted:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATaspNoSuchGetSession:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapNoSuchGetNextJob:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATarapPortNotActive:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATarapCouldntSendNotification:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATappleTalkShutDown:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATpapReadBufferTooSmall:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
case ATadspGetAnythingAlreadyPending:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
|
|
default:
|
|
|
|
status = STATUS_UNSUCCESSFUL;
|
|
break;
|
|
}
|
|
|
|
DBGPRINT(ATALK_DEBUG_ALL, DEBUG_LEVEL_WARNING,
|
|
("WARNING: Converting portable error %lx to status %lx\n",
|
|
PortableError, status));
|
|
|
|
return(status);
|
|
}
|