Windows NT 4.0 source code leak
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

/*++
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);
}