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.
8290 lines
213 KiB
8290 lines
213 KiB
/*==========================================================================
|
|
*
|
|
* Copyright (C) 1995 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: DNetErrors.cpp
|
|
* Content: Function for expanding Play8 errors to debug output
|
|
*@@BEGIN_MSINTERNAL
|
|
* History:
|
|
* Date By Reason
|
|
* ==== == ======
|
|
* 12/04/98 johnkan Created
|
|
* 07/22/99 a-evsch removed DPF_MODNAME. This is defined in DbgInfo.h
|
|
* 01/24/00 mjn Added DPNERR_NOHOSTPLAYER error
|
|
*@@END_MSINTERNAL
|
|
*
|
|
***************************************************************************/
|
|
|
|
#include "dncmni.h"
|
|
#include <Limits.h>
|
|
|
|
#ifdef DBG
|
|
|
|
//**********************************************************************
|
|
// Constant definitions
|
|
//**********************************************************************
|
|
|
|
//**********************************************************************
|
|
// Macro definitions
|
|
//**********************************************************************
|
|
|
|
//**********************************************************************
|
|
// Structure definitions
|
|
//**********************************************************************
|
|
|
|
//**********************************************************************
|
|
// Variable definitions
|
|
//**********************************************************************
|
|
|
|
//**********************************************************************
|
|
// Function prototypes
|
|
//**********************************************************************
|
|
static char *GetDNErrorString( const HRESULT DNError );
|
|
#ifndef DPNBUILD_NOSERIALSP
|
|
static char *GetTAPIErrorString( const HRESULT TAPIError );
|
|
#endif // ! DPNBUILD_NOSERIALSP
|
|
static char *GetWIN32ErrorString( const LONG Error );
|
|
static char *GetWinsockErrorString( const DWORD WinsockError );
|
|
|
|
//**********************************************************************
|
|
// Function definitions
|
|
//**********************************************************************
|
|
|
|
|
|
//**********************************************************************
|
|
// ------------------------------
|
|
// LclDisplayString - display user string
|
|
//
|
|
// Entry: Pointer to string
|
|
//
|
|
// Exit: Nothing
|
|
// ------------------------------
|
|
#undef DPF_MODNAME
|
|
#define DPF_MODNAME "LclDisplayString"
|
|
|
|
void LclDisplayString( DWORD ErrorLevel, char *pString )
|
|
{
|
|
// was there no error?
|
|
if ( pString != NULL )
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, pString );
|
|
}
|
|
}
|
|
//**********************************************************************
|
|
|
|
|
|
//**********************************************************************
|
|
// ------------------------------
|
|
// LclDisplayError - display error code
|
|
//
|
|
// Entry: Error type
|
|
// Error level
|
|
// Error code
|
|
//
|
|
// Exit: Nothing
|
|
// ------------------------------
|
|
#undef DPF_MODNAME
|
|
#define DPF_MODNAME "LclDisplayError"
|
|
|
|
void LclDisplayError( EC_TYPE ErrorType, DWORD ErrorLevel, HRESULT ErrorCode )
|
|
{
|
|
char *pString;
|
|
|
|
|
|
switch ( ErrorType )
|
|
{
|
|
// DirectNet error
|
|
case EC_DPLAY8:
|
|
{
|
|
pString = GetDNErrorString( ErrorCode );
|
|
break;
|
|
}
|
|
|
|
// Win32
|
|
case EC_WIN32:
|
|
{
|
|
pString = GetWIN32ErrorString( ErrorCode );
|
|
break;
|
|
}
|
|
|
|
#ifndef DPNBUILD_NOSERIALSP
|
|
// TAPI
|
|
case EC_TAPI:
|
|
{
|
|
pString = GetTAPIErrorString( ErrorCode );
|
|
break;
|
|
}
|
|
#endif // ! DPNBUILD_NOSERIALSP
|
|
|
|
// winsock
|
|
case EC_WINSOCK:
|
|
{
|
|
pString = GetWinsockErrorString( ErrorCode );
|
|
break;
|
|
}
|
|
|
|
// unknown type
|
|
default:
|
|
{
|
|
DNASSERT( FALSE );
|
|
pString = "Unknown error type!";
|
|
break;
|
|
}
|
|
}
|
|
|
|
LclDisplayString( ErrorLevel, pString );
|
|
}
|
|
//**********************************************************************
|
|
|
|
|
|
//**********************************************************************
|
|
// ------------------------------
|
|
// GetDNErrorString - convert DirectNet error to a string
|
|
//
|
|
// Entry: Error code
|
|
//
|
|
// Exit: Pointer to string
|
|
// ------------------------------
|
|
#undef DPF_MODNAME
|
|
#define DPF_MODNAME "GetDNErrorString"
|
|
|
|
static char *GetDNErrorString( HRESULT ErrorCode )
|
|
{
|
|
char *pString = NULL;
|
|
|
|
|
|
// what was the error
|
|
switch ( ErrorCode )
|
|
{
|
|
|
|
case DPN_OK:
|
|
{
|
|
// no output if no error
|
|
// pString = "DN_OK";
|
|
break;
|
|
}
|
|
|
|
case REGDB_E_CLASSNOTREG:
|
|
{
|
|
pString = "REGDB_E_CLASSNOTREG";
|
|
break;
|
|
}
|
|
|
|
//
|
|
// DPN_SUCCESS codes
|
|
//
|
|
case DPNSUCCESS_EQUAL:
|
|
{
|
|
pString = "DPNSUCCESS_EQUAL";
|
|
break;
|
|
}
|
|
|
|
case DPNSUCCESS_NOPLAYERSINGROUP:
|
|
{
|
|
pString = "DPNSUCCESS_NOPLAYERSINGROUP";
|
|
break;
|
|
}
|
|
|
|
case DPNSUCCESS_NOTEQUAL:
|
|
{
|
|
pString = "DPNSUCCESS_NOTEQUAL";
|
|
break;
|
|
}
|
|
|
|
// case DPNSUCCESS_PENDING:
|
|
// {
|
|
//
|
|
// Same as DPNERR_PENDING below
|
|
//
|
|
// pString = "DPNSUCCESS_PENDING";
|
|
// break;
|
|
// }
|
|
|
|
//
|
|
// Real DPNERR codes
|
|
//
|
|
case DPNERR_ABORTED:
|
|
{
|
|
pString = "DPNERR_ABORTED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ADDRESSING:
|
|
{
|
|
pString = "DPNERR_ADDRESSING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ALREADYCLOSING:
|
|
{
|
|
pString = "DPNERR_ALREADYCLOSING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ALREADYCONNECTED:
|
|
{
|
|
pString = "DPNERR_ALREADYCONNECTED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ALREADYDISCONNECTING:
|
|
{
|
|
pString = "DPNERR_ALREADYDISCONNECTING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ALREADYINITIALIZED:
|
|
{
|
|
pString = "DPNERR_ALREADYINITIALIZED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ALREADYREGISTERED:
|
|
{
|
|
pString = "DPNERR_ALREADYREGISTERED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_BUFFERTOOSMALL:
|
|
{
|
|
pString = "DPNERR_BUFFERTOOSMALL";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_CANNOTCANCEL:
|
|
{
|
|
pString = "DPNERR_CANNOTCANCEL";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_CANTCREATEGROUP:
|
|
{
|
|
pString = "DPNERR_CANTCREATEGROUP";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_CANTCREATEPLAYER:
|
|
{
|
|
pString = "DPNERR_CANTCREATEPLAYER";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_CANTLAUNCHAPPLICATION:
|
|
{
|
|
pString = "DPNERR_CANTLAUNCHAPPLICATION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_CONNECTING:
|
|
{
|
|
pString = "DPNERR_CONNECTING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_CONNECTIONLOST:
|
|
{
|
|
pString = "DPNERR_CONNECTIONLOST";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_CONVERSION:
|
|
{
|
|
pString = "DPNERR_CONVERSION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_DATATOOLARGE:
|
|
{
|
|
pString = "DPNERR_DATATOOLARGE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_DOESNOTEXIST:
|
|
{
|
|
pString = "DPNERR_DOESNOTEXIST";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_DPNSVRNOTAVAILABLE:
|
|
{
|
|
pString = "DPNERR_DPNSVRNOTAVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_DUPLICATECOMMAND:
|
|
{
|
|
pString = "DPNERR_DUPLICATECOMMAND";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ENDPOINTNOTRECEIVING:
|
|
{
|
|
pString = "DPNERR_ENDPOINTNOTRECEIVING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ENUMQUERYTOOLARGE:
|
|
{
|
|
pString = "DPNERR_ENUMQUERYTOOLARGE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_ENUMRESPONSETOOLARGE:
|
|
{
|
|
pString = "DPNERR_ENUMRESPONSETOOLARGE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_EXCEPTION:
|
|
{
|
|
pString = "DPNERR_EXCEPTION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_GENERIC:
|
|
{
|
|
pString = "DPNERR_GENERIC";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_GROUPNOTEMPTY:
|
|
{
|
|
pString = "DPNERR_GROUPNOTEMPTY";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_HOSTING:
|
|
{
|
|
pString = "DPNERR_HOSTING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_HOSTREJECTEDCONNECTION:
|
|
{
|
|
pString = "DPNERR_HOSTREJECTEDCONNECTION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_HOSTTERMINATEDSESSION:
|
|
{
|
|
pString = "DPNERR_HOSTTERMINATEDSESSION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INCOMPLETEADDRESS:
|
|
{
|
|
pString = "DPNERR_INCOMPLETEADDRESS";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDADDRESSFORMAT:
|
|
{
|
|
pString = "DPNERR_INVALIDADDRESSFORMAT";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDAPPLICATION:
|
|
{
|
|
pString = "DPNERR_INVALIDAPPLICATION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDCOMMAND:
|
|
{
|
|
pString = "DPNERR_INVALIDCOMMAND";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDENDPOINT:
|
|
{
|
|
pString = "DPNERR_INVALIDENDPOINT";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDFLAGS:
|
|
{
|
|
pString = "DPNERR_INVALIDFLAGS";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDGROUP:
|
|
{
|
|
pString = "DPNERR_INVALIDGROUP";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDHANDLE:
|
|
{
|
|
pString = "DPNERR_INVALIDHANDLE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDINSTANCE:
|
|
{
|
|
pString = "DPNERR_INVALIDINSTANCE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDINTERFACE:
|
|
{
|
|
pString = "DPNERR_INVALIDINTERFACE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDDEVICEADDRESS:
|
|
{
|
|
pString = "DPNERR_INVALIDDEVICEADDRESS";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDOBJECT:
|
|
{
|
|
pString = "DPNERR_INVALIDOBJECT";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDPARAM:
|
|
{
|
|
pString = "DPNERR_INVALIDPARAM";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDPASSWORD:
|
|
{
|
|
pString = "DPNERR_INVALIDPASSWORD";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDPLAYER:
|
|
{
|
|
pString = "DPNERR_INVALIDPLAYER";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDPOINTER:
|
|
{
|
|
pString = "DPNERR_INVALIDPOINTER";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDPRIORITY:
|
|
{
|
|
pString = "DPNERR_INVALIDPRIORITY";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDHOSTADDRESS:
|
|
{
|
|
pString = "DPNERR_INVALIDHOSTADDRESS";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDSTRING:
|
|
{
|
|
pString = "DPNERR_INVALIDSTRING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDURL:
|
|
{
|
|
pString = "DPNERR_INVALIDURL";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_INVALIDVERSION:
|
|
{
|
|
pString = "DPNERR_INVALIDVERSION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOCAPS:
|
|
{
|
|
pString = "DPNERR_NOCAPS";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOCONNECTION:
|
|
{
|
|
pString = "DPNERR_NOCONNECTION";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOHOSTPLAYER:
|
|
{
|
|
pString = "DPNERR_NOHOSTPLAYER";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOINTERFACE:
|
|
{
|
|
pString = "DPNERR_NOINTERFACE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOMOREADDRESSCOMPONENTS:
|
|
{
|
|
pString = "DPNERR_NOMOREADDRESSCOMPONENTS";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NORESPONSE:
|
|
{
|
|
pString = "DPNERR_NORESPONSE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOTALLOWED:
|
|
{
|
|
pString = "DPNERR_NOTALLOWED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOTHOST:
|
|
{
|
|
pString = "DPNERR_NOTHOST";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOTREADY:
|
|
{
|
|
pString = "DPNERR_NOTREADY";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_NOTREGISTERED:
|
|
{
|
|
pString = "DPNERR_NOTREGISTERED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_OUTOFMEMORY:
|
|
{
|
|
pString = "DPNERR_OUTOFMEMORY";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_PENDING:
|
|
{
|
|
pString = "DPNERR_PENDING";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_PLAYERLOST:
|
|
{
|
|
pString = "DPNERR_PLAYERLOST";
|
|
break;
|
|
}
|
|
case DPNERR_PLAYERNOTINGROUP:
|
|
{
|
|
pString = "DPNERR_PLAYERNOTINGROUP";
|
|
break;
|
|
}
|
|
case DPNERR_PLAYERNOTREACHABLE:
|
|
{
|
|
pString = "DPNERR_PLAYERNOTREACHABLE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_SENDTOOLARGE:
|
|
{
|
|
pString = "DPNERR_SENDTOOLARGE";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_SESSIONFULL:
|
|
{
|
|
pString = "DPNERR_SESSIONFULL";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_TABLEFULL:
|
|
{
|
|
pString = "DPNERR_TABLEFULL";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_TIMEDOUT:
|
|
{
|
|
pString = "DPNERR_TIMEDOUT";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_UNINITIALIZED:
|
|
{
|
|
pString = "DPNERR_UNINITIALIZED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_UNSUPPORTED:
|
|
{
|
|
pString = "DPNERR_UNSUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case DPNERR_USERCANCEL:
|
|
{
|
|
pString = "DPNERR_USERCANCEL";
|
|
break;
|
|
}
|
|
|
|
// unknown error code, possibly a new one?
|
|
default:
|
|
{
|
|
DPFX(DPFPREP, 0, "Unknown DPlay error code %u/0x%lx", ErrorCode, ErrorCode );
|
|
|
|
pString = "Unknown DPlay8 error code";
|
|
break;
|
|
}
|
|
}
|
|
|
|
return pString;
|
|
}
|
|
//**********************************************************************
|
|
|
|
|
|
#ifndef DPNBUILD_NOSERIALSP
|
|
|
|
//**********************************************************************
|
|
// ------------------------------
|
|
// GetTAPIErrorString - convert TAPI error code to a string
|
|
//
|
|
// Entry: Error code
|
|
//
|
|
// Exit: Nothing
|
|
// ------------------------------
|
|
#undef DPF_MODNAME
|
|
#define DPF_MODNAME "GetTAPIErrorString"
|
|
|
|
static char *GetTAPIErrorString( const HRESULT TAPIError )
|
|
{
|
|
char *pString;
|
|
|
|
|
|
switch ( TAPIError )
|
|
{
|
|
// The specified address is blocked from being dialed on the specified call.
|
|
case LINEERR_ADDRESSBLOCKED:
|
|
{
|
|
pString = "LINEERR_ADDRESSBLOCKED";
|
|
break;
|
|
}
|
|
|
|
// The line cannot be opened due to a persistent condition, such as that of a serial port being exclusively opened by another process.
|
|
case LINEERR_ALLOCATED:
|
|
{
|
|
pString = "LINEERR_ALLOCATED";
|
|
break;
|
|
}
|
|
|
|
// The specified device identifier or line device identifier (such as in a dwDeviceID parameter) is invalid or out of range.
|
|
case LINEERR_BADDEVICEID:
|
|
{
|
|
pString = "LINEERR_BADDEVICEID";
|
|
break;
|
|
}
|
|
|
|
// The call's bearer mode cannot be changed to the specified bearer mode.
|
|
case LINEERR_BEARERMODEUNAVAIL:
|
|
{
|
|
pString = "LINEERR_BEARERMODEUNAVAIL";
|
|
break;
|
|
}
|
|
|
|
// All call appearances on the specified address are currently in use.
|
|
case LINEERR_CALLUNAVAIL:
|
|
{
|
|
pString = "LINEERR_CALLUNAVAIL";
|
|
break;
|
|
}
|
|
|
|
// The maximum number of outstanding call completions has been exceeded.
|
|
case LINEERR_COMPLETIONOVERRUN:
|
|
{
|
|
pString = "LINEERR_COMPLETIONOVERRUN";
|
|
break;
|
|
}
|
|
|
|
// The maximum number of parties for a conference has been reached, or the requested number of parties cannot be satisfied.
|
|
case LINEERR_CONFERENCEFULL:
|
|
{
|
|
pString = "LINEERR_CONFERENCEFULL";
|
|
break;
|
|
}
|
|
|
|
// The dialable address parameter contains dialing control characters that are not processed by the service provider.
|
|
case LINEERR_DIALBILLING:
|
|
{
|
|
pString = "LINEERR_DIALBILLING";
|
|
break;
|
|
}
|
|
|
|
// The dialable address parameter contains dialing control characters that are not processed by the service provider.
|
|
case LINEERR_DIALQUIET:
|
|
{
|
|
pString = "LINEERR_DIALQUIET";
|
|
break;
|
|
}
|
|
|
|
// The dialable address parameter contains dialing control characters that are not processed by the service provider.
|
|
case LINEERR_DIALDIALTONE:
|
|
{
|
|
pString = "LINEERR_DIALDIALTONE";
|
|
break;
|
|
}
|
|
|
|
// The dialable address parameter contains dialing control characters that are not processed by the service provider.
|
|
case LINEERR_DIALPROMPT:
|
|
{
|
|
pString = "LINEERR_DIALPROMPT";
|
|
break;
|
|
}
|
|
|
|
// The application requested an API version or version range that is either incompatible or cannot be supported by the Telephony API implementation and/or corresponding service provider.
|
|
case LINEERR_INCOMPATIBLEAPIVERSION:
|
|
{
|
|
pString = "LINEERR_INCOMPATIBLEAPIVERSION";
|
|
break;
|
|
}
|
|
|
|
// The application requested an extension version range that is either invalid or cannot be supported by the corresponding service provider.
|
|
case LINEERR_INCOMPATIBLEEXTVERSION:
|
|
{
|
|
pString = "LINEERR_INCOMPATIBLEEXTVERSION";
|
|
break;
|
|
}
|
|
|
|
// The telephon.ini file cannot be read or understood properly by TAPI because of internal inconsistencies or formatting problems. For example, the [Locations], [Cards], or [Countries] section of the telephon.ini file may be corrupted or inconsistent.
|
|
case LINEERR_INIFILECORRUPT:
|
|
{
|
|
pString = "LINEERR_INIFILECORRUPT";
|
|
break;
|
|
}
|
|
|
|
// The line device is in use and cannot currently be configured, allow a party to be added, allow a call to be answered, allow a call to be placed, or allow a call to be transferred.
|
|
case LINEERR_INUSE:
|
|
{
|
|
pString = "LINEERR_INUSE";
|
|
break;
|
|
}
|
|
|
|
// A specified address is either invalid or not allowed. If invalid, the address contains invalid characters or digits, or the destination address contains dialing control characters (W, @, $, or ?) that are not supported by the service provider. If not allowed, the specified address is either not assigned to the specified line or is not valid for address redirection.
|
|
case LINEERR_INVALADDRESS:
|
|
{
|
|
pString = "LINEERR_INVALADDRESS";
|
|
break;
|
|
}
|
|
|
|
// The specified address identifier is either invalid or out of range.
|
|
case LINEERR_INVALADDRESSID:
|
|
{
|
|
pString = "LINEERR_INVALADDRESSID";
|
|
break;
|
|
}
|
|
|
|
// The specified address mode is invalid.
|
|
case LINEERR_INVALADDRESSMODE:
|
|
{
|
|
pString = "LINEERR_INVALADDRESSMODE";
|
|
break;
|
|
}
|
|
|
|
// dwAddressStates contains one or more bits that are not LINEADDRESSSTATE_ constants.
|
|
case LINEERR_INVALADDRESSSTATE:
|
|
{
|
|
pString = "LINEERR_INVALADDRESSSTATE";
|
|
break;
|
|
}
|
|
|
|
#ifndef WINCE
|
|
// The specified agent activity is not valid.
|
|
case LINEERR_INVALAGENTACTIVITY:
|
|
{
|
|
pString = "LINEERR_INVALAGENTACTIVITY";
|
|
break;
|
|
}
|
|
|
|
// The specified agent group information is not valid or contains errors. The requested action has not been carried out.
|
|
case LINEERR_INVALAGENTGROUP:
|
|
{
|
|
pString = "LINEERR_INVALAGENTGROUP";
|
|
break;
|
|
}
|
|
|
|
// The specified agent identifier is not valid.
|
|
case LINEERR_INVALAGENTID:
|
|
{
|
|
pString = "LINEERR_INVALAGENTID";
|
|
break;
|
|
}
|
|
|
|
// // The specified agent skill information is not valid.
|
|
// case LINEERR_INVALAGENTSKILL:
|
|
// {
|
|
// pString = "LINEERR_INVALAGENTSKILL";
|
|
// break;
|
|
// }
|
|
|
|
// The specified agent state is not valid or contains errors. No changes have been made to the agent state of the specified address.
|
|
case LINEERR_INVALAGENTSTATE:
|
|
{
|
|
pString = "LINEERR_INVALAGENTSTATE";
|
|
break;
|
|
}
|
|
#endif // WINCE
|
|
// // The specified agent supervisor information is not valid.
|
|
// case LINEERR_INVALAGENTSUPERVISOR:
|
|
// {
|
|
// pString = "LINEERR_INVALAGENTSUPERVISOR";
|
|
// break;
|
|
// }
|
|
|
|
// The application handle (such as specified by a hLineApp parameter) or the appliction registration handle is invalid.
|
|
case LINEERR_INVALAPPHANDLE:
|
|
{
|
|
pString = "LINEERR_INVALAPPHANDLE";
|
|
break;
|
|
}
|
|
|
|
// The specified application name is invalid. If an application name is specified by the application, it is assumed that the string does not contain any non-displayable characters, and is zero-terminated.
|
|
case LINEERR_INVALAPPNAME:
|
|
{
|
|
pString = "LINEERR_INVALAPPNAME";
|
|
break;
|
|
}
|
|
|
|
// The specified bearer mode is invalid.
|
|
case LINEERR_INVALBEARERMODE:
|
|
{
|
|
pString = "LINEERR_INVALBEARERMODE";
|
|
break;
|
|
}
|
|
|
|
// The specified completion is invalid.
|
|
case LINEERR_INVALCALLCOMPLMODE:
|
|
{
|
|
pString = "LINEERR_INVALCALLCOMPLMODE";
|
|
break;
|
|
}
|
|
|
|
// The specified call handle is not valid. For example, the handle is not NULL but does not belong to the given line. In some cases, the specified call device handle is invalid.
|
|
case LINEERR_INVALCALLHANDLE:
|
|
{
|
|
pString = "LINEERR_INVALCALLHANDLE";
|
|
break;
|
|
}
|
|
|
|
// The specified call parameters are invalid.
|
|
case LINEERR_INVALCALLPARAMS:
|
|
{
|
|
pString = "LINEERR_INVALCALLPARAMS";
|
|
break;
|
|
}
|
|
|
|
// The specified call privilege parameter is invalid.
|
|
case LINEERR_INVALCALLPRIVILEGE:
|
|
{
|
|
pString = "LINEERR_INVALCALLPRIVILEGE";
|
|
break;
|
|
}
|
|
|
|
// The specified select parameter is invalid.
|
|
case LINEERR_INVALCALLSELECT:
|
|
{
|
|
pString = "LINEERR_INVALCALLSELECT";
|
|
break;
|
|
}
|
|
|
|
// The current state of a call is not in a valid state for the requested operation.
|
|
case LINEERR_INVALCALLSTATE:
|
|
{
|
|
pString = "LINEERR_INVALCALLSTATE";
|
|
break;
|
|
}
|
|
|
|
// The specified call state list is invalid.
|
|
case LINEERR_INVALCALLSTATELIST:
|
|
{
|
|
pString = "LINEERR_INVALCALLSTATELIST";
|
|
break;
|
|
}
|
|
|
|
// The permanent card identifier specified in dwCard could not be found in any entry in the [Cards] section in the registry.
|
|
case LINEERR_INVALCARD:
|
|
{
|
|
pString = "LINEERR_INVALCARD";
|
|
break;
|
|
}
|
|
|
|
// The completion identifier is invalid.
|
|
case LINEERR_INVALCOMPLETIONID:
|
|
{
|
|
pString = "LINEERR_INVALCOMPLETIONID";
|
|
break;
|
|
}
|
|
|
|
// The specified call handle for the conference call is invalid or is not a handle for a conference call.
|
|
case LINEERR_INVALCONFCALLHANDLE:
|
|
{
|
|
pString = "LINEERR_INVALCONFCALLHANDLE";
|
|
break;
|
|
}
|
|
|
|
// The specified consultation call handle is invalid.
|
|
case LINEERR_INVALCONSULTCALLHANDLE:
|
|
{
|
|
pString = "LINEERR_INVALCONSULTCALLHANDLE";
|
|
break;
|
|
}
|
|
|
|
// The specified country code is invalid.
|
|
case LINEERR_INVALCOUNTRYCODE:
|
|
{
|
|
pString = "LINEERR_INVALCOUNTRYCODE";
|
|
break;
|
|
}
|
|
|
|
// The line device has no associated device for the given device class, or the specified line does not support the indicated device class.
|
|
case LINEERR_INVALDEVICECLASS:
|
|
{
|
|
pString = "LINEERR_INVALDEVICECLASS";
|
|
break;
|
|
}
|
|
|
|
// The specified digit list is invalid.
|
|
case LINEERR_INVALDIGITLIST:
|
|
{
|
|
pString = "LINEERR_INVALDIGITLIST";
|
|
break;
|
|
}
|
|
|
|
// The specified digit mode is invalid.
|
|
case LINEERR_INVALDIGITMODE:
|
|
{
|
|
pString = "LINEERR_INVALDIGITMODE";
|
|
break;
|
|
}
|
|
|
|
// The specified termination digits are not valid.
|
|
case LINEERR_INVALDIGITS:
|
|
{
|
|
pString = "LINEERR_INVALDIGITS";
|
|
break;
|
|
}
|
|
|
|
// The dwFeature parameter is invalid.
|
|
case LINEERR_INVALFEATURE:
|
|
{
|
|
pString = "LINEERR_INVALFEATURE";
|
|
break;
|
|
}
|
|
|
|
// The specified group identifier is invalid.
|
|
case LINEERR_INVALGROUPID:
|
|
{
|
|
pString = "LINEERR_INVALGROUPID";
|
|
break;
|
|
}
|
|
|
|
// The specified call, device, line device, or line handle is invalid.
|
|
case LINEERR_INVALLINEHANDLE:
|
|
{
|
|
pString = "LINEERR_INVALLINEHANDLE";
|
|
break;
|
|
}
|
|
|
|
// The device configuration may not be changed in the current line state. The line may be in use by another application or a dwLineStates parameter contains one or more bits that are not LINEDEVSTATE_ constants. The LINEERR_INVALLINESTATE value can also indicate that the device is DISCONNECTED or OUTOFSERVICE. These states are indicated by setting the bits corresponding to the LINEDEVSTATUSFLAGS_CONNECTED and LINEDEVSTATUSFLAGS_INSERVICE values to 0 in the dwDevStatusFlags member of the LINEDEVSTATUS structure returned by the lineGetLineDevStatus function.
|
|
case LINEERR_INVALLINESTATE:
|
|
{
|
|
pString = "LINEERR_INVALLINESTATE";
|
|
break;
|
|
}
|
|
|
|
// The permanent location identifier specified in dwLocation could not be found in any entry in the [Locations] section in the registry.
|
|
case LINEERR_INVALLOCATION:
|
|
{
|
|
pString = "LINEERR_INVALLOCATION";
|
|
break;
|
|
}
|
|
|
|
// The specified media list is invalid.
|
|
case LINEERR_INVALMEDIALIST:
|
|
{
|
|
pString = "LINEERR_INVALMEDIALIST";
|
|
break;
|
|
}
|
|
|
|
// The list of media types to be monitored contains invalid information, the specified media mode parameter is invalid, or the service provider does not support the specified media mode. The media modes supported on the line are listed in the dwMediaModes member in the LINEDEVCAPS structure.
|
|
case LINEERR_INVALMEDIAMODE:
|
|
{
|
|
pString = "LINEERR_INVALMEDIAMODE";
|
|
break;
|
|
}
|
|
|
|
// The number given in dwMessageID is outside the range specified by the dwNumCompletionMessages member in the LINEADDRESSCAPS structure.
|
|
case LINEERR_INVALMESSAGEID:
|
|
{
|
|
pString = "LINEERR_INVALMESSAGEID";
|
|
break;
|
|
}
|
|
|
|
// A parameter (such as dwTollListOption, dwTranslateOptions, dwNumDigits, or a structure pointed to by lpDeviceConfig) contains invalid values, a country code is invalid, a window handle is invalid, or the specified forward list parameter contains invalid information.
|
|
case LINEERR_INVALPARAM:
|
|
{
|
|
pString = "LINEERR_INVALPARAM";
|
|
break;
|
|
}
|
|
|
|
// The specified park mode is invalid.
|
|
case LINEERR_INVALPARKMODE:
|
|
{
|
|
pString = "LINEERR_INVALPARKMODE";
|
|
break;
|
|
}
|
|
|
|
#ifndef WINCE
|
|
// The specified password is not correct and the requested action has not been carried out.
|
|
case LINEERR_INVALPASSWORD:
|
|
{
|
|
pString = "LINEERR_INVALPASSWORD";
|
|
break;
|
|
}
|
|
#endif // WINCE
|
|
|
|
// One or more of the specified pointer parameters (such as lpCallList, lpdwAPIVersion, lpExtensionID, lpdwExtVersion, lphIcon, lpLineDevCaps, and lpToneList) are invalid, or a required pointer to an output parameter is NULL.
|
|
case LINEERR_INVALPOINTER:
|
|
{
|
|
pString = "LINEERR_INVALPOINTER";
|
|
break;
|
|
}
|
|
|
|
// An invalid flag or combination of flags was set for the dwPrivileges parameter.
|
|
case LINEERR_INVALPRIVSELECT:
|
|
{
|
|
pString = "LINEERR_INVALPRIVSELECT";
|
|
break;
|
|
}
|
|
|
|
// The specified bearer mode is invalid.
|
|
case LINEERR_INVALRATE:
|
|
{
|
|
pString = "LINEERR_INVALRATE";
|
|
break;
|
|
}
|
|
|
|
// The specified request mode is invalid.
|
|
case LINEERR_INVALREQUESTMODE:
|
|
{
|
|
pString = "LINEERR_INVALREQUESTMODE";
|
|
break;
|
|
}
|
|
|
|
// The specified terminal mode parameter is invalid.
|
|
case LINEERR_INVALTERMINALID:
|
|
{
|
|
pString = "LINEERR_INVALTERMINALID";
|
|
break;
|
|
}
|
|
|
|
// The specified terminal modes parameter is invalid.
|
|
case LINEERR_INVALTERMINALMODE:
|
|
{
|
|
pString = "LINEERR_INVALTERMINALMODE";
|
|
break;
|
|
}
|
|
|
|
// Timeouts are not supported or the values of either or both of the parameters dwFirstDigitTimeout or dwInterDigitTimeout fall outside the valid range specified by the call's line-device capabilities.
|
|
case LINEERR_INVALTIMEOUT:
|
|
{
|
|
pString = "LINEERR_INVALTIMEOUT";
|
|
break;
|
|
}
|
|
|
|
// The specified custom tone does not represent a valid tone or is made up of too many frequencies or the specified tone structure does not describe a valid tone.
|
|
case LINEERR_INVALTONE:
|
|
{
|
|
pString = "LINEERR_INVALTONE";
|
|
break;
|
|
}
|
|
|
|
// The specified tone list is invalid.
|
|
case LINEERR_INVALTONELIST:
|
|
{
|
|
pString = "LINEERR_INVALTONELIST";
|
|
break;
|
|
}
|
|
|
|
// The specified tone mode parameter is invalid.
|
|
case LINEERR_INVALTONEMODE:
|
|
{
|
|
pString = "LINEERR_INVALTONEMODE";
|
|
break;
|
|
}
|
|
|
|
// The specified transfer mode parameter is invalid.
|
|
case LINEERR_INVALTRANSFERMODE:
|
|
{
|
|
pString = "LINEERR_INVALTRANSFERMODE";
|
|
break;
|
|
}
|
|
|
|
// LINEMAPPER was the value passed in the dwDeviceID parameter, but no lines were found that match the requirements specified in the lpCallParams parameter.
|
|
case LINEERR_LINEMAPPERFAILED:
|
|
{
|
|
pString = "LINEERR_LINEMAPPERFAILED";
|
|
break;
|
|
}
|
|
|
|
// The specified call is not a conference call handle or a participant call.
|
|
case LINEERR_NOCONFERENCE:
|
|
{
|
|
pString = "LINEERR_NOCONFERENCE";
|
|
break;
|
|
}
|
|
|
|
// The specified device identifier, which was previously valid, is no longer accepted because the associated device has been removed from the system since TAPI was last initialized. Alternately, the line device has no associated device for the given device class.
|
|
case LINEERR_NODEVICE:
|
|
{
|
|
pString = "LINEERR_NODEVICE";
|
|
break;
|
|
}
|
|
|
|
// Either tapiaddr.dll could not be located or the telephone service provider for the specified device found that one of its components is missing or corrupt in a way that was not detected at initialization time. The user should be advised to use the Telephony Control Panel to correct the problem.
|
|
case LINEERR_NODRIVER:
|
|
{
|
|
pString = "LINEERR_NODRIVER";
|
|
break;
|
|
}
|
|
|
|
// Insufficient memory to perform the operation, or unable to lock memory.
|
|
case LINEERR_NOMEM:
|
|
{
|
|
pString = "LINEERR_NOMEM";
|
|
break;
|
|
}
|
|
|
|
// A telephony service provider which does not support multiple instances is listed more than once in the [Providers] section in the registry. The application should advise the user to use the Telephony Control Panel to remove the duplicated driver.
|
|
case LINEERR_NOMULTIPLEINSTANCE:
|
|
{
|
|
pString = "LINEERR_NOMULTIPLEINSTANCE";
|
|
break;
|
|
}
|
|
|
|
// There currently is no request pending of the indicated mode, or the application is no longer the highest-priority application for the specified request mode.
|
|
case LINEERR_NOREQUEST:
|
|
{
|
|
pString = "LINEERR_NOREQUEST";
|
|
break;
|
|
}
|
|
|
|
// The application does not have owner privilege to the specified call.
|
|
case LINEERR_NOTOWNER:
|
|
{
|
|
pString = "LINEERR_NOTOWNER";
|
|
break;
|
|
}
|
|
|
|
// The application is not registered as a request recipient for the indicated request mode.
|
|
case LINEERR_NOTREGISTERED:
|
|
{
|
|
pString = "LINEERR_NOTREGISTERED";
|
|
break;
|
|
}
|
|
|
|
// The operation failed for an unspecified or unknown reason.
|
|
case LINEERR_OPERATIONFAILED:
|
|
{
|
|
pString = "LINEERR_OPERATIONFAILED";
|
|
break;
|
|
}
|
|
|
|
// The operation is not available, such as for the given device or specified line.
|
|
case LINEERR_OPERATIONUNAVAIL:
|
|
{
|
|
pString = "LINEERR_OPERATIONUNAVAIL";
|
|
break;
|
|
}
|
|
|
|
// The service provider currently does not have enough bandwidth available for the specified rate.
|
|
case LINEERR_RATEUNAVAIL:
|
|
{
|
|
pString = "LINEERR_RATEUNAVAIL";
|
|
break;
|
|
}
|
|
|
|
// If TAPI reinitialization has been requested, for example as a result of adding or removing a telephony service provider, then lineInitialize, lineInitializeEx, or lineOpen requests are rejected with this error until the last application shuts down its usage of the API (using lineShutdown), at which time the new configuration becomes effective and applications are once again permitted to call lineInitialize or lineInitializeEx.
|
|
case LINEERR_REINIT:
|
|
{
|
|
pString = "LINEERR_REINIT";
|
|
break;
|
|
}
|
|
|
|
// Insufficient resources to complete the operation. For example, a line cannot be opened due to a dynamic resource overcommitment.
|
|
case LINEERR_RESOURCEUNAVAIL:
|
|
{
|
|
pString = "LINEERR_RESOURCEUNAVAIL";
|
|
break;
|
|
}
|
|
|
|
// The dwTotalSize member indicates insufficient space to contain the fixed portion of the specified structure.
|
|
case LINEERR_STRUCTURETOOSMALL:
|
|
{
|
|
pString = "LINEERR_STRUCTURETOOSMALL";
|
|
break;
|
|
}
|
|
|
|
// A target for the call handoff was not found. This can occur if the named application did not open the same line with the LINECALLPRIVILEGE_OWNER bit in the dwPrivileges parameter of lineOpen. Or, in the case of media-mode handoff, no application has opened the same line with the LINECALLPRIVILEGE_OWNER bit in the dwPrivileges parameter of lineOpen and with the media mode specified in the dwMediaMode parameter having been specified in the dwMediaModes parameter of lineOpen.
|
|
case LINEERR_TARGETNOTFOUND:
|
|
{
|
|
pString = "LINEERR_TARGETNOTFOUND";
|
|
break;
|
|
}
|
|
|
|
// The application invoking this operation is the target of the indirect handoff. That is, TAPI has determined that the calling application is also the highest priority application for the given media mode.
|
|
case LINEERR_TARGETSELF:
|
|
{
|
|
pString = "LINEERR_TARGETSELF";
|
|
break;
|
|
}
|
|
|
|
// The operation was invoked before any application called lineInitialize , lineInitializeEx.
|
|
case LINEERR_UNINITIALIZED:
|
|
{
|
|
pString = "LINEERR_UNINITIALIZED";
|
|
break;
|
|
}
|
|
|
|
// The string containing user-user information exceeds the maximum number of bytes specified in the dwUUIAcceptSize, dwUUIAnswerSize, dwUUIDropSize, dwUUIMakeCallSize, or dwUUISendUserUserInfoSize member of LINEDEVCAPS, or the string containing user-user information is too long.
|
|
case LINEERR_USERUSERINFOTOOBIG:
|
|
{
|
|
pString = "LINEERR_USERUSERINFOTOOBIG";
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DPFX(DPFPREP, 0, "Unknown TAPI error code %u/0x%lx", TAPIError, TAPIError );
|
|
|
|
pString = "Unknown TAPI error";
|
|
break;
|
|
}
|
|
}
|
|
|
|
return pString;
|
|
}
|
|
//**********************************************************************
|
|
|
|
#endif // ! DPNBUILD_NOSERIALSP
|
|
|
|
|
|
//**********************************************************************
|
|
// ------------------------------
|
|
// GetWIN32ErrorString - convert system error to a string
|
|
//
|
|
// Entry: Error code
|
|
//
|
|
// Exit: Pointer to string
|
|
// ------------------------------
|
|
#undef DPF_MODNAME
|
|
#define DPF_MODNAME "GetWIN32ErrorString"
|
|
|
|
static char *GetWIN32ErrorString( const LONG Error )
|
|
{
|
|
char *pString;
|
|
|
|
switch ( Error )
|
|
{
|
|
case ERROR_SUCCESS:
|
|
{
|
|
// 0 The operation completed successfully. ERROR_SUCCESS
|
|
pString = "ERROR_SUCCESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_FUNCTION:
|
|
{
|
|
// 1 Incorrect function. ERROR_INVALID_FUNCTION
|
|
pString = "ERROR_INVALID_FUNCTION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILE_NOT_FOUND:
|
|
{
|
|
// 2 The system cannot find the file specified. ERROR_FILE_NOT_FOUND
|
|
pString = "ERROR_FILE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PATH_NOT_FOUND:
|
|
{
|
|
// 3 The system cannot find the path specified. ERROR_PATH_NOT_FOUND
|
|
pString = "ERROR_PATH_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_OPEN_FILES:
|
|
{
|
|
// 4 The system cannot open the file. ERROR_TOO_MANY_OPEN_FILES
|
|
pString = "ERROR_TOO_MANY_OPEN_FILES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ACCESS_DENIED:
|
|
{
|
|
// 5 Access is denied. ERROR_ACCESS_DENIED
|
|
pString = "ERROR_ACCESS_DENIED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_HANDLE:
|
|
{
|
|
// 6 The handle is invalid. ERROR_INVALID_HANDLE
|
|
pString = "ERROR_INVALID_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ARENA_TRASHED:
|
|
{
|
|
// 7 The storage control blocks were destroyed. ERROR_ARENA_TRASHED
|
|
pString = "ERROR_ARENA_TRASHED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_ENOUGH_MEMORY:
|
|
{
|
|
// 8 Not enough storage is available to process this command. ERROR_NOT_ENOUGH_MEMORY
|
|
pString = "ERROR_NOT_ENOUGH_MEMORY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_BLOCK:
|
|
{
|
|
// 9 The storage control block address is invalid. ERROR_INVALID_BLOCK
|
|
pString = "ERROR_INVALID_BLOCK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_ENVIRONMENT:
|
|
{
|
|
// 10 The environment is incorrect. ERROR_BAD_ENVIRONMENT
|
|
pString = "ERROR_BAD_ENVIRONMENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_FORMAT:
|
|
{
|
|
// 11 An attempt was made to load a program with an incorrect format. ERROR_BAD_FORMAT
|
|
pString = "ERROR_BAD_FORMAT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ACCESS:
|
|
{
|
|
// 12 The access code is invalid. ERROR_INVALID_ACCESS
|
|
pString = "ERROR_INVALID_ACCESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DATA:
|
|
{
|
|
// 13 The data is invalid. ERROR_INVALID_DATA
|
|
pString = "ERROR_INVALID_DATA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OUTOFMEMORY:
|
|
{
|
|
// 14 Not enough storage is available to complete this operation. ERROR_OUTOFMEMORY
|
|
pString = "ERROR_OUTOFMEMORY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DRIVE:
|
|
{
|
|
// 15 The system cannot find the drive specified. ERROR_INVALID_DRIVE
|
|
pString = "ERROR_INVALID_DRIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CURRENT_DIRECTORY:
|
|
{
|
|
// 16 The directory cannot be removed. ERROR_CURRENT_DIRECTORY
|
|
pString = "ERROR_CURRENT_DIRECTORY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_SAME_DEVICE:
|
|
{
|
|
// 17 The system cannot move the file to a different disk drive. ERROR_NOT_SAME_DEVICE
|
|
pString = "ERROR_NOT_SAME_DEVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_MORE_FILES:
|
|
{
|
|
// 18 There are no more files. ERROR_NO_MORE_FILES
|
|
pString = "ERROR_NO_MORE_FILES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WRITE_PROTECT:
|
|
{
|
|
// 19 The media is write protected. ERROR_WRITE_PROTECT
|
|
pString = "ERROR_WRITE_PROTECT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_UNIT:
|
|
{
|
|
// 20 The system cannot find the device specified. ERROR_BAD_UNIT
|
|
pString = "ERROR_BAD_UNIT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_READY:
|
|
{
|
|
// 21 The device is not ready. ERROR_NOT_READY
|
|
pString = "ERROR_NOT_READY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_COMMAND:
|
|
{
|
|
// 22 The device does not recognize the command. ERROR_BAD_COMMAND
|
|
pString = "ERROR_BAD_COMMAND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CRC:
|
|
{
|
|
// 23 Data error (cyclic redundancy check). ERROR_CRC
|
|
pString = "ERROR_CRC";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_LENGTH:
|
|
{
|
|
// 24 The program issued a command but the command length is incorrect. ERROR_BAD_LENGTH
|
|
pString = "ERROR_BAD_LENGTH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SEEK:
|
|
{
|
|
// 25 The drive cannot locate a specific area or track on the disk. ERROR_SEEK
|
|
pString = "ERROR_SEEK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_DOS_DISK:
|
|
{
|
|
// 26 The specified disk or diskette cannot be accessed. ERROR_NOT_DOS_DISK
|
|
pString = "ERROR_NOT_DOS_DISK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SECTOR_NOT_FOUND:
|
|
{
|
|
// 27 The drive cannot find the sector requested. ERROR_SECTOR_NOT_FOUND
|
|
pString = "ERROR_SECTOR_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OUT_OF_PAPER:
|
|
{
|
|
// 28 The printer is out of paper. ERROR_OUT_OF_PAPER
|
|
pString = "ERROR_OUT_OF_PAPER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WRITE_FAULT:
|
|
{
|
|
// 29 The system cannot write to the specified device. ERROR_WRITE_FAULT
|
|
pString = "ERROR_WRITE_FAULT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_READ_FAULT:
|
|
{
|
|
// 30 The system cannot read from the specified device. ERROR_READ_FAULT
|
|
pString = "ERROR_READ_FAULT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GEN_FAILURE:
|
|
{
|
|
// 31 A device attached to the system is not functioning. ERROR_GEN_FAILURE
|
|
pString = "ERROR_GEN_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SHARING_VIOLATION:
|
|
{
|
|
// 32 The process cannot access the file because it is being used by another process. ERROR_SHARING_VIOLATION
|
|
pString = "ERROR_SHARING_VIOLATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOCK_VIOLATION:
|
|
{
|
|
// 33 The process cannot access the file because another process has locked a portion of the file. ERROR_LOCK_VIOLATION
|
|
pString = "ERROR_LOCK_VIOLATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WRONG_DISK:
|
|
{
|
|
// 34 The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1. ERROR_WRONG_DISK
|
|
pString = "ERROR_WRONG_DISK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SHARING_BUFFER_EXCEEDED:
|
|
{
|
|
// 36 Too many files opened for sharing. ERROR_SHARING_BUFFER_EXCEEDED
|
|
pString = "ERROR_SHARING_BUFFER_EXCEEDED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HANDLE_EOF:
|
|
{
|
|
// 38 Reached the end of the file. ERROR_HANDLE_EOF
|
|
pString = "ERROR_HANDLE_EOF";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HANDLE_DISK_FULL:
|
|
{
|
|
// 39 The disk is full. ERROR_HANDLE_DISK_FULL
|
|
pString = "ERROR_HANDLE_DISK_FULL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_SUPPORTED:
|
|
{
|
|
// 50 The network request is not supported. ERROR_NOT_SUPPORTED
|
|
pString = "ERROR_NOT_SUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REM_NOT_LIST:
|
|
{
|
|
// 51 The remote computer is not available. ERROR_REM_NOT_LIST
|
|
pString = "ERROR_REM_NOT_LIST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DUP_NAME:
|
|
{
|
|
// 52 A duplicate name exists on the network. ERROR_DUP_NAME
|
|
pString = "ERROR_DUP_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_NETPATH:
|
|
{
|
|
// 53 The network path was not found. ERROR_BAD_NETPATH
|
|
pString = "ERROR_BAD_NETPATH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NETWORK_BUSY:
|
|
{
|
|
// 54 The network is busy. ERROR_NETWORK_BUSY
|
|
pString = "ERROR_NETWORK_BUSY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEV_NOT_EXIST:
|
|
{
|
|
// 55 The specified network resource or device is no longer available. ERROR_DEV_NOT_EXIST
|
|
pString = "ERROR_DEV_NOT_EXIST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_CMDS:
|
|
{
|
|
// 56 The network BIOS command limit has been reached. ERROR_TOO_MANY_CMDS
|
|
pString = "ERROR_TOO_MANY_CMDS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ADAP_HDW_ERR:
|
|
{
|
|
// 57 A network adapter hardware error occurred. ERROR_ADAP_HDW_ERR
|
|
pString = "ERROR_ADAP_HDW_ERR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_NET_RESP:
|
|
{
|
|
// 58 The specified server cannot perform the requested operation. ERROR_BAD_NET_RESP
|
|
pString = "ERROR_BAD_NET_RESP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNEXP_NET_ERR:
|
|
{
|
|
// 59 An unexpected network error occurred. ERROR_UNEXP_NET_ERR
|
|
pString = "ERROR_UNEXP_NET_ERR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_REM_ADAP:
|
|
{
|
|
// 60 The remote adapter is not compatible. ERROR_BAD_REM_ADAP
|
|
pString = "ERROR_BAD_REM_ADAP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINTQ_FULL:
|
|
{
|
|
// 61 The printer queue is full. ERROR_PRINTQ_FULL
|
|
pString = "ERROR_PRINTQ_FULL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SPOOL_SPACE:
|
|
{
|
|
// 62 Space to store the file waiting to be printed is not available on the server. ERROR_NO_SPOOL_SPACE
|
|
pString = "ERROR_NO_SPOOL_SPACE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINT_CANCELLED:
|
|
{
|
|
// 63 Your file waiting to be printed was deleted. ERROR_PRINT_CANCELLED
|
|
pString = "ERROR_PRINT_CANCELLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NETNAME_DELETED:
|
|
{
|
|
// 64 The specified network name is no longer available. ERROR_NETNAME_DELETED
|
|
pString = "ERROR_NETNAME_DELETED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NETWORK_ACCESS_DENIED:
|
|
{
|
|
// 65 Network access is denied. ERROR_NETWORK_ACCESS_DENIED
|
|
pString = "ERROR_NETWORK_ACCESS_DENIED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_DEV_TYPE:
|
|
{
|
|
// 66 The network resource type is not correct. ERROR_BAD_DEV_TYPE
|
|
pString = "ERROR_BAD_DEV_TYPE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_NET_NAME:
|
|
{
|
|
// 67 The network name cannot be found. ERROR_BAD_NET_NAME
|
|
pString = "ERROR_BAD_NET_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_NAMES:
|
|
{
|
|
// 68 The name limit for the local computer network adapter card was exceeded. ERROR_TOO_MANY_NAMES
|
|
pString = "ERROR_TOO_MANY_NAMES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_SESS:
|
|
{
|
|
// 69 The network BIOS session limit was exceeded. ERROR_TOO_MANY_SESS
|
|
pString = "ERROR_TOO_MANY_SESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SHARING_PAUSED:
|
|
{
|
|
// 70 The remote server has been paused or is in the process of being started. ERROR_SHARING_PAUSED
|
|
pString = "ERROR_SHARING_PAUSED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REQ_NOT_ACCEP:
|
|
{
|
|
// 71 No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept. ERROR_REQ_NOT_ACCEP
|
|
pString = "ERROR_REQ_NOT_ACCEP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REDIR_PAUSED:
|
|
{
|
|
// 72 The specified printer or disk device has been paused. ERROR_REDIR_PAUSED
|
|
pString = "ERROR_REDIR_PAUSED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILE_EXISTS:
|
|
{
|
|
// 80 The file exists. ERROR_FILE_EXISTS
|
|
pString = "ERROR_FILE_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANNOT_MAKE:
|
|
{
|
|
// 82 The directory or file cannot be created. ERROR_CANNOT_MAKE
|
|
pString = "ERROR_CANNOT_MAKE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FAIL_I24:
|
|
{
|
|
// 83 Fail on INT 24. ERROR_FAIL_I24
|
|
pString = "ERROR_FAIL_I24";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OUT_OF_STRUCTURES:
|
|
{
|
|
// 84 Storage to process this request is not available. ERROR_OUT_OF_STRUCTURES
|
|
pString = "ERROR_OUT_OF_STRUCTURES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALREADY_ASSIGNED:
|
|
{
|
|
// 85 The local device name is already in use. ERROR_ALREADY_ASSIGNED
|
|
pString = "ERROR_ALREADY_ASSIGNED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PASSWORD:
|
|
{
|
|
// 86 The specified network password is not correct. ERROR_INVALID_PASSWORD
|
|
pString = "ERROR_INVALID_PASSWORD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PARAMETER:
|
|
{
|
|
// 87 The parameter is incorrect. ERROR_INVALID_PARAMETER
|
|
pString = "ERROR_INVALID_PARAMETER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NET_WRITE_FAULT:
|
|
{
|
|
// 88 A write fault occurred on the network. ERROR_NET_WRITE_FAULT
|
|
pString = "ERROR_NET_WRITE_FAULT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_PROC_SLOTS:
|
|
{
|
|
// 89 The system cannot start another process at this time. ERROR_NO_PROC_SLOTS
|
|
pString = "ERROR_NO_PROC_SLOTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_SEMAPHORES:
|
|
{
|
|
// 100 Cannot create another system semaphore. ERROR_TOO_MANY_SEMAPHORES
|
|
pString = "ERROR_TOO_MANY_SEMAPHORES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EXCL_SEM_ALREADY_OWNED:
|
|
{
|
|
// 101 The exclusive semaphore is owned by another process. ERROR_EXCL_SEM_ALREADY_OWNED
|
|
pString = "ERROR_EXCL_SEM_ALREADY_OWNED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SEM_IS_SET:
|
|
{
|
|
// 102 The semaphore is set and cannot be closed. ERROR_SEM_IS_SET
|
|
pString = "ERROR_SEM_IS_SET";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_SEM_REQUESTS:
|
|
{
|
|
// 103 The semaphore cannot be set again. ERROR_TOO_MANY_SEM_REQUESTS
|
|
pString = "ERROR_TOO_MANY_SEM_REQUESTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_AT_INTERRUPT_TIME:
|
|
{
|
|
// 104 Cannot request exclusive semaphores at interrupt time. ERROR_INVALID_AT_INTERRUPT_TIME
|
|
pString = "ERROR_INVALID_AT_INTERRUPT_TIME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SEM_OWNER_DIED:
|
|
{
|
|
// 105 The previous ownership of this semaphore has ended. ERROR_SEM_OWNER_DIED
|
|
pString = "ERROR_SEM_OWNER_DIED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SEM_USER_LIMIT:
|
|
{
|
|
// 106 Insert the diskette for drive %1. ERROR_SEM_USER_LIMIT
|
|
pString = "ERROR_SEM_USER_LIMIT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DISK_CHANGE:
|
|
{
|
|
// 107 The program stopped because an alternate diskette was not inserted. ERROR_DISK_CHANGE
|
|
pString = "ERROR_DISK_CHANGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DRIVE_LOCKED:
|
|
{
|
|
// 108 The disk is in use or locked by another process. ERROR_DRIVE_LOCKED
|
|
pString = "ERROR_DRIVE_LOCKED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BROKEN_PIPE:
|
|
{
|
|
// 109 The pipe has been ended. ERROR_BROKEN_PIPE
|
|
pString = "ERROR_BROKEN_PIPE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OPEN_FAILED:
|
|
{
|
|
// 110 The system cannot open the device or file specified. ERROR_OPEN_FAILED
|
|
pString = "ERROR_OPEN_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BUFFER_OVERFLOW:
|
|
{
|
|
// 111 The file name is too long. ERROR_BUFFER_OVERFLOW
|
|
pString = "ERROR_BUFFER_OVERFLOW";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DISK_FULL:
|
|
{
|
|
// 112 There is not enough space on the disk. ERROR_DISK_FULL
|
|
pString = "ERROR_DISK_FULL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_MORE_SEARCH_HANDLES:
|
|
{
|
|
// 113 No more internal file identifiers available. ERROR_NO_MORE_SEARCH_HANDLES
|
|
pString = "ERROR_NO_MORE_SEARCH_HANDLES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_TARGET_HANDLE:
|
|
{
|
|
// 114 The target internal file identifier is incorrect. ERROR_INVALID_TARGET_HANDLE
|
|
pString = "ERROR_INVALID_TARGET_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_CATEGORY:
|
|
{
|
|
// 117 The IOCTL call made by the application program is not correct. ERROR_INVALID_CATEGORY
|
|
pString = "ERROR_INVALID_CATEGORY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_VERIFY_SWITCH:
|
|
{
|
|
// 118 The verify-on-write switch parameter value is not correct. ERROR_INVALID_VERIFY_SWITCH
|
|
pString = "ERROR_INVALID_VERIFY_SWITCH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_DRIVER_LEVEL:
|
|
{
|
|
// 119 The system does not support the command requested. ERROR_BAD_DRIVER_LEVEL
|
|
pString = "ERROR_BAD_DRIVER_LEVEL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CALL_NOT_IMPLEMENTED:
|
|
{
|
|
// 120 This function is not supported on this system. ERROR_CALL_NOT_IMPLEMENTED
|
|
pString = "ERROR_CALL_NOT_IMPLEMENTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SEM_TIMEOUT:
|
|
{
|
|
// 121 The semaphore timeout period has expired. ERROR_SEM_TIMEOUT
|
|
pString = "ERROR_SEM_TIMEOUT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INSUFFICIENT_BUFFER:
|
|
{
|
|
// 122 The data area passed to a system call is too small. ERROR_INSUFFICIENT_BUFFER
|
|
pString = "ERROR_INSUFFICIENT_BUFFER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_NAME:
|
|
{
|
|
// 123 The filename, directory name, or volume label syntax is incorrect. ERROR_INVALID_NAME
|
|
pString = "ERROR_INVALID_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_LEVEL:
|
|
{
|
|
// 124 The system call level is not correct. ERROR_INVALID_LEVEL
|
|
pString = "ERROR_INVALID_LEVEL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_VOLUME_LABEL:
|
|
{
|
|
// 125 The disk has no volume label. ERROR_NO_VOLUME_LABEL
|
|
pString = "ERROR_NO_VOLUME_LABEL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MOD_NOT_FOUND:
|
|
{
|
|
// 126 The specified module could not be found. ERROR_MOD_NOT_FOUND
|
|
pString = "ERROR_MOD_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PROC_NOT_FOUND:
|
|
{
|
|
// 127 The specified procedure could not be found. ERROR_PROC_NOT_FOUND
|
|
pString = "ERROR_PROC_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WAIT_NO_CHILDREN:
|
|
{
|
|
// 128 There are no child processes to wait for. ERROR_WAIT_NO_CHILDREN
|
|
pString = "ERROR_WAIT_NO_CHILDREN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CHILD_NOT_COMPLETE:
|
|
{
|
|
// 129 The %1 application cannot be run in Win32 mode. ERROR_CHILD_NOT_COMPLETE
|
|
pString = "ERROR_CHILD_NOT_COMPLETE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DIRECT_ACCESS_HANDLE:
|
|
{
|
|
// 130 Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O. ERROR_DIRECT_ACCESS_HANDLE
|
|
pString = "ERROR_DIRECT_ACCESS_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NEGATIVE_SEEK:
|
|
{
|
|
// 131 An attempt was made to move the file pointer before the beginning of the file. ERROR_NEGATIVE_SEEK
|
|
pString = "ERROR_NEGATIVE_SEEK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SEEK_ON_DEVICE:
|
|
{
|
|
// 132 The file pointer cannot be set on the specified device or file. ERROR_SEEK_ON_DEVICE
|
|
pString = "ERROR_SEEK_ON_DEVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IS_JOIN_TARGET:
|
|
{
|
|
// 133 A JOIN or SUBST command cannot be used for a drive that contains previously joined drives. ERROR_IS_JOIN_TARGET
|
|
pString = "ERROR_IS_JOIN_TARGET";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IS_JOINED:
|
|
{
|
|
// 134 An attempt was made to use a JOIN or SUBST command on a drive that has already been joined. ERROR_IS_JOINED
|
|
pString = "ERROR_IS_JOINED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IS_SUBSTED:
|
|
{
|
|
// 135 An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted. ERROR_IS_SUBSTED
|
|
pString = "ERROR_IS_SUBSTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_JOINED:
|
|
{
|
|
// 136 The system tried to delete the JOIN of a drive that is not joined. ERROR_NOT_JOINED
|
|
pString = "ERROR_NOT_JOINED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_SUBSTED:
|
|
{
|
|
// 137 The system tried to delete the substitution of a drive that is not substituted. ERROR_NOT_SUBSTED
|
|
pString = "ERROR_NOT_SUBSTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_JOIN_TO_JOIN:
|
|
{
|
|
// 138 The system tried to join a drive to a directory on a joined drive. ERROR_JOIN_TO_JOIN
|
|
pString = "ERROR_JOIN_TO_JOIN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SUBST_TO_SUBST:
|
|
{
|
|
// 139 The system tried to substitute a drive to a directory on a substituted drive. ERROR_SUBST_TO_SUBST
|
|
pString = "ERROR_SUBST_TO_SUBST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_JOIN_TO_SUBST:
|
|
{
|
|
// 140 The system tried to join a drive to a directory on a substituted drive. ERROR_JOIN_TO_SUBST
|
|
pString = "ERROR_JOIN_TO_SUBST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SUBST_TO_JOIN:
|
|
{
|
|
// 141 The system tried to SUBST a drive to a directory on a joined drive. ERROR_SUBST_TO_JOIN
|
|
pString = "ERROR_SUBST_TO_JOIN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BUSY_DRIVE:
|
|
{
|
|
// 142 The system cannot perform a JOIN or SUBST at this time. ERROR_BUSY_DRIVE
|
|
pString = "ERROR_BUSY_DRIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SAME_DRIVE:
|
|
{
|
|
// 143 The system cannot join or substitute a drive to or for a directory on the same drive. ERROR_SAME_DRIVE
|
|
pString = "ERROR_SAME_DRIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DIR_NOT_ROOT:
|
|
{
|
|
// 144 The directory is not a subdirectory of the root directory. ERROR_DIR_NOT_ROOT
|
|
pString = "ERROR_DIR_NOT_ROOT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DIR_NOT_EMPTY:
|
|
{
|
|
// 145 The directory is not empty. ERROR_DIR_NOT_EMPTY
|
|
pString = "ERROR_DIR_NOT_EMPTY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IS_SUBST_PATH:
|
|
{
|
|
// 146 The path specified is being used in a substitute. ERROR_IS_SUBST_PATH
|
|
pString = "ERROR_IS_SUBST_PATH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IS_JOIN_PATH:
|
|
{
|
|
// 147 Not enough resources are available to process this command. ERROR_IS_JOIN_PATH
|
|
pString = "ERROR_IS_JOIN_PATH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PATH_BUSY:
|
|
{
|
|
// 148 The path specified cannot be used at this time. ERROR_PATH_BUSY
|
|
pString = "ERROR_PATH_BUSY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IS_SUBST_TARGET:
|
|
{
|
|
// 149 An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute. ERROR_IS_SUBST_TARGET
|
|
pString = "ERROR_IS_SUBST_TARGET";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SYSTEM_TRACE:
|
|
{
|
|
// 150 System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed. ERROR_SYSTEM_TRACE
|
|
pString = "ERROR_SYSTEM_TRACE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_EVENT_COUNT:
|
|
{
|
|
// 151 The number of specified semaphore events for DosMuxSemWait is not correct. ERROR_INVALID_EVENT_COUNT
|
|
pString = "ERROR_INVALID_EVENT_COUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_MUXWAITERS:
|
|
{
|
|
// 152 DosMuxSemWait did not execute; too many semaphores are already set. ERROR_TOO_MANY_MUXWAITERS
|
|
pString = "ERROR_TOO_MANY_MUXWAITERS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_LIST_FORMAT:
|
|
{
|
|
// 153 The DosMuxSemWait list is not correct. ERROR_INVALID_LIST_FORMAT
|
|
pString = "ERROR_INVALID_LIST_FORMAT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LABEL_TOO_LONG:
|
|
{
|
|
// 154 The volume label you entered exceeds the label character limit of the target file system. ERROR_LABEL_TOO_LONG
|
|
pString = "ERROR_LABEL_TOO_LONG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_TCBS:
|
|
{
|
|
// 155 Cannot create another thread. ERROR_TOO_MANY_TCBS
|
|
pString = "ERROR_TOO_MANY_TCBS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SIGNAL_REFUSED:
|
|
{
|
|
// 156 The recipient process has refused the signal. ERROR_SIGNAL_REFUSED
|
|
pString = "ERROR_SIGNAL_REFUSED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DISCARDED:
|
|
{
|
|
// 157 The segment is already discarded and cannot be locked. ERROR_DISCARDED
|
|
pString = "ERROR_DISCARDED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_LOCKED:
|
|
{
|
|
// 158 The segment is already unlocked. ERROR_NOT_LOCKED
|
|
pString = "ERROR_NOT_LOCKED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_THREADID_ADDR:
|
|
{
|
|
// 159 The address for the thread ID is not correct. ERROR_BAD_THREADID_ADDR
|
|
pString = "ERROR_BAD_THREADID_ADDR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_ARGUMENTS:
|
|
{
|
|
// 160 The argument string passed to DosExecPgm is not correct. ERROR_BAD_ARGUMENTS
|
|
pString = "ERROR_BAD_ARGUMENTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_PATHNAME:
|
|
{
|
|
// 161 The specified path is invalid. ERROR_BAD_PATHNAME
|
|
pString = "ERROR_BAD_PATHNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SIGNAL_PENDING:
|
|
{
|
|
// 162 A signal is already pending. ERROR_SIGNAL_PENDING
|
|
pString = "ERROR_SIGNAL_PENDING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MAX_THRDS_REACHED:
|
|
{
|
|
// 164 No more threads can be created in the system. ERROR_MAX_THRDS_REACHED
|
|
pString = "ERROR_MAX_THRDS_REACHED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOCK_FAILED:
|
|
{
|
|
// 167 Unable to lock a region of a file. ERROR_LOCK_FAILED
|
|
pString = "ERROR_LOCK_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BUSY:
|
|
{
|
|
// 170 The requested resource is in use. ERROR_BUSY
|
|
pString = "ERROR_BUSY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANCEL_VIOLATION:
|
|
{
|
|
// 173 A lock request was not outstanding for the supplied cancel region. ERROR_CANCEL_VIOLATION
|
|
pString = "ERROR_CANCEL_VIOLATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ATOMIC_LOCKS_NOT_SUPPORTED:
|
|
{
|
|
// 174 The file system does not support atomic changes to the lock type. ERROR_ATOMIC_LOCKS_NOT_SUPPORTED
|
|
pString = "ERROR_ATOMIC_LOCKS_NOT_SUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SEGMENT_NUMBER:
|
|
{
|
|
// 180 The system detected a segment number that was not correct. ERROR_INVALID_SEGMENT_NUMBER
|
|
pString = "ERROR_INVALID_SEGMENT_NUMBER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ORDINAL:
|
|
{
|
|
// 182 The operating system cannot run %1. ERROR_INVALID_ORDINAL
|
|
pString = "ERROR_INVALID_ORDINAL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALREADY_EXISTS:
|
|
{
|
|
// 183 Cannot create a file when that file already exists. ERROR_ALREADY_EXISTS
|
|
pString = "ERROR_ALREADY_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_FLAG_NUMBER:
|
|
{
|
|
// 186 The flag passed is not correct. ERROR_INVALID_FLAG_NUMBER
|
|
pString = "ERROR_INVALID_FLAG_NUMBER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SEM_NOT_FOUND:
|
|
{
|
|
// 187 The specified system semaphore name was not found. ERROR_SEM_NOT_FOUND
|
|
pString = "ERROR_SEM_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_STARTING_CODESEG:
|
|
{
|
|
// 188 The operating system cannot run %1. ERROR_INVALID_STARTING_CODESEG
|
|
pString = "ERROR_INVALID_STARTING_CODESEG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_STACKSEG:
|
|
{
|
|
// 189 The operating system cannot run %1. ERROR_INVALID_STACKSEG
|
|
pString = "ERROR_INVALID_STACKSEG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MODULETYPE:
|
|
{
|
|
// 190 The operating system cannot run %1. ERROR_INVALID_MODULETYPE
|
|
pString = "ERROR_INVALID_MODULETYPE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_EXE_SIGNATURE:
|
|
{
|
|
// 191 Cannot run %1 in Win32 mode. ERROR_INVALID_EXE_SIGNATURE
|
|
pString = "ERROR_INVALID_EXE_SIGNATURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EXE_MARKED_INVALID:
|
|
{
|
|
// 192 The operating system cannot run %1. ERROR_EXE_MARKED_INVALID
|
|
pString = "ERROR_EXE_MARKED_INVALID";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_EXE_FORMAT:
|
|
{
|
|
// 193 is not a valid Win32 application. ERROR_BAD_EXE_FORMAT
|
|
pString = "ERROR_BAD_EXE_FORMAT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ITERATED_DATA_EXCEEDS_64k:
|
|
{
|
|
// 194 The operating system cannot run %1. ERROR_ITERATED_DATA_EXCEEDS_64k
|
|
pString = "ERROR_ITERATED_DATA_EXCEEDS_64k";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MINALLOCSIZE:
|
|
{
|
|
// 195 The operating system cannot run %1. ERROR_INVALID_MINALLOCSIZE
|
|
pString = "ERROR_INVALID_MINALLOCSIZE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DYNLINK_FROM_INVALID_RING:
|
|
{
|
|
// 196 The operating system cannot run this application program. ERROR_DYNLINK_FROM_INVALID_RING
|
|
pString = "ERROR_DYNLINK_FROM_INVALID_RING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IOPL_NOT_ENABLED:
|
|
{
|
|
// 197 The operating system is not presently configured to run this application. ERROR_IOPL_NOT_ENABLED
|
|
pString = "ERROR_IOPL_NOT_ENABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SEGDPL:
|
|
{
|
|
// 198 The operating system cannot run %1. ERROR_INVALID_SEGDPL
|
|
pString = "ERROR_INVALID_SEGDPL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_AUTODATASEG_EXCEEDS_64k:
|
|
{
|
|
// 199 The operating system cannot run this application program. ERROR_AUTODATASEG_EXCEEDS_64k
|
|
pString = "ERROR_AUTODATASEG_EXCEEDS_64k";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RING2SEG_MUST_BE_MOVABLE:
|
|
{
|
|
// 200 The code segment cannot be greater than or equal to 64K. ERROR_RING2SEG_MUST_BE_MOVABLE
|
|
pString = "ERROR_RING2SEG_MUST_BE_MOVABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RELOC_CHAIN_XEEDS_SEGLIM:
|
|
{
|
|
// 201 The operating system cannot run %1. ERROR_RELOC_CHAIN_XEEDS_SEGLIM
|
|
pString = "ERROR_RELOC_CHAIN_XEEDS_SEGLIM";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INFLOOP_IN_RELOC_CHAIN:
|
|
{
|
|
// 202 The operating system cannot run %1. ERROR_INFLOOP_IN_RELOC_CHAIN
|
|
pString = "ERROR_INFLOOP_IN_RELOC_CHAIN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ENVVAR_NOT_FOUND:
|
|
{
|
|
// 203 The system could not find the environment option that was entered. ERROR_ENVVAR_NOT_FOUND
|
|
pString = "ERROR_ENVVAR_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SIGNAL_SENT:
|
|
{
|
|
// 205 No process in the command subtree has a signal handler. ERROR_NO_SIGNAL_SENT
|
|
pString = "ERROR_NO_SIGNAL_SENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILENAME_EXCED_RANGE:
|
|
{
|
|
// 206 The filename or extension is too long. ERROR_FILENAME_EXCED_RANGE
|
|
pString = "ERROR_FILENAME_EXCED_RANGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RING2_STACK_IN_USE:
|
|
{
|
|
// 207 The ring 2 stack is in use. ERROR_RING2_STACK_IN_USE
|
|
pString = "ERROR_RING2_STACK_IN_USE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_META_EXPANSION_TOO_LONG:
|
|
{
|
|
// 208 The global filename characters, * or ?, are entered incorrectly or too many global filename characters are specified. ERROR_META_EXPANSION_TOO_LONG
|
|
pString = "ERROR_META_EXPANSION_TOO_LONG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SIGNAL_NUMBER:
|
|
{
|
|
// 209 The signal being posted is not correct. ERROR_INVALID_SIGNAL_NUMBER
|
|
pString = "ERROR_INVALID_SIGNAL_NUMBER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_THREAD_1_INACTIVE:
|
|
{
|
|
// 210 The signal handler cannot be set. ERROR_THREAD_1_INACTIVE
|
|
pString = "ERROR_THREAD_1_INACTIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOCKED:
|
|
{
|
|
// 212 The segment is locked and cannot be reallocated. ERROR_LOCKED
|
|
pString = "ERROR_LOCKED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_MODULES:
|
|
{
|
|
// 214 Too many dynamic-link modules are attached to this program or dynamic-link module. ERROR_TOO_MANY_MODULES
|
|
pString = "ERROR_TOO_MANY_MODULES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NESTING_NOT_ALLOWED:
|
|
{
|
|
// 215 Can't nest calls to LoadModule. ERROR_NESTING_NOT_ALLOWED
|
|
pString = "ERROR_NESTING_NOT_ALLOWED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EXE_MACHINE_TYPE_MISMATCH:
|
|
{
|
|
// 216 The image file %1 is valid, but is for a machine type other than the current machine. ERROR_EXE_MACHINE_TYPE_MISMATCH
|
|
pString = "ERROR_EXE_MACHINE_TYPE_MISMATCH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_PIPE:
|
|
{
|
|
// 230 The pipe state is invalid. ERROR_BAD_PIPE
|
|
pString = "ERROR_BAD_PIPE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PIPE_BUSY:
|
|
{
|
|
// 231 All pipe instances are busy. ERROR_PIPE_BUSY
|
|
pString = "ERROR_PIPE_BUSY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_DATA:
|
|
{
|
|
// 232 The pipe is being closed. ERROR_NO_DATA
|
|
pString = "ERROR_NO_DATA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PIPE_NOT_CONNECTED:
|
|
{
|
|
// 233 No process is on the other end of the pipe. ERROR_PIPE_NOT_CONNECTED
|
|
pString = "ERROR_PIPE_NOT_CONNECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MORE_DATA:
|
|
{
|
|
// 234 More data is available. ERROR_MORE_DATA
|
|
pString = "ERROR_MORE_DATA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_VC_DISCONNECTED:
|
|
{
|
|
// 240 The session was canceled. ERROR_VC_DISCONNECTED
|
|
pString = "ERROR_VC_DISCONNECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_EA_NAME:
|
|
{
|
|
// 254 The specified extended attribute name was invalid. ERROR_INVALID_EA_NAME
|
|
pString = "ERROR_INVALID_EA_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EA_LIST_INCONSISTENT:
|
|
{
|
|
// 255 The extended attributes are inconsistent. ERROR_EA_LIST_INCONSISTENT
|
|
pString = "ERROR_EA_LIST_INCONSISTENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_MORE_ITEMS:
|
|
{
|
|
// 259 No more data is available. ERROR_NO_MORE_ITEMS
|
|
pString = "ERROR_NO_MORE_ITEMS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANNOT_COPY:
|
|
{
|
|
// 266 The copy functions cannot be used. ERROR_CANNOT_COPY
|
|
pString = "ERROR_CANNOT_COPY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DIRECTORY:
|
|
{
|
|
// 267 The directory name is invalid. ERROR_DIRECTORY
|
|
pString = "ERROR_DIRECTORY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EAS_DIDNT_FIT:
|
|
{
|
|
// 275 The extended attributes did not fit in the buffer. ERROR_EAS_DIDNT_FIT
|
|
pString = "ERROR_EAS_DIDNT_FIT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EA_FILE_CORRUPT:
|
|
{
|
|
// 276 The extended attribute file on the mounted file system is corrupt. ERROR_EA_FILE_CORRUPT
|
|
pString = "ERROR_EA_FILE_CORRUPT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EA_TABLE_FULL:
|
|
{
|
|
// 277 The extended attribute table file is full. ERROR_EA_TABLE_FULL
|
|
pString = "ERROR_EA_TABLE_FULL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_EA_HANDLE:
|
|
{
|
|
// 278 The specified extended attribute handle is invalid. ERROR_INVALID_EA_HANDLE
|
|
pString = "ERROR_INVALID_EA_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EAS_NOT_SUPPORTED:
|
|
{
|
|
// 282 The mounted file system does not support extended attributes. ERROR_EAS_NOT_SUPPORTED
|
|
pString = "ERROR_EAS_NOT_SUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_OWNER:
|
|
{
|
|
// 288 Attempt to release mutex not owned by caller. ERROR_NOT_OWNER
|
|
pString = "ERROR_NOT_OWNER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_POSTS:
|
|
{
|
|
// 298 Too many posts were made to a semaphore. ERROR_TOO_MANY_POSTS
|
|
pString = "ERROR_TOO_MANY_POSTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PARTIAL_COPY:
|
|
{
|
|
// 299 Only part of a ReadProcessMemoty or WriteProcessMemory request was completed. ERROR_PARTIAL_COPY
|
|
pString = "ERROR_PARTIAL_COPY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OPLOCK_NOT_GRANTED:
|
|
{
|
|
// 300 The oplock request is denied. ERROR_OPLOCK_NOT_GRANTED
|
|
pString = "ERROR_OPLOCK_NOT_GRANTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_OPLOCK_PROTOCOL:
|
|
{
|
|
// 301 An invalid oplock acknowledgment was received by the system. ERROR_INVALID_OPLOCK_PROTOCOL
|
|
pString = "ERROR_INVALID_OPLOCK_PROTOCOL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MR_MID_NOT_FOUND:
|
|
{
|
|
// 317 The system cannot find message text for message number 0x%1 in the message file for %2. ERROR_MR_MID_NOT_FOUND
|
|
pString = "ERROR_MR_MID_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ADDRESS:
|
|
{
|
|
// 487 Attempt to access invalid address. ERROR_INVALID_ADDRESS
|
|
pString = "ERROR_INVALID_ADDRESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ARITHMETIC_OVERFLOW:
|
|
{
|
|
// 534 Arithmetic result exceeded 32 bits. ERROR_ARITHMETIC_OVERFLOW
|
|
pString = "ERROR_ARITHMETIC_OVERFLOW";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PIPE_CONNECTED:
|
|
{
|
|
// 535 There is a process on other end of the pipe. ERROR_PIPE_CONNECTED
|
|
pString = "ERROR_PIPE_CONNECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PIPE_LISTENING:
|
|
{
|
|
// 536 Waiting for a process to open the other end of the pipe. ERROR_PIPE_LISTENING
|
|
pString = "ERROR_PIPE_LISTENING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EA_ACCESS_DENIED:
|
|
{
|
|
// 994 Access to the extended attribute was denied. ERROR_EA_ACCESS_DENIED
|
|
pString = "ERROR_EA_ACCESS_DENIED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OPERATION_ABORTED:
|
|
{
|
|
// 995 The I/O operation has been aborted because of either a thread exit or an application request. ERROR_OPERATION_ABORTED
|
|
pString = "ERROR_OPERATION_ABORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IO_INCOMPLETE:
|
|
{
|
|
// 996 Overlapped I/O event is not in a signaled state. ERROR_IO_INCOMPLETE
|
|
pString = "ERROR_IO_INCOMPLETE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IO_PENDING:
|
|
{
|
|
// 997 Overlapped I/O operation is in progress. ERROR_IO_PENDING
|
|
pString = "ERROR_IO_PENDING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOACCESS:
|
|
{
|
|
// 998 Invalid access to memory location. ERROR_NOACCESS
|
|
pString = "ERROR_NOACCESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SWAPERROR:
|
|
{
|
|
// 999 Error performing inpage operation. ERROR_SWAPERROR
|
|
pString = "ERROR_SWAPERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_STACK_OVERFLOW:
|
|
{
|
|
// 1001 Recursion too deep; the stack overflowed. ERROR_STACK_OVERFLOW
|
|
pString = "ERROR_STACK_OVERFLOW";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MESSAGE:
|
|
{
|
|
// 1002 The window cannot act on the sent message. ERROR_INVALID_MESSAGE
|
|
pString = "ERROR_INVALID_MESSAGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CAN_NOT_COMPLETE:
|
|
{
|
|
// 1003 Cannot complete this function. ERROR_CAN_NOT_COMPLETE
|
|
pString = "ERROR_CAN_NOT_COMPLETE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_FLAGS:
|
|
{
|
|
// 1004 Invalid flags. ERROR_INVALID_FLAGS
|
|
pString = "ERROR_INVALID_FLAGS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNRECOGNIZED_VOLUME:
|
|
{
|
|
// 1005 The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupted. ERROR_UNRECOGNIZED_VOLUME
|
|
pString = "ERROR_UNRECOGNIZED_VOLUME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILE_INVALID:
|
|
{
|
|
// 1006 The volume for a file has been externally altered so that the opened file is no longer valid. ERROR_FILE_INVALID
|
|
pString = "ERROR_FILE_INVALID";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FULLSCREEN_MODE:
|
|
{
|
|
// 1007 The requested operation cannot be performed in full-screen mode. ERROR_FULLSCREEN_MODE
|
|
pString = "ERROR_FULLSCREEN_MODE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_TOKEN:
|
|
{
|
|
// 1008 An attempt was made to reference a token that does not exist. ERROR_NO_TOKEN
|
|
pString = "ERROR_NO_TOKEN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BADDB:
|
|
{
|
|
// 1009 The configuration registry database is corrupt. ERROR_BADDB
|
|
pString = "ERROR_BADDB";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BADKEY:
|
|
{
|
|
// 1010 The configuration registry key is invalid. ERROR_BADKEY
|
|
pString = "ERROR_BADKEY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANTOPEN:
|
|
{
|
|
// 1011 The configuration registry key could not be opened. ERROR_CANTOPEN
|
|
pString = "ERROR_CANTOPEN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANTREAD:
|
|
{
|
|
// 1012 The configuration registry key could not be read. ERROR_CANTREAD
|
|
pString = "ERROR_CANTREAD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANTWRITE:
|
|
{
|
|
// 1013 The configuration registry key could not be written. ERROR_CANTWRITE
|
|
pString = "ERROR_CANTWRITE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REGISTRY_RECOVERED:
|
|
{
|
|
// 1014 One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful. ERROR_REGISTRY_RECOVERED
|
|
pString = "ERROR_REGISTRY_RECOVERED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REGISTRY_CORRUPT:
|
|
{
|
|
// 1015 The registry is corrupted. The structure of one of the files that contains registry data is corrupted, or the system's image of the file in memory is corrupted, or the file could not be recovered because the alternate copy or log was absent or corrupted. ERROR_REGISTRY_CORRUPT
|
|
pString = "ERROR_REGISTRY_CORRUPT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REGISTRY_IO_FAILED:
|
|
{
|
|
// 1016 An I/O operation initiated by the registry failed unrecoverably. The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry. ERROR_REGISTRY_IO_FAILED
|
|
pString = "ERROR_REGISTRY_IO_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_REGISTRY_FILE:
|
|
{
|
|
// 1017 The system has attempted to load or restore a file into the registry, but the specified file is not in a registry file format. ERROR_NOT_REGISTRY_FILE
|
|
pString = "ERROR_NOT_REGISTRY_FILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_KEY_DELETED:
|
|
{
|
|
// 1018 Illegal operation attempted on a registry key that has been marked for deletion. ERROR_KEY_DELETED
|
|
pString = "ERROR_KEY_DELETED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_LOG_SPACE:
|
|
{
|
|
// 1019 System could not allocate the required space in a registry log. ERROR_NO_LOG_SPACE
|
|
pString = "ERROR_NO_LOG_SPACE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_KEY_HAS_CHILDREN:
|
|
{
|
|
// 1020 Cannot create a symbolic link in a registry key that already has subkeys or values. ERROR_KEY_HAS_CHILDREN
|
|
pString = "ERROR_KEY_HAS_CHILDREN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CHILD_MUST_BE_VOLATILE:
|
|
{
|
|
// 1021 Cannot create a stable subkey under a volatile parent key. ERROR_CHILD_MUST_BE_VOLATILE
|
|
pString = "ERROR_CHILD_MUST_BE_VOLATILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOTIFY_ENUM_DIR:
|
|
{
|
|
// 1022 A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes. ERROR_NOTIFY_ENUM_DIR
|
|
pString = "ERROR_NOTIFY_ENUM_DIR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEPENDENT_SERVICES_RUNNING:
|
|
{
|
|
// 1051 A stop control has been sent to a service that other running services are dependent on. ERROR_DEPENDENT_SERVICES_RUNNING
|
|
pString = "ERROR_DEPENDENT_SERVICES_RUNNING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SERVICE_CONTROL:
|
|
{
|
|
// 1052 The requested control is not valid for this service. ERROR_INVALID_SERVICE_CONTROL
|
|
pString = "ERROR_INVALID_SERVICE_CONTROL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_REQUEST_TIMEOUT:
|
|
{
|
|
// 1053 The service did not respond to the start or control request in a timely fashion. ERROR_SERVICE_REQUEST_TIMEOUT
|
|
pString = "ERROR_SERVICE_REQUEST_TIMEOUT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_NO_THREAD:
|
|
{
|
|
// 1054 A thread could not be created for the service. ERROR_SERVICE_NO_THREAD
|
|
pString = "ERROR_SERVICE_NO_THREAD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_DATABASE_LOCKED:
|
|
{
|
|
// 1055 The service database is locked. ERROR_SERVICE_DATABASE_LOCKED
|
|
pString = "ERROR_SERVICE_DATABASE_LOCKED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_ALREADY_RUNNING:
|
|
{
|
|
// 1056 An instance of the service is already running. ERROR_SERVICE_ALREADY_RUNNING
|
|
pString = "ERROR_SERVICE_ALREADY_RUNNING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SERVICE_ACCOUNT:
|
|
{
|
|
// 1057 The account name is invalid or does not exist. ERROR_INVALID_SERVICE_ACCOUNT
|
|
pString = "ERROR_INVALID_SERVICE_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_DISABLED:
|
|
{
|
|
// 1058 The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. ERROR_SERVICE_DISABLED
|
|
pString = "ERROR_SERVICE_DISABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CIRCULAR_DEPENDENCY:
|
|
{
|
|
// 1059 Circular service dependency was specified. ERROR_CIRCULAR_DEPENDENCY
|
|
pString = "ERROR_CIRCULAR_DEPENDENCY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_DOES_NOT_EXIST:
|
|
{
|
|
// 1060 The specified service does not exist as an installed service. ERROR_SERVICE_DOES_NOT_EXIST
|
|
pString = "ERROR_SERVICE_DOES_NOT_EXIST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_CANNOT_ACCEPT_CTRL:
|
|
{
|
|
// 1061 The service cannot accept control messages at this time. ERROR_SERVICE_CANNOT_ACCEPT_CTRL
|
|
pString = "ERROR_SERVICE_CANNOT_ACCEPT_CTRL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_NOT_ACTIVE:
|
|
{
|
|
// 1062 The service has not been started. ERROR_SERVICE_NOT_ACTIVE
|
|
pString = "ERROR_SERVICE_NOT_ACTIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:
|
|
{
|
|
// 1063 The service process could not connect to the service controller. ERROR_FAILED_SERVICE_CONTROLLER_CONNECT
|
|
pString = "ERROR_FAILED_SERVICE_CONTROLLER_CONNECT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EXCEPTION_IN_SERVICE:
|
|
{
|
|
// 1064 An exception occurred in the service when handling the control request. ERROR_EXCEPTION_IN_SERVICE
|
|
pString = "ERROR_EXCEPTION_IN_SERVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DATABASE_DOES_NOT_EXIST:
|
|
{
|
|
// 1065 The database specified does not exist. ERROR_DATABASE_DOES_NOT_EXIST
|
|
pString = "ERROR_DATABASE_DOES_NOT_EXIST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_SPECIFIC_ERROR:
|
|
{
|
|
// 1066 The service has returned a service-specific error code. ERROR_SERVICE_SPECIFIC_ERROR
|
|
pString = "ERROR_SERVICE_SPECIFIC_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PROCESS_ABORTED:
|
|
{
|
|
// 1067 The process terminated unexpectedly. ERROR_PROCESS_ABORTED
|
|
pString = "ERROR_PROCESS_ABORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_DEPENDENCY_FAIL:
|
|
{
|
|
// 1068 The dependency service or group failed to start. ERROR_SERVICE_DEPENDENCY_FAIL
|
|
pString = "ERROR_SERVICE_DEPENDENCY_FAIL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_LOGON_FAILED:
|
|
{
|
|
// 1069 The service did not start due to a logon failure. ERROR_SERVICE_LOGON_FAILED
|
|
pString = "ERROR_SERVICE_LOGON_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_START_HANG:
|
|
{
|
|
// 1070 After starting, the service hung in a start-pending state. ERROR_SERVICE_START_HANG
|
|
pString = "ERROR_SERVICE_START_HANG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SERVICE_LOCK:
|
|
{
|
|
// 1071 The specified service database lock is invalid. ERROR_INVALID_SERVICE_LOCK
|
|
pString = "ERROR_INVALID_SERVICE_LOCK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_MARKED_FOR_DELETE:
|
|
{
|
|
// 1072 The specified service has been marked for deletion. ERROR_SERVICE_MARKED_FOR_DELETE
|
|
pString = "ERROR_SERVICE_MARKED_FOR_DELETE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_EXISTS:
|
|
{
|
|
// 1073 The specified service already exists. ERROR_SERVICE_EXISTS
|
|
pString = "ERROR_SERVICE_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALREADY_RUNNING_LKG:
|
|
{
|
|
// 1074 The system is currently running with the last-known-good configuration. ERROR_ALREADY_RUNNING_LKG
|
|
pString = "ERROR_ALREADY_RUNNING_LKG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_DEPENDENCY_DELETED:
|
|
{
|
|
// 1075 The dependency service does not exist or has been marked for deletion. ERROR_SERVICE_DEPENDENCY_DELETED
|
|
pString = "ERROR_SERVICE_DEPENDENCY_DELETED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BOOT_ALREADY_ACCEPTED:
|
|
{
|
|
// 1076 The current boot has already been accepted for use as the last-known-good control set. ERROR_BOOT_ALREADY_ACCEPTED
|
|
pString = "ERROR_BOOT_ALREADY_ACCEPTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_NEVER_STARTED:
|
|
{
|
|
// 1077 No attempts to start the service have been made since the last boot. ERROR_SERVICE_NEVER_STARTED
|
|
pString = "ERROR_SERVICE_NEVER_STARTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DUPLICATE_SERVICE_NAME:
|
|
{
|
|
// 1078 The name is already in use as either a service name or a service display name. ERROR_DUPLICATE_SERVICE_NAME
|
|
pString = "ERROR_DUPLICATE_SERVICE_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DIFFERENT_SERVICE_ACCOUNT:
|
|
{
|
|
// 1079 The account specified for this service is different from the account specified for other services running in the same process. ERROR_DIFFERENT_SERVICE_ACCOUNT
|
|
pString = "ERROR_DIFFERENT_SERVICE_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANNOT_DETECT_DRIVER_FAILURE:
|
|
{
|
|
// 1080 Failure actions can only be set for Win32 services, not for drivers. ERROR_CANNOT_DETECT_DRIVER_FAILURE
|
|
pString = "ERROR_CANNOT_DETECT_DRIVER_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANNOT_DETECT_PROCESS_ABORT:
|
|
{
|
|
// 1081 This service runs in the same process as the service control manager. Therefore, the service control manager cannot take action if this service's process terminates unexpectedly. ERROR_CANNOT_DETECT_PROCESS_ABORT
|
|
pString = "ERROR_CANNOT_DETECT_PROCESS_ABORT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_RECOVERY_PROGRAM:
|
|
{
|
|
// 1082 No recovery program has been configured for this service. ERROR_NO_RECOVERY_PROGRAM
|
|
pString = "ERROR_NO_RECOVERY_PROGRAM";
|
|
break;
|
|
}
|
|
|
|
case ERROR_END_OF_MEDIA:
|
|
{
|
|
// 1100 The physical end of the tape has been reached. ERROR_END_OF_MEDIA
|
|
pString = "ERROR_END_OF_MEDIA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILEMARK_DETECTED:
|
|
{
|
|
// 1101 A tape access reached a filemark. ERROR_FILEMARK_DETECTED
|
|
pString = "ERROR_FILEMARK_DETECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BEGINNING_OF_MEDIA:
|
|
{
|
|
// 1102 The beginning of the tape or a partition was encountered. ERROR_BEGINNING_OF_MEDIA
|
|
pString = "ERROR_BEGINNING_OF_MEDIA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SETMARK_DETECTED:
|
|
{
|
|
// 1103 A tape access reached the end of a set of files. ERROR_SETMARK_DETECTED
|
|
pString = "ERROR_SETMARK_DETECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_DATA_DETECTED:
|
|
{
|
|
// 1104 No more data is on the tape. ERROR_NO_DATA_DETECTED
|
|
pString = "ERROR_NO_DATA_DETECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PARTITION_FAILURE:
|
|
{
|
|
// 1105 Tape could not be partitioned. ERROR_PARTITION_FAILURE
|
|
pString = "ERROR_PARTITION_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_BLOCK_LENGTH:
|
|
{
|
|
// 1106 When accessing a new tape of a multivolume partition, the current blocksize is incorrect. ERROR_INVALID_BLOCK_LENGTH
|
|
pString = "ERROR_INVALID_BLOCK_LENGTH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_NOT_PARTITIONED:
|
|
{
|
|
// 1107 Tape partition information could not be found when loading a tape. ERROR_DEVICE_NOT_PARTITIONED
|
|
pString = "ERROR_DEVICE_NOT_PARTITIONED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNABLE_TO_LOCK_MEDIA:
|
|
{
|
|
// 1108 Unable to lock the media eject mechanism. ERROR_UNABLE_TO_LOCK_MEDIA
|
|
pString = "ERROR_UNABLE_TO_LOCK_MEDIA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNABLE_TO_UNLOAD_MEDIA:
|
|
{
|
|
// 1109 Unable to unload the media. ERROR_UNABLE_TO_UNLOAD_MEDIA
|
|
pString = "ERROR_UNABLE_TO_UNLOAD_MEDIA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEDIA_CHANGED:
|
|
{
|
|
// 1110 The media in the drive may have changed. ERROR_MEDIA_CHANGED
|
|
pString = "ERROR_MEDIA_CHANGED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BUS_RESET:
|
|
{
|
|
// 1111 The I/O bus was reset. ERROR_BUS_RESET
|
|
pString = "ERROR_BUS_RESET";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_MEDIA_IN_DRIVE:
|
|
{
|
|
// 1112 No media in drive. ERROR_NO_MEDIA_IN_DRIVE
|
|
pString = "ERROR_NO_MEDIA_IN_DRIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_UNICODE_TRANSLATION:
|
|
{
|
|
// 1113 No mapping for the Unicode character exists in the target multi-byte code page. ERROR_NO_UNICODE_TRANSLATION
|
|
pString = "ERROR_NO_UNICODE_TRANSLATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DLL_INIT_FAILED:
|
|
{
|
|
// 1114 A dynamic link library (DLL) initialization routine failed. ERROR_DLL_INIT_FAILED
|
|
pString = "ERROR_DLL_INIT_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SHUTDOWN_IN_PROGRESS:
|
|
{
|
|
// 1115 A system shutdown is in progress. ERROR_SHUTDOWN_IN_PROGRESS
|
|
pString = "ERROR_SHUTDOWN_IN_PROGRESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SHUTDOWN_IN_PROGRESS:
|
|
{
|
|
// 1116 Unable to abort the system shutdown because no shutdown was in progress. ERROR_NO_SHUTDOWN_IN_PROGRESS
|
|
pString = "ERROR_NO_SHUTDOWN_IN_PROGRESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IO_DEVICE:
|
|
{
|
|
// 1117 The request could not be performed because of an I/O device error. ERROR_IO_DEVICE
|
|
pString = "ERROR_IO_DEVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERIAL_NO_DEVICE:
|
|
{
|
|
// 1118 No serial device was successfully initialized. The serial driver will unload. ERROR_SERIAL_NO_DEVICE
|
|
pString = "ERROR_SERIAL_NO_DEVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_IRQ_BUSY:
|
|
{
|
|
// 1119 Unable to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. ERROR_IRQ_BUSY
|
|
pString = "ERROR_IRQ_BUSY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MORE_WRITES:
|
|
{
|
|
// 1120 A serial I/O operation was completed by another write to the serial port. The IOCTL_SERIAL_XOFF_COUNTER reached zero.) ERROR_MORE_WRITES
|
|
pString = "ERROR_MORE_WRITES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_COUNTER_TIMEOUT:
|
|
{
|
|
// 1121 A serial I/O operation completed because the timeout period expired. The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.) ERROR_COUNTER_TIMEOUT
|
|
pString = "ERROR_COUNTER_TIMEOUT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FLOPPY_ID_MARK_NOT_FOUND:
|
|
{
|
|
// 1122 No ID address mark was found on the floppy disk. ERROR_FLOPPY_ID_MARK_NOT_FOUND
|
|
pString = "ERROR_FLOPPY_ID_MARK_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FLOPPY_WRONG_CYLINDER:
|
|
{
|
|
// 1123 Mismatch between the floppy disk sector ID field and the floppy disk controller track address. ERROR_FLOPPY_WRONG_CYLINDER
|
|
pString = "ERROR_FLOPPY_WRONG_CYLINDER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FLOPPY_UNKNOWN_ERROR:
|
|
{
|
|
// 1124 The floppy disk controller reported an error that is not recognized by the floppy disk driver. ERROR_FLOPPY_UNKNOWN_ERROR
|
|
pString = "ERROR_FLOPPY_UNKNOWN_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FLOPPY_BAD_REGISTERS:
|
|
{
|
|
// 1125 The floppy disk controller returned inconsistent results in its registers. ERROR_FLOPPY_BAD_REGISTERS
|
|
pString = "ERROR_FLOPPY_BAD_REGISTERS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DISK_RECALIBRATE_FAILED:
|
|
{
|
|
// 1126 While accessing the hard disk, a recalibrate operation failed, even after retries. ERROR_DISK_RECALIBRATE_FAILED
|
|
pString = "ERROR_DISK_RECALIBRATE_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DISK_OPERATION_FAILED:
|
|
{
|
|
// 1127 While accessing the hard disk, a disk operation failed even after retries. ERROR_DISK_OPERATION_FAILED
|
|
pString = "ERROR_DISK_OPERATION_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DISK_RESET_FAILED:
|
|
{
|
|
// 1128 While accessing the hard disk, a disk controller reset was needed, but even that failed. ERROR_DISK_RESET_FAILED
|
|
pString = "ERROR_DISK_RESET_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EOM_OVERFLOW:
|
|
{
|
|
// 1129 Physical end of tape encountered. ERROR_EOM_OVERFLOW
|
|
pString = "ERROR_EOM_OVERFLOW";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_ENOUGH_SERVER_MEMORY:
|
|
{
|
|
// 1130 Not enough server storage is available to process this command. ERROR_NOT_ENOUGH_SERVER_MEMORY
|
|
pString = "ERROR_NOT_ENOUGH_SERVER_MEMORY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_POSSIBLE_DEADLOCK:
|
|
{
|
|
// 1131 A potential deadlock condition has been detected. ERROR_POSSIBLE_DEADLOCK
|
|
pString = "ERROR_POSSIBLE_DEADLOCK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MAPPED_ALIGNMENT:
|
|
{
|
|
// 1132 The base address or the file offset specified does not have the proper alignment. ERROR_MAPPED_ALIGNMENT
|
|
pString = "ERROR_MAPPED_ALIGNMENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SET_POWER_STATE_VETOED:
|
|
{
|
|
// 1140 An attempt to change the system power state was vetoed by another application or driver. ERROR_SET_POWER_STATE_VETOED
|
|
pString = "ERROR_SET_POWER_STATE_VETOED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SET_POWER_STATE_FAILED:
|
|
{
|
|
// 1141 The system BIOS failed an attempt to change the system power state. ERROR_SET_POWER_STATE_FAILED
|
|
pString = "ERROR_SET_POWER_STATE_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_LINKS:
|
|
{
|
|
// 1142 An attempt was made to create more links on a file than the file system supports. ERROR_TOO_MANY_LINKS
|
|
pString = "ERROR_TOO_MANY_LINKS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OLD_WIN_VERSION:
|
|
{
|
|
// 1150 The specified program requires a newer version of Windows. ERROR_OLD_WIN_VERSION
|
|
pString = "ERROR_OLD_WIN_VERSION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_APP_WRONG_OS:
|
|
{
|
|
// 1151 The specified program is not a Windows or MS-DOS program. ERROR_APP_WRONG_OS
|
|
pString = "ERROR_APP_WRONG_OS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SINGLE_INSTANCE_APP:
|
|
{
|
|
// 1152 Cannot start more than one instance of the specified program. ERROR_SINGLE_INSTANCE_APP
|
|
pString = "ERROR_SINGLE_INSTANCE_APP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RMODE_APP:
|
|
{
|
|
// 1153 The specified program was written for an earlier version of Windows. ERROR_RMODE_APP
|
|
pString = "ERROR_RMODE_APP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DLL:
|
|
{
|
|
// 1154 One of the library files needed to run this application is damaged. ERROR_INVALID_DLL
|
|
pString = "ERROR_INVALID_DLL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_ASSOCIATION:
|
|
{
|
|
// 1155 No application is associated with the specified file for this operation. ERROR_NO_ASSOCIATION
|
|
pString = "ERROR_NO_ASSOCIATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DDE_FAIL:
|
|
{
|
|
// 1156 An error occurred in sending the command to the application. ERROR_DDE_FAIL
|
|
pString = "ERROR_DDE_FAIL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DLL_NOT_FOUND:
|
|
{
|
|
// 1157 One of the library files needed to run this application cannot be found. ERROR_DLL_NOT_FOUND
|
|
pString = "ERROR_DLL_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_MORE_USER_HANDLES:
|
|
{
|
|
// 1158 The current process has used all of its system allowance of handles for Window Manager objects. ERROR_NO_MORE_USER_HANDLES
|
|
pString = "ERROR_NO_MORE_USER_HANDLES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MESSAGE_SYNC_ONLY:
|
|
{
|
|
// 1159 The message can be used only with synchronous operations. ERROR_MESSAGE_SYNC_ONLY
|
|
pString = "ERROR_MESSAGE_SYNC_ONLY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SOURCE_ELEMENT_EMPTY:
|
|
{
|
|
// 1160 The indicated source element has no media. ERROR_SOURCE_ELEMENT_EMPTY
|
|
pString = "ERROR_SOURCE_ELEMENT_EMPTY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DESTINATION_ELEMENT_FULL:
|
|
{
|
|
// 1161 The indicated destination element already contains media. ERROR_DESTINATION_ELEMENT_FULL
|
|
pString = "ERROR_DESTINATION_ELEMENT_FULL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ILLEGAL_ELEMENT_ADDRESS:
|
|
{
|
|
// 1162 The indicated element does not exist. ERROR_ILLEGAL_ELEMENT_ADDRESS
|
|
pString = "ERROR_ILLEGAL_ELEMENT_ADDRESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MAGAZINE_NOT_PRESENT:
|
|
{
|
|
// 1163 The indicated element is part of a magazine that is not present. ERROR_MAGAZINE_NOT_PRESENT
|
|
pString = "ERROR_MAGAZINE_NOT_PRESENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_REINITIALIZATION_NEEDED:
|
|
{
|
|
// 1164 The indicated device requires reinitialization due to hardware errors. ERROR_DEVICE_REINITIALIZATION_NEEDED
|
|
pString = "ERROR_DEVICE_REINITIALIZATION_NEEDED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_REQUIRES_CLEANING:
|
|
{
|
|
// 1165 The device has indicated that cleaning is required before further operations are attempted. ERROR_DEVICE_REQUIRES_CLEANING
|
|
pString = "ERROR_DEVICE_REQUIRES_CLEANING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_DOOR_OPEN:
|
|
{
|
|
// 1166 The device has indicated that its door is open. ERROR_DEVICE_DOOR_OPEN
|
|
pString = "ERROR_DEVICE_DOOR_OPEN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_NOT_CONNECTED:
|
|
{
|
|
// 1167 The device is not connected. ERROR_DEVICE_NOT_CONNECTED
|
|
pString = "ERROR_DEVICE_NOT_CONNECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_FOUND:
|
|
{
|
|
// 1168 Element not found. ERROR_NOT_FOUND
|
|
pString = "ERROR_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_MATCH:
|
|
{
|
|
// 1169 There was no match for the specified key in the index. ERROR_NO_MATCH
|
|
pString = "ERROR_NO_MATCH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SET_NOT_FOUND:
|
|
{
|
|
// 1170 The property set specified does not exist on the object. ERROR_SET_NOT_FOUND
|
|
pString = "ERROR_SET_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_POINT_NOT_FOUND:
|
|
{
|
|
// 1171 The point passed to GetMouseMovePoints is not in the buffer. ERROR_POINT_NOT_FOUND
|
|
pString = "ERROR_POINT_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_TRACKING_SERVICE:
|
|
{
|
|
// 1172 The tracking (workstation) service is not running. ERROR_NO_TRACKING_SERVICE
|
|
pString = "ERROR_NO_TRACKING_SERVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_VOLUME_ID:
|
|
{
|
|
// 1173 The Volume ID could not be found. ERROR_NO_VOLUME_ID
|
|
pString = "ERROR_NO_VOLUME_ID";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_DEVICE:
|
|
{
|
|
// 1200 The specified device name is invalid. ERROR_BAD_DEVICE
|
|
pString = "ERROR_BAD_DEVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONNECTION_UNAVAIL:
|
|
{
|
|
// 1201 The device is not currently connected but it is a remembered connection. ERROR_CONNECTION_UNAVAIL
|
|
pString = "ERROR_CONNECTION_UNAVAIL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_ALREADY_REMEMBERED:
|
|
{
|
|
// 1202 An attempt was made to remember a device that had previously been remembered. ERROR_DEVICE_ALREADY_REMEMBERED
|
|
pString = "ERROR_DEVICE_ALREADY_REMEMBERED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_NET_OR_BAD_PATH:
|
|
{
|
|
// 1203 No network provider accepted the given network path. ERROR_NO_NET_OR_BAD_PATH
|
|
pString = "ERROR_NO_NET_OR_BAD_PATH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_PROVIDER:
|
|
{
|
|
// 1204 The specified network provider name is invalid. ERROR_BAD_PROVIDER
|
|
pString = "ERROR_BAD_PROVIDER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANNOT_OPEN_PROFILE:
|
|
{
|
|
// 1205 Unable to open the network connection profile. ERROR_CANNOT_OPEN_PROFILE
|
|
pString = "ERROR_CANNOT_OPEN_PROFILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_PROFILE:
|
|
{
|
|
// 1206 The network connection profile is corrupted. ERROR_BAD_PROFILE
|
|
pString = "ERROR_BAD_PROFILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_CONTAINER:
|
|
{
|
|
// 1207 Cannot enumerate a noncontainer. ERROR_NOT_CONTAINER
|
|
pString = "ERROR_NOT_CONTAINER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EXTENDED_ERROR:
|
|
{
|
|
// 1208 An extended error has occurred. ERROR_EXTENDED_ERROR
|
|
pString = "ERROR_EXTENDED_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_GROUPNAME:
|
|
{
|
|
// 1209 The format of the specified group name is invalid. ERROR_INVALID_GROUPNAME
|
|
pString = "ERROR_INVALID_GROUPNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_COMPUTERNAME:
|
|
{
|
|
// 1210 The format of the specified computer name is invalid. ERROR_INVALID_COMPUTERNAME
|
|
pString = "ERROR_INVALID_COMPUTERNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_EVENTNAME:
|
|
{
|
|
// 1211 The format of the specified event name is invalid. ERROR_INVALID_EVENTNAME
|
|
pString = "ERROR_INVALID_EVENTNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DOMAINNAME:
|
|
{
|
|
// 1212 The format of the specified domain name is invalid. ERROR_INVALID_DOMAINNAME
|
|
pString = "ERROR_INVALID_DOMAINNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SERVICENAME:
|
|
{
|
|
// 1213 The format of the specified service name is invalid. ERROR_INVALID_SERVICENAME
|
|
pString = "ERROR_INVALID_SERVICENAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_NETNAME:
|
|
{
|
|
// 1214 The format of the specified network name is invalid. ERROR_INVALID_NETNAME
|
|
pString = "ERROR_INVALID_NETNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SHARENAME:
|
|
{
|
|
// 1215 The format of the specified share name is invalid. ERROR_INVALID_SHARENAME
|
|
pString = "ERROR_INVALID_SHARENAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PASSWORDNAME:
|
|
{
|
|
// 1216 The format of the specified password is invalid. ERROR_INVALID_PASSWORDNAME
|
|
pString = "ERROR_INVALID_PASSWORDNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MESSAGENAME:
|
|
{
|
|
// 1217 The format of the specified message name is invalid. ERROR_INVALID_MESSAGENAME
|
|
pString = "ERROR_INVALID_MESSAGENAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MESSAGEDEST:
|
|
{
|
|
// 1218 The format of the specified message destination is invalid. ERROR_INVALID_MESSAGEDEST
|
|
pString = "ERROR_INVALID_MESSAGEDEST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SESSION_CREDENTIAL_CONFLICT:
|
|
{
|
|
// 1219 The credentials supplied conflict with an existing set of credentials. ERROR_SESSION_CREDENTIAL_CONFLICT
|
|
pString = "ERROR_SESSION_CREDENTIAL_CONFLICT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REMOTE_SESSION_LIMIT_EXCEEDED:
|
|
{
|
|
// 1220 An attempt was made to establish a session to a network server, but there are already too many sessions established to that server. ERROR_REMOTE_SESSION_LIMIT_EXCEEDED
|
|
pString = "ERROR_REMOTE_SESSION_LIMIT_EXCEEDED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DUP_DOMAINNAME:
|
|
{
|
|
// 1221 The workgroup or domain name is already in use by another computer on the network. ERROR_DUP_DOMAINNAME
|
|
pString = "ERROR_DUP_DOMAINNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_NETWORK:
|
|
{
|
|
// 1222 The network is not present or not started. ERROR_NO_NETWORK
|
|
pString = "ERROR_NO_NETWORK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANCELLED:
|
|
{
|
|
// 1223 The operation was canceled by the user. ERROR_CANCELLED
|
|
pString = "ERROR_CANCELLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_USER_MAPPED_FILE:
|
|
{
|
|
// 1224 The requested operation cannot be performed on a file with a user-mapped section open. ERROR_USER_MAPPED_FILE
|
|
pString = "ERROR_USER_MAPPED_FILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONNECTION_REFUSED:
|
|
{
|
|
// 1225 The remote system refused the network connection. ERROR_CONNECTION_REFUSED
|
|
pString = "ERROR_CONNECTION_REFUSED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GRACEFUL_DISCONNECT:
|
|
{
|
|
// 1226 The network connection was gracefully closed. ERROR_GRACEFUL_DISCONNECT
|
|
pString = "ERROR_GRACEFUL_DISCONNECT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ADDRESS_ALREADY_ASSOCIATED:
|
|
{
|
|
// 1227 The network transport endpoint already has an address associated with it. ERROR_ADDRESS_ALREADY_ASSOCIATED
|
|
pString = "ERROR_ADDRESS_ALREADY_ASSOCIATED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ADDRESS_NOT_ASSOCIATED:
|
|
{
|
|
// 1228 An address has not yet been associated with the network endpoint. ERROR_ADDRESS_NOT_ASSOCIATED
|
|
pString = "ERROR_ADDRESS_NOT_ASSOCIATED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONNECTION_INVALID:
|
|
{
|
|
// 1229 An operation was attempted on a nonexistent network connection. ERROR_CONNECTION_INVALID
|
|
pString = "ERROR_CONNECTION_INVALID";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONNECTION_ACTIVE:
|
|
{
|
|
// 1230 An invalid operation was attempted on an active network connection. ERROR_CONNECTION_ACTIVE
|
|
pString = "ERROR_CONNECTION_ACTIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NETWORK_UNREACHABLE:
|
|
{
|
|
// 1231 The remote network is not reachable by the transport. ERROR_NETWORK_UNREACHABLE
|
|
pString = "ERROR_NETWORK_UNREACHABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOST_UNREACHABLE:
|
|
{
|
|
// 1232 The remote system is not reachable by the transport. ERROR_HOST_UNREACHABLE
|
|
pString = "ERROR_HOST_UNREACHABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PROTOCOL_UNREACHABLE:
|
|
{
|
|
// 1233 The remote system does not support the transport protocol. ERROR_PROTOCOL_UNREACHABLE
|
|
pString = "ERROR_PROTOCOL_UNREACHABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PORT_UNREACHABLE:
|
|
{
|
|
// 1234 No service is operating at the destination network endpoint on the remote system. ERROR_PORT_UNREACHABLE
|
|
pString = "ERROR_PORT_UNREACHABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REQUEST_ABORTED:
|
|
{
|
|
// 1235 The request was aborted. ERROR_REQUEST_ABORTED
|
|
pString = "ERROR_REQUEST_ABORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONNECTION_ABORTED:
|
|
{
|
|
// 1236 The network connection was aborted by the local system. ERROR_CONNECTION_ABORTED
|
|
pString = "ERROR_CONNECTION_ABORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RETRY:
|
|
{
|
|
// 1237 The operation could not be completed. A retry should be performed. ERROR_RETRY
|
|
pString = "ERROR_RETRY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONNECTION_COUNT_LIMIT:
|
|
{
|
|
// 1238 A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached. ERROR_CONNECTION_COUNT_LIMIT
|
|
pString = "ERROR_CONNECTION_COUNT_LIMIT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOGIN_TIME_RESTRICTION:
|
|
{
|
|
// 1239 Attempting to log in during an unauthorized time of day for this account. ERROR_LOGIN_TIME_RESTRICTION
|
|
pString = "ERROR_LOGIN_TIME_RESTRICTION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOGIN_WKSTA_RESTRICTION:
|
|
{
|
|
// 1240 The account is not authorized to log in from this station. ERROR_LOGIN_WKSTA_RESTRICTION
|
|
pString = "ERROR_LOGIN_WKSTA_RESTRICTION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INCORRECT_ADDRESS:
|
|
{
|
|
// 1241 The network address could not be used for the operation requested. ERROR_INCORRECT_ADDRESS
|
|
pString = "ERROR_INCORRECT_ADDRESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALREADY_REGISTERED:
|
|
{
|
|
// 1242 The service is already registered. ERROR_ALREADY_REGISTERED
|
|
pString = "ERROR_ALREADY_REGISTERED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVICE_NOT_FOUND:
|
|
{
|
|
// 1243 The specified service does not exist. ERROR_SERVICE_NOT_FOUND
|
|
pString = "ERROR_SERVICE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_AUTHENTICATED:
|
|
{
|
|
// 1244 The operation being requested was not performed because the user has not been authenticated. ERROR_NOT_AUTHENTICATED
|
|
pString = "ERROR_NOT_AUTHENTICATED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_LOGGED_ON:
|
|
{
|
|
// 1245 The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist. ERROR_NOT_LOGGED_ON
|
|
pString = "ERROR_NOT_LOGGED_ON";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONTINUE:
|
|
{
|
|
// 1246 Continue with work in progress. ERROR_CONTINUE
|
|
pString = "ERROR_CONTINUE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALREADY_INITIALIZED:
|
|
{
|
|
// 1247 An attempt was made to perform an initialization operation when initialization has already been completed. ERROR_ALREADY_INITIALIZED
|
|
pString = "ERROR_ALREADY_INITIALIZED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_MORE_DEVICES:
|
|
{
|
|
// 1248 No more local devices. ERROR_NO_MORE_DEVICES
|
|
pString = "ERROR_NO_MORE_DEVICES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_SITE:
|
|
{
|
|
// 1249 The specified site does not exist. ERROR_NO_SUCH_SITE
|
|
pString = "ERROR_NO_SUCH_SITE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DOMAIN_CONTROLLER_EXISTS:
|
|
{
|
|
// 1250 A domain controller with the specified name already exists. ERROR_DOMAIN_CONTROLLER_EXISTS
|
|
pString = "ERROR_DOMAIN_CONTROLLER_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_NOT_INSTALLED:
|
|
{
|
|
// 1251 An error occurred while installing the Windows NT directory service. Please view the event log for more information. ERROR_DS_NOT_INSTALLED
|
|
pString = "ERROR_DS_NOT_INSTALLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_ALL_ASSIGNED:
|
|
{
|
|
// 1300 Not all privileges referenced are assigned to the caller. ERROR_NOT_ALL_ASSIGNED
|
|
pString = "ERROR_NOT_ALL_ASSIGNED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SOME_NOT_MAPPED:
|
|
{
|
|
// 1301 Some mapping between account names and security IDs was not done. ERROR_SOME_NOT_MAPPED
|
|
pString = "ERROR_SOME_NOT_MAPPED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_QUOTAS_FOR_ACCOUNT:
|
|
{
|
|
// 1302 No system quota limits are specifically set for this account. ERROR_NO_QUOTAS_FOR_ACCOUNT
|
|
pString = "ERROR_NO_QUOTAS_FOR_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOCAL_USER_SESSION_KEY:
|
|
{
|
|
// 1303 No encryption key is available. A well-known encryption key was returned. ERROR_LOCAL_USER_SESSION_KEY
|
|
pString = "ERROR_LOCAL_USER_SESSION_KEY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NULL_LM_PASSWORD:
|
|
{
|
|
// 1304 The Windows NT password is too complex to be converted to a LAN Manager password. The LAN Manager password returned is a NULL string. ERROR_NULL_LM_PASSWORD
|
|
pString = "ERROR_NULL_LM_PASSWORD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_REVISION:
|
|
{
|
|
// 1305 The revision level is unknown. ERROR_UNKNOWN_REVISION
|
|
pString = "ERROR_UNKNOWN_REVISION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REVISION_MISMATCH:
|
|
{
|
|
// 1306 Indicates two revision levels are incompatible. ERROR_REVISION_MISMATCH
|
|
pString = "ERROR_REVISION_MISMATCH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_OWNER:
|
|
{
|
|
// 1307 This security ID may not be assigned as the owner of this object. ERROR_INVALID_OWNER
|
|
pString = "ERROR_INVALID_OWNER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PRIMARY_GROUP:
|
|
{
|
|
// 1308 This security ID may not be assigned as the primary group of an object. ERROR_INVALID_PRIMARY_GROUP
|
|
pString = "ERROR_INVALID_PRIMARY_GROUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_IMPERSONATION_TOKEN:
|
|
{
|
|
// 1309 An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client. ERROR_NO_IMPERSONATION_TOKEN
|
|
pString = "ERROR_NO_IMPERSONATION_TOKEN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANT_DISABLE_MANDATORY:
|
|
{
|
|
// 1310 The group may not be disabled. ERROR_CANT_DISABLE_MANDATORY
|
|
pString = "ERROR_CANT_DISABLE_MANDATORY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_LOGON_SERVERS:
|
|
{
|
|
// 1311 There are currently no logon servers available to service the logon request. ERROR_NO_LOGON_SERVERS
|
|
pString = "ERROR_NO_LOGON_SERVERS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_LOGON_SESSION:
|
|
{
|
|
// 1312 A specified logon session does not exist. It may already have been terminated. ERROR_NO_SUCH_LOGON_SESSION
|
|
pString = "ERROR_NO_SUCH_LOGON_SESSION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_PRIVILEGE:
|
|
{
|
|
// 1313 A specified privilege does not exist. ERROR_NO_SUCH_PRIVILEGE
|
|
pString = "ERROR_NO_SUCH_PRIVILEGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRIVILEGE_NOT_HELD:
|
|
{
|
|
// 1314 A required privilege is not held by the client. ERROR_PRIVILEGE_NOT_HELD
|
|
pString = "ERROR_PRIVILEGE_NOT_HELD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ACCOUNT_NAME:
|
|
{
|
|
// 1315 The name provided is not a properly formed account name. ERROR_INVALID_ACCOUNT_NAME
|
|
pString = "ERROR_INVALID_ACCOUNT_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_USER_EXISTS:
|
|
{
|
|
// 1316 The specified user already exists. ERROR_USER_EXISTS
|
|
pString = "ERROR_USER_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_USER:
|
|
{
|
|
// 1317 The specified user does not exist. ERROR_NO_SUCH_USER
|
|
pString = "ERROR_NO_SUCH_USER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GROUP_EXISTS:
|
|
{
|
|
// 1318 The specified group already exists. ERROR_GROUP_EXISTS
|
|
pString = "ERROR_GROUP_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_GROUP:
|
|
{
|
|
// 1319 The specified group does not exist. ERROR_NO_SUCH_GROUP
|
|
pString = "ERROR_NO_SUCH_GROUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEMBER_IN_GROUP:
|
|
{
|
|
// 1320 Either the specified user account is already a member of the specified group, or the specified group cannot be deleted because it contains a member. ERROR_MEMBER_IN_GROUP
|
|
pString = "ERROR_MEMBER_IN_GROUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEMBER_NOT_IN_GROUP:
|
|
{
|
|
// 1321 The specified user account is not a member of the specified group account. ERROR_MEMBER_NOT_IN_GROUP
|
|
pString = "ERROR_MEMBER_NOT_IN_GROUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LAST_ADMIN:
|
|
{
|
|
// 1322 The last remaining administration account cannot be disabled or deleted. ERROR_LAST_ADMIN
|
|
pString = "ERROR_LAST_ADMIN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WRONG_PASSWORD:
|
|
{
|
|
// 1323 Unable to update the password. The value provided as the current password is incorrect. ERROR_WRONG_PASSWORD
|
|
pString = "ERROR_WRONG_PASSWORD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ILL_FORMED_PASSWORD:
|
|
{
|
|
// 1324 Unable to update the password. The value provided for the new password contains values that are not allowed in passwords. ERROR_ILL_FORMED_PASSWORD
|
|
pString = "ERROR_ILL_FORMED_PASSWORD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PASSWORD_RESTRICTION:
|
|
{
|
|
// 1325 Unable to update the password because a password update rule has been violated. ERROR_PASSWORD_RESTRICTION
|
|
pString = "ERROR_PASSWORD_RESTRICTION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOGON_FAILURE:
|
|
{
|
|
// 1326 Logon failure: unknown user name or bad password. ERROR_LOGON_FAILURE
|
|
pString = "ERROR_LOGON_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ACCOUNT_RESTRICTION:
|
|
{
|
|
// 1327 Logon failure: user account restriction. ERROR_ACCOUNT_RESTRICTION
|
|
pString = "ERROR_ACCOUNT_RESTRICTION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_LOGON_HOURS:
|
|
{
|
|
// 1328 Logon failure: account logon time restriction violation. ERROR_INVALID_LOGON_HOURS
|
|
pString = "ERROR_INVALID_LOGON_HOURS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_WORKSTATION:
|
|
{
|
|
// 1329 Logon failure: user not allowed to log on to this computer. ERROR_INVALID_WORKSTATION
|
|
pString = "ERROR_INVALID_WORKSTATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PASSWORD_EXPIRED:
|
|
{
|
|
// 1330 Logon failure: the specified account password has expired. ERROR_PASSWORD_EXPIRED
|
|
pString = "ERROR_PASSWORD_EXPIRED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ACCOUNT_DISABLED:
|
|
{
|
|
// 1331 Logon failure: account currently disabled. ERROR_ACCOUNT_DISABLED
|
|
pString = "ERROR_ACCOUNT_DISABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NONE_MAPPED:
|
|
{
|
|
// 1332 No mapping between account names and security IDs was done. ERROR_NONE_MAPPED
|
|
pString = "ERROR_NONE_MAPPED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_LUIDS_REQUESTED:
|
|
{
|
|
// 1333 Too many local user identifiers (LUIDs) were requested at one time. ERROR_TOO_MANY_LUIDS_REQUESTED
|
|
pString = "ERROR_TOO_MANY_LUIDS_REQUESTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LUIDS_EXHAUSTED:
|
|
{
|
|
// 1334 No more local user identifiers (LUIDs) are available. ERROR_LUIDS_EXHAUSTED
|
|
pString = "ERROR_LUIDS_EXHAUSTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SUB_AUTHORITY:
|
|
{
|
|
// 1335 The subauthority part of a security ID is invalid for this particular use. ERROR_INVALID_SUB_AUTHORITY
|
|
pString = "ERROR_INVALID_SUB_AUTHORITY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ACL:
|
|
{
|
|
// 1336 The access control list (ACL) structure is invalid. ERROR_INVALID_ACL
|
|
pString = "ERROR_INVALID_ACL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SID:
|
|
{
|
|
// 1337 The security ID structure is invalid. ERROR_INVALID_SID
|
|
pString = "ERROR_INVALID_SID";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SECURITY_DESCR:
|
|
{
|
|
// 1338 The security descriptor structure is invalid. ERROR_INVALID_SECURITY_DESCR
|
|
pString = "ERROR_INVALID_SECURITY_DESCR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_INHERITANCE_ACL:
|
|
{
|
|
// 1340 The inherited access control list (ACL) or access control entry (ACE) could not be built. ERROR_BAD_INHERITANCE_ACL
|
|
pString = "ERROR_BAD_INHERITANCE_ACL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVER_DISABLED:
|
|
{
|
|
// 1341 The server is currently disabled. ERROR_SERVER_DISABLED
|
|
pString = "ERROR_SERVER_DISABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVER_NOT_DISABLED:
|
|
{
|
|
// 1342 The server is currently enabled. ERROR_SERVER_NOT_DISABLED
|
|
pString = "ERROR_SERVER_NOT_DISABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ID_AUTHORITY:
|
|
{
|
|
// 1343 The value provided was an invalid value for an identifier authority. ERROR_INVALID_ID_AUTHORITY
|
|
pString = "ERROR_INVALID_ID_AUTHORITY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALLOTTED_SPACE_EXCEEDED:
|
|
{
|
|
// 1344 No more memory is available for security information updates. ERROR_ALLOTTED_SPACE_EXCEEDED
|
|
pString = "ERROR_ALLOTTED_SPACE_EXCEEDED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_GROUP_ATTRIBUTES:
|
|
{
|
|
// 1345 The specified attributes are invalid, or incompatible with the attributes for the group as a whole. ERROR_INVALID_GROUP_ATTRIBUTES
|
|
pString = "ERROR_INVALID_GROUP_ATTRIBUTES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_IMPERSONATION_LEVEL:
|
|
{
|
|
// 1346 Either a required impersonation level was not provided, or the provided impersonation level is invalid. ERROR_BAD_IMPERSONATION_LEVEL
|
|
pString = "ERROR_BAD_IMPERSONATION_LEVEL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANT_OPEN_ANONYMOUS:
|
|
{
|
|
// 1347 Cannot open an anonymous level security token. ERROR_CANT_OPEN_ANONYMOUS
|
|
pString = "ERROR_CANT_OPEN_ANONYMOUS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_VALIDATION_CLASS:
|
|
{
|
|
// 1348 The validation information class requested was invalid. ERROR_BAD_VALIDATION_CLASS
|
|
pString = "ERROR_BAD_VALIDATION_CLASS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_TOKEN_TYPE:
|
|
{
|
|
// 1349 The type of the token is inappropriate for its attempted use. ERROR_BAD_TOKEN_TYPE
|
|
pString = "ERROR_BAD_TOKEN_TYPE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SECURITY_ON_OBJECT:
|
|
{
|
|
// 1350 Unable to perform a security operation on an object that has no associated security. ERROR_NO_SECURITY_ON_OBJECT
|
|
pString = "ERROR_NO_SECURITY_ON_OBJECT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANT_ACCESS_DOMAIN_INFO:
|
|
{
|
|
// 1351 Indicates a Windows NT Server could not be contacted or that objects within the domain are protected such that necessary information could not be retrieved. ERROR_CANT_ACCESS_DOMAIN_INFO
|
|
pString = "ERROR_CANT_ACCESS_DOMAIN_INFO";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SERVER_STATE:
|
|
{
|
|
// 1352 The security account manager (SAM) or local security authority (LSA) server was in the wrong state to perform the security operation. ERROR_INVALID_SERVER_STATE
|
|
pString = "ERROR_INVALID_SERVER_STATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DOMAIN_STATE:
|
|
{
|
|
// 1353 The domain was in the wrong state to perform the security operation. ERROR_INVALID_DOMAIN_STATE
|
|
pString = "ERROR_INVALID_DOMAIN_STATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DOMAIN_ROLE:
|
|
{
|
|
// 1354 This operation is only allowed for the Primary Domain Controller of the domain. ERROR_INVALID_DOMAIN_ROLE
|
|
pString = "ERROR_INVALID_DOMAIN_ROLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_DOMAIN:
|
|
{
|
|
// 1355 The specified domain did not exist. ERROR_NO_SUCH_DOMAIN
|
|
pString = "ERROR_NO_SUCH_DOMAIN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DOMAIN_EXISTS:
|
|
{
|
|
// 1356 The specified domain already exists. ERROR_DOMAIN_EXISTS
|
|
pString = "ERROR_DOMAIN_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DOMAIN_LIMIT_EXCEEDED:
|
|
{
|
|
// 1357 An attempt was made to exceed the limit on the number of domains per server. ERROR_DOMAIN_LIMIT_EXCEEDED
|
|
pString = "ERROR_DOMAIN_LIMIT_EXCEEDED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INTERNAL_DB_CORRUPTION:
|
|
{
|
|
// 1358 Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk. ERROR_INTERNAL_DB_CORRUPTION
|
|
pString = "ERROR_INTERNAL_DB_CORRUPTION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INTERNAL_ERROR:
|
|
{
|
|
// 1359 The security account database contains an internal inconsistency. ERROR_INTERNAL_ERROR
|
|
pString = "ERROR_INTERNAL_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GENERIC_NOT_MAPPED:
|
|
{
|
|
// 1360 Generic access types were contained in an access mask which should already be mapped to nongeneric types. ERROR_GENERIC_NOT_MAPPED
|
|
pString = "ERROR_GENERIC_NOT_MAPPED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_DESCRIPTOR_FORMAT:
|
|
{
|
|
// 1361 A security descriptor is not in the right format (absolute or self-relative). ERROR_BAD_DESCRIPTOR_FORMAT
|
|
pString = "ERROR_BAD_DESCRIPTOR_FORMAT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_LOGON_PROCESS:
|
|
{
|
|
// 1362 The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process. ERROR_NOT_LOGON_PROCESS
|
|
pString = "ERROR_NOT_LOGON_PROCESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOGON_SESSION_EXISTS:
|
|
{
|
|
// 1363 Cannot start a new logon session with an ID that is already in use. ERROR_LOGON_SESSION_EXISTS
|
|
pString = "ERROR_LOGON_SESSION_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_PACKAGE:
|
|
{
|
|
// 1364 A specified authentication package is unknown. ERROR_NO_SUCH_PACKAGE
|
|
pString = "ERROR_NO_SUCH_PACKAGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_LOGON_SESSION_STATE:
|
|
{
|
|
// 1365 The logon session is not in a state that is consistent with the requested operation. ERROR_BAD_LOGON_SESSION_STATE
|
|
pString = "ERROR_BAD_LOGON_SESSION_STATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOGON_SESSION_COLLISION:
|
|
{
|
|
// 1366 The logon session ID is already in use. ERROR_LOGON_SESSION_COLLISION
|
|
pString = "ERROR_LOGON_SESSION_COLLISION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_LOGON_TYPE:
|
|
{
|
|
// 1367 A logon request contained an invalid logon type value. ERROR_INVALID_LOGON_TYPE
|
|
pString = "ERROR_INVALID_LOGON_TYPE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANNOT_IMPERSONATE:
|
|
{
|
|
// 1368 Unable to impersonate using a named pipe until data has been read from that pipe. ERROR_CANNOT_IMPERSONATE
|
|
pString = "ERROR_CANNOT_IMPERSONATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RXACT_INVALID_STATE:
|
|
{
|
|
// 1369 The transaction state of a registry subtree is incompatible with the requested operation. ERROR_RXACT_INVALID_STATE
|
|
pString = "ERROR_RXACT_INVALID_STATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RXACT_COMMIT_FAILURE:
|
|
{
|
|
// 1370 An internal security database corruption has been encountered. ERROR_RXACT_COMMIT_FAILURE
|
|
pString = "ERROR_RXACT_COMMIT_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SPECIAL_ACCOUNT:
|
|
{
|
|
// 1371 Cannot perform this operation on built-in accounts. ERROR_SPECIAL_ACCOUNT
|
|
pString = "ERROR_SPECIAL_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SPECIAL_GROUP:
|
|
{
|
|
// 1372 Cannot perform this operation on this built-in special group. ERROR_SPECIAL_GROUP
|
|
pString = "ERROR_SPECIAL_GROUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SPECIAL_USER:
|
|
{
|
|
// 1373 Cannot perform this operation on this built-in special user. ERROR_SPECIAL_USER
|
|
pString = "ERROR_SPECIAL_USER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEMBERS_PRIMARY_GROUP:
|
|
{
|
|
// 1374 The user cannot be removed from a group because the group is currently the user's primary group. ERROR_MEMBERS_PRIMARY_GROUP
|
|
pString = "ERROR_MEMBERS_PRIMARY_GROUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOKEN_ALREADY_IN_USE:
|
|
{
|
|
// 1375 The token is already in use as a primary token. ERROR_TOKEN_ALREADY_IN_USE
|
|
pString = "ERROR_TOKEN_ALREADY_IN_USE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_ALIAS:
|
|
{
|
|
// 1376 The specified local group does not exist. ERROR_NO_SUCH_ALIAS
|
|
pString = "ERROR_NO_SUCH_ALIAS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEMBER_NOT_IN_ALIAS:
|
|
{
|
|
// 1377 The specified account name is not a member of the local group. ERROR_MEMBER_NOT_IN_ALIAS
|
|
pString = "ERROR_MEMBER_NOT_IN_ALIAS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEMBER_IN_ALIAS:
|
|
{
|
|
// 1378 The specified account name is already a member of the local group. ERROR_MEMBER_IN_ALIAS
|
|
pString = "ERROR_MEMBER_IN_ALIAS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALIAS_EXISTS:
|
|
{
|
|
// 1379 The specified local group already exists. ERROR_ALIAS_EXISTS
|
|
pString = "ERROR_ALIAS_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOGON_NOT_GRANTED:
|
|
{
|
|
// 1380 Logon failure: the user has not been granted the requested logon type at this computer. ERROR_LOGON_NOT_GRANTED
|
|
pString = "ERROR_LOGON_NOT_GRANTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_SECRETS:
|
|
{
|
|
// 1381 The maximum number of secrets that may be stored in a single system has been exceeded. ERROR_TOO_MANY_SECRETS
|
|
pString = "ERROR_TOO_MANY_SECRETS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SECRET_TOO_LONG:
|
|
{
|
|
// 1382 The length of a secret exceeds the maximum length allowed. ERROR_SECRET_TOO_LONG
|
|
pString = "ERROR_SECRET_TOO_LONG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INTERNAL_DB_ERROR:
|
|
{
|
|
// 1383 The local security authority database contains an internal inconsistency. ERROR_INTERNAL_DB_ERROR
|
|
pString = "ERROR_INTERNAL_DB_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_CONTEXT_IDS:
|
|
{
|
|
// 1384 During a logon attempt, the user's security context accumulated too many security IDs. ERROR_TOO_MANY_CONTEXT_IDS
|
|
pString = "ERROR_TOO_MANY_CONTEXT_IDS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOGON_TYPE_NOT_GRANTED:
|
|
{
|
|
// 1385 Logon failure: the user has not been granted the requested logon type at this computer. ERROR_LOGON_TYPE_NOT_GRANTED
|
|
pString = "ERROR_LOGON_TYPE_NOT_GRANTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NT_CROSS_ENCRYPTION_REQUIRED:
|
|
{
|
|
// 1386 A cross-encrypted password is necessary to change a user password. ERROR_NT_CROSS_ENCRYPTION_REQUIRED
|
|
pString = "ERROR_NT_CROSS_ENCRYPTION_REQUIRED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SUCH_MEMBER:
|
|
{
|
|
// 1387 A new member could not be added to a local group because the member does not exist. ERROR_NO_SUCH_MEMBER
|
|
pString = "ERROR_NO_SUCH_MEMBER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MEMBER:
|
|
{
|
|
// 1388 A new member could not be added to a local group because the member has the wrong account type. ERROR_INVALID_MEMBER
|
|
pString = "ERROR_INVALID_MEMBER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TOO_MANY_SIDS:
|
|
{
|
|
// 1389 Too many security IDs have been specified. ERROR_TOO_MANY_SIDS
|
|
pString = "ERROR_TOO_MANY_SIDS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LM_CROSS_ENCRYPTION_REQUIRED:
|
|
{
|
|
// 1390 A cross-encrypted password is necessary to change this user password. ERROR_LM_CROSS_ENCRYPTION_REQUIRED
|
|
pString = "ERROR_LM_CROSS_ENCRYPTION_REQUIRED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_INHERITANCE:
|
|
{
|
|
// 1391 Indicates an ACL contains no inheritable components. ERROR_NO_INHERITANCE
|
|
pString = "ERROR_NO_INHERITANCE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILE_CORRUPT:
|
|
{
|
|
// 1392 The file or directory is corrupted and unreadable. ERROR_FILE_CORRUPT
|
|
pString = "ERROR_FILE_CORRUPT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DISK_CORRUPT:
|
|
{
|
|
// 1393 The disk structure is corrupted and unreadable. ERROR_DISK_CORRUPT
|
|
pString = "ERROR_DISK_CORRUPT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_USER_SESSION_KEY:
|
|
{
|
|
// 1394 There is no user session key for the specified logon session. ERROR_NO_USER_SESSION_KEY
|
|
pString = "ERROR_NO_USER_SESSION_KEY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LICENSE_QUOTA_EXCEEDED:
|
|
{
|
|
// 1395 The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept. ERROR_LICENSE_QUOTA_EXCEEDED
|
|
pString = "ERROR_LICENSE_QUOTA_EXCEEDED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_WINDOW_HANDLE:
|
|
{
|
|
// 1400 Invalid window handle. ERROR_INVALID_WINDOW_HANDLE
|
|
pString = "ERROR_INVALID_WINDOW_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MENU_HANDLE:
|
|
{
|
|
// 1401 Invalid menu handle. ERROR_INVALID_MENU_HANDLE
|
|
pString = "ERROR_INVALID_MENU_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_CURSOR_HANDLE:
|
|
{
|
|
// 1402 Invalid cursor handle. ERROR_INVALID_CURSOR_HANDLE
|
|
pString = "ERROR_INVALID_CURSOR_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ACCEL_HANDLE:
|
|
{
|
|
// 1403 Invalid accelerator table handle. ERROR_INVALID_ACCEL_HANDLE
|
|
pString = "ERROR_INVALID_ACCEL_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_HOOK_HANDLE:
|
|
{
|
|
// 1404 Invalid hook handle. ERROR_INVALID_HOOK_HANDLE
|
|
pString = "ERROR_INVALID_HOOK_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DWP_HANDLE:
|
|
{
|
|
// 1405 Invalid handle to a multiple-window position structure. ERROR_INVALID_DWP_HANDLE
|
|
pString = "ERROR_INVALID_DWP_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TLW_WITH_WSCHILD:
|
|
{
|
|
// 1406 Cannot create a top-level child window. ERROR_TLW_WITH_WSCHILD
|
|
pString = "ERROR_TLW_WITH_WSCHILD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANNOT_FIND_WND_CLASS:
|
|
{
|
|
// 1407 Cannot find window class. ERROR_CANNOT_FIND_WND_CLASS
|
|
pString = "ERROR_CANNOT_FIND_WND_CLASS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WINDOW_OF_OTHER_THREAD:
|
|
{
|
|
// 1408 Invalid window; it belongs to other thread. ERROR_WINDOW_OF_OTHER_THREAD
|
|
pString = "ERROR_WINDOW_OF_OTHER_THREAD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOTKEY_ALREADY_REGISTERED:
|
|
{
|
|
// 1409 Hot key is already registered. ERROR_HOTKEY_ALREADY_REGISTERED
|
|
pString = "ERROR_HOTKEY_ALREADY_REGISTERED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLASS_ALREADY_EXISTS:
|
|
{
|
|
// 1410 Class already exists. ERROR_CLASS_ALREADY_EXISTS
|
|
pString = "ERROR_CLASS_ALREADY_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLASS_DOES_NOT_EXIST:
|
|
{
|
|
// 1411 Class does not exist. ERROR_CLASS_DOES_NOT_EXIST
|
|
pString = "ERROR_CLASS_DOES_NOT_EXIST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLASS_HAS_WINDOWS:
|
|
{
|
|
// 1412 Class still has open windows. ERROR_CLASS_HAS_WINDOWS
|
|
pString = "ERROR_CLASS_HAS_WINDOWS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_INDEX:
|
|
{
|
|
// 1413 Invalid index. ERROR_INVALID_INDEX
|
|
pString = "ERROR_INVALID_INDEX";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ICON_HANDLE:
|
|
{
|
|
// 1414 Invalid icon handle. ERROR_INVALID_ICON_HANDLE
|
|
pString = "ERROR_INVALID_ICON_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRIVATE_DIALOG_INDEX:
|
|
{
|
|
// 1415 Using private DIALOG window words. ERROR_PRIVATE_DIALOG_INDEX
|
|
pString = "ERROR_PRIVATE_DIALOG_INDEX";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LISTBOX_ID_NOT_FOUND:
|
|
{
|
|
// 1416 The list box identifier was not found. ERROR_LISTBOX_ID_NOT_FOUND
|
|
pString = "ERROR_LISTBOX_ID_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_WILDCARD_CHARACTERS:
|
|
{
|
|
// 1417 No wildcards were found. ERROR_NO_WILDCARD_CHARACTERS
|
|
pString = "ERROR_NO_WILDCARD_CHARACTERS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLIPBOARD_NOT_OPEN:
|
|
{
|
|
// 1418 Thread does not have a clipboard open. ERROR_CLIPBOARD_NOT_OPEN
|
|
pString = "ERROR_CLIPBOARD_NOT_OPEN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOTKEY_NOT_REGISTERED:
|
|
{
|
|
// 1419 Hot key is not registered. ERROR_HOTKEY_NOT_REGISTERED
|
|
pString = "ERROR_HOTKEY_NOT_REGISTERED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WINDOW_NOT_DIALOG:
|
|
{
|
|
// 1420 The window is not a valid dialog window. ERROR_WINDOW_NOT_DIALOG
|
|
pString = "ERROR_WINDOW_NOT_DIALOG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONTROL_ID_NOT_FOUND:
|
|
{
|
|
// 1421 Control ID not found. ERROR_CONTROL_ID_NOT_FOUND
|
|
pString = "ERROR_CONTROL_ID_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_COMBOBOX_MESSAGE:
|
|
{
|
|
// 1422 Invalid message for a combo box because it does not have an edit control. ERROR_INVALID_COMBOBOX_MESSAGE
|
|
pString = "ERROR_INVALID_COMBOBOX_MESSAGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WINDOW_NOT_COMBOBOX:
|
|
{
|
|
// 1423 The window is not a combo box. ERROR_WINDOW_NOT_COMBOBOX
|
|
pString = "ERROR_WINDOW_NOT_COMBOBOX";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_EDIT_HEIGHT:
|
|
{
|
|
// 1424 Height must be less than 256. ERROR_INVALID_EDIT_HEIGHT
|
|
pString = "ERROR_INVALID_EDIT_HEIGHT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DC_NOT_FOUND:
|
|
{
|
|
// 1425 Invalid device context (DC) handle. ERROR_DC_NOT_FOUND
|
|
pString = "ERROR_DC_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_HOOK_FILTER:
|
|
{
|
|
// 1426 Invalid hook procedure type. ERROR_INVALID_HOOK_FILTER
|
|
pString = "ERROR_INVALID_HOOK_FILTER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_FILTER_PROC:
|
|
{
|
|
// 1427 Invalid hook procedure. ERROR_INVALID_FILTER_PROC
|
|
pString = "ERROR_INVALID_FILTER_PROC";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOOK_NEEDS_HMOD:
|
|
{
|
|
// 1428 Cannot set nonlocal hook without a module handle. ERROR_HOOK_NEEDS_HMOD
|
|
pString = "ERROR_HOOK_NEEDS_HMOD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GLOBAL_ONLY_HOOK:
|
|
{
|
|
// 1429 This hook procedure can only be set globally. ERROR_GLOBAL_ONLY_HOOK
|
|
pString = "ERROR_GLOBAL_ONLY_HOOK";
|
|
break;
|
|
}
|
|
|
|
case ERROR_JOURNAL_HOOK_SET:
|
|
{
|
|
// 1430 The journal hook procedure is already installed. ERROR_JOURNAL_HOOK_SET
|
|
pString = "ERROR_JOURNAL_HOOK_SET";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOOK_NOT_INSTALLED:
|
|
{
|
|
// 1431 The hook procedure is not installed. ERROR_HOOK_NOT_INSTALLED
|
|
pString = "ERROR_HOOK_NOT_INSTALLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_LB_MESSAGE:
|
|
{
|
|
// 1432 Invalid message for single-selection list box. ERROR_INVALID_LB_MESSAGE
|
|
pString = "ERROR_INVALID_LB_MESSAGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SETCOUNT_ON_BAD_LB:
|
|
{
|
|
// 1433 LB_SETCOUNT sent to non-lazy list box. ERROR_SETCOUNT_ON_BAD_LB
|
|
pString = "ERROR_SETCOUNT_ON_BAD_LB";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LB_WITHOUT_TABSTOPS:
|
|
{
|
|
// 1434 This list box does not support tab stops. ERROR_LB_WITHOUT_TABSTOPS
|
|
pString = "ERROR_LB_WITHOUT_TABSTOPS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DESTROY_OBJECT_OF_OTHER_THREAD:
|
|
{
|
|
// 1435 Cannot destroy object created by another thread. ERROR_DESTROY_OBJECT_OF_OTHER_THREAD
|
|
pString = "ERROR_DESTROY_OBJECT_OF_OTHER_THREAD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CHILD_WINDOW_MENU:
|
|
{
|
|
// 1436 Child windows cannot have menus. ERROR_CHILD_WINDOW_MENU
|
|
pString = "ERROR_CHILD_WINDOW_MENU";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SYSTEM_MENU:
|
|
{
|
|
// 1437 The window does not have a system menu. ERROR_NO_SYSTEM_MENU
|
|
pString = "ERROR_NO_SYSTEM_MENU";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MSGBOX_STYLE:
|
|
{
|
|
// 1438 Invalid message box style. ERROR_INVALID_MSGBOX_STYLE
|
|
pString = "ERROR_INVALID_MSGBOX_STYLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SPI_VALUE:
|
|
{
|
|
// 1439 Invalid system-wide (SPI_*) parameter. ERROR_INVALID_SPI_VALUE
|
|
pString = "ERROR_INVALID_SPI_VALUE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SCREEN_ALREADY_LOCKED:
|
|
{
|
|
// 1440 Screen already locked. ERROR_SCREEN_ALREADY_LOCKED
|
|
pString = "ERROR_SCREEN_ALREADY_LOCKED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HWNDS_HAVE_DIFF_PARENT:
|
|
{
|
|
// 1441 All handles to windows in a multiple-window position structure must have the same parent. ERROR_HWNDS_HAVE_DIFF_PARENT
|
|
pString = "ERROR_HWNDS_HAVE_DIFF_PARENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_CHILD_WINDOW:
|
|
{
|
|
// 1442 The window is not a child window. ERROR_NOT_CHILD_WINDOW
|
|
pString = "ERROR_NOT_CHILD_WINDOW";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_GW_COMMAND:
|
|
{
|
|
// 1443 Invalid GW_* command. ERROR_INVALID_GW_COMMAND
|
|
pString = "ERROR_INVALID_GW_COMMAND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_THREAD_ID:
|
|
{
|
|
// 1444 Invalid thread identifier. ERROR_INVALID_THREAD_ID
|
|
pString = "ERROR_INVALID_THREAD_ID";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NON_MDICHILD_WINDOW:
|
|
{
|
|
// 1445 Cannot process a message from a window that is not a multiple document interface (MDI) window. ERROR_NON_MDICHILD_WINDOW
|
|
pString = "ERROR_NON_MDICHILD_WINDOW";
|
|
break;
|
|
}
|
|
|
|
case ERROR_POPUP_ALREADY_ACTIVE:
|
|
{
|
|
// 1446 Popup menu already active. ERROR_POPUP_ALREADY_ACTIVE
|
|
pString = "ERROR_POPUP_ALREADY_ACTIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SCROLLBARS:
|
|
{
|
|
// 1447 The window does not have scroll bars. ERROR_NO_SCROLLBARS
|
|
pString = "ERROR_NO_SCROLLBARS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SCROLLBAR_RANGE:
|
|
{
|
|
// 1448 Scroll bar range cannot be greater than 0x7FFF. ERROR_INVALID_SCROLLBAR_RANGE
|
|
pString = "ERROR_INVALID_SCROLLBAR_RANGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SHOWWIN_COMMAND:
|
|
{
|
|
// 1449 Cannot show or remove the window in the way specified. ERROR_INVALID_SHOWWIN_COMMAND
|
|
pString = "ERROR_INVALID_SHOWWIN_COMMAND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SYSTEM_RESOURCES:
|
|
{
|
|
// 1450 Insufficient system resources exist to complete the requested service. ERROR_NO_SYSTEM_RESOURCES
|
|
pString = "ERROR_NO_SYSTEM_RESOURCES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NONPAGED_SYSTEM_RESOURCES:
|
|
{
|
|
// 1451 Insufficient system resources exist to complete the requested service. ERROR_NONPAGED_SYSTEM_RESOURCES
|
|
pString = "ERROR_NONPAGED_SYSTEM_RESOURCES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PAGED_SYSTEM_RESOURCES:
|
|
{
|
|
// 1452 Insufficient system resources exist to complete the requested service. ERROR_PAGED_SYSTEM_RESOURCES
|
|
pString = "ERROR_PAGED_SYSTEM_RESOURCES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WORKING_SET_QUOTA:
|
|
{
|
|
// 1453 Insufficient quota to complete the requested service. ERROR_WORKING_SET_QUOTA
|
|
pString = "ERROR_WORKING_SET_QUOTA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PAGEFILE_QUOTA:
|
|
{
|
|
// 1454 Insufficient quota to complete the requested service. ERROR_PAGEFILE_QUOTA
|
|
pString = "ERROR_PAGEFILE_QUOTA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_COMMITMENT_LIMIT:
|
|
{
|
|
// 1455 The paging file is too small for this operation to complete. ERROR_COMMITMENT_LIMIT
|
|
pString = "ERROR_COMMITMENT_LIMIT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MENU_ITEM_NOT_FOUND:
|
|
{
|
|
// 1456 A menu item was not found. ERROR_MENU_ITEM_NOT_FOUND
|
|
pString = "ERROR_MENU_ITEM_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_KEYBOARD_HANDLE:
|
|
{
|
|
// 1457 Invalid keyboard layout handle. ERROR_INVALID_KEYBOARD_HANDLE
|
|
pString = "ERROR_INVALID_KEYBOARD_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOOK_TYPE_NOT_ALLOWED:
|
|
{
|
|
// 1458 Hook type not allowed. ERROR_HOOK_TYPE_NOT_ALLOWED
|
|
pString = "ERROR_HOOK_TYPE_NOT_ALLOWED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION:
|
|
{
|
|
// 1459 This operation requires an interactive window station. ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
|
|
pString = "ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TIMEOUT:
|
|
{
|
|
// 1460 This operation returned because the timeout period expired. ERROR_TIMEOUT
|
|
pString = "ERROR_TIMEOUT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MONITOR_HANDLE:
|
|
{
|
|
// 1461 Invalid monitor handle. ERROR_INVALID_MONITOR_HANDLE
|
|
pString = "ERROR_INVALID_MONITOR_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EVENTLOG_FILE_CORRUPT:
|
|
{
|
|
// 1500 The event log file is corrupted. ERROR_EVENTLOG_FILE_CORRUPT
|
|
pString = "ERROR_EVENTLOG_FILE_CORRUPT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EVENTLOG_CANT_START:
|
|
{
|
|
// 1501 No event log file could be opened, so the event logging service did not start. ERROR_EVENTLOG_CANT_START
|
|
pString = "ERROR_EVENTLOG_CANT_START";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LOG_FILE_FULL:
|
|
{
|
|
// 1502 The event log file is full. ERROR_LOG_FILE_FULL
|
|
pString = "ERROR_LOG_FILE_FULL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EVENTLOG_FILE_CHANGED:
|
|
{
|
|
// 1503 The event log file has changed between read operations. ERROR_EVENTLOG_FILE_CHANGED
|
|
pString = "ERROR_EVENTLOG_FILE_CHANGED";
|
|
break;
|
|
}
|
|
|
|
/*
|
|
//
|
|
// Headers from NT build environment do not know about this error code
|
|
//
|
|
case ERROR_INSTALL_SERVICE:
|
|
{
|
|
// 1601 Failure accessing install service. ERROR_INSTALL_SERVICE
|
|
pString = "ERROR_INSTALL_SERVICE";
|
|
break;
|
|
}
|
|
*/
|
|
|
|
case ERROR_INSTALL_USEREXIT:
|
|
{
|
|
// 1602 The user canceled the installation. ERROR_INSTALL_USEREXIT
|
|
pString = "ERROR_INSTALL_USEREXIT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INSTALL_FAILURE:
|
|
{
|
|
// 1603 Fatal error during installation. ERROR_INSTALL_FAILURE
|
|
pString = "ERROR_INSTALL_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INSTALL_SUSPEND:
|
|
{
|
|
// 1604 Installation suspended, incomplete. ERROR_INSTALL_SUSPEND
|
|
pString = "ERROR_INSTALL_SUSPEND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_PRODUCT:
|
|
{
|
|
// 1605 Product code not registered. ERROR_UNKNOWN_PRODUCT
|
|
pString = "ERROR_UNKNOWN_PRODUCT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_FEATURE:
|
|
{
|
|
// 1606 Feature ID not registered. ERROR_UNKNOWN_FEATURE
|
|
pString = "ERROR_UNKNOWN_FEATURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_COMPONENT:
|
|
{
|
|
// 1607 Component ID not registered. ERROR_UNKNOWN_COMPONENT
|
|
pString = "ERROR_UNKNOWN_COMPONENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_PROPERTY:
|
|
{
|
|
// 1608 Unknown property. ERROR_UNKNOWN_PROPERTY
|
|
pString = "ERROR_UNKNOWN_PROPERTY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_HANDLE_STATE:
|
|
{
|
|
// 1609 Handle is in an invalid state. ERROR_INVALID_HANDLE_STATE
|
|
pString = "ERROR_INVALID_HANDLE_STATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_CONFIGURATION:
|
|
{
|
|
// 1610 Configuration data corrupt. ERROR_BAD_CONFIGURATION
|
|
pString = "ERROR_BAD_CONFIGURATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INDEX_ABSENT:
|
|
{
|
|
// 1611 Language not available. ERROR_INDEX_ABSENT
|
|
pString = "ERROR_INDEX_ABSENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INSTALL_SOURCE_ABSENT:
|
|
{
|
|
// 1612 Install source unavailable. ERROR_INSTALL_SOURCE_ABSENT
|
|
pString = "ERROR_INSTALL_SOURCE_ABSENT";
|
|
break;
|
|
}
|
|
|
|
/*
|
|
//
|
|
// Headers from NT build environment do not know about this error code
|
|
//
|
|
case ERROR_BAD_DATABASE_VERSION:
|
|
{
|
|
// 1613 Database version unsupported. ERROR_BAD_DATABASE_VERSION
|
|
pString = "ERROR_BAD_DATABASE_VERSION";
|
|
break;
|
|
}
|
|
*/
|
|
|
|
case ERROR_PRODUCT_UNINSTALLED:
|
|
{
|
|
// 1614 Product is uninstalled. ERROR_PRODUCT_UNINSTALLED
|
|
pString = "ERROR_PRODUCT_UNINSTALLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_QUERY_SYNTAX:
|
|
{
|
|
// 1615 SQL query syntax invalid or unsupported. ERROR_BAD_QUERY_SYNTAX
|
|
pString = "ERROR_BAD_QUERY_SYNTAX";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_FIELD:
|
|
{
|
|
// 1616 Record field does not exist. ERROR_INVALID_FIELD
|
|
pString = "ERROR_INVALID_FIELD";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_STRING_BINDING:
|
|
{
|
|
// 1700 The string binding is invalid. RPC_S_INVALID_STRING_BINDING
|
|
pString = "RPC_S_INVALID_STRING_BINDING";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_WRONG_KIND_OF_BINDING:
|
|
{
|
|
// 1701 The binding handle is not the correct type. RPC_S_WRONG_KIND_OF_BINDING
|
|
pString = "RPC_S_WRONG_KIND_OF_BINDING";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_BINDING:
|
|
{
|
|
// 1702 The binding handle is invalid. RPC_S_INVALID_BINDING
|
|
pString = "RPC_S_INVALID_BINDING";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_PROTSEQ_NOT_SUPPORTED:
|
|
{
|
|
// 1703 The RPC protocol sequence is not supported. RPC_S_PROTSEQ_NOT_SUPPORTED
|
|
pString = "RPC_S_PROTSEQ_NOT_SUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_RPC_PROTSEQ:
|
|
{
|
|
// 1704 The RPC protocol sequence is invalid. RPC_S_INVALID_RPC_PROTSEQ
|
|
pString = "RPC_S_INVALID_RPC_PROTSEQ";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_STRING_UUID:
|
|
{
|
|
// 1705 The string universal unique identifier (UUID) is invalid. RPC_S_INVALID_STRING_UUID
|
|
pString = "RPC_S_INVALID_STRING_UUID";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_ENDPOINT_FORMAT:
|
|
{
|
|
// 1706 The endpoint format is invalid. RPC_S_INVALID_ENDPOINT_FORMAT
|
|
pString = "RPC_S_INVALID_ENDPOINT_FORMAT";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_NET_ADDR:
|
|
{
|
|
// 1707 The network address is invalid. RPC_S_INVALID_NET_ADDR
|
|
pString = "RPC_S_INVALID_NET_ADDR";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_ENDPOINT_FOUND:
|
|
{
|
|
// 1708 No endpoint was found. RPC_S_NO_ENDPOINT_FOUND
|
|
pString = "RPC_S_NO_ENDPOINT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_TIMEOUT:
|
|
{
|
|
// 1709 The timeout value is invalid. RPC_S_INVALID_TIMEOUT
|
|
pString = "RPC_S_INVALID_TIMEOUT";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_OBJECT_NOT_FOUND:
|
|
{
|
|
// 1710 The object universal unique identifier (UUID) was not found. RPC_S_OBJECT_NOT_FOUND
|
|
pString = "RPC_S_OBJECT_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_ALREADY_REGISTERED:
|
|
{
|
|
// 1711 The object universal unique identifier (UUID) has already been registered. RPC_S_ALREADY_REGISTERED
|
|
pString = "RPC_S_ALREADY_REGISTERED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_TYPE_ALREADY_REGISTERED:
|
|
{
|
|
// 1712 The type universal unique identifier (UUID) has already been registered. RPC_S_TYPE_ALREADY_REGISTERED
|
|
pString = "RPC_S_TYPE_ALREADY_REGISTERED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_ALREADY_LISTENING:
|
|
{
|
|
// 1713 The RPC server is already listening. RPC_S_ALREADY_LISTENING
|
|
pString = "RPC_S_ALREADY_LISTENING";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_PROTSEQS_REGISTERED:
|
|
{
|
|
// 1714 No protocol sequences have been registered. RPC_S_NO_PROTSEQS_REGISTERED
|
|
pString = "RPC_S_NO_PROTSEQS_REGISTERED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NOT_LISTENING:
|
|
{
|
|
// 1715 The RPC server is not listening. RPC_S_NOT_LISTENING
|
|
pString = "RPC_S_NOT_LISTENING";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNKNOWN_MGR_TYPE:
|
|
{
|
|
// 1716 The manager type is unknown. RPC_S_UNKNOWN_MGR_TYPE
|
|
pString = "RPC_S_UNKNOWN_MGR_TYPE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNKNOWN_IF:
|
|
{
|
|
// 1717 The interface is unknown. RPC_S_UNKNOWN_IF
|
|
pString = "RPC_S_UNKNOWN_IF";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_BINDINGS:
|
|
{
|
|
// 1718 There are no bindings. RPC_S_NO_BINDINGS
|
|
pString = "RPC_S_NO_BINDINGS";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_PROTSEQS:
|
|
{
|
|
// 1719 There are no protocol sequences. RPC_S_NO_PROTSEQS
|
|
pString = "RPC_S_NO_PROTSEQS";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_CANT_CREATE_ENDPOINT:
|
|
{
|
|
// 1720 The endpoint cannot be created. RPC_S_CANT_CREATE_ENDPOINT
|
|
pString = "RPC_S_CANT_CREATE_ENDPOINT";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_OUT_OF_RESOURCES:
|
|
{
|
|
// 1721 Not enough resources are available to complete this operation. RPC_S_OUT_OF_RESOURCES
|
|
pString = "RPC_S_OUT_OF_RESOURCES";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_SERVER_UNAVAILABLE:
|
|
{
|
|
// 1722 The RPC server is unavailable. RPC_S_SERVER_UNAVAILABLE
|
|
pString = "RPC_S_SERVER_UNAVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_SERVER_TOO_BUSY:
|
|
{
|
|
// 1723 The RPC server is too busy to complete this operation. RPC_S_SERVER_TOO_BUSY
|
|
pString = "RPC_S_SERVER_TOO_BUSY";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_NETWORK_OPTIONS:
|
|
{
|
|
// 1724 The network options are invalid. RPC_S_INVALID_NETWORK_OPTIONS
|
|
pString = "RPC_S_INVALID_NETWORK_OPTIONS";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_CALL_ACTIVE:
|
|
{
|
|
// 1725 There are no remote procedure calls active on this thread. RPC_S_NO_CALL_ACTIVE
|
|
pString = "RPC_S_NO_CALL_ACTIVE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_CALL_FAILED:
|
|
{
|
|
// 1726 The remote procedure call failed. RPC_S_CALL_FAILED
|
|
pString = "RPC_S_CALL_FAILED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_CALL_FAILED_DNE:
|
|
{
|
|
// 1727 The remote procedure call failed and did not execute. RPC_S_CALL_FAILED_DNE
|
|
pString = "RPC_S_CALL_FAILED_DNE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_PROTOCOL_ERROR:
|
|
{
|
|
// 1728 A remote procedure call (RPC) protocol error occurred. RPC_S_PROTOCOL_ERROR
|
|
pString = "RPC_S_PROTOCOL_ERROR";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNSUPPORTED_TRANS_SYN:
|
|
{
|
|
// 1730 The transfer syntax is not supported by the RPC server. RPC_S_UNSUPPORTED_TRANS_SYN
|
|
pString = "RPC_S_UNSUPPORTED_TRANS_SYN";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNSUPPORTED_TYPE:
|
|
{
|
|
// 1732 The universal unique identifier (UUID) type is not supported. RPC_S_UNSUPPORTED_TYPE
|
|
pString = "RPC_S_UNSUPPORTED_TYPE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_TAG:
|
|
{
|
|
// 1733 The tag is invalid. RPC_S_INVALID_TAG
|
|
pString = "RPC_S_INVALID_TAG";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_BOUND:
|
|
{
|
|
// 1734 The array bounds are invalid. RPC_S_INVALID_BOUND
|
|
pString = "RPC_S_INVALID_BOUND";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_ENTRY_NAME:
|
|
{
|
|
// 1735 The binding does not contain an entry name. RPC_S_NO_ENTRY_NAME
|
|
pString = "RPC_S_NO_ENTRY_NAME";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_NAME_SYNTAX:
|
|
{
|
|
// 1736 The name syntax is invalid. RPC_S_INVALID_NAME_SYNTAX
|
|
pString = "RPC_S_INVALID_NAME_SYNTAX";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNSUPPORTED_NAME_SYNTAX:
|
|
{
|
|
// 1737 The name syntax is not supported. RPC_S_UNSUPPORTED_NAME_SYNTAX
|
|
pString = "RPC_S_UNSUPPORTED_NAME_SYNTAX";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UUID_NO_ADDRESS:
|
|
{
|
|
// 1739 No network address is available to use to construct a universal unique identifier (UUID). RPC_S_UUID_NO_ADDRESS
|
|
pString = "RPC_S_UUID_NO_ADDRESS";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_DUPLICATE_ENDPOINT:
|
|
{
|
|
// 1740 The endpoint is a duplicate. RPC_S_DUPLICATE_ENDPOINT
|
|
pString = "RPC_S_DUPLICATE_ENDPOINT";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNKNOWN_AUTHN_TYPE:
|
|
{
|
|
// 1741 The authentication type is unknown. RPC_S_UNKNOWN_AUTHN_TYPE
|
|
pString = "RPC_S_UNKNOWN_AUTHN_TYPE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_MAX_CALLS_TOO_SMALL:
|
|
{
|
|
// 1742 The maximum number of calls is too small. RPC_S_MAX_CALLS_TOO_SMALL
|
|
pString = "RPC_S_MAX_CALLS_TOO_SMALL";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_STRING_TOO_LONG:
|
|
{
|
|
// 1743 The string is too long. RPC_S_STRING_TOO_LONG
|
|
pString = "RPC_S_STRING_TOO_LONG";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_PROTSEQ_NOT_FOUND:
|
|
{
|
|
// 1744 The RPC protocol sequence was not found. RPC_S_PROTSEQ_NOT_FOUND
|
|
pString = "RPC_S_PROTSEQ_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_PROCNUM_OUT_OF_RANGE:
|
|
{
|
|
// 1745 The procedure number is out of range. RPC_S_PROCNUM_OUT_OF_RANGE
|
|
pString = "RPC_S_PROCNUM_OUT_OF_RANGE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_BINDING_HAS_NO_AUTH:
|
|
{
|
|
// 1746 The binding does not contain any authentication information. RPC_S_BINDING_HAS_NO_AUTH
|
|
pString = "RPC_S_BINDING_HAS_NO_AUTH";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNKNOWN_AUTHN_SERVICE:
|
|
{
|
|
// 1747 The authentication service is unknown. RPC_S_UNKNOWN_AUTHN_SERVICE
|
|
pString = "RPC_S_UNKNOWN_AUTHN_SERVICE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNKNOWN_AUTHN_LEVEL:
|
|
{
|
|
// 1748 The authentication level is unknown. RPC_S_UNKNOWN_AUTHN_LEVEL
|
|
pString = "RPC_S_UNKNOWN_AUTHN_LEVEL";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_AUTH_IDENTITY:
|
|
{
|
|
// 1749 The security context is invalid. RPC_S_INVALID_AUTH_IDENTITY
|
|
pString = "RPC_S_INVALID_AUTH_IDENTITY";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNKNOWN_AUTHZ_SERVICE:
|
|
{
|
|
// 1750 The authorization service is unknown. RPC_S_UNKNOWN_AUTHZ_SERVICE
|
|
pString = "RPC_S_UNKNOWN_AUTHZ_SERVICE";
|
|
break;
|
|
}
|
|
|
|
case EPT_S_INVALID_ENTRY:
|
|
{
|
|
// 1751 The entry is invalid. EPT_S_INVALID_ENTRY
|
|
pString = "EPT_S_INVALID_ENTRY";
|
|
break;
|
|
}
|
|
|
|
case EPT_S_CANT_PERFORM_OP:
|
|
{
|
|
// 1752 The server endpoint cannot perform the operation. EPT_S_CANT_PERFORM_OP
|
|
pString = "EPT_S_CANT_PERFORM_OP";
|
|
break;
|
|
}
|
|
|
|
case EPT_S_NOT_REGISTERED:
|
|
{
|
|
// 1753 There are no more endpoints available from the endpoint mapper. EPT_S_NOT_REGISTERED
|
|
pString = "EPT_S_NOT_REGISTERED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NOTHING_TO_EXPORT:
|
|
{
|
|
// 1754 No interfaces have been exported. RPC_S_NOTHING_TO_EXPORT
|
|
pString = "RPC_S_NOTHING_TO_EXPORT";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INCOMPLETE_NAME:
|
|
{
|
|
// 1755 The entry name is incomplete. RPC_S_INCOMPLETE_NAME
|
|
pString = "RPC_S_INCOMPLETE_NAME";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_VERS_OPTION:
|
|
{
|
|
// 1756 The version option is invalid. RPC_S_INVALID_VERS_OPTION
|
|
pString = "RPC_S_INVALID_VERS_OPTION";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_MORE_MEMBERS:
|
|
{
|
|
// 1757 There are no more members. RPC_S_NO_MORE_MEMBERS
|
|
pString = "RPC_S_NO_MORE_MEMBERS";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NOT_ALL_OBJS_UNEXPORTED:
|
|
{
|
|
// 1758 There is nothing to unexport. RPC_S_NOT_ALL_OBJS_UNEXPORTED
|
|
pString = "RPC_S_NOT_ALL_OBJS_UNEXPORTED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INTERFACE_NOT_FOUND:
|
|
{
|
|
// 1759 The interface was not found. RPC_S_INTERFACE_NOT_FOUND
|
|
pString = "RPC_S_INTERFACE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_ENTRY_ALREADY_EXISTS:
|
|
{
|
|
// 1760 The entry already exists. RPC_S_ENTRY_ALREADY_EXISTS
|
|
pString = "RPC_S_ENTRY_ALREADY_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_ENTRY_NOT_FOUND:
|
|
{
|
|
// 1761 The entry is not found. RPC_S_ENTRY_NOT_FOUND
|
|
pString = "RPC_S_ENTRY_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NAME_SERVICE_UNAVAILABLE:
|
|
{
|
|
// 1762 The name service is unavailable. RPC_S_NAME_SERVICE_UNAVAILABLE
|
|
pString = "RPC_S_NAME_SERVICE_UNAVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_NAF_ID:
|
|
{
|
|
// 1763 The network address family is invalid. RPC_S_INVALID_NAF_ID
|
|
pString = "RPC_S_INVALID_NAF_ID";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_CANNOT_SUPPORT:
|
|
{
|
|
// 1764 The requested operation is not supported. RPC_S_CANNOT_SUPPORT
|
|
pString = "RPC_S_CANNOT_SUPPORT";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_CONTEXT_AVAILABLE:
|
|
{
|
|
// 1765 No security context is available to allow impersonation. RPC_S_NO_CONTEXT_AVAILABLE
|
|
pString = "RPC_S_NO_CONTEXT_AVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INTERNAL_ERROR:
|
|
{
|
|
// 1766 An internal error occurred in a remote procedure call (RPC). RPC_S_INTERNAL_ERROR
|
|
pString = "RPC_S_INTERNAL_ERROR";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_ZERO_DIVIDE:
|
|
{
|
|
// 1767 The RPC server attempted an integer division by zero. RPC_S_ZERO_DIVIDE
|
|
pString = "RPC_S_ZERO_DIVIDE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_ADDRESS_ERROR:
|
|
{
|
|
// 1768 An addressing error occurred in the RPC server. RPC_S_ADDRESS_ERROR
|
|
pString = "RPC_S_ADDRESS_ERROR";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_FP_DIV_ZERO:
|
|
{
|
|
// 1769 A floating-point operation at the RPC server caused a division by zero. RPC_S_FP_DIV_ZERO
|
|
pString = "RPC_S_FP_DIV_ZERO";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_FP_UNDERFLOW:
|
|
{
|
|
// 1770 A floating-point underflow occurred at the RPC server. RPC_S_FP_UNDERFLOW
|
|
pString = "RPC_S_FP_UNDERFLOW";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_FP_OVERFLOW:
|
|
{
|
|
// 1771 A floating-point overflow occurred at the RPC server. RPC_S_FP_OVERFLOW
|
|
pString = "RPC_S_FP_OVERFLOW";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_NO_MORE_ENTRIES:
|
|
{
|
|
// 1772 The list of RPC servers available for the binding of auto handles has been exhausted. RPC_X_NO_MORE_ENTRIES
|
|
pString = "RPC_X_NO_MORE_ENTRIES";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_SS_CHAR_TRANS_OPEN_FAIL:
|
|
{
|
|
// 1773 Unable to open the character translation table file. RPC_X_SS_CHAR_TRANS_OPEN_FAIL
|
|
pString = "RPC_X_SS_CHAR_TRANS_OPEN_FAIL";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_SS_CHAR_TRANS_SHORT_FILE:
|
|
{
|
|
// 1774 The file containing the character translation table has fewer than bytes. RPC_X_SS_CHAR_TRANS_SHORT_FILE
|
|
pString = "RPC_X_SS_CHAR_TRANS_SHORT_FILE";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_SS_IN_NULL_CONTEXT:
|
|
{
|
|
// 1775 A null context handle was passed from the client to the host during a remote procedure call. RPC_X_SS_IN_NULL_CONTEXT
|
|
pString = "RPC_X_SS_IN_NULL_CONTEXT";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_SS_CONTEXT_DAMAGED:
|
|
{
|
|
// 1777 The context handle changed during a remote procedure call. RPC_X_SS_CONTEXT_DAMAGED
|
|
pString = "RPC_X_SS_CONTEXT_DAMAGED";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_SS_HANDLES_MISMATCH:
|
|
{
|
|
// 1778 The binding handles passed to a remote procedure call do not match. RPC_X_SS_HANDLES_MISMATCH
|
|
pString = "RPC_X_SS_HANDLES_MISMATCH";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_SS_CANNOT_GET_CALL_HANDLE:
|
|
{
|
|
// 1779 The stub is unable to get the remote procedure call handle. RPC_X_SS_CANNOT_GET_CALL_HANDLE
|
|
pString = "RPC_X_SS_CANNOT_GET_CALL_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_NULL_REF_POINTER:
|
|
{
|
|
// 1780 A null reference pointer was passed to the stub. RPC_X_NULL_REF_POINTER
|
|
pString = "RPC_X_NULL_REF_POINTER";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_ENUM_VALUE_OUT_OF_RANGE:
|
|
{
|
|
// 1781 The enumeration value is out of range. RPC_X_ENUM_VALUE_OUT_OF_RANGE
|
|
pString = "RPC_X_ENUM_VALUE_OUT_OF_RANGE";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_BYTE_COUNT_TOO_SMALL:
|
|
{
|
|
// 1782 The byte count is too small. RPC_X_BYTE_COUNT_TOO_SMALL
|
|
pString = "RPC_X_BYTE_COUNT_TOO_SMALL";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_BAD_STUB_DATA:
|
|
{
|
|
// 1783 The stub received bad data. RPC_X_BAD_STUB_DATA
|
|
pString = "RPC_X_BAD_STUB_DATA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_USER_BUFFER:
|
|
{
|
|
// 1784 The supplied user buffer is not valid for the requested operation. ERROR_INVALID_USER_BUFFER
|
|
pString = "ERROR_INVALID_USER_BUFFER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNRECOGNIZED_MEDIA:
|
|
{
|
|
// 1785 The disk media is not recognized. It may not be formatted. ERROR_UNRECOGNIZED_MEDIA
|
|
pString = "ERROR_UNRECOGNIZED_MEDIA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_TRUST_LSA_SECRET:
|
|
{
|
|
// 1786 The workstation does not have a trust secret. ERROR_NO_TRUST_LSA_SECRET
|
|
pString = "ERROR_NO_TRUST_LSA_SECRET";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_TRUST_SAM_ACCOUNT:
|
|
{
|
|
// 1787 The SAM database on the Windows NT Server does not have a computer account for this workstation trust relationship. ERROR_NO_TRUST_SAM_ACCOUNT
|
|
pString = "ERROR_NO_TRUST_SAM_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TRUSTED_DOMAIN_FAILURE:
|
|
{
|
|
// 1788 The trust relationship between the primary domain and the trusted domain failed. ERROR_TRUSTED_DOMAIN_FAILURE
|
|
pString = "ERROR_TRUSTED_DOMAIN_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TRUSTED_RELATIONSHIP_FAILURE:
|
|
{
|
|
// 1789 The trust relationship between this workstation and the primary domain failed. ERROR_TRUSTED_RELATIONSHIP_FAILURE
|
|
pString = "ERROR_TRUSTED_RELATIONSHIP_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TRUST_FAILURE:
|
|
{
|
|
// 1790 The network logon failed. ERROR_TRUST_FAILURE
|
|
pString = "ERROR_TRUST_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_CALL_IN_PROGRESS:
|
|
{
|
|
// 1791 A remote procedure call is already in progress for this thread. RPC_S_CALL_IN_PROGRESS
|
|
pString = "RPC_S_CALL_IN_PROGRESS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NETLOGON_NOT_STARTED:
|
|
{
|
|
// 1792 An attempt was made to logon, but the network logon service was not started. ERROR_NETLOGON_NOT_STARTED
|
|
pString = "ERROR_NETLOGON_NOT_STARTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ACCOUNT_EXPIRED:
|
|
{
|
|
// 1793 The user's account has expired. ERROR_ACCOUNT_EXPIRED
|
|
pString = "ERROR_ACCOUNT_EXPIRED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REDIRECTOR_HAS_OPEN_HANDLES:
|
|
{
|
|
// 1794 The redirector is in use and cannot be unloaded. ERROR_REDIRECTOR_HAS_OPEN_HANDLES
|
|
pString = "ERROR_REDIRECTOR_HAS_OPEN_HANDLES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINTER_DRIVER_ALREADY_INSTALLED:
|
|
{
|
|
// 1795 The specified printer driver is already installed. ERROR_PRINTER_DRIVER_ALREADY_INSTALLED
|
|
pString = "ERROR_PRINTER_DRIVER_ALREADY_INSTALLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_PORT:
|
|
{
|
|
// 1796 The specified port is unknown. ERROR_UNKNOWN_PORT
|
|
pString = "ERROR_UNKNOWN_PORT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_PRINTER_DRIVER:
|
|
{
|
|
// 1797 The printer driver is unknown. ERROR_UNKNOWN_PRINTER_DRIVER
|
|
pString = "ERROR_UNKNOWN_PRINTER_DRIVER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_PRINTPROCESSOR:
|
|
{
|
|
// 1798 The print processor is unknown. ERROR_UNKNOWN_PRINTPROCESSOR
|
|
pString = "ERROR_UNKNOWN_PRINTPROCESSOR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_SEPARATOR_FILE:
|
|
{
|
|
// 1799 The specified separator file is invalid. ERROR_INVALID_SEPARATOR_FILE
|
|
pString = "ERROR_INVALID_SEPARATOR_FILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PRIORITY:
|
|
{
|
|
// 1800 The specified priority is invalid. ERROR_INVALID_PRIORITY
|
|
pString = "ERROR_INVALID_PRIORITY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PRINTER_NAME:
|
|
{
|
|
// 1801 The printer name is invalid. ERROR_INVALID_PRINTER_NAME
|
|
pString = "ERROR_INVALID_PRINTER_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINTER_ALREADY_EXISTS:
|
|
{
|
|
// 1802 The printer already exists. ERROR_PRINTER_ALREADY_EXISTS
|
|
pString = "ERROR_PRINTER_ALREADY_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PRINTER_COMMAND:
|
|
{
|
|
// 1803 The printer command is invalid. ERROR_INVALID_PRINTER_COMMAND
|
|
pString = "ERROR_INVALID_PRINTER_COMMAND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_DATATYPE:
|
|
{
|
|
// 1804 The specified datatype is invalid. ERROR_INVALID_DATATYPE
|
|
pString = "ERROR_INVALID_DATATYPE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_ENVIRONMENT:
|
|
{
|
|
// 1805 The environment specified is invalid. ERROR_INVALID_ENVIRONMENT
|
|
pString = "ERROR_INVALID_ENVIRONMENT";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_MORE_BINDINGS:
|
|
{
|
|
// 1806 There are no more bindings. RPC_S_NO_MORE_BINDINGS
|
|
pString = "RPC_S_NO_MORE_BINDINGS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT:
|
|
{
|
|
// 1807 The account used is an interdomain trust account. Use your global user account or local user account to access this server. ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT
|
|
pString = "ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT:
|
|
{
|
|
// 1808 The account used is a computer account. Use your global user account or local user account to access this server. ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT
|
|
pString = "ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOLOGON_SERVER_TRUST_ACCOUNT:
|
|
{
|
|
// 1809 The account used is a server trust account. Use your global user account or local user account to access this server. ERROR_NOLOGON_SERVER_TRUST_ACCOUNT
|
|
pString = "ERROR_NOLOGON_SERVER_TRUST_ACCOUNT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DOMAIN_TRUST_INCONSISTENT:
|
|
{
|
|
// 1810 The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain. ERROR_DOMAIN_TRUST_INCONSISTENT
|
|
pString = "ERROR_DOMAIN_TRUST_INCONSISTENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SERVER_HAS_OPEN_HANDLES:
|
|
{
|
|
// 1811 The server is in use and cannot be unloaded. ERROR_SERVER_HAS_OPEN_HANDLES
|
|
pString = "ERROR_SERVER_HAS_OPEN_HANDLES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_DATA_NOT_FOUND:
|
|
{
|
|
// 1812 The specified image file did not contain a resource section. ERROR_RESOURCE_DATA_NOT_FOUND
|
|
pString = "ERROR_RESOURCE_DATA_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_TYPE_NOT_FOUND:
|
|
{
|
|
// 1813 The specified resource type cannot be found in the image file. ERROR_RESOURCE_TYPE_NOT_FOUND
|
|
pString = "ERROR_RESOURCE_TYPE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_NAME_NOT_FOUND:
|
|
{
|
|
// 1814 The specified resource name cannot be found in the image file. ERROR_RESOURCE_NAME_NOT_FOUND
|
|
pString = "ERROR_RESOURCE_NAME_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_LANG_NOT_FOUND:
|
|
{
|
|
// 1815 The specified resource language ID cannot be found in the image file. ERROR_RESOURCE_LANG_NOT_FOUND
|
|
pString = "ERROR_RESOURCE_LANG_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_ENOUGH_QUOTA:
|
|
{
|
|
// 1816 Not enough quota is available to process this command. ERROR_NOT_ENOUGH_QUOTA
|
|
pString = "ERROR_NOT_ENOUGH_QUOTA";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_INTERFACES:
|
|
{
|
|
// 1817 No interfaces have been registered. RPC_S_NO_INTERFACES
|
|
pString = "RPC_S_NO_INTERFACES";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_CALL_CANCELLED:
|
|
{
|
|
// 1818 The remote procedure call was cancelled. RPC_S_CALL_CANCELLED
|
|
pString = "RPC_S_CALL_CANCELLED";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_BINDING_INCOMPLETE:
|
|
{
|
|
// 1819 The binding handle does not contain all required information. RPC_S_BINDING_INCOMPLETE
|
|
pString = "RPC_S_BINDING_INCOMPLETE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_COMM_FAILURE:
|
|
{
|
|
// 1820 A communications failure occurred during a remote procedure call. RPC_S_COMM_FAILURE
|
|
pString = "RPC_S_COMM_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UNSUPPORTED_AUTHN_LEVEL:
|
|
{
|
|
// 1821 The requested authentication level is not supported. RPC_S_UNSUPPORTED_AUTHN_LEVEL
|
|
pString = "RPC_S_UNSUPPORTED_AUTHN_LEVEL";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NO_PRINC_NAME:
|
|
{
|
|
// 1822 No principal name registered. RPC_S_NO_PRINC_NAME
|
|
pString = "RPC_S_NO_PRINC_NAME";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NOT_RPC_ERROR:
|
|
{
|
|
// 1823 The error specified is not a valid Windows RPC error code. RPC_S_NOT_RPC_ERROR
|
|
pString = "RPC_S_NOT_RPC_ERROR";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_UUID_LOCAL_ONLY:
|
|
{
|
|
// 1824 A UUID that is valid only on this computer has been allocated. RPC_S_UUID_LOCAL_ONLY
|
|
pString = "RPC_S_UUID_LOCAL_ONLY";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_SEC_PKG_ERROR:
|
|
{
|
|
// 1825 A security package specific error occurred. RPC_S_SEC_PKG_ERROR
|
|
pString = "RPC_S_SEC_PKG_ERROR";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_NOT_CANCELLED:
|
|
{
|
|
// 1826 Thread is not canceled. RPC_S_NOT_CANCELLED
|
|
pString = "RPC_S_NOT_CANCELLED";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_INVALID_ES_ACTION:
|
|
{
|
|
// 1827 Invalid operation on the encoding/decoding handle. RPC_X_INVALID_ES_ACTION
|
|
pString = "RPC_X_INVALID_ES_ACTION";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_WRONG_ES_VERSION:
|
|
{
|
|
// 1828 Incompatible version of the serializing package. RPC_X_WRONG_ES_VERSION
|
|
pString = "RPC_X_WRONG_ES_VERSION";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_WRONG_STUB_VERSION:
|
|
{
|
|
// 1829 Incompatible version of the RPC stub. RPC_X_WRONG_STUB_VERSION
|
|
pString = "RPC_X_WRONG_STUB_VERSION";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_INVALID_PIPE_OBJECT:
|
|
{
|
|
// 1830 The RPC pipe object is invalid or corrupted. RPC_X_INVALID_PIPE_OBJECT
|
|
pString = "RPC_X_INVALID_PIPE_OBJECT";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_WRONG_PIPE_ORDER:
|
|
{
|
|
// 1831 An invalid operation was attempted on an RPC pipe object. RPC_X_WRONG_PIPE_ORDER
|
|
pString = "RPC_X_WRONG_PIPE_ORDER";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_WRONG_PIPE_VERSION:
|
|
{
|
|
// 1832 Unsupported RPC pipe version. RPC_X_WRONG_PIPE_VERSION
|
|
pString = "RPC_X_WRONG_PIPE_VERSION";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_GROUP_MEMBER_NOT_FOUND:
|
|
{
|
|
// 1898 The group member was not found. RPC_S_GROUP_MEMBER_NOT_FOUND
|
|
pString = "RPC_S_GROUP_MEMBER_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case EPT_S_CANT_CREATE:
|
|
{
|
|
// 1899 The endpoint mapper database entry could not be created. EPT_S_CANT_CREATE
|
|
pString = "EPT_S_CANT_CREATE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_OBJECT:
|
|
{
|
|
// 1900 The object universal unique identifier (UUID) is the nil UUID. RPC_S_INVALID_OBJECT
|
|
pString = "RPC_S_INVALID_OBJECT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_TIME:
|
|
{
|
|
// 1901 The specified time is invalid. ERROR_INVALID_TIME
|
|
pString = "ERROR_INVALID_TIME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_FORM_NAME:
|
|
{
|
|
// 1902 The specified form name is invalid. ERROR_INVALID_FORM_NAME
|
|
pString = "ERROR_INVALID_FORM_NAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_FORM_SIZE:
|
|
{
|
|
// 1903 The specified form size is invalid. ERROR_INVALID_FORM_SIZE
|
|
pString = "ERROR_INVALID_FORM_SIZE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ALREADY_WAITING:
|
|
{
|
|
// 1904 The specified printer handle is already being waited on ERROR_ALREADY_WAITING
|
|
pString = "ERROR_ALREADY_WAITING";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINTER_DELETED:
|
|
{
|
|
// 1905 The specified printer has been deleted. ERROR_PRINTER_DELETED
|
|
pString = "ERROR_PRINTER_DELETED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PRINTER_STATE:
|
|
{
|
|
// 1906 The state of the printer is invalid. ERROR_INVALID_PRINTER_STATE
|
|
pString = "ERROR_INVALID_PRINTER_STATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PASSWORD_MUST_CHANGE:
|
|
{
|
|
// 1907 The user must change his password before he logs on the first time. ERROR_PASSWORD_MUST_CHANGE
|
|
pString = "ERROR_PASSWORD_MUST_CHANGE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DOMAIN_CONTROLLER_NOT_FOUND:
|
|
{
|
|
// 1908 Could not find the domain controller for this domain. ERROR_DOMAIN_CONTROLLER_NOT_FOUND
|
|
pString = "ERROR_DOMAIN_CONTROLLER_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ACCOUNT_LOCKED_OUT:
|
|
{
|
|
// 1909 The referenced account is currently locked out and may not be logged on to. ERROR_ACCOUNT_LOCKED_OUT
|
|
pString = "ERROR_ACCOUNT_LOCKED_OUT";
|
|
break;
|
|
}
|
|
|
|
case OR_INVALID_OXID:
|
|
{
|
|
// 1910 The object exporter specified was not found. OR_INVALID_OXID
|
|
pString = "OR_INVALID_OXID";
|
|
break;
|
|
}
|
|
|
|
case OR_INVALID_OID:
|
|
{
|
|
// 1911 The object specified was not found. OR_INVALID_OID
|
|
pString = "OR_INVALID_OID";
|
|
break;
|
|
}
|
|
|
|
case OR_INVALID_SET:
|
|
{
|
|
// 1912 The object resolver set specified was not found. OR_INVALID_SET
|
|
pString = "OR_INVALID_SET";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_SEND_INCOMPLETE:
|
|
{
|
|
// 1913 Some data remains to be sent in the request buffer. RPC_S_SEND_INCOMPLETE
|
|
pString = "RPC_S_SEND_INCOMPLETE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_ASYNC_HANDLE:
|
|
{
|
|
// 1914 Invalid asynchronous remote procedure call handle. RPC_S_INVALID_ASYNC_HANDLE
|
|
pString = "RPC_S_INVALID_ASYNC_HANDLE";
|
|
break;
|
|
}
|
|
|
|
case RPC_S_INVALID_ASYNC_CALL:
|
|
{
|
|
// 1915 Invalid asynchronous RPC call handle for this operation. RPC_S_INVALID_ASYNC_CALL
|
|
pString = "RPC_S_INVALID_ASYNC_CALL";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_PIPE_CLOSED:
|
|
{
|
|
// 1916 The RPC pipe object has already been closed. RPC_X_PIPE_CLOSED
|
|
pString = "RPC_X_PIPE_CLOSED";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_PIPE_DISCIPLINE_ERROR:
|
|
{
|
|
// 1917 The RPC call completed before all pipes were processed. RPC_X_PIPE_DISCIPLINE_ERROR
|
|
pString = "RPC_X_PIPE_DISCIPLINE_ERROR";
|
|
break;
|
|
}
|
|
|
|
case RPC_X_PIPE_EMPTY:
|
|
{
|
|
// 1918 No more data is available from the RPC pipe. RPC_X_PIPE_EMPTY
|
|
pString = "RPC_X_PIPE_EMPTY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_SITENAME:
|
|
{
|
|
// 1919 No site name is available for this machine. ERROR_NO_SITENAME
|
|
pString = "ERROR_NO_SITENAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANT_ACCESS_FILE:
|
|
{
|
|
// 1920 The file can not be accessed by the system. ERROR_CANT_ACCESS_FILE
|
|
pString = "ERROR_CANT_ACCESS_FILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANT_RESOLVE_FILENAME:
|
|
{
|
|
// 1921 The name of the file cannot be resolved by the system. ERROR_CANT_RESOLVE_FILENAME
|
|
pString = "ERROR_CANT_RESOLVE_FILENAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY:
|
|
{
|
|
// 1922 The directory service evaluated group memberships locally. ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY
|
|
pString = "ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_NO_ATTRIBUTE_OR_VALUE:
|
|
{
|
|
// 1923 The specified directory service attribute or value does not exist. ERROR_DS_NO_ATTRIBUTE_OR_VALUE
|
|
pString = "ERROR_DS_NO_ATTRIBUTE_OR_VALUE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_INVALID_ATTRIBUTE_SYNTAX:
|
|
{
|
|
// 1924 The attribute syntax specified to the directory service is invalid. ERROR_DS_INVALID_ATTRIBUTE_SYNTAX
|
|
pString = "ERROR_DS_INVALID_ATTRIBUTE_SYNTAX";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED:
|
|
{
|
|
// 1925 The attribute type specified to the directory service is not defined. ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED
|
|
pString = "ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS:
|
|
{
|
|
// 1926 The specified directory service attribute or value already exists. ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS
|
|
pString = "ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_BUSY:
|
|
{
|
|
// 1927 The directory service is busy. ERROR_DS_BUSY
|
|
pString = "ERROR_DS_BUSY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_UNAVAILABLE:
|
|
{
|
|
// 1928 The directory service is unavailable. ERROR_DS_UNAVAILABLE
|
|
pString = "ERROR_DS_UNAVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_NO_RIDS_ALLOCATED:
|
|
{
|
|
// 1929 The directory service was unable to allocate a relative identifier. ERROR_DS_NO_RIDS_ALLOCATED
|
|
pString = "ERROR_DS_NO_RIDS_ALLOCATED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_NO_MORE_RIDS:
|
|
{
|
|
// 1930 The directory service has exhausted the pool of relative identifiers. ERROR_DS_NO_MORE_RIDS
|
|
pString = "ERROR_DS_NO_MORE_RIDS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_INCORRECT_ROLE_OWNER:
|
|
{
|
|
// 1931 The requested operation could not be performed because the directory service is not the master for that type of operation. ERROR_DS_INCORRECT_ROLE_OWNER
|
|
pString = "ERROR_DS_INCORRECT_ROLE_OWNER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_RIDMGR_INIT_ERROR:
|
|
{
|
|
// 1932 The directory service was unable to initialize the subsystem that allocates relative identifiers. ERROR_DS_RIDMGR_INIT_ERROR
|
|
pString = "ERROR_DS_RIDMGR_INIT_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_OBJ_CLASS_VIOLATION:
|
|
{
|
|
// 1933 The requested operation did not satisfy one or more constraints associated with the class of the object. ERROR_DS_OBJ_CLASS_VIOLATION
|
|
pString = "ERROR_DS_OBJ_CLASS_VIOLATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_CANT_ON_NON_LEAF:
|
|
{
|
|
// 1934 The directory service can perform the requested operation only on a leaf object. ERROR_DS_CANT_ON_NON_LEAF
|
|
pString = "ERROR_DS_CANT_ON_NON_LEAF";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_CANT_ON_RDN:
|
|
{
|
|
// 1935 The directory service cannot perform the requested operation on the RDN attribute of an object. ERROR_DS_CANT_ON_RDN
|
|
pString = "ERROR_DS_CANT_ON_RDN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_CANT_MOD_OBJ_CLASS:
|
|
{
|
|
// 1936 The directory service detected an attempt to modify the object class of an object. ERROR_DS_CANT_MOD_OBJ_CLASS
|
|
pString = "ERROR_DS_CANT_MOD_OBJ_CLASS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_CROSS_DOM_MOVE_ERROR:
|
|
{
|
|
// 1937 The requested cross domain move operation could not be performed. ERROR_DS_CROSS_DOM_MOVE_ERROR
|
|
pString = "ERROR_DS_CROSS_DOM_MOVE_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DS_GC_NOT_AVAILABLE:
|
|
{
|
|
// 1938 Unable to contact the global catalog server. ERROR_DS_GC_NOT_AVAILABLE
|
|
pString = "ERROR_DS_GC_NOT_AVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PIXEL_FORMAT:
|
|
{
|
|
// 2000 The pixel format is invalid. ERROR_INVALID_PIXEL_FORMAT
|
|
pString = "ERROR_INVALID_PIXEL_FORMAT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_DRIVER:
|
|
{
|
|
// 2001 The specified driver is invalid. ERROR_BAD_DRIVER
|
|
pString = "ERROR_BAD_DRIVER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_WINDOW_STYLE:
|
|
{
|
|
// 2002 The window style or class attribute is invalid for this operation. ERROR_INVALID_WINDOW_STYLE
|
|
pString = "ERROR_INVALID_WINDOW_STYLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_METAFILE_NOT_SUPPORTED:
|
|
{
|
|
// 2003 The requested metafile operation is not supported. ERROR_METAFILE_NOT_SUPPORTED
|
|
pString = "ERROR_METAFILE_NOT_SUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TRANSFORM_NOT_SUPPORTED:
|
|
{
|
|
// 2004 The requested transformation operation is not supported. ERROR_TRANSFORM_NOT_SUPPORTED
|
|
pString = "ERROR_TRANSFORM_NOT_SUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLIPPING_NOT_SUPPORTED:
|
|
{
|
|
// 2005 The requested clipping operation is not supported. ERROR_CLIPPING_NOT_SUPPORTED
|
|
pString = "ERROR_CLIPPING_NOT_SUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CONNECTED_OTHER_PASSWORD:
|
|
{
|
|
// 2108 The network connection was made successfully, but the user had to be prompted for a password other than the one originally specified. ERROR_CONNECTED_OTHER_PASSWORD
|
|
pString = "ERROR_CONNECTED_OTHER_PASSWORD";
|
|
break;
|
|
}
|
|
|
|
case ERROR_BAD_USERNAME:
|
|
{
|
|
// 2202 The specified username is invalid. ERROR_BAD_USERNAME
|
|
pString = "ERROR_BAD_USERNAME";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_CONNECTED:
|
|
{
|
|
// 2250 This network connection does not exist. ERROR_NOT_CONNECTED
|
|
pString = "ERROR_NOT_CONNECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_CMM:
|
|
{
|
|
// 2300 The specified color management module is invalid. ERROR_INVALID_CMM
|
|
pString = "ERROR_INVALID_CMM";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PROFILE:
|
|
{
|
|
// 2301 The specified color profile is invalid. ERROR_INVALID_PROFILE
|
|
pString = "ERROR_INVALID_PROFILE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TAG_NOT_FOUND:
|
|
{
|
|
// 2302 The specified tag was not found. ERROR_TAG_NOT_FOUND
|
|
pString = "ERROR_TAG_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_TAG_NOT_PRESENT:
|
|
{
|
|
// 2303 A required tag is not present. ERROR_TAG_NOT_PRESENT
|
|
pString = "ERROR_TAG_NOT_PRESENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DUPLICATE_TAG:
|
|
{
|
|
// 2304 The specified tag is already present. ERROR_DUPLICATE_TAG
|
|
pString = "ERROR_DUPLICATE_TAG";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE:
|
|
{
|
|
// 2305 The specified color profile is not associated with any device. ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE
|
|
pString = "ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PROFILE_NOT_FOUND:
|
|
{
|
|
// 2306 The specified color profile was not found. ERROR_PROFILE_NOT_FOUND
|
|
pString = "ERROR_PROFILE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_COLORSPACE:
|
|
{
|
|
// 2307 The specified color space is invalid. ERROR_INVALID_COLORSPACE
|
|
pString = "ERROR_INVALID_COLORSPACE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ICM_NOT_ENABLED:
|
|
{
|
|
// 2308 Image Color Management is not enabled. ERROR_ICM_NOT_ENABLED
|
|
pString = "ERROR_ICM_NOT_ENABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DELETING_ICM_XFORM:
|
|
{
|
|
// 2309 There was an error while deleting the color transform. ERROR_DELETING_ICM_XFORM
|
|
pString = "ERROR_DELETING_ICM_XFORM";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_TRANSFORM:
|
|
{
|
|
// 2310 The specified color transform is invalid. ERROR_INVALID_TRANSFORM
|
|
pString = "ERROR_INVALID_TRANSFORM";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OPEN_FILES:
|
|
{
|
|
// 2401 This network connection has files open or requests pending. ERROR_OPEN_FILES
|
|
pString = "ERROR_OPEN_FILES";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ACTIVE_CONNECTIONS:
|
|
{
|
|
// 2402 Active connections still exist. ERROR_ACTIVE_CONNECTIONS
|
|
pString = "ERROR_ACTIVE_CONNECTIONS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_IN_USE:
|
|
{
|
|
// 2404 The device is in use by an active process and cannot be disconnected. ERROR_DEVICE_IN_USE
|
|
pString = "ERROR_DEVICE_IN_USE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNKNOWN_PRINT_MONITOR:
|
|
{
|
|
// 3000 The specified print monitor is unknown. ERROR_UNKNOWN_PRINT_MONITOR
|
|
pString = "ERROR_UNKNOWN_PRINT_MONITOR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINTER_DRIVER_IN_USE:
|
|
{
|
|
// 3001 The specified printer driver is currently in use. ERROR_PRINTER_DRIVER_IN_USE
|
|
pString = "ERROR_PRINTER_DRIVER_IN_USE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SPOOL_FILE_NOT_FOUND:
|
|
{
|
|
// 3002 The spool file was not found. ERROR_SPOOL_FILE_NOT_FOUND
|
|
pString = "ERROR_SPOOL_FILE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SPL_NO_STARTDOC:
|
|
{
|
|
// 3003 A StartDocPrinter call was not issued. ERROR_SPL_NO_STARTDOC
|
|
pString = "ERROR_SPL_NO_STARTDOC";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SPL_NO_ADDJOB:
|
|
{
|
|
// 3004 An AddJob call was not issued. ERROR_SPL_NO_ADDJOB
|
|
pString = "ERROR_SPL_NO_ADDJOB";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED:
|
|
{
|
|
// 3005 The specified print processor has already been installed. ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED
|
|
pString = "ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINT_MONITOR_ALREADY_INSTALLED:
|
|
{
|
|
// 3006 The specified print monitor has already been installed. ERROR_PRINT_MONITOR_ALREADY_INSTALLED
|
|
pString = "ERROR_PRINT_MONITOR_ALREADY_INSTALLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_PRINT_MONITOR:
|
|
{
|
|
// 3007 The specified print monitor does not have the required functions. ERROR_INVALID_PRINT_MONITOR
|
|
pString = "ERROR_INVALID_PRINT_MONITOR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINT_MONITOR_IN_USE:
|
|
{
|
|
// 3008 The specified print monitor is currently in use. ERROR_PRINT_MONITOR_IN_USE
|
|
pString = "ERROR_PRINT_MONITOR_IN_USE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_PRINTER_HAS_JOBS_QUEUED:
|
|
{
|
|
// 3009 The requested operation is not allowed when there are jobs queued to the printer. ERROR_PRINTER_HAS_JOBS_QUEUED
|
|
pString = "ERROR_PRINTER_HAS_JOBS_QUEUED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SUCCESS_REBOOT_REQUIRED:
|
|
{
|
|
// 3010 The requested operation is successful. Changes will not be effective until the system is rebooted. ERROR_SUCCESS_REBOOT_REQUIRED
|
|
pString = "ERROR_SUCCESS_REBOOT_REQUIRED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SUCCESS_RESTART_REQUIRED:
|
|
{
|
|
// 3011 The requested operation is successful. Changes will not be effective until the service is restarted. ERROR_SUCCESS_RESTART_REQUIRED
|
|
pString = "ERROR_SUCCESS_RESTART_REQUIRED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WINS_INTERNAL:
|
|
{
|
|
// 4000 WINS encountered an error while processing the command. ERROR_WINS_INTERNAL
|
|
pString = "ERROR_WINS_INTERNAL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CAN_NOT_DEL_LOCAL_WINS:
|
|
{
|
|
// 4001 The local WINS can not be deleted. ERROR_CAN_NOT_DEL_LOCAL_WINS
|
|
pString = "ERROR_CAN_NOT_DEL_LOCAL_WINS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_STATIC_INIT:
|
|
{
|
|
// 4002 The importation from the file failed. ERROR_STATIC_INIT
|
|
pString = "ERROR_STATIC_INIT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INC_BACKUP:
|
|
{
|
|
// 4003 The backup failed. Was a full backup done before? ERROR_INC_BACKUP
|
|
pString = "ERROR_INC_BACKUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FULL_BACKUP:
|
|
{
|
|
// 4004 The backup failed. Check the directory to which you are backing the database. ERROR_FULL_BACKUP
|
|
pString = "ERROR_FULL_BACKUP";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REC_NON_EXISTENT:
|
|
{
|
|
// 4005 The name does not exist in the WINS database. ERROR_REC_NON_EXISTENT
|
|
pString = "ERROR_REC_NON_EXISTENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RPL_NOT_ALLOWED:
|
|
{
|
|
// 4006 Replication with a nonconfigured partner is not allowed. ERROR_RPL_NOT_ALLOWED
|
|
pString = "ERROR_RPL_NOT_ALLOWED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DHCP_ADDRESS_CONFLICT:
|
|
{
|
|
// 4100 The DHCP client has obtained an IP address that is already in use on the network. The local interface will be disabled until the DHCP client can obtain a new address. ERROR_DHCP_ADDRESS_CONFLICT
|
|
pString = "ERROR_DHCP_ADDRESS_CONFLICT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_GUID_NOT_FOUND:
|
|
{
|
|
// 4200 The GUID passed was not recognized as valid by a WMI data provider. ERROR_WMI_GUID_NOT_FOUND
|
|
pString = "ERROR_WMI_GUID_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_INSTANCE_NOT_FOUND:
|
|
{
|
|
// 4201 The instance name passed was not recognized as valid by a WMI data provider. ERROR_WMI_INSTANCE_NOT_FOUND
|
|
pString = "ERROR_WMI_INSTANCE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_ITEMID_NOT_FOUND:
|
|
{
|
|
// 4202 The data item ID passed was not recognized as valid by a WMI data provider. ERROR_WMI_ITEMID_NOT_FOUND
|
|
pString = "ERROR_WMI_ITEMID_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_TRY_AGAIN:
|
|
{
|
|
// 4203 The WMI request could not be completed and should be retried. ERROR_WMI_TRY_AGAIN
|
|
pString = "ERROR_WMI_TRY_AGAIN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_DP_NOT_FOUND:
|
|
{
|
|
// 4204 The WMI data provider could not be located. ERROR_WMI_DP_NOT_FOUND
|
|
pString = "ERROR_WMI_DP_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_UNRESOLVED_INSTANCE_REF:
|
|
{
|
|
// 4205 The WMI data provider references an instance set that has not been registered. ERROR_WMI_UNRESOLVED_INSTANCE_REF
|
|
pString = "ERROR_WMI_UNRESOLVED_INSTANCE_REF";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_ALREADY_ENABLED:
|
|
{
|
|
// 4206 The WMI data block or event notification has already been enabled. ERROR_WMI_ALREADY_ENABLED
|
|
pString = "ERROR_WMI_ALREADY_ENABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_GUID_DISCONNECTED:
|
|
{
|
|
// 4207 The WMI data block is no longer available. ERROR_WMI_GUID_DISCONNECTED
|
|
pString = "ERROR_WMI_GUID_DISCONNECTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_SERVER_UNAVAILABLE:
|
|
{
|
|
// 4208 The WMI data service is not available. ERROR_WMI_SERVER_UNAVAILABLE
|
|
pString = "ERROR_WMI_SERVER_UNAVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_DP_FAILED:
|
|
{
|
|
// 4209 The WMI data provider failed to carry out the request. ERROR_WMI_DP_FAILED
|
|
pString = "ERROR_WMI_DP_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_INVALID_MOF:
|
|
{
|
|
// 4210 The WMI MOF information is not valid. ERROR_WMI_INVALID_MOF
|
|
pString = "ERROR_WMI_INVALID_MOF";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WMI_INVALID_REGINFO:
|
|
{
|
|
// 4211 The WMI registration information is not valid. ERROR_WMI_INVALID_REGINFO
|
|
pString = "ERROR_WMI_INVALID_REGINFO";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MEDIA:
|
|
{
|
|
// 4300 The media identifier does not represent a valid medium. ERROR_INVALID_MEDIA
|
|
pString = "ERROR_INVALID_MEDIA";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_LIBRARY:
|
|
{
|
|
// 4301 The library identifier does not represent a valid library. ERROR_INVALID_LIBRARY
|
|
pString = "ERROR_INVALID_LIBRARY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_MEDIA_POOL:
|
|
{
|
|
// 4302 The media pool identifier does not represent a valid media pool. ERROR_INVALID_MEDIA_POOL
|
|
pString = "ERROR_INVALID_MEDIA_POOL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DRIVE_MEDIA_MISMATCH:
|
|
{
|
|
// 4303 The drive and medium are not compatible or exist in different libraries. ERROR_DRIVE_MEDIA_MISMATCH
|
|
pString = "ERROR_DRIVE_MEDIA_MISMATCH";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEDIA_OFFLINE:
|
|
{
|
|
// 4304 The medium currently exists in an offline library and must be online to perform this operation. ERROR_MEDIA_OFFLINE
|
|
pString = "ERROR_MEDIA_OFFLINE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_LIBRARY_OFFLINE:
|
|
{
|
|
// 4305 The operation cannot be performed on an offline library. ERROR_LIBRARY_OFFLINE
|
|
pString = "ERROR_LIBRARY_OFFLINE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_EMPTY:
|
|
{
|
|
// 4306 The library, drive, or media pool is empty. ERROR_EMPTY
|
|
pString = "ERROR_EMPTY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_EMPTY:
|
|
{
|
|
// 4307 The library, drive, or media pool must be empty to perform this operation. ERROR_NOT_EMPTY
|
|
pString = "ERROR_NOT_EMPTY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEDIA_UNAVAILABLE:
|
|
{
|
|
// 4308 No media is currently available in this media pool or library. ERROR_MEDIA_UNAVAILABLE
|
|
pString = "ERROR_MEDIA_UNAVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_DISABLED:
|
|
{
|
|
// 4309 A resource required for this operation is disabled. ERROR_RESOURCE_DISABLED
|
|
pString = "ERROR_RESOURCE_DISABLED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_CLEANER:
|
|
{
|
|
// 4310 The media identifier does not represent a valid cleaner. ERROR_INVALID_CLEANER
|
|
pString = "ERROR_INVALID_CLEANER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_UNABLE_TO_CLEAN:
|
|
{
|
|
// 4311 The drive cannot be cleaned or does not support cleaning. ERROR_UNABLE_TO_CLEAN
|
|
pString = "ERROR_UNABLE_TO_CLEAN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OBJECT_NOT_FOUND:
|
|
{
|
|
// 4312 The object identifier does not represent a valid object. ERROR_OBJECT_NOT_FOUND
|
|
pString = "ERROR_OBJECT_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DATABASE_FAILURE:
|
|
{
|
|
// 4313 Unable to read from or write to the database. ERROR_DATABASE_FAILURE
|
|
pString = "ERROR_DATABASE_FAILURE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DATABASE_FULL:
|
|
{
|
|
// 4314 The database is full. ERROR_DATABASE_FULL
|
|
pString = "ERROR_DATABASE_FULL";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEDIA_INCOMPATIBLE:
|
|
{
|
|
// 4315 The medium is not compatible with the device or media pool. ERROR_MEDIA_INCOMPATIBLE
|
|
pString = "ERROR_MEDIA_INCOMPATIBLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_NOT_PRESENT:
|
|
{
|
|
// 4316 The resource required for this operation does not exist. ERROR_RESOURCE_NOT_PRESENT
|
|
pString = "ERROR_RESOURCE_NOT_PRESENT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_OPERATION:
|
|
{
|
|
// 4317 The operation identifier is not valid. ERROR_INVALID_OPERATION
|
|
pString = "ERROR_INVALID_OPERATION";
|
|
break;
|
|
}
|
|
|
|
case ERROR_MEDIA_NOT_AVAILABLE:
|
|
{
|
|
// 4318 The media is not mounted or ready for use. ERROR_MEDIA_NOT_AVAILABLE
|
|
pString = "ERROR_MEDIA_NOT_AVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEVICE_NOT_AVAILABLE:
|
|
{
|
|
// 4319 The device is not ready for use. ERROR_DEVICE_NOT_AVAILABLE
|
|
pString = "ERROR_DEVICE_NOT_AVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REQUEST_REFUSED:
|
|
{
|
|
// 4320 The operator or administrator has refused the request. ERROR_REQUEST_REFUSED
|
|
pString = "ERROR_REQUEST_REFUSED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILE_OFFLINE:
|
|
{
|
|
// 4350 The remote storage service was not able to recall the file. ERROR_FILE_OFFLINE
|
|
pString = "ERROR_FILE_OFFLINE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REMOTE_STORAGE_NOT_ACTIVE:
|
|
{
|
|
// 4351 The remote storage service is not operational at this time. ERROR_REMOTE_STORAGE_NOT_ACTIVE
|
|
pString = "ERROR_REMOTE_STORAGE_NOT_ACTIVE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REMOTE_STORAGE_MEDIA_ERROR:
|
|
{
|
|
// 4352 The remote storage service encountered a media error. ERROR_REMOTE_STORAGE_MEDIA_ERROR
|
|
pString = "ERROR_REMOTE_STORAGE_MEDIA_ERROR";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_A_REPARSE_POINT:
|
|
{
|
|
// 4390 The file or directory is not a reparse point. ERROR_NOT_A_REPARSE_POINT
|
|
pString = "ERROR_NOT_A_REPARSE_POINT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_REPARSE_ATTRIBUTE_CONFLICT:
|
|
{
|
|
// 4391 The reparse point attribute cannot be set because it conflicts with an existing attribute. ERROR_REPARSE_ATTRIBUTE_CONFLICT
|
|
pString = "ERROR_REPARSE_ATTRIBUTE_CONFLICT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEPENDENT_RESOURCE_EXISTS:
|
|
{
|
|
// 5001 The cluster resource cannot be moved to another group because other resources are dependent on it. ERROR_DEPENDENT_RESOURCE_EXISTS
|
|
pString = "ERROR_DEPENDENT_RESOURCE_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEPENDENCY_NOT_FOUND:
|
|
{
|
|
// 5002 The cluster resource dependency cannot be found. ERROR_DEPENDENCY_NOT_FOUND
|
|
pString = "ERROR_DEPENDENCY_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DEPENDENCY_ALREADY_EXISTS:
|
|
{
|
|
// 5003 The cluster resource cannot be made dependent on the specified resource because it is already dependent. ERROR_DEPENDENCY_ALREADY_EXISTS
|
|
pString = "ERROR_DEPENDENCY_ALREADY_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_NOT_ONLINE:
|
|
{
|
|
// 5004 The cluster resource is not online. ERROR_RESOURCE_NOT_ONLINE
|
|
pString = "ERROR_RESOURCE_NOT_ONLINE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOST_NODE_NOT_AVAILABLE:
|
|
{
|
|
// 5005 A cluster node is not available for this operation. ERROR_HOST_NODE_NOT_AVAILABLE
|
|
pString = "ERROR_HOST_NODE_NOT_AVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_NOT_AVAILABLE:
|
|
{
|
|
// 5006 The cluster resource is not available. ERROR_RESOURCE_NOT_AVAILABLE
|
|
pString = "ERROR_RESOURCE_NOT_AVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_NOT_FOUND:
|
|
{
|
|
// 5007 The cluster resource could not be found. ERROR_RESOURCE_NOT_FOUND
|
|
pString = "ERROR_RESOURCE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_SHUTDOWN_CLUSTER:
|
|
{
|
|
// 5008 The cluster is being shut down. ERROR_SHUTDOWN_CLUSTER
|
|
pString = "ERROR_SHUTDOWN_CLUSTER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CANT_EVICT_ACTIVE_NODE:
|
|
{
|
|
// 5009 A cluster node cannot be evicted from the cluster while it is online. ERROR_CANT_EVICT_ACTIVE_NODE
|
|
pString = "ERROR_CANT_EVICT_ACTIVE_NODE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OBJECT_ALREADY_EXISTS:
|
|
{
|
|
// 5010 The object already exists. ERROR_OBJECT_ALREADY_EXISTS
|
|
pString = "ERROR_OBJECT_ALREADY_EXISTS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_OBJECT_IN_LIST:
|
|
{
|
|
// 5011 The object is already in the list. ERROR_OBJECT_IN_LIST
|
|
pString = "ERROR_OBJECT_IN_LIST";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GROUP_NOT_AVAILABLE:
|
|
{
|
|
// 5012 The cluster group is not available for any new requests. ERROR_GROUP_NOT_AVAILABLE
|
|
pString = "ERROR_GROUP_NOT_AVAILABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GROUP_NOT_FOUND:
|
|
{
|
|
// 5013 The cluster group could not be found. ERROR_GROUP_NOT_FOUND
|
|
pString = "ERROR_GROUP_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_GROUP_NOT_ONLINE:
|
|
{
|
|
// 5014 The operation could not be completed because the cluster group is not online. ERROR_GROUP_NOT_ONLINE
|
|
pString = "ERROR_GROUP_NOT_ONLINE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOST_NODE_NOT_RESOURCE_OWNER:
|
|
{
|
|
// 5015 The cluster node is not the owner of the resource. ERROR_HOST_NODE_NOT_RESOURCE_OWNER
|
|
pString = "ERROR_HOST_NODE_NOT_RESOURCE_OWNER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_HOST_NODE_NOT_GROUP_OWNER:
|
|
{
|
|
// 5016 The cluster node is not the owner of the group. ERROR_HOST_NODE_NOT_GROUP_OWNER
|
|
pString = "ERROR_HOST_NODE_NOT_GROUP_OWNER";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESMON_CREATE_FAILED:
|
|
{
|
|
// 5017 The cluster resource could not be created in the specified resource monitor. ERROR_RESMON_CREATE_FAILED
|
|
pString = "ERROR_RESMON_CREATE_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESMON_ONLINE_FAILED:
|
|
{
|
|
// 5018 The cluster resource could not be brought online by the resource monitor. ERROR_RESMON_ONLINE_FAILED
|
|
pString = "ERROR_RESMON_ONLINE_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_ONLINE:
|
|
{
|
|
// 5019 The operation could not be completed because the cluster resource is online. ERROR_RESOURCE_ONLINE
|
|
pString = "ERROR_RESOURCE_ONLINE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_QUORUM_RESOURCE:
|
|
{
|
|
// 5020 The cluster resource could not be deleted or brought offline because it is the quorum resource. ERROR_QUORUM_RESOURCE
|
|
pString = "ERROR_QUORUM_RESOURCE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_QUORUM_CAPABLE:
|
|
{
|
|
// 5021 The cluster could not make the specified resource a quorum resource because it is not capable of being a quorum resource. ERROR_NOT_QUORUM_CAPABLE
|
|
pString = "ERROR_NOT_QUORUM_CAPABLE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLUSTER_SHUTTING_DOWN:
|
|
{
|
|
// 5022 The cluster software is shutting down. ERROR_CLUSTER_SHUTTING_DOWN
|
|
pString = "ERROR_CLUSTER_SHUTTING_DOWN";
|
|
break;
|
|
}
|
|
|
|
case ERROR_INVALID_STATE:
|
|
{
|
|
// 5023 The group or resource is not in the correct state to perform the requested operation. ERROR_INVALID_STATE
|
|
pString = "ERROR_INVALID_STATE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_RESOURCE_PROPERTIES_STORED:
|
|
{
|
|
// 5024 The properties were stored but not all changes will take effect until the next time the resource is brought online. ERROR_RESOURCE_PROPERTIES_STORED
|
|
pString = "ERROR_RESOURCE_PROPERTIES_STORED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_QUORUM_CLASS:
|
|
{
|
|
// 5025 The cluster could not make the specified resource a quorum resource because it does not belong to a shared storage class. ERROR_NOT_QUORUM_CLASS
|
|
pString = "ERROR_NOT_QUORUM_CLASS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CORE_RESOURCE:
|
|
{
|
|
// 5026 The cluster resource could not be deleted since it is a core resource. ERROR_CORE_RESOURCE
|
|
pString = "ERROR_CORE_RESOURCE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_QUORUM_RESOURCE_ONLINE_FAILED:
|
|
{
|
|
// 5027 The quorum resource failed to come online. ERROR_QUORUM_RESOURCE_ONLINE_FAILED
|
|
pString = "ERROR_QUORUM_RESOURCE_ONLINE_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_QUORUMLOG_OPEN_FAILED:
|
|
{
|
|
// 5028 The quorum log could not be created or mounted successfully. ERROR_QUORUMLOG_OPEN_FAILED
|
|
pString = "ERROR_QUORUMLOG_OPEN_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLUSTERLOG_CORRUPT:
|
|
{
|
|
// 5029 The cluster log is corrupt. ERROR_CLUSTERLOG_CORRUPT
|
|
pString = "ERROR_CLUSTERLOG_CORRUPT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE:
|
|
{
|
|
// 5030 The record could not be written to the cluster log since it exceeds the maximum size. ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE
|
|
pString = "ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE:
|
|
{
|
|
// 5031 The cluster log exceeds its maximum size. ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE
|
|
pString = "ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND:
|
|
{
|
|
// 5032 No checkpoint record was found in the cluster log. ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND
|
|
pString = "ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE:
|
|
{
|
|
// 5033 The minimum required disk space needed for logging is not available. ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE
|
|
pString = "ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE";
|
|
break;
|
|
}
|
|
|
|
case ERROR_ENCRYPTION_FAILED:
|
|
{
|
|
// 6000 The specified file could not be encrypted. ERROR_ENCRYPTION_FAILED
|
|
pString = "ERROR_ENCRYPTION_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_DECRYPTION_FAILED:
|
|
{
|
|
// 6001 The specified file could not be decrypted. ERROR_DECRYPTION_FAILED
|
|
pString = "ERROR_DECRYPTION_FAILED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILE_ENCRYPTED:
|
|
{
|
|
// 6002 The specified file is encrypted and the user does not have the ability to decrypt it. ERROR_FILE_ENCRYPTED
|
|
pString = "ERROR_FILE_ENCRYPTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_RECOVERY_POLICY:
|
|
{
|
|
// 6003 There is no encryption recovery policy configured for this system. ERROR_NO_RECOVERY_POLICY
|
|
pString = "ERROR_NO_RECOVERY_POLICY";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_EFS:
|
|
{
|
|
// 6004 The required encryption driver is not loaded for this system. ERROR_NO_EFS
|
|
pString = "ERROR_NO_EFS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_WRONG_EFS:
|
|
{
|
|
// 6005 The file was encrypted with a different encryption driver than is currently loaded. ERROR_WRONG_EFS
|
|
pString = "ERROR_WRONG_EFS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_USER_KEYS:
|
|
{
|
|
// 6006 There are no EFS keys defined for the user. ERROR_NO_USER_KEYS
|
|
pString = "ERROR_NO_USER_KEYS";
|
|
break;
|
|
}
|
|
|
|
case ERROR_FILE_NOT_ENCRYPTED:
|
|
{
|
|
// 6007 The specified file is not encrypted. ERROR_FILE_NOT_ENCRYPTED
|
|
pString = "ERROR_FILE_NOT_ENCRYPTED";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NOT_EXPORT_FORMAT:
|
|
{
|
|
// 6008 The specified file is not in the defined EFS export format. ERROR_NOT_EXPORT_FORMAT
|
|
pString = "ERROR_NOT_EXPORT_FORMAT";
|
|
break;
|
|
}
|
|
|
|
case ERROR_NO_BROWSER_SERVERS_FOUND:
|
|
{
|
|
// 6118 The list of servers for this workgroup is not currently available ERROR_NO_BROWSER_SERVERS_FOUND
|
|
pString = "ERROR_NO_BROWSER_SERVERS_FOUND";
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DPFX(DPFPREP, 0, "Unknown Win32 error code %u/0x%lx", Error, Error );
|
|
|
|
pString = "Unknown Win32 error code!";
|
|
break;
|
|
}
|
|
}
|
|
|
|
return pString;
|
|
}
|
|
//**********************************************************************
|
|
|
|
|
|
//**********************************************************************
|
|
// ------------------------------
|
|
// GetWinsockErrorString - convert system error to a string
|
|
//
|
|
// Entry: Error code
|
|
//
|
|
// Exit: Pointer to string
|
|
// ------------------------------
|
|
#undef DPF_MODNAME
|
|
#define DPF_MODNAME "GetWinsockErrorString"
|
|
|
|
static char *GetWinsockErrorString( const DWORD WinsockError )
|
|
{
|
|
char *pString = NULL;
|
|
|
|
|
|
// what was the error code?
|
|
switch ( WinsockError )
|
|
{
|
|
case WSAEINTR:
|
|
{
|
|
pString = "WSAEINTR";
|
|
break;
|
|
}
|
|
|
|
case WSAEBADF:
|
|
{
|
|
pString = "WSAEBADF";
|
|
break;
|
|
}
|
|
|
|
case WSAEACCES:
|
|
{
|
|
pString = "WSAEACCES";
|
|
break;
|
|
}
|
|
|
|
case WSAEFAULT:
|
|
{
|
|
pString = "WSAEFAULT";
|
|
break;
|
|
}
|
|
|
|
case WSAEINVAL:
|
|
{
|
|
pString = "WSAEINVAL";
|
|
break;
|
|
}
|
|
|
|
case WSAEMFILE:
|
|
{
|
|
pString = "WSAEMFILE";
|
|
break;
|
|
}
|
|
|
|
case WSAEWOULDBLOCK:
|
|
{
|
|
pString = "WSAEWOULDBLOCK";
|
|
break;
|
|
}
|
|
|
|
case WSAEINPROGRESS:
|
|
{
|
|
pString = "WSAEINPROGRESS";
|
|
break;
|
|
}
|
|
|
|
case WSAEALREADY:
|
|
{
|
|
pString = "WSAEALREADY";
|
|
break;
|
|
}
|
|
|
|
case WSAENOTSOCK:
|
|
{
|
|
pString = "WSAENOTSOCK";
|
|
break;
|
|
}
|
|
|
|
case WSAEDESTADDRREQ:
|
|
{
|
|
pString = "WSAEDESTADDRREQ";
|
|
break;
|
|
}
|
|
|
|
case WSAEMSGSIZE:
|
|
{
|
|
pString = "WSAEMSGSIZE";
|
|
break;
|
|
}
|
|
|
|
case WSAEPROTOTYPE:
|
|
{
|
|
pString = "WSAEPROTOTYPE";
|
|
break;
|
|
}
|
|
|
|
case WSAENOPROTOOPT:
|
|
{
|
|
pString = "WSAENOPROTOOPT";
|
|
break;
|
|
}
|
|
|
|
case WSAEPROTONOSUPPORT:
|
|
{
|
|
pString = "WSAEPROTONOSUPPORT";
|
|
break;
|
|
}
|
|
|
|
case WSAESOCKTNOSUPPORT:
|
|
{
|
|
pString = "WSAESOCKTNOSUPPORT";
|
|
break;
|
|
}
|
|
|
|
case WSAEOPNOTSUPP:
|
|
{
|
|
pString = "WSAEOPNOTSUPP";
|
|
break;
|
|
}
|
|
|
|
case WSAEPFNOSUPPORT:
|
|
{
|
|
pString = "WSAEPFNOSUPPORT";
|
|
break;
|
|
}
|
|
|
|
case WSAEAFNOSUPPORT:
|
|
{
|
|
pString = "WSAEAFNOSUPPORT";
|
|
break;
|
|
}
|
|
|
|
case WSAEADDRINUSE:
|
|
{
|
|
pString = "WSAEADDRINUSE";
|
|
break;
|
|
}
|
|
|
|
case WSAEADDRNOTAVAIL:
|
|
{
|
|
pString = "WSAEADDRNOTAVAIL";
|
|
break;
|
|
}
|
|
|
|
case WSAENETDOWN:
|
|
{
|
|
pString = "WSAENETDOWN";
|
|
break;
|
|
}
|
|
|
|
case WSAENETUNREACH:
|
|
{
|
|
pString = "WSAENETUNREACH";
|
|
break;
|
|
}
|
|
|
|
case WSAENETRESET:
|
|
{
|
|
pString = "WSAENETRESET";
|
|
break;
|
|
}
|
|
|
|
case WSAECONNABORTED:
|
|
{
|
|
pString = "WSAECONNABORTED";
|
|
break;
|
|
}
|
|
|
|
case WSAECONNRESET:
|
|
{
|
|
pString = "WSAECONNRESET";
|
|
break;
|
|
}
|
|
|
|
case WSAENOBUFS:
|
|
{
|
|
pString = "WSAENOBUFS";
|
|
break;
|
|
}
|
|
|
|
case WSAEISCONN:
|
|
{
|
|
pString = "WSAEISCONN";
|
|
break;
|
|
}
|
|
|
|
case WSAENOTCONN:
|
|
{
|
|
pString = "WSAENOTCONN";
|
|
break;
|
|
}
|
|
|
|
case WSAESHUTDOWN:
|
|
{
|
|
pString = "WSAESHUTDOWN";
|
|
break;
|
|
}
|
|
|
|
case WSAETOOMANYREFS:
|
|
{
|
|
pString = "WSAETOOMANYREFS";
|
|
break;
|
|
}
|
|
|
|
case WSAETIMEDOUT:
|
|
{
|
|
pString = "WSAETIMEDOUT";
|
|
break;
|
|
}
|
|
|
|
case WSAECONNREFUSED:
|
|
{
|
|
pString = "WSAECONNREFUSED";
|
|
break;
|
|
}
|
|
|
|
case WSAELOOP:
|
|
{
|
|
pString = "WSAELOOP";
|
|
break;
|
|
}
|
|
|
|
case WSAENAMETOOLONG:
|
|
{
|
|
pString = "WSAENAMETOOLONG";
|
|
break;
|
|
}
|
|
|
|
case WSAEHOSTDOWN:
|
|
{
|
|
pString = "WSAEHOSTDOWN";
|
|
break;
|
|
}
|
|
|
|
case WSAEHOSTUNREACH:
|
|
{
|
|
pString = "WSAEHOSTUNREACH";
|
|
break;
|
|
}
|
|
|
|
case WSAENOTEMPTY:
|
|
{
|
|
pString = "WSAENOTEMPTY";
|
|
break;
|
|
}
|
|
|
|
case WSAEPROCLIM:
|
|
{
|
|
pString = "WSAEPROCLIM";
|
|
break;
|
|
}
|
|
|
|
case WSAEUSERS:
|
|
{
|
|
pString = "WSAEUSERS";
|
|
break;
|
|
}
|
|
|
|
case WSAEDQUOT:
|
|
{
|
|
pString = "WSAEDQUOT";
|
|
break;
|
|
}
|
|
|
|
case WSAESTALE:
|
|
{
|
|
pString = "WSAESTALE";
|
|
break;
|
|
}
|
|
|
|
case WSAEREMOTE:
|
|
{
|
|
pString = "WSAEREMOTE";
|
|
break;
|
|
}
|
|
|
|
case WSASYSNOTREADY:
|
|
{
|
|
pString = "WSASYSNOTREADY";
|
|
break;
|
|
}
|
|
|
|
case WSAVERNOTSUPPORTED:
|
|
{
|
|
pString = "WSAVERNOTSUPPORTED";
|
|
break;
|
|
}
|
|
|
|
case WSANOTINITIALISED:
|
|
{
|
|
pString = "WSANOTINITIALISED";
|
|
break;
|
|
}
|
|
|
|
case WSAEDISCON:
|
|
{
|
|
pString = "WSAEDISCON";
|
|
break;
|
|
}
|
|
|
|
case WSAENOMORE:
|
|
{
|
|
pString = "WSAENOMORE";
|
|
break;
|
|
}
|
|
|
|
case WSAECANCELLED:
|
|
{
|
|
pString = "WSAECANCELLED";
|
|
break;
|
|
}
|
|
|
|
case WSAEINVALIDPROCTABLE:
|
|
{
|
|
pString = "WSAEINVALIDPROCTABLE";
|
|
break;
|
|
}
|
|
|
|
case WSAEINVALIDPROVIDER:
|
|
{
|
|
pString = "WSAEINVALIDPROVIDER";
|
|
break;
|
|
}
|
|
|
|
case WSAEPROVIDERFAILEDINIT:
|
|
{
|
|
pString = "WSAEPROVIDERFAILEDINIT";
|
|
break;
|
|
}
|
|
|
|
case WSASYSCALLFAILURE:
|
|
{
|
|
pString = "WSASYSCALLFAILURE";
|
|
break;
|
|
}
|
|
|
|
case WSASERVICE_NOT_FOUND:
|
|
{
|
|
pString = "WSASERVICE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case WSATYPE_NOT_FOUND:
|
|
{
|
|
pString = "WSATYPE_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
case WSA_E_NO_MORE:
|
|
{
|
|
pString = "WSA_E_NO_MORE";
|
|
break;
|
|
}
|
|
|
|
case WSA_E_CANCELLED:
|
|
{
|
|
pString = "WSA_E_CANCELLED";
|
|
break;
|
|
}
|
|
|
|
case WSAEREFUSED:
|
|
{
|
|
pString = "WSAEREFUSED";
|
|
break;
|
|
}
|
|
|
|
/* Authoritative Answer: Host not found */
|
|
case WSAHOST_NOT_FOUND:
|
|
{
|
|
pString = "WSAHOST_NOT_FOUND";
|
|
break;
|
|
}
|
|
|
|
/* Non-Authoritative: Host not found, or SERVERFAIL */
|
|
case WSATRY_AGAIN:
|
|
{
|
|
pString = "WSATRY_AGAIN";
|
|
break;
|
|
}
|
|
|
|
/* Non-recoverable errors, FORMERR, REFUSED, NOTIMP */
|
|
case WSANO_RECOVERY:
|
|
{
|
|
pString = "WSANO_RECOVERY";
|
|
break;
|
|
}
|
|
|
|
/* Valid name, no data record of requested type */
|
|
case WSANO_DATA:
|
|
{
|
|
pString = "WSANO_DATA";
|
|
break;
|
|
}
|
|
|
|
// same error value as WSANO_DATA
|
|
// /* no address, look for MX record */
|
|
// case WSANO_ADDRESS:
|
|
// {
|
|
// pString = "WSANO_ADDRESS";
|
|
// break;
|
|
// }
|
|
|
|
/* at least one Reserve has arrived */
|
|
case WSA_QOS_RECEIVERS:
|
|
{
|
|
pString = "WSA_QOS_RECEIVERS";
|
|
break;
|
|
}
|
|
|
|
/* at least one Path has arrived */
|
|
case WSA_QOS_SENDERS:
|
|
{
|
|
pString = "WSA_QOS_SENDERS";
|
|
break;
|
|
}
|
|
|
|
/* there are no senders */
|
|
case WSA_QOS_NO_SENDERS:
|
|
{
|
|
pString = "WSA_QOS_NO_SENDERS";
|
|
break;
|
|
}
|
|
|
|
/* there are no receivers */
|
|
case WSA_QOS_NO_RECEIVERS:
|
|
{
|
|
pString = "WSA_QOS_NO_RECEIVERS";
|
|
break;
|
|
}
|
|
|
|
/* Reserve has been confirmed */
|
|
case WSA_QOS_REQUEST_CONFIRMED:
|
|
{
|
|
pString = "WSA_QOS_REQUEST_CONFIRMED";
|
|
break;
|
|
}
|
|
|
|
/* error due to lack of resources */
|
|
case WSA_QOS_ADMISSION_FAILURE:
|
|
{
|
|
pString = "WSA_QOS_ADMISSION_FAILURE";
|
|
break;
|
|
}
|
|
|
|
/* rejected for administrative reasons - bad credentials */
|
|
case WSA_QOS_POLICY_FAILURE:
|
|
{
|
|
pString = "WSA_QOS_POLICY_FAILURE";
|
|
break;
|
|
}
|
|
|
|
/* unknown or conflicting style */
|
|
case WSA_QOS_BAD_STYLE:
|
|
{
|
|
pString = "WSA_QOS_BAD_STYLE";
|
|
break;
|
|
}
|
|
|
|
/* problem with some part of the filterspec or providerspecific
|
|
* buffer in general */
|
|
case WSA_QOS_BAD_OBJECT:
|
|
{
|
|
pString = "WSA_QOS_BAD_OBJECT";
|
|
break;
|
|
}
|
|
|
|
/* problem with some part of the flowspec */
|
|
case WSA_QOS_TRAFFIC_CTRL_ERROR:
|
|
{
|
|
pString = "WSA_QOS_TRAFFIC_CTRL_ERROR";
|
|
break;
|
|
}
|
|
|
|
/* general error */
|
|
case WSA_QOS_GENERIC_ERROR:
|
|
{
|
|
pString = "WSA_QOS_GENERIC_ERROR";
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DPFX(DPFPREP, 0, "Unknown WinSock error code %u/0x%lx", WinsockError, WinsockError );
|
|
|
|
pString = "Unknown WinSock error";
|
|
break;
|
|
}
|
|
}
|
|
|
|
return pString;
|
|
}
|
|
//**********************************************************************
|
|
|
|
|
|
|
|
#ifndef DPNBUILD_NOSERIALSP
|
|
|
|
//
|
|
// Make this function appear under the modem provider spew
|
|
//
|
|
#undef DPF_SUBCOMP
|
|
#define DPF_SUBCOMP DN_SUBCOMP_MODEM
|
|
|
|
//**********************************************************************
|
|
// ------------------------------
|
|
// LclDisplayTAPIMessage - display TAPI Message contents
|
|
//
|
|
// Entry: output type
|
|
// error level
|
|
// pointer to TAPI message
|
|
//
|
|
// Exit: Nothing
|
|
// ------------------------------
|
|
#undef DPF_MODNAME
|
|
#define DPF_MODNAME "LclDisplayTAPIMessage"
|
|
void LclDisplayTAPIMessage( DWORD ErrorLevel, const LINEMESSAGE *const pLineMessage )
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "Message: hDevice: 0x%08x\tdwMessageID: 0x%08x\tdwCallbackInstance: 0x%p", pLineMessage->hDevice, pLineMessage->dwMessageID, pLineMessage->dwCallbackInstance );
|
|
DPFX(DPFPREP, ErrorLevel, "dwParam1: 0x%p\tdwParam2: 0x%p\tdwParam3: 0x%p", pLineMessage->dwParam1, pLineMessage->dwParam2, pLineMessage->dwParam3 );
|
|
|
|
// what was the message?
|
|
switch ( pLineMessage->dwMessageID )
|
|
{
|
|
case LINE_ADDRESSSTATE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_ADDRESSSTATE" );
|
|
break;
|
|
}
|
|
|
|
case LINE_AGENTSPECIFIC:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_AGENTSPECIFIC" );
|
|
break;
|
|
}
|
|
|
|
case LINE_AGENTSTATUS:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_AGENTSTATUS" );
|
|
break;
|
|
}
|
|
|
|
case LINE_APPNEWCALL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_APPNEWCALL" );
|
|
DPFX(DPFPREP, ErrorLevel, "Active line: 0x%08x\tCallback instance: 0x%p", pLineMessage->hDevice, pLineMessage->dwCallbackInstance );
|
|
DPFX(DPFPREP, ErrorLevel, "Line address: 0x%p\tNew handle: 0x%p\tPrivilege: 0x%p", pLineMessage->dwParam1, pLineMessage->dwParam2, pLineMessage->dwParam3 );
|
|
|
|
DNASSERT( pLineMessage->dwParam3 == LINECALLPRIVILEGE_OWNER );
|
|
DBG_CASSERT( sizeof( HCALL ) == sizeof( DWORD ) );
|
|
DBG_CASSERT( sizeof( DWORD ) == sizeof( UINT ) );
|
|
DNASSERT( pLineMessage->dwParam2 <= UINT_MAX );
|
|
|
|
break;
|
|
}
|
|
|
|
case LINE_CALLINFO:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_CALLINFO" );
|
|
break;
|
|
}
|
|
|
|
case LINE_CALLSTATE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_CALLSTATE" );
|
|
// what is the call state?
|
|
switch ( pLineMessage->dwParam1 )
|
|
{
|
|
// The call is idle-no call actually exists.
|
|
case LINECALLSTATE_IDLE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_IDLE" );
|
|
break;
|
|
}
|
|
|
|
// The call is being offered to the station, signaling the arrival of a new call. In some environments, a call in the offering state does not automatically alert the user. Alerting is done by the switch instructing the line to ring; it does not affect any call states.
|
|
case LINECALLSTATE_OFFERING:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_OFFERING" );
|
|
|
|
switch ( pLineMessage->dwParam2 )
|
|
{
|
|
// Indicates that the call is alerting at the current station (is accompanied by LINEDEVSTATE_RINGING messages), and if any application is set up to automatically answer, it may do so.
|
|
// MSDN states that 0 is assumed to be LINEOFFERINGMODE_ACTIVE
|
|
case 0:
|
|
case LINEOFFERINGMODE_ACTIVE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEOFFERINGMODE_ACTIVE" );
|
|
break;
|
|
}
|
|
|
|
// Indicates that the call is being offered at more than one station, but the current station is not alerting (for example, it may be an attendant station where the offering status is advisory, such as blinking a light).
|
|
case LINEOFFERINGMODE_INACTIVE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEOFFERINGMODE_INACTIVE" );
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
// The call was offering and has been accepted. This indicates to other (monitoring) applications that the current owner application has claimed responsibility for answering the call. In ISDN, this also indicates that alerting to both parties has started.
|
|
case LINECALLSTATE_ACCEPTED:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_ACCEPTED" );
|
|
break;
|
|
}
|
|
|
|
// The call is receiving a dial tone from the switch, which means that the switch is ready to receive a dialed number.
|
|
case LINECALLSTATE_DIALTONE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_DIALTONE" );
|
|
|
|
switch ( pLineMessage->dwParam2 )
|
|
{
|
|
// This is a "normal" dial tone, which typically is a continuous tone.
|
|
case LINEDIALTONEMODE_NORMAL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDIALTONEMODE_NORMAL" );
|
|
break;
|
|
}
|
|
|
|
// This is a special dial tone indicating that a certain condition is currently in effect.
|
|
case LINEDIALTONEMODE_SPECIAL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDIALTONEMODE_SPECIAL" );
|
|
break;
|
|
}
|
|
|
|
// This is an internal dial tone, as within a PBX.
|
|
case LINEDIALTONEMODE_INTERNAL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDIALTONEMODE_INTERNAL" );
|
|
break;
|
|
}
|
|
|
|
// This is an external (public network) dial tone.
|
|
case LINEDIALTONEMODE_EXTERNAL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDIALTONEMODE_EXTERNAL" );
|
|
break;
|
|
}
|
|
|
|
// The dial tone mode is currently unknown, but may become known later.
|
|
case LINEDIALTONEMODE_UNKNOWN:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDIALTONEMODE_UNKNOWN" );
|
|
break;
|
|
}
|
|
|
|
// The dial tone mode is unavailable and cannot become known.
|
|
case LINEDIALTONEMODE_UNAVAIL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDIALTONEMODE_UNAVAIL" );
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
// Destination address information (a phone number) is being sent to the switch over the call. Note that lineGenerateDigits does not place the line into the dialing state.
|
|
case LINECALLSTATE_DIALING:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_DIALING" );
|
|
break;
|
|
}
|
|
|
|
// The call is receiving ringback from the called address. Ringback indicates that the other station has been reached and is being alerted.
|
|
case LINECALLSTATE_RINGBACK:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_RINGBACK" );
|
|
break;
|
|
}
|
|
|
|
// The call is receiving a busy tone. Busy tone indicates that the call cannot be completed—either a circuit (trunk) or the remote party's station are in use.
|
|
case LINECALLSTATE_BUSY:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_BUSY" );
|
|
|
|
switch ( pLineMessage->dwParam2 )
|
|
{
|
|
// The busy signal indicates that the called party's station is busy. This is usually signaled by means of a "normal" busy tone.
|
|
case LINEBUSYMODE_STATION:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEBUSYMODE_STATION" );
|
|
break;
|
|
}
|
|
|
|
// The busy signal indicates that a trunk or circuit is busy. This is usually signaled with a "long" busy tone.
|
|
case LINEBUSYMODE_TRUNK:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEBUSYMODE_TRUNK" );
|
|
break;
|
|
}
|
|
|
|
// The busy signal's specific mode is currently unknown, but may become known later.
|
|
case LINEBUSYMODE_UNKNOWN:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEBUSYMODE_UNKNOWN" );
|
|
break;
|
|
}
|
|
|
|
// The busy signal's specific mode is unavailable and cannot become known.
|
|
case LINEBUSYMODE_UNAVAIL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEBUSYMODE_UNAVAIL" );
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
// Special information is sent by the network. Special information is typically sent when the destination cannot be reached.
|
|
case LINECALLSTATE_SPECIALINFO:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_SPECIALINFO" );
|
|
|
|
switch ( pLineMessage->dwParam2 )
|
|
{
|
|
// This special information tone precedes a "no circuit" or emergency announcement (trunk blockage category).
|
|
case LINESPECIALINFO_NOCIRCUIT:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINESPECIALINFO_NOCIRCUIT" );
|
|
break;
|
|
}
|
|
|
|
// This special information tone precedes a vacant number, AIS, Centrex number change and nonworking station, access code not dialed or dialed in error, or manual intercept operator message (customer irregularity category).
|
|
case LINESPECIALINFO_CUSTIRREG:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINESPECIALINFO_CUSTIRREG" );
|
|
break;
|
|
}
|
|
|
|
// This special information tone precedes a reorder announcement (equipment irregularity category).
|
|
case LINESPECIALINFO_REORDER:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINESPECIALINFO_REORDER" );
|
|
break;
|
|
}
|
|
|
|
// Specifics about the special information tone are currently unknown but may become known later.
|
|
case LINESPECIALINFO_UNKNOWN:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINESPECIALINFO_UNKNOWN" );
|
|
break;
|
|
}
|
|
|
|
// Specifics about the special information tone are unavailable and cannot become known.
|
|
case LINESPECIALINFO_UNAVAIL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINESPECIALINFO_UNAVAIL" );
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
// The call has been established and the connection is made. Information is able to flow over the call between the originating address and the destination address.
|
|
case LINECALLSTATE_CONNECTED:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_CONNECTED" );
|
|
|
|
switch ( pLineMessage->dwParam2 )
|
|
{
|
|
// Indicates that the call is connected at the current station (the current station is a participant in the call).
|
|
// case zero is supposed to be assumed 'Active'
|
|
case 0:
|
|
case LINECONNECTEDMODE_ACTIVE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECONNECTEDMODE_ACTIVE" );
|
|
break;
|
|
}
|
|
|
|
// Indicates that the call is active at one or more other stations, but the current station is not a participant in the call.
|
|
case LINECONNECTEDMODE_INACTIVE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECONNECTEDMODE_INACTIVE" );
|
|
break;
|
|
}
|
|
|
|
// Indicates that the station is an active participant in the call, but that the remote party has placed the call on hold (the other party considers the call to be in the onhold state). Normally, such information is available only when both endpoints of the call fall within the same switching domain.
|
|
case LINECONNECTEDMODE_ACTIVEHELD:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECONNECTEDMODE_ACTIVEHELD" );
|
|
break;
|
|
}
|
|
|
|
// Indicates that the station is not an active participant in the call, and that the remote party has placed the call on hold.
|
|
case LINECONNECTEDMODE_INACTIVEHELD:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECONNECTEDMODE_INACTIVEHELD" );
|
|
break;
|
|
}
|
|
|
|
// Indicates that the service provider received affirmative notification that the call has entered the connected state (for example, through answer supervision or similar mechanisms).
|
|
case LINECONNECTEDMODE_CONFIRMED:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECONNECTEDMODE_CONFIRMED" );
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
// note that we're connected
|
|
DBG_CASSERT( sizeof( pLineMessage->hDevice ) == sizeof( HCALL ) );
|
|
|
|
break;
|
|
}
|
|
|
|
// Dialing has completed and the call is proceeding through the switch or telephone network.
|
|
case LINECALLSTATE_PROCEEDING:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_PROCEEDING" );
|
|
break;
|
|
}
|
|
|
|
// The call is on hold by the switch.
|
|
case LINECALLSTATE_ONHOLD:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_ONHOLD" );
|
|
break;
|
|
}
|
|
|
|
// The call is currently a member of a multiparty conference call.
|
|
case LINECALLSTATE_CONFERENCED:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_CONFERENCED" );
|
|
break;
|
|
}
|
|
|
|
// The call is currently on hold while it is being added to a conference.
|
|
case LINECALLSTATE_ONHOLDPENDCONF:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_ONHOLDPENDCONF" );
|
|
break;
|
|
}
|
|
|
|
// The call is currently on hold awaiting transfer to another number.
|
|
case LINECALLSTATE_ONHOLDPENDTRANSFER:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_ONHOLDPENTRANSFER" );
|
|
break;
|
|
}
|
|
|
|
// The remote party has disconnected from the call.
|
|
case LINECALLSTATE_DISCONNECTED:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_DISCONNECTED" );
|
|
|
|
switch ( pLineMessage->dwParam2 )
|
|
{
|
|
|
|
// This is a "normal" disconnect request by the remote party, the call was terminated normally.
|
|
case LINEDISCONNECTMODE_NORMAL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_NORMAL" );
|
|
break;
|
|
}
|
|
|
|
// The reason for the disconnect request is unknown.
|
|
case LINEDISCONNECTMODE_UNKNOWN:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_UNKNOWN" );
|
|
break;
|
|
}
|
|
|
|
// The remote user has rejected the call.
|
|
case LINEDISCONNECTMODE_REJECT:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_REJECT" );
|
|
break;
|
|
}
|
|
|
|
// The call was picked up from elsewhere.
|
|
case LINEDISCONNECTMODE_PICKUP:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_PICKUP" );
|
|
break;
|
|
}
|
|
|
|
// The call was forwarded by the switch.
|
|
case LINEDISCONNECTMODE_FORWARDED:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_FORWARDED" );
|
|
break;
|
|
}
|
|
|
|
// The remote user's station is busy.
|
|
case LINEDISCONNECTMODE_BUSY:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_BUSY" );
|
|
break;
|
|
}
|
|
|
|
// The remote user's station does not answer.
|
|
case LINEDISCONNECTMODE_NOANSWER:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_NOANSWER" );
|
|
break;
|
|
}
|
|
|
|
// A dial tone was not detected within a service-provider defined timeout, at a point during dialing when one was expected (such as at a "W" in the dialable string). This can also occur without a service-provider-defined timeout period or without a value specified in the dwWaitForDialTone member of the LINEDIALPARAMS structure.
|
|
case LINEDISCONNECTMODE_NODIALTONE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_NODIALTONE" );
|
|
break;
|
|
}
|
|
|
|
// The destination address in invalid.
|
|
case LINEDISCONNECTMODE_BADADDRESS:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_BADADDRESS" );
|
|
break;
|
|
}
|
|
|
|
// The remote user could not be reached.
|
|
case LINEDISCONNECTMODE_UNREACHABLE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_UNREACHABLE" );
|
|
break;
|
|
}
|
|
|
|
// The network is congested.
|
|
case LINEDISCONNECTMODE_CONGESTION:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_CONGESTION" );
|
|
break;
|
|
}
|
|
|
|
// The remote user's station equipment is incompatible for the type of call requested.
|
|
case LINEDISCONNECTMODE_INCOMPATIBLE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_INCOMPATIBLE" );
|
|
break;
|
|
}
|
|
|
|
// The reason for the disconnect is unavailable and cannot become known later.
|
|
case LINEDISCONNECTMODE_UNAVAIL:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINEDISCONNECTMODE_UNAVAIL" );
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
// note that we've disconnected
|
|
DBG_CASSERT( sizeof( pLineMessage->hDevice ) == sizeof( HCALL ) );
|
|
|
|
break;
|
|
}
|
|
|
|
// The state of the call is not known. This may be due to limitations of the call-progress detection implementation.
|
|
case LINECALLSTATE_UNKNOWN:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINECALLSTATE_UNKNOWN" );
|
|
break;
|
|
}
|
|
}
|
|
|
|
// what are our priveleges?
|
|
switch ( pLineMessage->dwParam3 )
|
|
{
|
|
// no privilege change
|
|
case 0:
|
|
{
|
|
break;
|
|
}
|
|
|
|
// we're now monitoring the call
|
|
case LINECALLPRIVILEGE_MONITOR:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "We're now monitoring the call" );
|
|
break;
|
|
}
|
|
|
|
// we're now owning the call
|
|
case LINECALLPRIVILEGE_OWNER:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "We're now owner of the call" );
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
// unknown privilege
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
case LINE_CLOSE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_CLOSE" );
|
|
break;
|
|
}
|
|
|
|
case LINE_DEVSPECIFIC:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_DEVSPECIFIC" );
|
|
break;
|
|
}
|
|
|
|
case LINE_DEVSPECIFICFEATURE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_DEVSPECIFICFEATURE" );
|
|
break;
|
|
}
|
|
|
|
case LINE_GATHERDIGITS:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_GATHERDIGITS" );
|
|
break;
|
|
}
|
|
|
|
case LINE_GENERATE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_GENERATE" );
|
|
break;
|
|
}
|
|
|
|
case LINE_LINEDEVSTATE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_LINEDEVSTATE" );
|
|
break;
|
|
}
|
|
|
|
case LINE_MONITORDIGITS:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_MONITORDIGITS" );
|
|
break;
|
|
}
|
|
|
|
case LINE_MONITORMEDIA:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_MONITORMEDIA" );
|
|
break;
|
|
}
|
|
|
|
case LINE_MONITORTONE:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_MONITORTONE" );
|
|
break;
|
|
}
|
|
|
|
case LINE_REPLY:
|
|
{
|
|
// dwDevice and dwParam3 are supposed to be zero
|
|
DNASSERT( pLineMessage->hDevice == 0 );
|
|
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_REPLY" );
|
|
DPFX(DPFPREP, ErrorLevel, "hDevice: 0x%08x\tdwMessageID: 0x%08x\tdwCallbackInstance: 0x%p", pLineMessage->hDevice, pLineMessage->dwMessageID, pLineMessage->dwCallbackInstance );
|
|
DPFX(DPFPREP, ErrorLevel, "dwParam1: 0x%p\tdwParam2: 0x%p\tdwParam3: 0x%p", pLineMessage->dwParam1, pLineMessage->dwParam2, pLineMessage->dwParam3 );
|
|
|
|
break;
|
|
}
|
|
|
|
case LINE_REQUEST:
|
|
{
|
|
DPFX(DPFPREP, ErrorLevel, "LINE_REQUEST" );
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
DPFX(DPFPREP, 0, "Unknown TAPI message %u/0x%lx", pLineMessage->dwMessageID, pLineMessage->dwMessageID );
|
|
DNASSERT( FALSE );
|
|
break;
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
//**********************************************************************
|
|
|
|
#endif // ! DPNBUILD_NOSERIALSP
|
|
|
|
#endif // DBG
|
|
|
|
|