Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    1) // SPDX-License-Identifier: GPL-2.0-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    3)  *   fs/cifs/netmisc.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    5)  *   Copyright (c) International Business Machines  Corp., 2002,2008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    6)  *   Author(s): Steve French (sfrench@us.ibm.com)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    8)  *   Error mapping routines from Samba libsmb/errormap.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300    9)  *   Copyright (C) Andrew Tridgell 2001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   10)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   12) #include <linux/net.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   13) #include <linux/string.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   14) #include <linux/in.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   15) #include <linux/ctype.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   16) #include <linux/fs.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   17) #include <asm/div64.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   18) #include <asm/byteorder.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   19) #include <linux/inet.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   20) #include "cifsfs.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   21) #include "cifspdu.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   22) #include "cifsglob.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   23) #include "cifsproto.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   24) #include "smberr.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   25) #include "cifs_debug.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   26) #include "nterr.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   28) struct smb_to_posix_error {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   29) 	__u16 smb_err;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   30) 	int posix_code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   31) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   33) static const struct smb_to_posix_error mapping_table_ERRDOS[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   34) 	{ERRbadfunc, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   35) 	{ERRbadfile, -ENOENT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   36) 	{ERRbadpath, -ENOTDIR},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   37) 	{ERRnofids, -EMFILE},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   38) 	{ERRnoaccess, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   39) 	{ERRbadfid, -EBADF},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   40) 	{ERRbadmcb, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   41) 	{ERRnomem, -EREMOTEIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   42) 	{ERRbadmem, -EFAULT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   43) 	{ERRbadenv, -EFAULT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   44) 	{ERRbadformat, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   45) 	{ERRbadaccess, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   46) 	{ERRbaddata, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   47) 	{ERRbaddrive, -ENXIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   48) 	{ERRremcd, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   49) 	{ERRdiffdevice, -EXDEV},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   50) 	{ERRnofiles, -ENOENT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   51) 	{ERRwriteprot, -EROFS},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   52) 	{ERRbadshare, -EBUSY},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   53) 	{ERRlock, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   54) 	{ERRunsup, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   55) 	{ERRnosuchshare, -ENXIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   56) 	{ERRfilexists, -EEXIST},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   57) 	{ERRinvparm, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   58) 	{ERRdiskfull, -ENOSPC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   59) 	{ERRinvname, -ENOENT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   60) 	{ERRinvlevel, -EOPNOTSUPP},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   61) 	{ERRdirnotempty, -ENOTEMPTY},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   62) 	{ERRnotlocked, -ENOLCK},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   63) 	{ERRcancelviolation, -ENOLCK},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   64) 	{ERRalreadyexists, -EEXIST},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   65) 	{ERRmoredata, -EOVERFLOW},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   66) 	{ERReasnotsupported, -EOPNOTSUPP},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   67) 	{ErrQuota, -EDQUOT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   68) 	{ErrNotALink, -ENOLINK},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   69) 	{ERRnetlogonNotStarted, -ENOPROTOOPT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   70) 	{ERRsymlink, -EOPNOTSUPP},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   71) 	{ErrTooManyLinks, -EMLINK},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   72) 	{0, 0}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   73) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   75) static const struct smb_to_posix_error mapping_table_ERRSRV[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   76) 	{ERRerror, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   77) 	{ERRbadpw, -EACCES},  /* was EPERM */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   78) 	{ERRbadtype, -EREMOTE},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   79) 	{ERRaccess, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   80) 	{ERRinvtid, -ENXIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   81) 	{ERRinvnetname, -ENXIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   82) 	{ERRinvdevice, -ENXIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   83) 	{ERRqfull, -ENOSPC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   84) 	{ERRqtoobig, -ENOSPC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   85) 	{ERRqeof, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   86) 	{ERRinvpfid, -EBADF},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   87) 	{ERRsmbcmd, -EBADRQC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   88) 	{ERRsrverror, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   89) 	{ERRbadBID, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   90) 	{ERRfilespecs, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   91) 	{ERRbadLink, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   92) 	{ERRbadpermits, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   93) 	{ERRbadPID, -ESRCH},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   94) 	{ERRsetattrmode, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   95) 	{ERRpaused, -EHOSTDOWN},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   96) 	{ERRmsgoff, -EHOSTDOWN},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   97) 	{ERRnoroom, -ENOSPC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   98) 	{ERRrmuns, -EUSERS},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   99) 	{ERRtimeout, -ETIME},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  100) 	{ERRnoresource, -EREMOTEIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  101) 	{ERRtoomanyuids, -EUSERS},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  102) 	{ERRbaduid, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  103) 	{ERRusempx, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  104) 	{ERRusestd, -EIO},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  105) 	{ERR_NOTIFY_ENUM_DIR, -ENOBUFS},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  106) 	{ERRnoSuchUser, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  107) /*	{ERRaccountexpired, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  108) 	{ERRbadclient, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  109) 	{ERRbadLogonTime, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  110) 	{ERRpasswordExpired, -EACCES},*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  111) 	{ERRaccountexpired, -EKEYEXPIRED},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  112) 	{ERRbadclient, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  113) 	{ERRbadLogonTime, -EACCES},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  114) 	{ERRpasswordExpired, -EKEYEXPIRED},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  116) 	{ERRnosupport, -EINVAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  117) 	{0, 0}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  118) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  120) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  121)  * Convert a string containing text IPv4 or IPv6 address to binary form.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  122)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  123)  * Returns 0 on failure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  124)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  125) static int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  126) cifs_inet_pton(const int address_family, const char *cp, int len, void *dst)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  127) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  128) 	int ret = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  129) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  130) 	/* calculate length by finding first slash or NULL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  131) 	if (address_family == AF_INET)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  132) 		ret = in4_pton(cp, len, dst, '\\', NULL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  133) 	else if (address_family == AF_INET6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  134) 		ret = in6_pton(cp, len, dst , '\\', NULL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  136) 	cifs_dbg(NOISY, "address conversion returned %d for %*.*s\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  137) 		 ret, len, len, cp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  138) 	if (ret > 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  139) 		ret = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  140) 	return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  141) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  143) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  144)  * Try to convert a string to an IPv4 address and then attempt to convert
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  145)  * it to an IPv6 address if that fails. Set the family field if either
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  146)  * succeeds. If it's an IPv6 address and it has a '%' sign in it, try to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  147)  * treat the part following it as a numeric sin6_scope_id.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  148)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  149)  * Returns 0 on failure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  150)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  151) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  152) cifs_convert_address(struct sockaddr *dst, const char *src, int len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  153) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  154) 	int rc, alen, slen;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  155) 	const char *pct;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  156) 	char scope_id[13];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  157) 	struct sockaddr_in *s4 = (struct sockaddr_in *) dst;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  158) 	struct sockaddr_in6 *s6 = (struct sockaddr_in6 *) dst;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  159) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  160) 	/* IPv4 address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  161) 	if (cifs_inet_pton(AF_INET, src, len, &s4->sin_addr.s_addr)) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  162) 		s4->sin_family = AF_INET;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  163) 		return 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  164) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  166) 	/* attempt to exclude the scope ID from the address part */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  167) 	pct = memchr(src, '%', len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  168) 	alen = pct ? pct - src : len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  170) 	rc = cifs_inet_pton(AF_INET6, src, alen, &s6->sin6_addr.s6_addr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  171) 	if (!rc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  172) 		return rc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  174) 	s6->sin6_family = AF_INET6;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  175) 	if (pct) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  176) 		/* grab the scope ID */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  177) 		slen = len - (alen + 1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  178) 		if (slen <= 0 || slen > 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  179) 			return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  180) 		memcpy(scope_id, pct + 1, slen);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  181) 		scope_id[slen] = '\0';
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  182) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  183) 		rc = kstrtouint(scope_id, 0, &s6->sin6_scope_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  184) 		rc = (rc == 0) ? 1 : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  185) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  186) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  187) 	return rc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  188) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  190) void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  191) cifs_set_port(struct sockaddr *addr, const unsigned short int port)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  192) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  193) 	switch (addr->sa_family) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  194) 	case AF_INET:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  195) 		((struct sockaddr_in *)addr)->sin_port = htons(port);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  196) 		break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  197) 	case AF_INET6:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  198) 		((struct sockaddr_in6 *)addr)->sin6_port = htons(port);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  199) 		break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  200) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  201) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  203) /*****************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  204) convert a NT status code to a dos class/code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  205)  *****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  206) /* NT status -> dos error map */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  207) static const struct {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  208) 	__u8 dos_class;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  209) 	__u16 dos_code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  210) 	__u32 ntstatus;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  211) } ntstatus_to_dos_map[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  212) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  213) 	ERRDOS, ERRgeneral, NT_STATUS_UNSUCCESSFUL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  214) 	ERRDOS, ERRbadfunc, NT_STATUS_NOT_IMPLEMENTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  215) 	ERRDOS, ERRinvlevel, NT_STATUS_INVALID_INFO_CLASS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  216) 	ERRDOS, 24, NT_STATUS_INFO_LENGTH_MISMATCH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  217) 	ERRHRD, ERRgeneral, NT_STATUS_ACCESS_VIOLATION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  218) 	ERRHRD, ERRgeneral, NT_STATUS_IN_PAGE_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  219) 	ERRHRD, ERRgeneral, NT_STATUS_PAGEFILE_QUOTA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  220) 	ERRDOS, ERRbadfid, NT_STATUS_INVALID_HANDLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  221) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_INITIAL_STACK}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  222) 	ERRDOS, 193, NT_STATUS_BAD_INITIAL_PC}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  223) 	ERRDOS, 87, NT_STATUS_INVALID_CID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  224) 	ERRHRD, ERRgeneral, NT_STATUS_TIMER_NOT_CANCELED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  225) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  226) 	ERRDOS, ERRbadfile, NT_STATUS_NO_SUCH_DEVICE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  227) 	ERRDOS, ERRbadfile, NT_STATUS_NO_SUCH_FILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  228) 	ERRDOS, ERRbadfunc, NT_STATUS_INVALID_DEVICE_REQUEST}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  229) 	ERRDOS, 38, NT_STATUS_END_OF_FILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  230) 	ERRDOS, 34, NT_STATUS_WRONG_VOLUME}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  231) 	ERRDOS, 21, NT_STATUS_NO_MEDIA_IN_DEVICE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  232) 	ERRHRD, ERRgeneral, NT_STATUS_UNRECOGNIZED_MEDIA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  233) 	ERRDOS, 27, NT_STATUS_NONEXISTENT_SECTOR},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  234) /*	{ This NT error code was 'sqashed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  235) 	 from NT_STATUS_MORE_PROCESSING_REQUIRED to NT_STATUS_OK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  236) 	 during the session setup } */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  237) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  238) 	ERRDOS, ERRnomem, NT_STATUS_NO_MEMORY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  239) 	ERRDOS, 487, NT_STATUS_CONFLICTING_ADDRESSES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  240) 	ERRDOS, 487, NT_STATUS_NOT_MAPPED_VIEW}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  241) 	ERRDOS, 87, NT_STATUS_UNABLE_TO_FREE_VM}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  242) 	ERRDOS, 87, NT_STATUS_UNABLE_TO_DELETE_SECTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  243) 	ERRDOS, 2142, NT_STATUS_INVALID_SYSTEM_SERVICE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  244) 	ERRHRD, ERRgeneral, NT_STATUS_ILLEGAL_INSTRUCTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  245) 	ERRDOS, ERRnoaccess, NT_STATUS_INVALID_LOCK_SEQUENCE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  246) 	ERRDOS, ERRnoaccess, NT_STATUS_INVALID_VIEW_SIZE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  247) 	ERRDOS, 193, NT_STATUS_INVALID_FILE_FOR_SECTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  248) 	ERRDOS, ERRnoaccess, NT_STATUS_ALREADY_COMMITTED},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  249) /*	{ This NT error code was 'sqashed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  250) 	 from NT_STATUS_ACCESS_DENIED to NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  251) 	 during the session setup }   */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  252) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  253) 	ERRDOS, ERRnoaccess, NT_STATUS_ACCESS_DENIED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  254) 	ERRDOS, 111, NT_STATUS_BUFFER_TOO_SMALL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  255) 	ERRDOS, ERRbadfid, NT_STATUS_OBJECT_TYPE_MISMATCH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  256) 	ERRHRD, ERRgeneral, NT_STATUS_NONCONTINUABLE_EXCEPTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  257) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_DISPOSITION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  258) 	ERRHRD, ERRgeneral, NT_STATUS_UNWIND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  259) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_STACK}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  260) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_UNWIND_TARGET}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  261) 	ERRDOS, 158, NT_STATUS_NOT_LOCKED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  262) 	ERRHRD, ERRgeneral, NT_STATUS_PARITY_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  263) 	ERRDOS, 487, NT_STATUS_UNABLE_TO_DECOMMIT_VM}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  264) 	ERRDOS, 487, NT_STATUS_NOT_COMMITTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  265) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_PORT_ATTRIBUTES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  266) 	ERRHRD, ERRgeneral, NT_STATUS_PORT_MESSAGE_TOO_LONG}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  267) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_MIX}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  268) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_QUOTA_LOWER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  269) 	ERRHRD, ERRgeneral, NT_STATUS_DISK_CORRUPT_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  270) 	 /* mapping changed since shell does lookup on * expects FileNotFound */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  271) 	ERRDOS, ERRbadfile, NT_STATUS_OBJECT_NAME_INVALID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  272) 	ERRDOS, ERRbadfile, NT_STATUS_OBJECT_NAME_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  273) 	ERRDOS, ERRalreadyexists, NT_STATUS_OBJECT_NAME_COLLISION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  274) 	ERRHRD, ERRgeneral, NT_STATUS_HANDLE_NOT_WAITABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  275) 	ERRDOS, ERRbadfid, NT_STATUS_PORT_DISCONNECTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  276) 	ERRHRD, ERRgeneral, NT_STATUS_DEVICE_ALREADY_ATTACHED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  277) 	ERRDOS, 161, NT_STATUS_OBJECT_PATH_INVALID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  278) 	ERRDOS, ERRbadpath, NT_STATUS_OBJECT_PATH_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  279) 	ERRDOS, 161, NT_STATUS_OBJECT_PATH_SYNTAX_BAD}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  280) 	ERRHRD, ERRgeneral, NT_STATUS_DATA_OVERRUN}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  281) 	ERRHRD, ERRgeneral, NT_STATUS_DATA_LATE_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  282) 	ERRDOS, 23, NT_STATUS_DATA_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  283) 	ERRDOS, 23, NT_STATUS_CRC_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  284) 	ERRDOS, ERRnomem, NT_STATUS_SECTION_TOO_BIG}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  285) 	ERRDOS, ERRnoaccess, NT_STATUS_PORT_CONNECTION_REFUSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  286) 	ERRDOS, ERRbadfid, NT_STATUS_INVALID_PORT_HANDLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  287) 	ERRDOS, ERRbadshare, NT_STATUS_SHARING_VIOLATION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  288) 	ERRHRD, ERRgeneral, NT_STATUS_QUOTA_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  289) 	ERRDOS, 87, NT_STATUS_INVALID_PAGE_PROTECTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  290) 	ERRDOS, 288, NT_STATUS_MUTANT_NOT_OWNED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  291) 	ERRDOS, 298, NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  292) 	ERRDOS, 87, NT_STATUS_PORT_ALREADY_SET}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  293) 	ERRDOS, 87, NT_STATUS_SECTION_NOT_IMAGE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  294) 	ERRDOS, 156, NT_STATUS_SUSPEND_COUNT_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  295) 	ERRDOS, ERRnoaccess, NT_STATUS_THREAD_IS_TERMINATING}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  296) 	ERRDOS, 87, NT_STATUS_BAD_WORKING_SET_LIMIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  297) 	ERRDOS, 87, NT_STATUS_INCOMPATIBLE_FILE_MAP}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  298) 	ERRDOS, 87, NT_STATUS_SECTION_PROTECTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  299) 	ERRDOS, ERReasnotsupported, NT_STATUS_EAS_NOT_SUPPORTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  300) 	ERRDOS, 255, NT_STATUS_EA_TOO_LARGE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  301) 	ERRHRD, ERRgeneral, NT_STATUS_NONEXISTENT_EA_ENTRY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  302) 	ERRHRD, ERRgeneral, NT_STATUS_NO_EAS_ON_FILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  303) 	ERRHRD, ERRgeneral, NT_STATUS_EA_CORRUPT_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  304) 	ERRDOS, ERRlock, NT_STATUS_FILE_LOCK_CONFLICT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  305) 	ERRDOS, ERRlock, NT_STATUS_LOCK_NOT_GRANTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  306) 	ERRDOS, ERRbadfile, NT_STATUS_DELETE_PENDING}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  307) 	ERRDOS, ERRunsup, NT_STATUS_CTL_FILE_NOT_SUPPORTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  308) 	ERRHRD, ERRgeneral, NT_STATUS_UNKNOWN_REVISION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  309) 	ERRHRD, ERRgeneral, NT_STATUS_REVISION_MISMATCH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  310) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_OWNER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  311) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_PRIMARY_GROUP}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  312) 	ERRHRD, ERRgeneral, NT_STATUS_NO_IMPERSONATION_TOKEN}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  313) 	ERRHRD, ERRgeneral, NT_STATUS_CANT_DISABLE_MANDATORY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  314) 	ERRDOS, 2215, NT_STATUS_NO_LOGON_SERVERS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  315) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SUCH_LOGON_SESSION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  316) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SUCH_PRIVILEGE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  317) 	ERRDOS, ERRnoaccess, NT_STATUS_PRIVILEGE_NOT_HELD}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  318) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_ACCOUNT_NAME}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  319) 	ERRHRD, ERRgeneral, NT_STATUS_USER_EXISTS},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  320) /*	{ This NT error code was 'sqashed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  321) 	 from NT_STATUS_NO_SUCH_USER to NT_STATUS_LOGON_FAILURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  322) 	 during the session setup } */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  323) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  324) 	ERRDOS, ERRnoaccess, NT_STATUS_NO_SUCH_USER}, { /* could map to 2238 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  325) 	ERRHRD, ERRgeneral, NT_STATUS_GROUP_EXISTS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  326) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SUCH_GROUP}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  327) 	ERRHRD, ERRgeneral, NT_STATUS_MEMBER_IN_GROUP}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  328) 	ERRHRD, ERRgeneral, NT_STATUS_MEMBER_NOT_IN_GROUP}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  329) 	ERRHRD, ERRgeneral, NT_STATUS_LAST_ADMIN},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  330) /*	{ This NT error code was 'sqashed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  331) 	 from NT_STATUS_WRONG_PASSWORD to NT_STATUS_LOGON_FAILURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  332) 	 during the session setup } */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  333) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  334) 	ERRSRV, ERRbadpw, NT_STATUS_WRONG_PASSWORD}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  335) 	ERRHRD, ERRgeneral, NT_STATUS_ILL_FORMED_PASSWORD}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  336) 	ERRHRD, ERRgeneral, NT_STATUS_PASSWORD_RESTRICTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  337) 	ERRDOS, ERRnoaccess, NT_STATUS_LOGON_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  338) 	ERRHRD, ERRgeneral, NT_STATUS_ACCOUNT_RESTRICTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  339) 	ERRSRV, ERRbadLogonTime, NT_STATUS_INVALID_LOGON_HOURS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  340) 	ERRSRV, ERRbadclient, NT_STATUS_INVALID_WORKSTATION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  341) 	ERRSRV, ERRpasswordExpired, NT_STATUS_PASSWORD_EXPIRED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  342) 	ERRSRV, ERRaccountexpired, NT_STATUS_ACCOUNT_DISABLED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  343) 	ERRHRD, ERRgeneral, NT_STATUS_NONE_MAPPED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  344) 	ERRHRD, ERRgeneral, NT_STATUS_TOO_MANY_LUIDS_REQUESTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  345) 	ERRHRD, ERRgeneral, NT_STATUS_LUIDS_EXHAUSTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  346) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_SUB_AUTHORITY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  347) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_ACL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  348) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_SID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  349) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_SECURITY_DESCR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  350) 	ERRDOS, 127, NT_STATUS_PROCEDURE_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  351) 	ERRDOS, 193, NT_STATUS_INVALID_IMAGE_FORMAT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  352) 	ERRHRD, ERRgeneral, NT_STATUS_NO_TOKEN}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  353) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_INHERITANCE_ACL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  354) 	ERRDOS, 158, NT_STATUS_RANGE_NOT_LOCKED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  355) 	ERRDOS, 112, NT_STATUS_DISK_FULL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  356) 	ERRHRD, ERRgeneral, NT_STATUS_SERVER_DISABLED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  357) 	ERRHRD, ERRgeneral, NT_STATUS_SERVER_NOT_DISABLED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  358) 	ERRDOS, 68, NT_STATUS_TOO_MANY_GUIDS_REQUESTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  359) 	ERRDOS, 259, NT_STATUS_GUIDS_EXHAUSTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  360) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_ID_AUTHORITY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  361) 	ERRDOS, 259, NT_STATUS_AGENTS_EXHAUSTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  362) 	ERRDOS, 154, NT_STATUS_INVALID_VOLUME_LABEL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  363) 	ERRDOS, 14, NT_STATUS_SECTION_NOT_EXTENDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  364) 	ERRDOS, 487, NT_STATUS_NOT_MAPPED_DATA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  365) 	ERRHRD, ERRgeneral, NT_STATUS_RESOURCE_DATA_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  366) 	ERRHRD, ERRgeneral, NT_STATUS_RESOURCE_TYPE_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  367) 	ERRHRD, ERRgeneral, NT_STATUS_RESOURCE_NAME_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  368) 	ERRHRD, ERRgeneral, NT_STATUS_ARRAY_BOUNDS_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  369) 	ERRHRD, ERRgeneral, NT_STATUS_FLOAT_DENORMAL_OPERAND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  370) 	ERRHRD, ERRgeneral, NT_STATUS_FLOAT_DIVIDE_BY_ZERO}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  371) 	ERRHRD, ERRgeneral, NT_STATUS_FLOAT_INEXACT_RESULT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  372) 	ERRHRD, ERRgeneral, NT_STATUS_FLOAT_INVALID_OPERATION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  373) 	ERRHRD, ERRgeneral, NT_STATUS_FLOAT_OVERFLOW}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  374) 	ERRHRD, ERRgeneral, NT_STATUS_FLOAT_STACK_CHECK}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  375) 	ERRHRD, ERRgeneral, NT_STATUS_FLOAT_UNDERFLOW}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  376) 	ERRHRD, ERRgeneral, NT_STATUS_INTEGER_DIVIDE_BY_ZERO}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  377) 	ERRDOS, 534, NT_STATUS_INTEGER_OVERFLOW}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  378) 	ERRHRD, ERRgeneral, NT_STATUS_PRIVILEGED_INSTRUCTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  379) 	ERRDOS, ERRnomem, NT_STATUS_TOO_MANY_PAGING_FILES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  380) 	ERRHRD, ERRgeneral, NT_STATUS_FILE_INVALID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  381) 	ERRHRD, ERRgeneral, NT_STATUS_ALLOTTED_SPACE_EXCEEDED},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  382) /*	{ This NT error code was 'sqashed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  383) 	 from NT_STATUS_INSUFFICIENT_RESOURCES to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  384) 	 NT_STATUS_INSUFF_SERVER_RESOURCES during the session setup } */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  385) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  386) 	ERRDOS, ERRnoresource, NT_STATUS_INSUFFICIENT_RESOURCES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  387) 	ERRDOS, ERRbadpath, NT_STATUS_DFS_EXIT_PATH_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  388) 	ERRDOS, 23, NT_STATUS_DEVICE_DATA_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  389) 	ERRHRD, ERRgeneral, NT_STATUS_DEVICE_NOT_CONNECTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  390) 	ERRDOS, 21, NT_STATUS_DEVICE_POWER_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  391) 	ERRDOS, 487, NT_STATUS_FREE_VM_NOT_AT_BASE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  392) 	ERRDOS, 487, NT_STATUS_MEMORY_NOT_ALLOCATED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  393) 	ERRHRD, ERRgeneral, NT_STATUS_WORKING_SET_QUOTA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  394) 	ERRDOS, 19, NT_STATUS_MEDIA_WRITE_PROTECTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  395) 	ERRDOS, 21, NT_STATUS_DEVICE_NOT_READY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  396) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_GROUP_ATTRIBUTES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  397) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_IMPERSONATION_LEVEL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  398) 	ERRHRD, ERRgeneral, NT_STATUS_CANT_OPEN_ANONYMOUS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  399) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_VALIDATION_CLASS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  400) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_TOKEN_TYPE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  401) 	ERRDOS, 87, NT_STATUS_BAD_MASTER_BOOT_RECORD}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  402) 	ERRHRD, ERRgeneral, NT_STATUS_INSTRUCTION_MISALIGNMENT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  403) 	ERRDOS, ERRpipebusy, NT_STATUS_INSTANCE_NOT_AVAILABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  404) 	ERRDOS, ERRpipebusy, NT_STATUS_PIPE_NOT_AVAILABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  405) 	ERRDOS, ERRbadpipe, NT_STATUS_INVALID_PIPE_STATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  406) 	ERRDOS, ERRpipebusy, NT_STATUS_PIPE_BUSY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  407) 	ERRDOS, ERRbadfunc, NT_STATUS_ILLEGAL_FUNCTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  408) 	ERRDOS, ERRnotconnected, NT_STATUS_PIPE_DISCONNECTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  409) 	ERRDOS, ERRpipeclosing, NT_STATUS_PIPE_CLOSING}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  410) 	ERRHRD, ERRgeneral, NT_STATUS_PIPE_CONNECTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  411) 	ERRHRD, ERRgeneral, NT_STATUS_PIPE_LISTENING}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  412) 	ERRDOS, ERRbadpipe, NT_STATUS_INVALID_READ_MODE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  413) 	ERRDOS, 121, NT_STATUS_IO_TIMEOUT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  414) 	ERRDOS, 38, NT_STATUS_FILE_FORCED_CLOSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  415) 	ERRHRD, ERRgeneral, NT_STATUS_PROFILING_NOT_STARTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  416) 	ERRHRD, ERRgeneral, NT_STATUS_PROFILING_NOT_STOPPED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  417) 	ERRHRD, ERRgeneral, NT_STATUS_COULD_NOT_INTERPRET}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  418) 	ERRDOS, ERRnoaccess, NT_STATUS_FILE_IS_A_DIRECTORY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  419) 	ERRDOS, ERRunsup, NT_STATUS_NOT_SUPPORTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  420) 	ERRDOS, 51, NT_STATUS_REMOTE_NOT_LISTENING}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  421) 	ERRDOS, 52, NT_STATUS_DUPLICATE_NAME}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  422) 	ERRDOS, 53, NT_STATUS_BAD_NETWORK_PATH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  423) 	ERRDOS, 54, NT_STATUS_NETWORK_BUSY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  424) 	ERRDOS, 55, NT_STATUS_DEVICE_DOES_NOT_EXIST}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  425) 	ERRDOS, 56, NT_STATUS_TOO_MANY_COMMANDS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  426) 	ERRDOS, 57, NT_STATUS_ADAPTER_HARDWARE_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  427) 	ERRDOS, 58, NT_STATUS_INVALID_NETWORK_RESPONSE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  428) 	ERRDOS, 59, NT_STATUS_UNEXPECTED_NETWORK_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  429) 	ERRDOS, 60, NT_STATUS_BAD_REMOTE_ADAPTER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  430) 	ERRDOS, 61, NT_STATUS_PRINT_QUEUE_FULL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  431) 	ERRDOS, 62, NT_STATUS_NO_SPOOL_SPACE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  432) 	ERRDOS, 63, NT_STATUS_PRINT_CANCELLED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  433) 	ERRDOS, 64, NT_STATUS_NETWORK_NAME_DELETED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  434) 	ERRDOS, 65, NT_STATUS_NETWORK_ACCESS_DENIED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  435) 	ERRDOS, 66, NT_STATUS_BAD_DEVICE_TYPE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  436) 	ERRDOS, ERRnosuchshare, NT_STATUS_BAD_NETWORK_NAME}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  437) 	ERRDOS, 68, NT_STATUS_TOO_MANY_NAMES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  438) 	ERRDOS, 69, NT_STATUS_TOO_MANY_SESSIONS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  439) 	ERRDOS, 70, NT_STATUS_SHARING_PAUSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  440) 	ERRDOS, 71, NT_STATUS_REQUEST_NOT_ACCEPTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  441) 	ERRDOS, 72, NT_STATUS_REDIRECTOR_PAUSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  442) 	ERRDOS, 88, NT_STATUS_NET_WRITE_FAULT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  443) 	ERRHRD, ERRgeneral, NT_STATUS_PROFILING_AT_LIMIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  444) 	ERRDOS, ERRdiffdevice, NT_STATUS_NOT_SAME_DEVICE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  445) 	ERRDOS, ERRnoaccess, NT_STATUS_FILE_RENAMED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  446) 	ERRDOS, 240, NT_STATUS_VIRTUAL_CIRCUIT_CLOSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  447) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SECURITY_ON_OBJECT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  448) 	ERRHRD, ERRgeneral, NT_STATUS_CANT_WAIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  449) 	ERRDOS, ERRpipeclosing, NT_STATUS_PIPE_EMPTY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  450) 	ERRHRD, ERRgeneral, NT_STATUS_CANT_ACCESS_DOMAIN_INFO}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  451) 	ERRHRD, ERRgeneral, NT_STATUS_CANT_TERMINATE_SELF}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  452) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_SERVER_STATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  453) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_DOMAIN_STATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  454) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_DOMAIN_ROLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  455) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SUCH_DOMAIN}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  456) 	ERRHRD, ERRgeneral, NT_STATUS_DOMAIN_EXISTS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  457) 	ERRHRD, ERRgeneral, NT_STATUS_DOMAIN_LIMIT_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  458) 	ERRDOS, 300, NT_STATUS_OPLOCK_NOT_GRANTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  459) 	ERRDOS, 301, NT_STATUS_INVALID_OPLOCK_PROTOCOL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  460) 	ERRHRD, ERRgeneral, NT_STATUS_INTERNAL_DB_CORRUPTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  461) 	ERRHRD, ERRgeneral, NT_STATUS_INTERNAL_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  462) 	ERRHRD, ERRgeneral, NT_STATUS_GENERIC_NOT_MAPPED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  463) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_DESCRIPTOR_FORMAT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  464) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_USER_BUFFER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  465) 	ERRHRD, ERRgeneral, NT_STATUS_UNEXPECTED_IO_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  466) 	ERRHRD, ERRgeneral, NT_STATUS_UNEXPECTED_MM_CREATE_ERR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  467) 	ERRHRD, ERRgeneral, NT_STATUS_UNEXPECTED_MM_MAP_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  468) 	ERRHRD, ERRgeneral, NT_STATUS_UNEXPECTED_MM_EXTEND_ERR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  469) 	ERRHRD, ERRgeneral, NT_STATUS_NOT_LOGON_PROCESS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  470) 	ERRHRD, ERRgeneral, NT_STATUS_LOGON_SESSION_EXISTS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  471) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_1}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  472) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_2}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  473) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_3}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  474) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_4}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  475) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_5}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  476) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_6}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  477) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_7}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  478) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_8}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  479) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_9}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  480) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_10}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  481) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_11}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  482) 	ERRDOS, 87, NT_STATUS_INVALID_PARAMETER_12}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  483) 	ERRDOS, ERRbadpath, NT_STATUS_REDIRECTOR_NOT_STARTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  484) 	ERRHRD, ERRgeneral, NT_STATUS_REDIRECTOR_STARTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  485) 	ERRHRD, ERRgeneral, NT_STATUS_STACK_OVERFLOW}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  486) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SUCH_PACKAGE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  487) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_FUNCTION_TABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  488) 	ERRDOS, 203, 0xc0000100}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  489) 	ERRDOS, 145, NT_STATUS_DIRECTORY_NOT_EMPTY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  490) 	ERRHRD, ERRgeneral, NT_STATUS_FILE_CORRUPT_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  491) 	ERRDOS, 267, NT_STATUS_NOT_A_DIRECTORY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  492) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_LOGON_SESSION_STATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  493) 	ERRHRD, ERRgeneral, NT_STATUS_LOGON_SESSION_COLLISION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  494) 	ERRDOS, 206, NT_STATUS_NAME_TOO_LONG}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  495) 	ERRDOS, 2401, NT_STATUS_FILES_OPEN}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  496) 	ERRDOS, 2404, NT_STATUS_CONNECTION_IN_USE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  497) 	ERRHRD, ERRgeneral, NT_STATUS_MESSAGE_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  498) 	ERRDOS, ERRnoaccess, NT_STATUS_PROCESS_IS_TERMINATING}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  499) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_LOGON_TYPE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  500) 	ERRHRD, ERRgeneral, NT_STATUS_NO_GUID_TRANSLATION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  501) 	ERRHRD, ERRgeneral, NT_STATUS_CANNOT_IMPERSONATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  502) 	ERRHRD, ERRgeneral, NT_STATUS_IMAGE_ALREADY_LOADED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  503) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_NOT_PRESENT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  504) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_LID_NOT_EXIST}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  505) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_LID_ALREADY_OWNED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  506) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_NOT_LID_OWNER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  507) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_INVALID_COMMAND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  508) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_INVALID_LID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  509) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  510) 	ERRHRD, ERRgeneral, NT_STATUS_ABIOS_INVALID_SELECTOR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  511) 	ERRHRD, ERRgeneral, NT_STATUS_NO_LDT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  512) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_LDT_SIZE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  513) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_LDT_OFFSET}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  514) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_LDT_DESCRIPTOR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  515) 	ERRDOS, 193, NT_STATUS_INVALID_IMAGE_NE_FORMAT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  516) 	ERRHRD, ERRgeneral, NT_STATUS_RXACT_INVALID_STATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  517) 	ERRHRD, ERRgeneral, NT_STATUS_RXACT_COMMIT_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  518) 	ERRHRD, ERRgeneral, NT_STATUS_MAPPED_FILE_SIZE_ZERO}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  519) 	ERRDOS, ERRnofids, NT_STATUS_TOO_MANY_OPENED_FILES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  520) 	ERRHRD, ERRgeneral, NT_STATUS_CANCELLED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  521) 	ERRDOS, ERRnoaccess, NT_STATUS_CANNOT_DELETE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  522) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_COMPUTER_NAME}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  523) 	ERRDOS, ERRnoaccess, NT_STATUS_FILE_DELETED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  524) 	ERRHRD, ERRgeneral, NT_STATUS_SPECIAL_ACCOUNT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  525) 	ERRHRD, ERRgeneral, NT_STATUS_SPECIAL_GROUP}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  526) 	ERRHRD, ERRgeneral, NT_STATUS_SPECIAL_USER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  527) 	ERRHRD, ERRgeneral, NT_STATUS_MEMBERS_PRIMARY_GROUP}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  528) 	ERRDOS, ERRbadfid, NT_STATUS_FILE_CLOSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  529) 	ERRHRD, ERRgeneral, NT_STATUS_TOO_MANY_THREADS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  530) 	ERRHRD, ERRgeneral, NT_STATUS_THREAD_NOT_IN_PROCESS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  531) 	ERRHRD, ERRgeneral, NT_STATUS_TOKEN_ALREADY_IN_USE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  532) 	ERRHRD, ERRgeneral, NT_STATUS_PAGEFILE_QUOTA_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  533) 	ERRHRD, ERRgeneral, NT_STATUS_COMMITMENT_LIMIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  534) 	ERRDOS, 193, NT_STATUS_INVALID_IMAGE_LE_FORMAT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  535) 	ERRDOS, 193, NT_STATUS_INVALID_IMAGE_NOT_MZ}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  536) 	ERRDOS, 193, NT_STATUS_INVALID_IMAGE_PROTECT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  537) 	ERRDOS, 193, NT_STATUS_INVALID_IMAGE_WIN_16}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  538) 	ERRHRD, ERRgeneral, NT_STATUS_LOGON_SERVER_CONFLICT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  539) 	ERRHRD, ERRgeneral, NT_STATUS_TIME_DIFFERENCE_AT_DC}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  540) 	ERRHRD, ERRgeneral, NT_STATUS_SYNCHRONIZATION_REQUIRED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  541) 	ERRDOS, 126, NT_STATUS_DLL_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  542) 	ERRHRD, ERRgeneral, NT_STATUS_OPEN_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  543) 	ERRHRD, ERRgeneral, NT_STATUS_IO_PRIVILEGE_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  544) 	ERRDOS, 182, NT_STATUS_ORDINAL_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  545) 	ERRDOS, 127, NT_STATUS_ENTRYPOINT_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  546) 	ERRHRD, ERRgeneral, NT_STATUS_CONTROL_C_EXIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  547) 	ERRDOS, 64, NT_STATUS_LOCAL_DISCONNECT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  548) 	ERRDOS, 64, NT_STATUS_REMOTE_DISCONNECT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  549) 	ERRDOS, 51, NT_STATUS_REMOTE_RESOURCES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  550) 	ERRDOS, 59, NT_STATUS_LINK_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  551) 	ERRDOS, 59, NT_STATUS_LINK_TIMEOUT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  552) 	ERRDOS, 59, NT_STATUS_INVALID_CONNECTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  553) 	ERRDOS, 59, NT_STATUS_INVALID_ADDRESS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  554) 	ERRHRD, ERRgeneral, NT_STATUS_DLL_INIT_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  555) 	ERRHRD, ERRgeneral, NT_STATUS_MISSING_SYSTEMFILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  556) 	ERRHRD, ERRgeneral, NT_STATUS_UNHANDLED_EXCEPTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  557) 	ERRHRD, ERRgeneral, NT_STATUS_APP_INIT_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  558) 	ERRHRD, ERRgeneral, NT_STATUS_PAGEFILE_CREATE_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  559) 	ERRHRD, ERRgeneral, NT_STATUS_NO_PAGEFILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  560) 	ERRDOS, 124, NT_STATUS_INVALID_LEVEL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  561) 	ERRDOS, 86, NT_STATUS_WRONG_PASSWORD_CORE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  562) 	ERRHRD, ERRgeneral, NT_STATUS_ILLEGAL_FLOAT_CONTEXT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  563) 	ERRDOS, 109, NT_STATUS_PIPE_BROKEN}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  564) 	ERRHRD, ERRgeneral, NT_STATUS_REGISTRY_CORRUPT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  565) 	ERRHRD, ERRgeneral, NT_STATUS_REGISTRY_IO_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  566) 	ERRHRD, ERRgeneral, NT_STATUS_NO_EVENT_PAIR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  567) 	ERRHRD, ERRgeneral, NT_STATUS_UNRECOGNIZED_VOLUME}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  568) 	ERRHRD, ERRgeneral, NT_STATUS_SERIAL_NO_DEVICE_INITED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  569) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SUCH_ALIAS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  570) 	ERRHRD, ERRgeneral, NT_STATUS_MEMBER_NOT_IN_ALIAS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  571) 	ERRHRD, ERRgeneral, NT_STATUS_MEMBER_IN_ALIAS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  572) 	ERRHRD, ERRgeneral, NT_STATUS_ALIAS_EXISTS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  573) 	ERRHRD, ERRgeneral, NT_STATUS_LOGON_NOT_GRANTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  574) 	ERRHRD, ERRgeneral, NT_STATUS_TOO_MANY_SECRETS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  575) 	ERRHRD, ERRgeneral, NT_STATUS_SECRET_TOO_LONG}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  576) 	ERRHRD, ERRgeneral, NT_STATUS_INTERNAL_DB_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  577) 	ERRHRD, ERRgeneral, NT_STATUS_FULLSCREEN_MODE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  578) 	ERRHRD, ERRgeneral, NT_STATUS_TOO_MANY_CONTEXT_IDS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  579) 	ERRDOS, ERRnoaccess, NT_STATUS_LOGON_TYPE_NOT_GRANTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  580) 	ERRHRD, ERRgeneral, NT_STATUS_NOT_REGISTRY_FILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  581) 	ERRHRD, ERRgeneral, NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  582) 	ERRHRD, ERRgeneral, NT_STATUS_DOMAIN_CTRLR_CONFIG_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  583) 	ERRHRD, ERRgeneral, NT_STATUS_FT_MISSING_MEMBER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  584) 	ERRHRD, ERRgeneral, NT_STATUS_ILL_FORMED_SERVICE_ENTRY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  585) 	ERRHRD, ERRgeneral, NT_STATUS_ILLEGAL_CHARACTER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  586) 	ERRHRD, ERRgeneral, NT_STATUS_UNMAPPABLE_CHARACTER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  587) 	ERRHRD, ERRgeneral, NT_STATUS_UNDEFINED_CHARACTER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  588) 	ERRHRD, ERRgeneral, NT_STATUS_FLOPPY_VOLUME}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  589) 	ERRHRD, ERRgeneral, NT_STATUS_FLOPPY_ID_MARK_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  590) 	ERRHRD, ERRgeneral, NT_STATUS_FLOPPY_WRONG_CYLINDER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  591) 	ERRHRD, ERRgeneral, NT_STATUS_FLOPPY_UNKNOWN_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  592) 	ERRHRD, ERRgeneral, NT_STATUS_FLOPPY_BAD_REGISTERS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  593) 	ERRHRD, ERRgeneral, NT_STATUS_DISK_RECALIBRATE_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  594) 	ERRHRD, ERRgeneral, NT_STATUS_DISK_OPERATION_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  595) 	ERRHRD, ERRgeneral, NT_STATUS_DISK_RESET_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  596) 	ERRHRD, ERRgeneral, NT_STATUS_SHARED_IRQ_BUSY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  597) 	ERRHRD, ERRgeneral, NT_STATUS_FT_ORPHANING}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  598) 	ERRHRD, ERRgeneral, 0xc000016e}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  599) 	ERRHRD, ERRgeneral, 0xc000016f}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  600) 	ERRHRD, ERRgeneral, 0xc0000170}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  601) 	ERRHRD, ERRgeneral, 0xc0000171}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  602) 	ERRHRD, ERRgeneral, NT_STATUS_PARTITION_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  603) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_BLOCK_LENGTH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  604) 	ERRHRD, ERRgeneral, NT_STATUS_DEVICE_NOT_PARTITIONED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  605) 	ERRHRD, ERRgeneral, NT_STATUS_UNABLE_TO_LOCK_MEDIA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  606) 	ERRHRD, ERRgeneral, NT_STATUS_UNABLE_TO_UNLOAD_MEDIA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  607) 	ERRHRD, ERRgeneral, NT_STATUS_EOM_OVERFLOW}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  608) 	ERRHRD, ERRgeneral, NT_STATUS_NO_MEDIA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  609) 	ERRHRD, ERRgeneral, 0xc0000179}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  610) 	ERRHRD, ERRgeneral, NT_STATUS_NO_SUCH_MEMBER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  611) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_MEMBER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  612) 	ERRHRD, ERRgeneral, NT_STATUS_KEY_DELETED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  613) 	ERRHRD, ERRgeneral, NT_STATUS_NO_LOG_SPACE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  614) 	ERRHRD, ERRgeneral, NT_STATUS_TOO_MANY_SIDS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  615) 	ERRHRD, ERRgeneral, NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  616) 	ERRHRD, ERRgeneral, NT_STATUS_KEY_HAS_CHILDREN}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  617) 	ERRHRD, ERRgeneral, NT_STATUS_CHILD_MUST_BE_VOLATILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  618) 	ERRDOS, 87, NT_STATUS_DEVICE_CONFIGURATION_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  619) 	ERRHRD, ERRgeneral, NT_STATUS_DRIVER_INTERNAL_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  620) 	ERRDOS, 22, NT_STATUS_INVALID_DEVICE_STATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  621) 	ERRHRD, ERRgeneral, NT_STATUS_IO_DEVICE_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  622) 	ERRHRD, ERRgeneral, NT_STATUS_DEVICE_PROTOCOL_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  623) 	ERRHRD, ERRgeneral, NT_STATUS_BACKUP_CONTROLLER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  624) 	ERRHRD, ERRgeneral, NT_STATUS_LOG_FILE_FULL}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  625) 	ERRDOS, 19, NT_STATUS_TOO_LATE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  626) 	ERRDOS, ERRnoaccess, NT_STATUS_NO_TRUST_LSA_SECRET},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  627) /*	{ This NT error code was 'sqashed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  628) 	 from NT_STATUS_NO_TRUST_SAM_ACCOUNT to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  629) 	 NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE during the session setup } */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  630) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  631) 	ERRDOS, ERRnoaccess, NT_STATUS_NO_TRUST_SAM_ACCOUNT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  632) 	ERRDOS, ERRnoaccess, NT_STATUS_TRUSTED_DOMAIN_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  633) 	ERRDOS, ERRnoaccess, NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  634) 	ERRHRD, ERRgeneral, NT_STATUS_EVENTLOG_FILE_CORRUPT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  635) 	ERRHRD, ERRgeneral, NT_STATUS_EVENTLOG_CANT_START}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  636) 	ERRDOS, ERRnoaccess, NT_STATUS_TRUST_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  637) 	ERRHRD, ERRgeneral, NT_STATUS_MUTANT_LIMIT_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  638) 	ERRDOS, ERRnetlogonNotStarted, NT_STATUS_NETLOGON_NOT_STARTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  639) 	ERRSRV, ERRaccountexpired, NT_STATUS_ACCOUNT_EXPIRED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  640) 	ERRHRD, ERRgeneral, NT_STATUS_POSSIBLE_DEADLOCK}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  641) 	ERRHRD, ERRgeneral, NT_STATUS_NETWORK_CREDENTIAL_CONFLICT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  642) 	ERRHRD, ERRgeneral, NT_STATUS_REMOTE_SESSION_LIMIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  643) 	ERRHRD, ERRgeneral, NT_STATUS_EVENTLOG_FILE_CHANGED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  644) 	ERRDOS, ERRnoaccess, NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  645) 	ERRDOS, ERRnoaccess, NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  646) 	ERRDOS, ERRnoaccess, NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  647) /*	{ This NT error code was 'sqashed'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  648) 	 from NT_STATUS_DOMAIN_TRUST_INCONSISTENT to NT_STATUS_LOGON_FAILURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  649) 	 during the session setup }  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  650) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  651) 	ERRDOS, ERRnoaccess, NT_STATUS_DOMAIN_TRUST_INCONSISTENT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  652) 	ERRHRD, ERRgeneral, NT_STATUS_FS_DRIVER_REQUIRED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  653) 	ERRHRD, ERRgeneral, NT_STATUS_NO_USER_SESSION_KEY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  654) 	ERRDOS, 59, NT_STATUS_USER_SESSION_DELETED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  655) 	ERRHRD, ERRgeneral, NT_STATUS_RESOURCE_LANG_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  656) 	ERRDOS, ERRnoresource, NT_STATUS_INSUFF_SERVER_RESOURCES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  657) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_BUFFER_SIZE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  658) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_ADDRESS_COMPONENT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  659) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_ADDRESS_WILDCARD}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  660) 	ERRDOS, 68, NT_STATUS_TOO_MANY_ADDRESSES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  661) 	ERRDOS, 52, NT_STATUS_ADDRESS_ALREADY_EXISTS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  662) 	ERRDOS, 64, NT_STATUS_ADDRESS_CLOSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  663) 	ERRDOS, 64, NT_STATUS_CONNECTION_DISCONNECTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  664) 	ERRDOS, 64, NT_STATUS_CONNECTION_RESET}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  665) 	ERRDOS, 68, NT_STATUS_TOO_MANY_NODES}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  666) 	ERRDOS, 59, NT_STATUS_TRANSACTION_ABORTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  667) 	ERRDOS, 59, NT_STATUS_TRANSACTION_TIMED_OUT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  668) 	ERRDOS, 59, NT_STATUS_TRANSACTION_NO_RELEASE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  669) 	ERRDOS, 59, NT_STATUS_TRANSACTION_NO_MATCH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  670) 	ERRDOS, 59, NT_STATUS_TRANSACTION_RESPONDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  671) 	ERRDOS, 59, NT_STATUS_TRANSACTION_INVALID_ID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  672) 	ERRDOS, 59, NT_STATUS_TRANSACTION_INVALID_TYPE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  673) 	ERRDOS, ERRunsup, NT_STATUS_NOT_SERVER_SESSION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  674) 	ERRDOS, ERRunsup, NT_STATUS_NOT_CLIENT_SESSION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  675) 	ERRHRD, ERRgeneral, NT_STATUS_CANNOT_LOAD_REGISTRY_FILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  676) 	ERRHRD, ERRgeneral, NT_STATUS_DEBUG_ATTACH_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  677) 	ERRHRD, ERRgeneral, NT_STATUS_SYSTEM_PROCESS_TERMINATED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  678) 	ERRHRD, ERRgeneral, NT_STATUS_DATA_NOT_ACCEPTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  679) 	ERRHRD, ERRgeneral, NT_STATUS_NO_BROWSER_SERVERS_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  680) 	ERRHRD, ERRgeneral, NT_STATUS_VDM_HARD_ERROR}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  681) 	ERRHRD, ERRgeneral, NT_STATUS_DRIVER_CANCEL_TIMEOUT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  682) 	ERRHRD, ERRgeneral, NT_STATUS_REPLY_MESSAGE_MISMATCH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  683) 	ERRHRD, ERRgeneral, NT_STATUS_MAPPED_ALIGNMENT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  684) 	ERRDOS, 193, NT_STATUS_IMAGE_CHECKSUM_MISMATCH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  685) 	ERRHRD, ERRgeneral, NT_STATUS_LOST_WRITEBEHIND_DATA}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  686) 	ERRHRD, ERRgeneral, NT_STATUS_CLIENT_SERVER_PARAMETERS_INVALID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  687) 	ERRSRV, ERRpasswordExpired, NT_STATUS_PASSWORD_MUST_CHANGE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  688) 	ERRHRD, ERRgeneral, NT_STATUS_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  689) 	ERRHRD, ERRgeneral, NT_STATUS_NOT_TINY_STREAM}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  690) 	ERRHRD, ERRgeneral, NT_STATUS_RECOVERY_FAILURE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  691) 	ERRHRD, ERRgeneral, NT_STATUS_STACK_OVERFLOW_READ}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  692) 	ERRHRD, ERRgeneral, NT_STATUS_FAIL_CHECK}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  693) 	ERRHRD, ERRgeneral, NT_STATUS_DUPLICATE_OBJECTID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  694) 	ERRHRD, ERRgeneral, NT_STATUS_OBJECTID_EXISTS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  695) 	ERRHRD, ERRgeneral, NT_STATUS_CONVERT_TO_LARGE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  696) 	ERRHRD, ERRgeneral, NT_STATUS_RETRY}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  697) 	ERRHRD, ERRgeneral, NT_STATUS_FOUND_OUT_OF_SCOPE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  698) 	ERRHRD, ERRgeneral, NT_STATUS_ALLOCATE_BUCKET}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  699) 	ERRHRD, ERRgeneral, NT_STATUS_PROPSET_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  700) 	ERRHRD, ERRgeneral, NT_STATUS_MARSHALL_OVERFLOW}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  701) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_VARIANT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  702) 	ERRHRD, ERRgeneral, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  703) 	ERRDOS, ERRnoaccess, NT_STATUS_ACCOUNT_LOCKED_OUT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  704) 	ERRDOS, ERRbadfid, NT_STATUS_HANDLE_NOT_CLOSABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  705) 	ERRHRD, ERRgeneral, NT_STATUS_CONNECTION_REFUSED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  706) 	ERRHRD, ERRgeneral, NT_STATUS_GRACEFUL_DISCONNECT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  707) 	ERRHRD, ERRgeneral, NT_STATUS_ADDRESS_ALREADY_ASSOCIATED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  708) 	ERRHRD, ERRgeneral, NT_STATUS_ADDRESS_NOT_ASSOCIATED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  709) 	ERRHRD, ERRgeneral, NT_STATUS_CONNECTION_INVALID}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  710) 	ERRHRD, ERRgeneral, NT_STATUS_CONNECTION_ACTIVE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  711) 	ERRHRD, ERRgeneral, NT_STATUS_NETWORK_UNREACHABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  712) 	ERRHRD, ERRgeneral, NT_STATUS_HOST_UNREACHABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  713) 	ERRHRD, ERRgeneral, NT_STATUS_PROTOCOL_UNREACHABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  714) 	ERRHRD, ERRgeneral, NT_STATUS_PORT_UNREACHABLE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  715) 	ERRHRD, ERRgeneral, NT_STATUS_REQUEST_ABORTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  716) 	ERRHRD, ERRgeneral, NT_STATUS_CONNECTION_ABORTED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  717) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_COMPRESSION_BUFFER}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  718) 	ERRHRD, ERRgeneral, NT_STATUS_USER_MAPPED_FILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  719) 	ERRHRD, ERRgeneral, NT_STATUS_AUDIT_FAILED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  720) 	ERRHRD, ERRgeneral, NT_STATUS_TIMER_RESOLUTION_NOT_SET}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  721) 	ERRHRD, ERRgeneral, NT_STATUS_CONNECTION_COUNT_LIMIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  722) 	ERRHRD, ERRgeneral, NT_STATUS_LOGIN_TIME_RESTRICTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  723) 	ERRHRD, ERRgeneral, NT_STATUS_LOGIN_WKSTA_RESTRICTION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  724) 	ERRDOS, 193, NT_STATUS_IMAGE_MP_UP_MISMATCH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  725) 	ERRHRD, ERRgeneral, 0xc000024a}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  726) 	ERRHRD, ERRgeneral, 0xc000024b}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  727) 	ERRHRD, ERRgeneral, 0xc000024c}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  728) 	ERRHRD, ERRgeneral, 0xc000024d}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  729) 	ERRHRD, ERRgeneral, 0xc000024e}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  730) 	ERRHRD, ERRgeneral, 0xc000024f}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  731) 	ERRHRD, ERRgeneral, NT_STATUS_INSUFFICIENT_LOGON_INFO}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  732) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_DLL_ENTRYPOINT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  733) 	ERRHRD, ERRgeneral, NT_STATUS_BAD_SERVICE_ENTRYPOINT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  734) 	ERRHRD, ERRgeneral, NT_STATUS_LPC_REPLY_LOST}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  735) 	ERRHRD, ERRgeneral, NT_STATUS_IP_ADDRESS_CONFLICT1}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  736) 	ERRHRD, ERRgeneral, NT_STATUS_IP_ADDRESS_CONFLICT2}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  737) 	ERRHRD, ERRgeneral, NT_STATUS_REGISTRY_QUOTA_LIMIT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  738) 	ERRSRV, 3, NT_STATUS_PATH_NOT_COVERED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  739) 	ERRHRD, ERRgeneral, NT_STATUS_NO_CALLBACK_ACTIVE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  740) 	ERRHRD, ERRgeneral, NT_STATUS_LICENSE_QUOTA_EXCEEDED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  741) 	ERRHRD, ERRgeneral, NT_STATUS_PWD_TOO_SHORT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  742) 	ERRHRD, ERRgeneral, NT_STATUS_PWD_TOO_RECENT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  743) 	ERRHRD, ERRgeneral, NT_STATUS_PWD_HISTORY_CONFLICT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  744) 	ERRHRD, ERRgeneral, 0xc000025d}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  745) 	ERRHRD, ERRgeneral, NT_STATUS_PLUGPLAY_NO_DEVICE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  746) 	ERRHRD, ERRgeneral, NT_STATUS_UNSUPPORTED_COMPRESSION}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  747) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_HW_PROFILE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  748) 	ERRHRD, ERRgeneral, NT_STATUS_INVALID_PLUGPLAY_DEVICE_PATH}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  749) 	ERRDOS, 182, NT_STATUS_DRIVER_ORDINAL_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  750) 	ERRDOS, 127, NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  751) 	ERRDOS, 288, NT_STATUS_RESOURCE_NOT_OWNED}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  752) 	ERRDOS, ErrTooManyLinks, NT_STATUS_TOO_MANY_LINKS}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  753) 	ERRHRD, ERRgeneral, NT_STATUS_QUOTA_LIST_INCONSISTENT}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  754) 	ERRHRD, ERRgeneral, NT_STATUS_FILE_IS_OFFLINE}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  755) 	ERRDOS, 21, 0xc000026e}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  756) 	ERRDOS, 161, 0xc0000281}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  757) 	ERRDOS, ERRnoaccess, 0xc000028a}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  758) 	ERRDOS, ERRnoaccess, 0xc000028b}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  759) 	ERRHRD, ERRgeneral, 0xc000028c}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  760) 	ERRDOS, ERRnoaccess, 0xc000028d}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  761) 	ERRDOS, ERRnoaccess, 0xc000028e}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  762) 	ERRDOS, ERRnoaccess, 0xc000028f}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  763) 	ERRDOS, ERRnoaccess, 0xc0000290}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  764) 	ERRDOS, ERRbadfunc, 0xc000029c}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  765) 	ERRDOS, ERRsymlink, NT_STATUS_STOPPED_ON_SYMLINK}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  766) 	ERRDOS, ERRinvlevel, 0x007c0001}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  767) 	0, 0, 0 }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  768) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  769) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  770) /*****************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  771)  Print an error message from the status code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  772)  *****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  773) static void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  774) cifs_print_status(__u32 status_code)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  775) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  776) 	int idx = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  777) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  778) 	while (nt_errs[idx].nt_errstr != NULL) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  779) 		if (((nt_errs[idx].nt_errcode) & 0xFFFFFF) ==
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  780) 		    (status_code & 0xFFFFFF)) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  781) 			pr_notice("Status code returned 0x%08x %s\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  782) 				  status_code, nt_errs[idx].nt_errstr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  783) 		}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  784) 		idx++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  785) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  786) 	return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  787) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  788) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  789) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  790) static void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  791) ntstatus_to_dos(__u32 ntstatus, __u8 *eclass, __u16 *ecode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  792) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  793) 	int i;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  794) 	if (ntstatus == 0) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  795) 		*eclass = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  796) 		*ecode = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  797) 		return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  798) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  799) 	for (i = 0; ntstatus_to_dos_map[i].ntstatus; i++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  800) 		if (ntstatus == ntstatus_to_dos_map[i].ntstatus) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  801) 			*eclass = ntstatus_to_dos_map[i].dos_class;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  802) 			*ecode = ntstatus_to_dos_map[i].dos_code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  803) 			return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  804) 		}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  805) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  806) 	*eclass = ERRHRD;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  807) 	*ecode = ERRgeneral;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  808) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  809) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  810) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  811) map_smb_to_linux_error(char *buf, bool logErr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  812) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  813) 	struct smb_hdr *smb = (struct smb_hdr *)buf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  814) 	unsigned int i;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  815) 	int rc = -EIO;	/* if transport error smb error may not be set */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  816) 	__u8 smberrclass;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  817) 	__u16 smberrcode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  818) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  819) 	/* BB if NT Status codes - map NT BB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  820) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  821) 	/* old style smb error codes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  822) 	if (smb->Status.CifsError == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  823) 		return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  824) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  825) 	if (smb->Flags2 & SMBFLG2_ERR_STATUS) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  826) 		/* translate the newer STATUS codes to old style SMB errors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  827) 		 * and then to POSIX errors */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  828) 		__u32 err = le32_to_cpu(smb->Status.CifsError);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  829) 		if (logErr && (err != (NT_STATUS_MORE_PROCESSING_REQUIRED)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  830) 			cifs_print_status(err);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  831) 		else if (cifsFYI & CIFS_RC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  832) 			cifs_print_status(err);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  833) 		ntstatus_to_dos(err, &smberrclass, &smberrcode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  834) 	} else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  835) 		smberrclass = smb->Status.DosError.ErrorClass;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  836) 		smberrcode = le16_to_cpu(smb->Status.DosError.Error);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  837) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  838) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  839) 	/* old style errors */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  840) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  841) 	/* DOS class smb error codes - map DOS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  842) 	if (smberrclass == ERRDOS) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  843) 		/* 1 byte field no need to byte reverse */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  844) 		for (i = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  845) 		     i <
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  846) 		     sizeof(mapping_table_ERRDOS) /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  847) 		     sizeof(struct smb_to_posix_error); i++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  848) 			if (mapping_table_ERRDOS[i].smb_err == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  849) 				break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  850) 			else if (mapping_table_ERRDOS[i].smb_err ==
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  851) 								smberrcode) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  852) 				rc = mapping_table_ERRDOS[i].posix_code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  853) 				break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  854) 			}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  855) 			/* else try next error mapping one to see if match */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  856) 		}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  857) 	} else if (smberrclass == ERRSRV) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  858) 		/* server class of error codes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  859) 		for (i = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  860) 		     i <
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  861) 		     sizeof(mapping_table_ERRSRV) /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  862) 		     sizeof(struct smb_to_posix_error); i++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  863) 			if (mapping_table_ERRSRV[i].smb_err == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  864) 				break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  865) 			else if (mapping_table_ERRSRV[i].smb_err ==
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  866) 								smberrcode) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  867) 				rc = mapping_table_ERRSRV[i].posix_code;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  868) 				break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  869) 			}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  870) 			/* else try next error mapping to see if match */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  871) 		}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  872) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  873) 	/* else ERRHRD class errors or junk  - return EIO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  874) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  875) 	cifs_dbg(FYI, "Mapping smb error code 0x%x to POSIX err %d\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  876) 		 le32_to_cpu(smb->Status.CifsError), rc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  877) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  878) 	/* generic corrective action e.g. reconnect SMB session on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  879) 	 * ERRbaduid could be added */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  880) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  881) 	return rc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  882) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  883) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  884) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  885) map_and_check_smb_error(struct mid_q_entry *mid, bool logErr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  886) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  887) 	int rc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  888) 	struct smb_hdr *smb = (struct smb_hdr *)mid->resp_buf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  889) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  890) 	rc = map_smb_to_linux_error((char *)smb, logErr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  891) 	if (rc == -EACCES && !(smb->Flags2 & SMBFLG2_ERR_STATUS)) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  892) 		/* possible ERRBaduid */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  893) 		__u8 class = smb->Status.DosError.ErrorClass;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  894) 		__u16 code = le16_to_cpu(smb->Status.DosError.Error);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  895) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  896) 		/* switch can be used to handle different errors */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  897) 		if (class == ERRSRV && code == ERRbaduid) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  898) 			cifs_dbg(FYI, "Server returned 0x%x, reconnecting session...\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  899) 				code);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  900) 			spin_lock(&GlobalMid_Lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  901) 			if (mid->server->tcpStatus != CifsExiting)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  902) 				mid->server->tcpStatus = CifsNeedReconnect;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  903) 			spin_unlock(&GlobalMid_Lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  904) 		}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  905) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  906) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  907) 	return rc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  908) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  909) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  910) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  911) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  912)  * calculate the size of the SMB message based on the fixed header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  913)  * portion, the number of word parameters and the data portion of the message
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  914)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  915) unsigned int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  916) smbCalcSize(void *buf, struct TCP_Server_Info *server)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  917) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  918) 	struct smb_hdr *ptr = (struct smb_hdr *)buf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  919) 	return (sizeof(struct smb_hdr) + (2 * ptr->WordCount) +
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  920) 		2 /* size of the bcc field */ + get_bcc(ptr));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  921) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  922) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  923) /* The following are taken from fs/ntfs/util.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  924) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  925) #define NTFS_TIME_OFFSET ((u64)(369*365 + 89) * 24 * 3600 * 10000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  926) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  927) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  928)  * Convert the NT UTC (based 1601-01-01, in hundred nanosecond units)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  929)  * into Unix UTC (based 1970-01-01, in seconds).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  930)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  931) struct timespec64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  932) cifs_NTtimeToUnix(__le64 ntutc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  933) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  934) 	struct timespec64 ts;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  935) 	/* BB what about the timezone? BB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  936) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  937) 	/* Subtract the NTFS time offset, then convert to 1s intervals. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  938) 	s64 t = le64_to_cpu(ntutc) - NTFS_TIME_OFFSET;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  939) 	u64 abs_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  940) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  941) 	/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  942) 	 * Unfortunately can not use normal 64 bit division on 32 bit arch, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  943) 	 * the alternative, do_div, does not work with negative numbers so have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  944) 	 * to special case them
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  945) 	 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  946) 	if (t < 0) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  947) 		abs_t = -t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  948) 		ts.tv_nsec = (time64_t)(do_div(abs_t, 10000000) * 100);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  949) 		ts.tv_nsec = -ts.tv_nsec;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  950) 		ts.tv_sec = -abs_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  951) 	} else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  952) 		abs_t = t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  953) 		ts.tv_nsec = (time64_t)do_div(abs_t, 10000000) * 100;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  954) 		ts.tv_sec = abs_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  955) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  956) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  957) 	return ts;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  958) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  959) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  960) /* Convert the Unix UTC into NT UTC. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  961) u64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  962) cifs_UnixTimeToNT(struct timespec64 t)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  963) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  964) 	/* Convert to 100ns intervals and then add the NTFS time offset. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  965) 	return (u64) t.tv_sec * 10000000 + t.tv_nsec/100 + NTFS_TIME_OFFSET;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  966) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  967) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  968) static const int total_days_of_prev_months[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  969) 	0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  970) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  971) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  972) struct timespec64 cnvrtDosUnixTm(__le16 le_date, __le16 le_time, int offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  973) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  974) 	struct timespec64 ts;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  975) 	time64_t sec, days;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  976) 	int min, day, month, year;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  977) 	u16 date = le16_to_cpu(le_date);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  978) 	u16 time = le16_to_cpu(le_time);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  979) 	SMB_TIME *st = (SMB_TIME *)&time;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  980) 	SMB_DATE *sd = (SMB_DATE *)&date;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  981) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  982) 	cifs_dbg(FYI, "date %d time %d\n", date, time);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  983) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  984) 	sec = 2 * st->TwoSeconds;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  985) 	min = st->Minutes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  986) 	if ((sec > 59) || (min > 59))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  987) 		cifs_dbg(VFS, "Invalid time min %d sec %lld\n", min, sec);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  988) 	sec += (min * 60);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  989) 	sec += 60 * 60 * st->Hours;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  990) 	if (st->Hours > 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  991) 		cifs_dbg(VFS, "Invalid hours %d\n", st->Hours);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  992) 	day = sd->Day;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  993) 	month = sd->Month;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  994) 	if (day < 1 || day > 31 || month < 1 || month > 12) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  995) 		cifs_dbg(VFS, "Invalid date, month %d day: %d\n", month, day);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  996) 		day = clamp(day, 1, 31);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  997) 		month = clamp(month, 1, 12);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  998) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  999) 	month -= 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) 	days = day + total_days_of_prev_months[month];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) 	days += 3652; /* account for difference in days between 1980 and 1970 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) 	year = sd->Year;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) 	days += year * 365;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) 	days += (year/4); /* leap year */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) 	/* generalized leap year calculation is more complex, ie no leap year
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) 	for years/100 except for years/400, but since the maximum number for DOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) 	 year is 2**7, the last year is 1980+127, which means we need only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) 	 consider 2 special case years, ie the years 2000 and 2100, and only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) 	 adjust for the lack of leap year for the year 2100, as 2000 was a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) 	 leap year (divisable by 400) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) 	if (year >= 120)  /* the year 2100 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) 		days = days - 1;  /* do not count leap year for the year 2100 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) 	/* adjust for leap year where we are still before leap day */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) 	if (year != 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) 		days -= ((year & 0x03) == 0) && (month < 2 ? 1 : 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) 	sec += 24 * 60 * 60 * days;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) 	ts.tv_sec = sec + offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) 	/* cifs_dbg(FYI, "sec after cnvrt dos to unix time %d\n",sec); */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) 	ts.tv_nsec = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) 	return ts;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) }