windows-nt/Source/XPSP1/NT/enduser/troubleshoot/launcher/client/tslerror.h
2020-09-26 16:20:57 +08:00

159 lines
8.5 KiB
C

//
// MODULE: tslerror.h
//
// PURPOSE: Warning and error codes for the TSLauncher.
//
// PROJECT: Local Troubleshooter Launcher for the Device Manager
//
// COMPANY: Saltmine Creative, Inc. (206)-633-4743 support@saltmine.com
//
// AUTHORS: Joe Mabel and Richard Meadows
//
// ORIGINAL DATE: 2-26-98
//
//
// Version Date By Comments
//--------------------------------------------------------------------
// V0.1 - RM Original
///////////////////////
#define TSL_OK 0
#define TSL_ERROR_BAD_HANDLE 1 // Handle hTSL passed into function is bad.
#define TSL_ERROR_OUT_OF_MEMORY 2 // Out-of-memory detected
#define TSL_ERROR_OBJECT_GONE 3 // The LaunchServ returned a negative HRESULT.
#define TSL_ERROR_GENERAL 4 // Can't launch a troubleshooter. There are
// error statuses to be accessed by TSLStatus.
#define TSL_ERROR_NO_NETWORK 5 // Can't identify an appropriate troubleshooting
// network.
#define TSL_ERROR_ILLFORMED_MACHINE_ID 6 // Machine ID is not correctly formed. Sniffing
// disabled.
#define TSL_ERROR_BAD_MACHINE_ID 7 // A machine ID was specified but can't be used.
// Sniffing disabled.
#define TSL_ERROR_ILLFORMED_DEVINST_ID 8 // Device Instance ID is not correctly formed.
// Sniffing disabled.
#define TSL_ERROR_BAD_DEVINST_ID 9 // Device Instance ID was specified but can't be
// used. Sniffing disabled.
#define TSL_ERROR_UNKNOWN_APP 10 // An unrecognized application was specified.
#define TSL_ERROR_UNKNOWN_VER 11 // Unrecognized version (no such version
// associated with application)
#define TSL_ERROR_ASSERTION 13 // An assertion failed
// The next several errors could be thought of as "hard failures of mapping", but we do not
// treat them as hard errors because even if mapping fails totally, we may still be able to
// launch to a generic troubleshooter.
#define TSL_ERROR_MAP_BAD_SEEK 101 // failure while seeking in the mapping file.
// Although, at a low level, a bad seek just indicates seeking to an inappropriate file
// offset, in practice a bad seek would indicate a serious problem either in the mapping file
// or in the code: we should only be seeking to offsets which the contents of the mapping file
// told us to seek to.
#define TSL_ERROR_MAP_BAD_READ 102 // failure while reading from the mapping file.
// Although, at a low level, a bad read just indicates (for example) reading past EOF, in
// practice a bad read would indicate a serious problem either in the mapping file or in
// the code: we should only be reading (1) the header or (2) records which the contents of
// the mapping file told us to read.
#define TSL_ERROR_MAP_CANT_OPEN_MAP_FILE 103
#define TSL_ERROR_MAP_BAD_HEAD_MAP_FILE 104 // failed to read even the header of the map file
// The next several errors should never be seen by applications. They would mean that the
// launch server is mis-using the mapping code.
#define TSM_STAT_NEED_VER_TO_SET_DEF_VER 111 // Trying to apply a version default, but you
// haven't yet successfully set a version
// as a basis to look up the default
#define TSM_STAT_NEED_APP_TO_SET_VER 112 // tried to look up version without previously
// setting application
#define TSM_STAT_UID_NOT_FOUND 113 // a string could not be mapped to a UID.
// In the existing TSMapClient class,
// this means that the name could not be found
// in the region of the mapping file where
// it belongs (e.g. that a version string is
// not in the list of versions for the
// current application.)
// This should always be turned into something
// more specific before it is passed to
// higher-level code.
#define TSL_MIN_WARNING 1000
#define TSL_WARNING_NO_PROBLEM_NODE 1004 // Can't identify an appropriate problem node.
// Troubleshooting will proceed from "first page"
// for this troubleshooting network.
#define TSL_WARNING_NO_NODE 1005 // A state value was specified for a nonexistent
// node
#define TSL_WARNING_NO_STATE 1006 // A non-existent state value was specified for an
// otherwise valid node.
#define TSL_WARNING_LANGUAGE 1007 // Can't apply specified language to this
// particular problem (no language-appropriate
// troubleshooting network). Successively default
// to standard language of this machine and to
// English.
#define TSL_WARNING_NO_ONLINE 1008 // Can't obey stated preference for Online
// Troubleshooter
#define TSL_WARNING_ONLINE_ONLY 1009 // Can't obey stated preference against Online
// Troubleshooter
#define TSL_WARNING_GENERAL 1010 // Can launch a troubleshooter, but there are
// warnings to be accessed by TSLStatus.
#define TSL_WARNING_ILLFORMED_DEV_ID 1011 // Device ID is not correctly formed.
#define TSL_WARNING_BAD_DEV_ID 1012 // A correctly formed but invalid device ID
#define TSL_WARNING_ILLFORMED_CLASS_GUID 1013 // Device Class GUID is not correctly formed.
#define TSL_WARNING_BAD_CLASS_GUID 1014 // A correctly formed but invalid device Class GUID
#define TSL_WARNING_UNKNOWN_APPPROBLEM 1015 // App problem passed in, but this problem
// name is nowhere in the mapping file.
// Troubleshooting will proceed on the basis of
// device information, ignoring specified problem
#define TSL_WARNING_UNUSED_APPPROBLEM 1016 // App problem passed in, and the name is
// recognized but can't be used in conjunction
// with the device information given.
// Troubleshooting will proceed on the basis of
// device information, ignoring specified problem
#define TSL_W_CONTAINER_WAIT_TIMED_OUT 1017 // The container did not respond within the time
// out value specified in the go method.
#define TSL_WARNING_END_OF_VER_CHAIN 1018 // Should never be seen by the calling app.
// Indicates that we are at the end of the chain
// in applying default versions.
#define TSL_MAX_WARNING 1999
// the range 2000-2099 is reserved for internal use by the mapping code.
// statuses in this range should not ever be exposed outside of class TSMapRuntimeAbstract
// and its subclasses.
#define TSL_MIN_RESERVED_FOR_MAPPING 2000
#define TSL_MAX_RESERVED_FOR_MAPPING 2099
// Errors generated by LaunchServ. Need to start @ 4,000 to avoid confusion with
// codes returned by the local troubleshooter.
#define TSL_E_CONTAINER_REG 4000 // Could not find the path to hh.exe / iexplore.exe in the registry.
#define TSL_E_CONTAINER_NF 4001 // Found the path to the browser, but it is not at that location.
#define TSL_E_WEB_PAGE_REG 4002 // Could not find the path to the web page in the registry.
#define TSL_E_WEB_PAGE_NF 4003 // Found the path to the web page, but it is not at that location.
#define TSL_E_CREATE_PROC 4004 // Could not create the hh.exe / iexplore.exe process.
#define TSL_E_MEM_EXCESSIVE 4005 // An unexpected amount of memory is required. i.e. a path name that is longer than MAX_PATH.
#define TSL_E_MAPPING_DB_REG 4006 // Could not find the path to the binary mapping file in the registry.
#define TSL_E_MAPPING_DB_NF 4007 // Found the path to the mapping file, but it is not at that location.
#define TSL_E_NETWORK_REG 4008 // Could not find the path to the network resources (DSZ files).
#define TSL_E_NETWORK_NF 4009 // Could not find a DSC or DSZ file with the network name.
#define TSL_E_NODE_EMP 4010 // A call to set node had a null node name or node state.
#define TSL_E_NO_DEFAULT_NET 4011 // The mapping class failed to get a network and there is not a default network defined in the registry.
#define TSL_E_SNIFF_SCRIPT_REG 4012 // Could not find the path to the sniff script in the registry.
#define TSL_E_COPY_SNIFF_SCRIPT 4013 // Could not create the hh.exe / iexplore.exe process.
inline bool TSLIsHardError(DWORD dwStatus)
{
return (dwStatus == TSL_ERROR_BAD_HANDLE
|| dwStatus == TSL_ERROR_OUT_OF_MEMORY
|| dwStatus == TSL_ERROR_OBJECT_GONE);
}
inline bool TSLIsError(DWORD dwStatus)
{
return (TSL_OK != dwStatus && dwStatus < TSL_MIN_WARNING || dwStatus > TSL_MAX_WARNING);
}
inline bool TSLIsWarning(DWORD dwStatus)
{
return (dwStatus >= TSL_MIN_WARNING && dwStatus <= TSL_MAX_WARNING);
}
#define TSL_E_FAIL -1
#define TSL_SERV_FAILED(hRes) (FAILED(hRes) && TSL_E_FAIL != hRes)