2.2.2.4 SMB Error Classes and Codes
This section provides an overview of status codes that can be returned by the SMB commands listed in this document, including mappings between the NTSTATUS codes used in the NT LAN Manager dialect, the SMBSTATUS class/code pairs used in earlier SMB dialects, and common POSIX equivalents. The POSIX error code mappings are based upon those used in the Xenix server implementation. This is not an exhaustive listing and MUST NOT be considered normative.
Each command and subcommand description also includes a list of status codes that are returned by CIFS-compliant servers. Individual implementations can return status codes from their underlying operating systems; it is up to the implementer to decide how to interpret those status codes.
The listing below is organized by SMBSTATUS Error Class. It shows SMBSTATUS Error Code values and a general description, as well as mappings from NTSTATUS values ([MS-ERREF] section 2.3.1) and POSIX-style error codes where possible. Note that multiple NTSTATUS values can map to a single SMBSTATUS value.
SUCCESS Class 0x00
Error code |
NTSTATUS values |
POSIX equivalent |
Description |
---|---|---|---|
SUCCESS 0x0000 |
STATUS_OK |
0 |
Everything worked, no problems. |
ERRDOS Class 0x01
Error code |
NTSTATUS values |
POSIX equivalent |
Description |
---|---|---|---|
ERRbadfunc 0x0001 |
STATUS_NOT_IMPLEMENTED 0xC0000002 STATUS_INVALID_DEVICE_REQUEST 0xC0000010 STATUS_ILLEGAL_FUNCTION 0xC00000AF |
EINVAL |
Invalid Function. |
ERRbadfile 0x0002 |
STATUS_NO_SUCH_FILE 0xC000000F STATUS_NO_SUCH_DEVICE 0xC000000E STATUS_OBJECT_NAME_NOT_FOUND 0xC0000034 |
ENOENT |
File not found. |
ERRbadpath 0x0003 |
STATUS_OBJECT_PATH_INVALID 0xC0000039 STATUS_OBJECT_PATH_NOT_FOUND 0xC000003A STATUS_OBJECT_PATH_SYNTAX_BAD 0xC000003B STATUS_DFS_EXIT_PATH_FOUND 0xC000009B STATUS_REDIRECTOR_NOT_STARTED 0xC00000FB |
ENOENT |
A component in the path prefix is not a directory. |
ERRnofids 0x0004 |
STATUS_TOO_MANY_OPENED_FILES 0xC000011F |
EMFILE |
Too many open files. No FIDs are available. |
ERRnoaccess 0x0005 |
STATUS_ACCESS_DENIED 0xC0000022 STATUS_INVALID_LOCK_SEQUENCE 0xC000001E STATUS_INVALID_VIEW_SIZE 0xC000001F STATUS_ALREADY_COMMITTED 0xC0000021 STATUS_PORT_CONNECTION_REFUSED 0xC0000041 STATUS_THREAD_IS_TERMINATING 0xC000004B STATUS_DELETE_PENDING 0xC0000056 STATUS_PRIVILEGE_NOT_HELD 0xC0000061 STATUS_LOGON_FAILURE 0xC000006D STATUS_FILE_IS_A_DIRECTORY 0xC00000BA STATUS_FILE_RENAMED 0xC00000D5 STATUS_PROCESS_IS_TERMINATING 0xC000010A STATUS_DIRECTORY_NOT_EMPTY 0xC0000101 STATUS_CANNOT_DELETE 0xC0000121 STATUS_FILE_DELETED 0xC0000123 |
EPERM |
Access denied. |
ERRbadfid 0x0006 |
STATUS_SMB_BAD_FID 0x00060001 STATUS_INVALID_HANDLE 0xC0000008 STATUS_OBJECT_TYPE_MISMATCH 0xC0000024 STATUS_PORT_DISCONNECTED 0xC0000037 STATUS_INVALID_PORT_HANDLE 0xC0000042 STATUS_FILE_CLOSED 0xC0000128 STATUS_HANDLE_NOT_CLOSABLE 0xC0000235 |
EBADF |
Invalid FID. |
ERRbadmcb 0x0007 |
|
|
Memory Control Blocks were destroyed. |
ERRnomem 0x0008 |
STATUS_SECTION_TOO_BIG 0xC0000040 STATUS_TOO_MANY_PAGING_FILES 0xC0000097 STATUS_INSUFF_SERVER_RESOURCES 0xC0000205 |
ENOMEM |
Insufficient server memory to perform the requested operation. |
ERRbadmem 0x0009 |
|
EFAULT |
The server performed an invalid memory access (invalid address). |
ERRbadenv 0x000A |
|
|
Invalid environment. |
ERRbadformat 0x000B |
|
|
Invalid format. |
ERRbadaccess 0x000C |
STATUS_OS2_INVALID_ACCESS 0x000C0001 STATUS_ACCESS_DENIED 0xC00000CA |
|
Invalid open mode. |
ERRbaddata 0x000D |
STATUS_DATA_ERROR 0xC000009C |
E2BIG |
Bad data. (May be generated by IOCTL calls on the server.) |
ERRbaddrive 0x000F |
|
ENXIO |
Invalid drive specified. |
ERRremcd 0x0010 |
STATUS_DIRECTORY_NOT_EMPTY 0xC0000101 |
|
Remove of directory failed because it was not empty. |
ERRdiffdevice 0x0011 |
STATUS_NOT_SAME_DEVICE 0xC00000D4 |
EXDEV |
A file system operation (such as a rename) across two devices was attempted. |
ERRnofiles 0x0012 |
STATUS_NO_MORE_FILES 0x80000006 |
|
No (more) files found following a file search command. |
ERRgeneral 0x001F |
STATUS_UNSUCCESSFUL 0xC0000001 |
|
General error. |
ERRbadshare 0x0020 |
STATUS_SHARING_VIOLATION 0xC0000043 |
ETXTBSY |
Sharing violation. A requested open mode conflicts with the sharing mode of an existing file handle. |
ERRlock 0x0021 |
STATUS_FILE_LOCK_CONFLICT 0xC0000054 STATUS_LOCK_NOT_GRANTED 0xC0000055 |
EDEADLOCK |
A lock request specified an invalid locking mode, or conflicted with an existing file lock. |
ERReof 0x0026 |
STATUS_END_OF_FILE 0xC0000011 |
EEOF |
Attempted to read beyond the end of the file. |
ERRunsup 0x0032 |
STATUS_NOT_SUPPORTED 0XC00000BB |
|
This command is not supported by the server. |
ERRfilexists 0x0050 |
STATUS_OBJECT_NAME_COLLISION 0xC0000035 |
EEXIST |
An attempt to create a file or directory failed because an object with the same pathname already exists. |
ERRinvalidparam 0x0057 |
STATUS_INVALID_PARAMETER 0xC000000D |
|
A parameter supplied with the message is invalid. |
ERRunknownlevel 0x007C |
STATUS_OS2_INVALID_LEVEL 0x007C0001 |
|
Invalid information level. |
ERRinvalidseek 0x0083 |
STATUS_OS2_NEGATIVE_SEEK 0x00830001 |
|
An attempt was made to seek to a negative absolute offset within a file. |
ERROR_NOT_LOCKED 0x009E |
STATUS_RANGE_NOT_LOCKED 0xC000007E |
|
The byte range specified in an unlock request was not locked. |
ERROR_NO_MORE_SEARCH_HANDLES 0x0071 |
STATUS_OS2_NO_MORE_SIDS 0x00710001 |
|
Maximum number of searches has been exhausted. |
ERROR_CANCEL_VIOLATION 0x00AD |
STATUS_OS2_CANCEL_VIOLATION 0x00AD0001 |
|
No lock request was outstanding for the supplied cancel region. |
ERROR_ATOMIC_LOCKS_NOT_SUPPORTED 0x00AE |
STATUS_OS2_ATOMIC_LOCKS_NOT_SUPPORTED 0x00AE0001 |
|
The file system does not support atomic changes to the lock type. |
ERRbadpipe 0x00E6 |
STATUS_INVALID_INFO_CLASS 0xC0000003 STATUS_INVALID_PIPE_STATE 0xC00000AD STATUS_INVALID_READ_MODE 0xC00000B4 |
|
Invalid named pipe. |
ERROR_CANNOT_COPY 0x010A |
STATUS_OS2_CANNOT_COPY 0x010A0001 |
|
The copy functions cannot be used. |
ERRpipebusy 0x00E7 |
STATUS_INSTANCE_NOT_AVAILABLE 0xC00000AB STATUS_PIPE_NOT_AVAILABLE 0xC00000AC STATUS_PIPE_BUSY 0xC00000AE |
|
All instances of the designated named pipe are busy. |
ERRpipeclosing 0x00E8 |
STATUS_PIPE_CLOSING 0xC00000B1 STATUS_PIPE_EMPTY 0xC00000D9 |
|
The designated named pipe is in the process of being closed. |
ERRnotconnected 0x00E9 |
STATUS_PIPE_DISCONNECTED 0xC00000B0 |
|
The designated named pipe exists, but there is no server process listening on the server side. |
ERRmoredata 0x00EA |
STATUS_BUFFER_OVERFLOW 0x80000005 STATUS_MORE_PROCESSING_REQUIRED 0xC0000016 |
|
There is more data available to read on the designated named pipe. |
ERRbadealist 0x00FF |
|
|
Inconsistent extended attribute list. |
ERROR_EAS_ DIDNT_FIT 0x0113 |
STATUS_EA_TOO_LARGE 0xC0000050 STATUS_OS2_EAS_DIDNT_FIT 0x01130001 |
|
Either there are no extended attributes, or the available extended attributes did not fit into the response. |
ERROR_EAS_ NOT_SUPPORTED 0x011A |
STATUS_EAS_NOT_SUPPORTED 0xC000004F |
|
The server file system does not support Extended Attributes. |
ERROR_EA_ACCESS_DENIED 0x03E2 |
STATUS_OS2_EA_ACCESS_DENIED 0x03E20001 |
|
Access to the extended attribute was denied. |
ERR_NOTIFY_ENUM_DIR 0x03FE |
STATUS_NOTIFY_ENUM_DIR 0x0000010C |
|
More changes have occurred within the directory than will fit within the specified Change Notify response buffer. |
ERRSRV Class 0x02
Error code |
NTSTATUS values |
POSIX equivalent |
Description |
---|---|---|---|
ERRerror 0x0001 |
STATUS_INVALID_SMB 0x00010002 |
|
Unspecified server error.<23> |
ERRbadpw 0x0002 |
STATUS_WRONG_PASSWORD 0xC000006A |
|
Invalid password. |
ERRbadpath 0x0003 |
STATUS_PATH_NOT_COVERED 0xC0000257 |
|
DFS pathname not on local server. |
ERRaccess 0x0004 |
STATUS_NETWORK_ACCESS_DENIED 0xC00000CA |
EACCES |
Access denied. The specified UID does not have permission to execute the requested command within the current context (TID). |
ERRinvtid 0x0005 |
STATUS_NETWORK_NAME_DELETED 0xC00000C9 STATUS_SMB_BAD_TID 0x00050002 |
|
The TID specified in the command was invalid. Earlier documentation, with the exception of [SNIA], refers to this error code as ERRinvnid (Invalid Network Path Identifier). [SNIA] uses both names.<24> |
ERRinvnetname 0x0006 |
STATUS_BAD_NETWORK_NAME 0xC00000CC |
|
Invalid server name in Tree Connect. |
ERRinvdevice 0x0007 |
STATUS_BAD_DEVICE_TYPE 0xC00000CB |
|
A printer request was made to a non-printer device or, conversely, a non-printer request was made to a printer device. |
ERRinvsess 0x0010 |
|
|
Invalid Connection ID (CID). This error code is only defined when the Direct IPX connectionless transport is in use. |
ERRworking 0x0011 |
|
|
A command with matching MID or SequenceNumber is currently being processed. This error code is defined only when the Direct IPX connectionless transport is in use. |
ERRnotme 0x0012 |
|
|
Incorrect NetBIOS Called Name when starting an SMB session over Direct IPX. This error code is only defined when the Direct IPX connectionless transport is in use. |
ERRbadcmd 0x0016 |
STATUS_SMB_BAD_COMMAND 0x00160002 |
|
An unknown SMB command code was received by the server. |
ERRqfull 0x0031 |
STATUS_PRINT_QUEUE_FULL 0xC00000C6 |
|
Print queue is full - too many queued items. |
ERRqtoobig 0x0032 |
STATUS_NO_SPOOL_SPACE 0xC00000C7 |
|
Print queue is full - no space for queued item, or queued item too big. |
ERRqeof 0x0033 |
|
|
End Of File on print queue dump. |
ERRinvpfid 0x0034 |
STATUS_PRINT_CANCELLED 0xC00000C8 |
|
Invalid FID for print file. |
ERRsmbcmd 0x0040 |
STATUS_NOT_IMPLEMENTED 0xC0000002 |
|
Unrecognized SMB command code. |
ERRsrverror 0x0041 |
STATUS_UNEXPECTED_NETWORK_ERROR 0xC00000C4 |
|
Internal server error. |
ERRfilespecs 0x0043 |
|
|
The FID and pathname contain incompatible values. |
ERRbadpermits 0x0045 |
STATUS_NETWORK_ACCESS_DENIED 0xC00000CA |
|
An invalid combination of access permissions for a file or directory was presented. The server cannot set the requested attributes. |
ERRsetattrmode 0x0047 |
|
|
The attribute mode presented in a set mode request was invalid. |
ERRtimeout 0x0058 |
STATUS_UNEXPECTED_NETWORK_ERROR 0xC00000C4 STATUS_IO_TIMEOUT 0xC00000B5 |
|
Operation timed out. |
ERRnoresource 0x0059 |
STATUS_REQUEST_NOT_ACCEPTED 0xC00000D0 |
|
No resources currently available for this SMB request. |
ERRtoomanyuids 0x005A |
STATUS_TOO_MANY_SESSIONS 0xC00000CE |
|
Too many UIDs active for this SMB connection. |
ERRbaduid 0x005B |
STATUS_SMB_BAD_UID 0x005B0002 |
|
The UID specified is not known as a valid ID on this server session. |
ERRnotconnected 0x00E9 |
STATUS_PIPE_DISCONNECTED 0xC00000B0 |
EPIPE |
Write to a named pipe with no reader. |
ERRusempx 0x00FA |
STATUS_SMB_USE_MPX 0x00FA0002 |
|
Temporarily unable to support RAW mode transfers. Use MPX mode. |
ERRusestd 0x00FB |
STATUS_SMB_USE_STANDARD 0x00FB0002 |
|
Temporarily unable to support RAW or MPX mode transfers. Use standard read/write. |
ERRcontmpx 0x00FC |
STATUS_SMB_CONTINUE_MPX 0x00FC0002 |
|
Continue in MPX mode. This error code is reserved for future use. |
ERRaccountExpired 0x08BF |
STATUS_ACCOUNT_DISABLED 0xC0000072 STATUS_ACCOUNT_EXPIRED 0xC0000193 |
|
User account on the target machine is disabled or has expired. |
ERRbadClient 0x08C0 |
STATUS_INVALID_WORKSTATION 0xC0000070 |
|
The client does not have permission to access this server. |
ERRbadLogonTime 0x08C1 |
STATUS_INVALID_LOGON_HOURS 0xC000006F |
|
Access to the server is not permitted at this time. |
ERRpasswordExpired 0x08C2 |
STATUS_PASSWORD_EXPIRED 0xC0000071 STATUS_PASSWORD_MUST_CHANGE 0xC0000224 |
|
The user's password has expired. |
ERRnosupport 0xFFFF |
STATUS_SMB_NO_SUPPORT 0XFFFF0002 |
|
Function not supported by the server. |
ERRHRD Class 0x03
Error code |
NTSTATUS values |
POSIX equivalent |
Description |
---|---|---|---|
ERRnowrite 0x0013 |
STATUS_MEDIA_WRITE_PROTECTED 0xC00000A2 |
EROFS |
Attempt to modify a read-only file system. |
ERRbadunit 0x0014 |
|
ENODEV |
Unknown unit. |
ERRnotready 0x0015 |
STATUS_NO_MEDIA_IN_DEVICE 0xC0000013 |
EUCLEAN |
Drive not ready. |
ERRbadcmd 0x0016 |
STATUS_INVALID_DEVICE_STATE 0xC0000184 |
|
Unknown command. |
ERRdata 0x0017 |
STATUS_DATA_ERROR 0xC000003E STATUS_CRC_ERROR 0xC000003F |
EIO |
Data error (incorrect CRC). |
ERRbadreq 0x0018 |
STATUS_DATA_ERROR 0xC000003E |
ERANGE |
Bad request structure length. |
ERRseek 0x0019 |
|
|
Seek error. |
ERRbadmedia 0x001A |
STATUS_DISK_CORRUPT_ERROR 0xC0000032 |
|
Unknown media type. |
ERRbadsector 0x001B |
STATUS_NONEXISTENT_SECTOR 0xC0000015 |
|
Sector not found. |
ERRnopaper 0x001C |
STATUS_DEVICE_PAPER_EMPTY 0x8000000E |
|
Printer out of paper. |
ERRwrite 0x001D |
|
|
Write fault. |
ERRread 0x001E |
|
|
Read fault. |
ERRgeneral 0x001F |
|
|
General hardware failure. |
ERRbadshare 0x0020 |
STATUS_SHARING_VIOLATION 0xC0000043 |
ETXTBSY |
An attempted open operation conflicts with an existing open. |
ERRlock 0x0021 |
STATUS_FILE_LOCK_CONFLICT 0xC0000054 |
EDEADLOCK |
A lock request specified an invalid locking mode, or conflicted with an existing file lock. |
ERRwrongdisk 0x0022 |
STATUS_WRONG_VOLUME 0xC0000012 |
|
The wrong disk was found in a drive. |
ERRFCBUnavail 0x0023 |
|
|
No server-side File Control Blocks are available to process the request. |
ERRsharebufexc 0x0024 |
|
|
A sharing buffer has been exceeded. |
ERRdiskfull 0x0027 |
STATUS_DISK_FULL 0xC000007F |
ENOSPC |
No space on file system. |
ERRCMD Class 0xFF
The ERRCMD error class is used to indicate that the server received a command that was not in the SMB format. No error codes are defined for use with the ERRCMD (0XFF) class.<25>