Windows2000/private/mvdm/inc/exterr.h

187 lines
6.2 KiB
C

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
exterr.h
Abstract:
Taken from mvdm\dos\v86\inc\error.inc
Author:
Richard L Firth (rfirth) 17-Oct-1992
Revision History:
*/
/** ERROR.INC - DOS Error Codes
; The newer (DOS 2.0 and above) "XENIX-style" calls
; return error codes through AX. If an error occurred then
; the carry bit will be set and the error code is in AX. If no error
; occurred then the carry bit is reset and AX contains returned info.
; Since the set of error codes is being extended as we extend the operating
; system, we have provided a means for applications to ask the system for a
; recommended course of action when they receive an error.
; The GetExtendedError system call returns a universal error, an error
; location and a recommended course of action. The universal error code is
; a symptom of the error REGARDLESS of the context in which GetExtendedError
; is issued.
*/
// 2.0 error codes
#define error_invalid_function 1
#define error_file_not_found 2
#define error_path_not_found 3
#define error_too_many_open_files 4
#define error_access_denied 5
#define error_invalid_handle 6
#define error_arena_trashed 7
#define error_not_enough_memory 8
#define error_invalid_block 9
#define error_bad_environment 10
#define error_bad_format 11
#define error_invalid_access 12
#define error_invalid_data 13
/**** reserved EQU 14 ; *****/
#define error_invalid_drive 15
#define error_current_directory 16
#define error_not_same_device 17
#define error_no_more_files 18
// These are the universal int 24 mappings for the old INT 24 set of errors
#define error_write_protect 19
#define error_bad_unit 20
#define error_not_ready 21
#define error_bad_command 22
#define error_CRC 23
#define error_bad_length 24
#define error_Seek 25
#define error_not_DOS_disk 26
#define error_sector_not_found 27
#define error_out_of_paper 28
#define error_write_fault 29
#define error_read_fault 30
#define error_gen_failure 31
// the new 3.0 error codes reported through INT 24
#define error_sharing_violation 32
#define error_lock_violation 33
#define error_wrong_disk 34
#define error_FCB_unavailable 35
#define error_sharing_buffer_exceeded 36
#define error_Code_Page_Mismatched 37 // DOS 4.00 ;AN000;
#define error_handle_EOF 38 // DOS 4.00 ;AN000;
#define error_handle_Disk_Full 39 // DOS 4.00 ;AN000;
// New OEM network-related errors are 50-79
#define error_not_supported 50
#define error_net_access_denied 65 //M028
// End of INT 24 reportable errors
#define error_file_exists 80
#define error_DUP_FCB 81 // *****
#define error_cannot_make 82
#define error_FAIL_I24 83
// New 3.0 network related error codes
#define error_out_of_structures 84
#define error_Already_assigned 85
#define error_invalid_password 86
#define error_invalid_parameter 87
#define error_NET_write_fault 88
#define error_sys_comp_not_loaded 90 // DOS 4.00 ;AN000;
// BREAK <Interrupt 24 error codes>
/** Int24 Error Codes **/
#define error_I24_write_protect 0
#define error_I24_bad_unit 1
#define error_I24_not_ready 2
#define error_I24_bad_command 3
#define error_I24_CRC 4
#define error_I24_bad_length 5
#define error_I24_Seek 6
#define error_I24_not_DOS_disk 7
#define error_I24_sector_not_found 8
#define error_I24_out_of_paper 9
#define error_I24_write_fault 0xA
#define error_I24_read_fault 0xB
#define error_I24_gen_failure 0xC
// NOTE: Code 0DH is used by MT-DOS.
#define error_I24_wrong_disk 0xF
// THE FOLLOWING ARE MASKS FOR THE AH REGISTER ON Int 24
// NOTE: ABORT is ALWAYS allowed
#define Allowed_FAIL 0x08 // 00001000B
#define Allowed_RETRY 0x10 // 00010000B
#define Allowed_IGNORE 0x20 // 00100000B
#define I24_operation 0x01 // 00000001B ;Z if READ,NZ if Write
#define I24_area 0x60 // 00000110B ; 00 if DOS
// ; 01 if FAT
// ; 10 if root DIR
// ; 11 if DATA
#define I24_class 0x80 // 10000000B ;Z if DISK, NZ if FAT or char
// BREAK <GetExtendedError CLASSes ACTIONs LOCUSs>
/** The GetExtendedError call takes an error code and returns CLASS,
; ACTION and LOCUS codes to help programs determine the proper action
; to take for error codes that they don't explicitly understand.
*/
// Values for error CLASS
#define errCLASS_OutRes 1 // Out of Resource
#define errCLASS_TempSit 2 // Temporary Situation
#define errCLASS_Auth 3 // Permission problem
#define errCLASS_Intrn 4 // Internal System Error
#define errCLASS_HrdFail 5 // Hardware Failure
#define errCLASS_SysFail 6 // System Failure
#define errCLASS_Apperr 7 // Application Error
#define errCLASS_NotFnd 8 // Not Found
#define errCLASS_BadFmt 9 // Bad Format
#define errCLASS_Locked 10 // Locked
#define errCLASS_Media 11 // Media Failure
#define errCLASS_Already 12 // Collision with Existing Item
#define errCLASS_Unk 13 // Unknown/other
// Values for error ACTION
#define errACT_Retry 1 // Retry
#define errACT_DlyRet 2 // Delay Retry, retry after pause
#define errACT_User 3 // Ask user to regive info
#define errACT_Abort 4 // abort with clean up
#define errACT_Panic 5 // abort immediately
#define errACT_Ignore 6 // ignore
#define errACT_IntRet 7 // Retry after User Intervention
// Values for error LOCUS
#define errLOC_Unk 1 // No appropriate value
#define errLOC_Disk 2 // Random Access Mass Storage
#define errLOC_Net 3 // Network
#define errLOC_SerDev 4 // Serial Device
#define errLOC_Mem 5 // Memory