smb.h revision 613a2f6ba31e891e3d947a356daf5e563d43c1ce
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Copyright (c) 2000-2001 Boris Popov
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * All rights reserved.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow *
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Now many of these defines are from samba4 code, by Andrew Tridgell.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * (Permission given to Conrad Minshall at CIFS plugfest Aug 13 2003.)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * (Note the main decision was whether to use defines found in MS includes
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * and web pages, versus Samba, and the deciding factor is which developers
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * are more likely to be looking at this code base.)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow *
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Redistribution and use in source and binary forms, with or without
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * modification, are permitted provided that the following conditions
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * are met:
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 1. Redistributions of source code must retain the above copyright
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * notice, this list of conditions and the following disclaimer.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 2. Redistributions in binary form must reproduce the above copyright
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * notice, this list of conditions and the following disclaimer in the
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * documentation and/or other materials provided with the distribution.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 3. All advertising materials mentioning features or use of this software
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * must display the following acknowledgement:
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * This product includes software developed by Boris Popov.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 4. Neither the name of the author nor the names of any co-contributors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * may be used to endorse or promote products derived from this software
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * without specific prior written permission.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow *
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SUCH DAMAGE.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow *
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * $Id: smb.h,v 1.36.90.1 2005/05/27 02:35:29 lindak Exp $
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Common definintions and structures for SMB/CIFS protocol
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#ifndef _NETSMB_SMB_H_
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define _NETSMB_SMB_H_
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * This file should be purely SMB protocol definition stuff.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * (Please don't make it a catch-all:)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB dialects that we have to deal with.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowenum smb_dialects {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow SMB_DIALECT_NONE,
4bff34e37def8a90f9194d81bc345c52ba20086athurlow SMB_DIALECT_CORE, /* PC NETWORK PROGRAM 1.0, PCLAN1.0 */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow SMB_DIALECT_COREPLUS, /* MICROSOFT NETWORKS 1.03 */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow SMB_DIALECT_LANMAN1_0, /* MICROSOFT NETWORKS 3.0, LANMAN1.0 */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow SMB_DIALECT_LANMAN2_0, /* LM1.2X002, DOS LM1.2X002, Samba */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow SMB_DIALECT_LANMAN2_1, /* DOS LANMAN2.1, LANMAN2.1 */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow SMB_DIALECT_NTLM0_12 /* NT LM 0.12, Windows for Workgroups */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow /* 3.1a, * NT LANMAN 1.0 */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow};
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Formats of data/string buffers
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_DT_DATA 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_DT_DIALECT 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_DT_PATHNAME 3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_DT_ASCII 4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_DT_VARIABLE 5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB header
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SIGNATURE "\xFFSMB"
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SIGLEN 4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_HDRCMD(p) (*((uchar_t *)(p) + SMB_SIGLEN))
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Ross#define SMB_HDRMID(p) (*(ushort_t *)((uchar_t *)(p) + 30))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_HDRLEN 32
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * bits in the smb_flags field
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS_SUPPORT_LOCKREAD 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS_CLIENT_BUF_AVAIL 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS_CASELESS 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS_CANONICAL_PATHNAMES 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS_REQUEST_OPLOCK 0x20
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS_REQUEST_BATCH_OPLOCK 0x40
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS_SERVER_RESP 0x80
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * bits in the smb_flags2 field
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_KNOWS_LONG_NAMES 0x0001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_KNOWS_EAS 0x0002 /* client know about EAs */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_SECURITY_SIGNATURE 0x0004 /* check SMB integrity */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_IS_LONG_NAME 0x0040 /* any path name is long name */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_EXT_SEC 0x0800 /* client aware of Extended */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow /* Security negotiation */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_DFS 0x1000 /* resolve paths in DFS */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_PAGING_IO 0x2000 /* for exec */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_ERR_STATUS 0x4000 /* 1 - status.status */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FLAGS2_UNICODE 0x8000 /* use Unicode for strings */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_UID_UNKNOWN 0xffff
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TID_UNKNOWN 0xffff
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FID_UNUSED 0xffff
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Security mode bits
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_USER 0x01 /* server in the user security mode */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_ENCRYPT 0x02 /* use challenge/responce */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_SIGS 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_SIGS_REQUIRE 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Action bits in session setup reply
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_ACT_GUEST 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * NTLM capabilities
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_RAW_MODE 0x0001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_MPX_MODE 0x0002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_UNICODE 0x0004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_LARGE_FILES 0x0008 /* 64 bit offsets supported */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_NT_SMBS 0x0010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_RPC_REMOTE_APIS 0x0020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_STATUS32 0x0040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_LEVEL_II_OPLOCKS 0x0080
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_LOCK_AND_READ 0x0100
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_NT_FIND 0x0200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_DFS 0x1000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_INFOLEVEL_PASSTHRU 0x2000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_LARGE_READX 0x4000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_LARGE_WRITEX 0x8000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_UNIX 0x00800000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_BULK_TRANSFER 0x20000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_COMPRESSED_DATA 0x40000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_CAP_EXT_SECURITY 0x80000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * File attributes
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FA_RDONLY 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FA_HIDDEN 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FA_SYSTEM 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FA_VOLUME 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FA_DIR 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FA_ARCHIVE 0x20
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Extended file attributes
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_RDONLY 0x00000001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_HIDDEN 0x00000002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_SYSTEM 0x00000004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_VOLUME 0x00000008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_DIRECTORY 0x00000010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_ARCHIVE 0x00000020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_DEVICE 0x00000040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_NORMAL 0x00000080
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_TEMPORARY 0x00000100
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_SPARSE 0x00000200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_REPARSE_POINT 0x00000400
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_COMPRESSED 0x00000800
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_OFFLINE 0x00001000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_NONINDEXED 0x00002000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_ENCRYPTED 0x00004000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_POSIX_SEMANTICS 0x01000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_BACKUP_SEMANTICS 0x02000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_DELETE_ON_CLOSE 0x04000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_SEQUENTIAL_SCAN 0x08000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_RANDOM_ACCESS 0x10000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_NO_BUFFERING 0x20000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_EFA_WRITE_THROUGH 0x80000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Access Mode Encoding
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_AM_OPENREAD 0x0000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_AM_OPENWRITE 0x0001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_AM_OPENRW 0x0002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_AM_OPENEXEC 0x0003
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_AM_OPENMODE 0x0003 /* mask for access mode bits */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_COMPAT 0x0000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_EXCLUSIVE 0x0010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_DENYWRITE 0x0020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_DENYREADEXEC 0x0030
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SM_DENYNONE 0x0040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* NT_CREATE_ANDX flags */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_FLAGS_REQUEST_OPLOCK 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_FLAGS_REQUEST_BATCH_OPLOCK 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_FLAGS_OPEN_DIRECTORY 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_FLAGS_EXTENDED 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* NT_CREATE_ANDX share_access (share mode) */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_SHARE_ACCESS_NONE 0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_SHARE_ACCESS_READ 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_SHARE_ACCESS_WRITE 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_SHARE_ACCESS_DELETE 4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_SHARE_ACCESS_ALL 7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* NT_CREATE_ANDX open_disposition */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_DISP_SUPERSEDE 0 /* if file exists supersede it */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_DISP_OPEN 1 /* exists ? open it : fail */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_DISP_CREATE 2 /* exists ? fail : create it */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_DISP_OPEN_IF 3 /* exists ? open it : create it */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_DISP_OVERWRITE 4 /* exists ? overwrite : fail */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_DISP_OVERWRITE_IF 5 /* exists ? overwrite : create */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* NT_CREATE_ANDX create_options */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_DIRECTORY 0x0001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_WRITE_THROUGH 0x0002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_SEQUENTIAL_ONLY 0x0004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_SYNC_ALERT 0x0010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_ASYNC_ALERT 0x0020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_NON_DIRECTORY_FILE 0x0040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_NO_EA_KNOWLEDGE 0x0200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_EIGHT_DOT_THREE_ONLY 0x0400
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_RANDOM_ACCESS 0x0800
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_DELETE_ON_CLOSE 0x1000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_OPTIONS_OPEN_BY_FILE_ID 0x2000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* NT_CREATE_ANDX "impersonation" */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_IMPERSONATION_ANONYMOUS 0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_IMPERSONATION_IDENTIFICATION 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_IMPERSONATION_IMPERSONATION 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_IMPERSONATION_DELEGATION 3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* NT_CREATE_ANDX security flags */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_SECURITY_DYNAMIC 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_SECURITY_ALL 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* NT_CREATE_ANDX create_action in reply */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_ACTION_EXISTED 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_ACTION_CREATED 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NTCREATEX_ACTION_TRUNCATED 3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/* SMB_TRANS2_FIND_FIRST2/SMB_TRANS2_FIND_NEXT2 flags */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FIND2_CLOSE_AFTER_REQUEST 0x0001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FIND2_CLOSE_ON_EOS 0x0002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FIND2_RETURN_RESUME_KEYS 0x0004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FIND2_CONTINUE_SEARCH 0x0008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FIND2_BACKUP_INTENT 0x0010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB commands
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CREATE_DIRECTORY 0x00
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_DELETE_DIRECTORY 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_OPEN 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CREATE 0x03
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CLOSE 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_FLUSH 0x05
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_DELETE 0x06
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_RENAME 0x07
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_QUERY_INFORMATION 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_SET_INFORMATION 0x09
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_READ 0x0A
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE 0x0B
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_LOCK_BYTE_RANGE 0x0C
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_UNLOCK_BYTE_RANGE 0x0D
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CREATE_TEMPORARY 0x0E
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CREATE_NEW 0x0F
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CHECK_DIRECTORY 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_PROCESS_EXIT 0x11
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_SEEK 0x12
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_LOCK_AND_READ 0x13
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_AND_UNLOCK 0x14
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_READ_RAW 0x1A
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_READ_MPX 0x1B
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_READ_MPX_SECONDARY 0x1C
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_RAW 0x1D
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_MPX 0x1E
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_COMPLETE 0x20
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_SET_INFORMATION2 0x22
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_QUERY_INFORMATION2 0x23
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_LOCKING_ANDX 0x24
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_TRANSACTION 0x25
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_TRANSACTION_SECONDARY 0x26
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_IOCTL 0x27
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_IOCTL_SECONDARY 0x28
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_COPY 0x29
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_MOVE 0x2A
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_ECHO 0x2B
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_AND_CLOSE 0x2C
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_OPEN_ANDX 0x2D
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_READ_ANDX 0x2E
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_ANDX 0x2F
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CLOSE_AND_TREE_DISC 0x31
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_TRANSACTION2 0x32
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_TRANSACTION2_SECONDARY 0x33
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_FIND_CLOSE2 0x34
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_FIND_NOTIFY_CLOSE 0x35
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_TREE_CONNECT 0x70
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_TREE_DISCONNECT 0x71
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_NEGOTIATE 0x72
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_SESSION_SETUP_ANDX 0x73
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_LOGOFF_ANDX 0x74
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_TREE_CONNECT_ANDX 0x75
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_QUERY_INFORMATION_DISK 0x80
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_SEARCH 0x81
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_FIND 0x82
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_FIND_UNIQUE 0x83
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_NT_TRANSACT 0xA0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_NT_TRANSACT_SECONDARY 0xA1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_NT_CREATE_ANDX 0xA2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_NT_CANCEL 0xA4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_OPEN_PRINT_FILE 0xC0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_PRINT_FILE 0xC1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_CLOSE_PRINT_FILE 0xC2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_GET_PRINT_QUEUE 0xC3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_READ_BULK 0xD8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_BULK 0xD9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_COM_WRITE_BULK_DATA 0xDA
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB_COM_TRANSACTION2 subcommands
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_OPEN2 0x00
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_FIND_FIRST2 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_FIND_NEXT2 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_QUERY_FS_INFORMATION 0x03
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_SETFSINFO 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_QUERY_PATH_INFORMATION 0x05
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_SET_PATH_INFORMATION 0x06
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_QUERY_FILE_INFORMATION 0x07
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_SET_FILE_INFORMATION 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_FSCTL 0x09
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_IOCTL2 0x0A
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_FIND_NOTIFY_FIRST 0x0B
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_FIND_NOTIFY_NEXT 0x0C
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_CREATE_DIRECTORY 0x0D
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_SESSION_SETUP 0x0E
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_GET_DFS_REFERRAL 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_TRANS2_REPORT_DFS_INCONSISTENCY 0x11
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB_COM_NT_TRANSACT subcommands
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_CREATE 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_IOCTL 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_SET_SECURITY_DESC 0x03
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_NOTIFY_CHANGE 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_RENAME 0x05
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_QUERY_SECURITY_DESC 0x06
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_GET_USER_QUOTA 0x07
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_TRANSACT_SET_USER_QUOTA 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB_TRANS2_QUERY_FS_INFORMATION levels
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_ALLOCATION 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_VOLUME 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_LABEL_INFO 0x101
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_VOLUME_INFO 0x102
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_SIZE_INFO 0x103
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_DEVICE_INFO 0x104
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_ATTRIBUTE_INFO 0x105
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_UNIX_INFO 0x200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_MAC_FS_INFO 0x301
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_VOLUME_INFORMATION 1001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_SIZE_INFORMATION 1003
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_DEVICE_INFORMATION 1004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_ATTRIBUTE_INFORMATION 1005
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_QUOTA_INFORMATION 1006
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_FULL_SIZE_INFORMATION 1007
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFS_OBJECTID_INFORMATION 1008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB_QFS_ATTRIBUTE_INFO bits.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * The following info found in msdn
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * (http://msdn.microsoft.com/library/default.asp?
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * url=/library/en-us/wmisdk/wmi/win32_cdromdrive.asp)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Naming is mostly as in samba, to help Those Who Google.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_CASE_PRESERVED_NAMES 0x00000002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_UNICODE_ON_DISK 0x00000004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_PERSISTENT_ACLS 0x00000008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_FILE_COMPRESSION 0x00000010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_VOLUME_QUOTAS 0x00000020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_SUPPORTS_SPARSE_FILES 0x00000040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_SUPPORTS_LONG_NAMES 0x00004000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_VOLUME_IS_COMPRESSED 0x00008000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_SUPPORTS_OBJECT_IDS 0x00010000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_SUPPORTS_ENCRYPTION 0x00020000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FILE_NAMED_STREAMS 0x00040000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB_TRANS2_QUERY_PATH levels
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_STANDARD 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_EA_SIZE 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_EAS_FROM_LIST 3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ALL_EAS 4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_IS_NAME_VALID 6 /* QPATHINFO only? */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_BASIC_INFO 0x101
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_STANDARD_INFO 0x102
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_EA_INFO 0x103
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_NAME_INFO 0x104
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ALLOCATION_INFO 0x105
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_END_OF_FILE_INFO 0x106
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ALL_INFO 0x107
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ALT_NAME_INFO 0x108
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_STREAM_INFO 0x109
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_COMPRESSION_INFO 0x10b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_UNIX_BASIC 0x200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_UNIX_LINK 0x201
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_MAC_DT_GET_APPL 0x306
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_MAC_DT_GET_ICON 0x307
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_MAC_DT_GET_ICON_INFO 0x308
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_BASIC_INFORMATION 1004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_STANDARD_INFORMATION 1005
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_INTERNAL_INFORMATION 1006
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_EA_INFORMATION 1007
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ACCESS_INFORMATION 1008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_NAME_INFORMATION 1009
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_POSITION_INFORMATION 1014
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_MODE_INFORMATION 1016
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ALIGNMENT_INFORMATION 1017
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ALL_INFORMATION 1018
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ALT_NAME_INFORMATION 1021
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_STREAM_INFORMATION 1022
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_COMPRESSION_INFORMATION 1028
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_NETWORK_OPEN_INFORMATION 1034
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_QFILEINFO_ATTRIBUTE_TAG_INFORMATION 1035
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SMB_TRANS2_FIND_FIRST2 information levels
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_STANDARD 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_EA_SIZE 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_EAS_FROM_LIST 3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_DIRECTORY_INFO 0x101
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_FULL_DIRECTORY_INFO 0x102
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_NAME_INFO 0x103
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_BOTH_DIRECTORY_INFO 0x104
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_FIND_UNIX_INFO 0x200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Selectors for NT_TRANSACT_QUERY_SECURITY_DESC and
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * NT_TRANSACT_SET_SECURITY_DESC. Details found in the MSDN
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * library by searching on security_information.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Note the protected/unprotected bits did not exist in NT.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define OWNER_SECURITY_INFORMATION 0x00000001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define GROUP_SECURITY_INFORMATION 0x00000002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define DACL_SECURITY_INFORMATION 0x00000004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SACL_SECURITY_INFORMATION 0x00000008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define UNPROTECTED_SACL_SECURITY_INFORMATION 0x10000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define UNPROTECTED_DACL_SECURITY_INFORMATION 0x20000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define PROTECTED_SACL_SECURITY_INFORMATION 0x40000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define PROTECTED_DACL_SECURITY_INFORMATION 0x80000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * security descriptor header
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * it is followed by the optional SIDs and ACLs
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * note this is "raw", ie little-endian
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowstruct ntsecdesc {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t sd_revision; /* 0x01 observed between W2K */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t sd_pad1;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint16_t sd_flags;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t sd_owneroff; /* offset to owner SID */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t sd_groupoff; /* offset to group SID */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t sd_sacloff; /* offset to system/audit ACL */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t sd_dacloff; /* offset to discretionary ACL */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow}; /* XXX: __attribute__((__packed__)); */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowtypedef struct ntsecdesc ntsecdesc_t;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_sdrevision(s) ((s)->sd_revision = 0x01)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sdflags(s) (letohs((s)->sd_flags))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_sdflags(s, f) ((s)->sd_flags = letohs(f))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sdowner(s) \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow ((struct ntsid *)((s)->sd_owneroff ? \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow (char *)(s) + letohl((s)->sd_owneroff) : \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow NULL))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_sdowneroff(s, o) ((s)->sd_owneroff = htolel(o))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sdgroup(s) \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow ((struct ntsid *)((s)->sd_groupoff ? \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow (char *)(s) + letohl((s)->sd_groupoff) : \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow NULL))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_sdgroupoff(s, o) ((s)->sd_groupoff = htolel(o))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sdsacl(s) \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow ((struct ntacl *)((s)->sd_sacloff ? \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow (char *)(s) + letohl((s)->sd_sacloff) : \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow NULL))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_sdsacloff(s, o) ((s)->sd_sacloff = htolel(o))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sddacl(s) \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow ((struct ntacl *)((s)->sd_dacloff ? \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow (char *)(s) + letohl((s)->sd_dacloff) : \
4bff34e37def8a90f9194d81bc345c52ba20086athurlow NULL))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_sddacloff(s, o) ((s)->sd_dacloff = htolel(o))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * sd_flags bits
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_OWNER_DEFAULTED 0x0001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_GROUP_DEFAULTED 0x0002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_DACL_PRESENT 0x0004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_DACL_DEFAULTED 0x0008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_SACL_PRESENT 0x0010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_SACL_DEFAULTED 0x0020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_DACL_TRUSTED 0x0040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_SERVER_SECURITY 0x0080
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_DACL_AUTO_INHERIT_REQ 0x0100
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_SACL_AUTO_INHERIT_REQ 0x0200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_DACL_AUTO_INHERITED 0x0400
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_SACL_AUTO_INHERITED 0x0800
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_DACL_PROTECTED 0x1000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_SACL_PROTECTED 0x2000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_RM_CONTROL_VALID 0x4000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SD_SELF_RELATIVE 0x8000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * access control list header
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * it is followed by the ACEs
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * note this is "raw", ie little-endian
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowstruct ntacl {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t acl_revision; /* 0x02 observed with W2K */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t acl_pad1;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint16_t acl_len; /* bytes; includes this header */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint16_t acl_acecount;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint16_t acl_pad2;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow}; /* XXX: __attribute__((__packed__)); */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowtypedef struct ntacl ntacl_t;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_aclrevision(a) ((a)->acl_revision = 0x02)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define acllen(a) (letohs((a)->acl_len))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_acllen(a, l) ((a)->acl_len = htoles(l))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define aclacecount(a) (letohs((a)->acl_acecount))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_aclacecount(a, c) ((a)->acl_acecount = htoles(c))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define aclace(a) ((struct ntace *)((char *)(a) + sizeof (struct ntacl)))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * access control entry header
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * it is followed by type-specific ace data,
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * which for the simple types is just a SID
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * note this is "raw", ie little-endian
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowstruct ntace {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t ace_type;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t ace_flags;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint16_t ace_len; /* bytes; includes this header */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t ace_rights; /* generic, standard, specific, etc */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow}; /* XXX: __attribute__((__packed__)); */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define acetype(a) ((a)->ace_type)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_acetype(a, t) ((a)->ace_type = (t))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define aceflags(a) ((a)->ace_flags)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_aceflags(a, f) ((a)->ace_flags = (f))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define acelen(a) (letohs((a)->ace_len))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_acelen(a, l) ((a)->ace_len = htoles(l))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define acerights(a) (letohl((a)->ace_rights))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define wset_acerights(a, r) ((a)->ace_rights = htolel(r))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define aceace(a) ((struct ntace *)((char *)(a) + acelen(a)))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define acesid(a) ((struct ntsid *)((char *)(a) + sizeof (struct ntace)))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * ace_rights
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * (Samba bit names are used here, with permission, as the shorter Windows
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * names are more likely to cause namespace collisions)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_READ_DATA 0x00000001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_WRITE_DATA 0x00000002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_APPEND_DATA 0x00000004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_READ_EA 0x00000008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_WRITE_EA 0x00000010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_EXECUTE 0x00000020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_DELETE_CHILD 0x00000040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_READ_ATTRIBUTES 0x00000080
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_WRITE_ATTRIBUTES 0x00000100
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SA_RIGHT_FILE_ALL_ACCESS 0x000001FF
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STD_RIGHT_DELETE_ACCESS 0x00010000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STD_RIGHT_READ_CONTROL_ACCESS 0x00020000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STD_RIGHT_WRITE_DAC_ACCESS 0x00040000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STD_RIGHT_WRITE_OWNER_ACCESS 0x00080000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STD_RIGHT_SYNCHRONIZE_ACCESS 0x00100000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STD_RIGHT_ALL_ACCESS 0x001F0000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SEC_RIGHT_SYSTEM_SECURITY 0x01000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Don't use MAXIMUM_ALLOWED as Samba (2.2.3 at least) will
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * return NT_STATUS_INVALID_LOCK_SEQUENCE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SEC_RIGHT_MAXIMUM_ALLOWED 0x02000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define GENERIC_RIGHT_ALL_ACCESS 0x10000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define GENERIC_RIGHT_EXECUTE_ACCESS 0x20000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define GENERIC_RIGHT_WRITE_ACCESS 0x40000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define GENERIC_RIGHT_READ_ACCESS 0x80000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * these mappings are from Windows sample code but are likely incomplete
4bff34e37def8a90f9194d81bc345c52ba20086athurlow *
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * GENERIC_RIGHT_READ_ACCESS :
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_SYNCHRONIZE_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_READ_CONTROL_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_READ_ATTRIBUTES |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_READ_EA |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_READ_DATA
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * GENERIC_RIGHT_WRITE_ACCESS :
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_SYNCHRONIZE_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_READ_CONTROL_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_WRITE_ATTRIBUTES |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_WRITE_EA |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_APPEND_DATA |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_WRITE_DATA
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * GENERIC_RIGHT_EXECUTE_ACCESS :
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_SYNCHRONIZE_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_READ_CONTROL_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_READ_ATTRIBUTES |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_EXECUTE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * GENERIC_RIGHT_ALL_ACCESS :
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_SYNCHRONIZE_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_WRITE_OWNER_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_WRITE_DAC_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_READ_CONTROL_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STD_RIGHT_DELETE_ACCESS |
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SA_RIGHT_FILE_ALL_ACCESS
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * security identifier header
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * it is followed by sid_numauth sub-authorities,
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * which are 32 bits each.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * note the subauths are little-endian on the wire, but
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * need to be big-endian for memberd/DS
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SIDAUTHSIZE 6
4bff34e37def8a90f9194d81bc345c52ba20086athurlowstruct ntsid {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t sid_revision;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t sid_subauthcount;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint8_t sid_authority[SIDAUTHSIZE]; /* ie not little endian */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow}; /* XXX: __attribute__((__packed__)); */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowtypedef struct ntsid ntsid_t;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sidsubauthcount(s) (s->sid_subauthcount)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sidlen(s) (sizeof (struct ntsid) + 4 * (s)->sid_subauthcount)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define MAXSIDLEN (sizeof (struct ntsid) + 4 * KAUTH_NTSID_MAX_AUTHORITIES)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define sidsub(s) ((uint32_t *)((char *)(s) + sizeof (struct ntsid)))
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * MS' defined values for ace_type
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_ALLOWED_ACE_TYPE 0x0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_DENIED_ACE_TYPE 0x1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_AUDIT_ACE_TYPE 0x2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_ALARM_ACE_TYPE 0x3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_ALLOWED_COMPOUND_ACE_TYPE 0x4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_ALLOWED_OBJECT_ACE_TYPE 0x5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_DENIED_OBJECT_ACE_TYPE 0x6
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_AUDIT_OBJECT_ACE_TYPE 0x7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_ALARM_OBJECT_ACE_TYPE 0x8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_ALLOWED_CALLBACK_ACE_TYPE 0x9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_DENIED_CALLBACK_ACE_TYPE 0xA
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE 0xB
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE 0xC
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_AUDIT_CALLBACK_ACE_TYPE 0xD
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_ALARM_CALLBACK_ACE_TYPE 0xE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE 0xF
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * MS' defined values for ace_flags
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define OBJECT_INHERIT_ACE_FLAG 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define CONTAINER_INHERIT_ACE_FLAG 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NO_PROPAGATE_INHERIT_ACE_FLAG 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define INHERIT_ONLY_ACE_FLAG 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define INHERITED_ACE_FLAG 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define UNDEF_ACE_FLAG 0x20 /* MS doesn't define it */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define VALID_INHERIT_ACE_FLAGS 0x1F
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SUCCESSFUL_ACCESS_ACE_FLAG 0x40
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define FAILED_ACCESS_ACE_FLAG 0x80
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Set PATH/FILE information levels
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_STANDARD 1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_EA_SET 2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_BASIC_INFO 0x101
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_DISPOSITION_INFO 0x102
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_ALLOCATION_INFO 0x103
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_END_OF_FILE_INFO 0x104
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_UNIX_BASIC 0x200
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_UNIX_LINK 0x201
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_UNIX_HLINK 0x203
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_DIRECTORY_INFORMATION 1001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_FULL_DIRECTORY_INFORMATION 1002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_BOTH_DIRECTORY_INFORMATION 1003
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_BASIC_INFORMATION 1004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_STANDARD_INFORMATION 1005
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_INTERNAL_INFORMATION 1006
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_EA_INFORMATION 1007
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_ACCESS_INFORMATION 1008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_NAME_INFORMATION 1009
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_RENAME_INFORMATION 1010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_LINK_INFORMATION 1011
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_NAMES_INFORMATION 1012
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_DISPOSITION_INFORMATION 1013
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_POSITION_INFORMATION 1014
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_1015 1015 /* ? */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_MODE_INFORMATION 1016
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_ALIGNMENT_INFORMATION 1017
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_ALL_INFORMATION 1018
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_ALLOCATION_INFORMATION 1019
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_END_OF_FILE_INFORMATION 1020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_ALT_NAME_INFORMATION 1021
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_STREAM_INFORMATION 1022
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_PIPE_INFORMATION 1023
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_PIPE_LOCAL_INFORMATION 1024
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_PIPE_REMOTE_INFORMATION 1025
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_MAILSLOT_QUERY_INFORMATION 1026
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_MAILSLOT_SET_INFORMATION 1027
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_COMPRESSION_INFORMATION 1028
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_OBJECT_ID_INFORMATION 1029
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_COMPLETION_INFORMATION 1030
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_MOVE_CLUSTER_INFORMATION 1031
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_QUOTA_INFORMATION 1032
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_REPARSE_POINT_INFORMATION 1033
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_NETWORK_OPEN_INFORMATION 1034
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_ATTRIBUTE_TAG_INFORMATION 1035
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_TRACKING_INFORMATION 1036
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_SFILEINFO_MAXIMUM_INFORMATION 1037
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * LOCKING_ANDX LockType flags
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_LOCKING_ANDX_SHARED_LOCK 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_LOCKING_ANDX_OPLOCK_RELEASE 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_LOCKING_ANDX_CHANGE_LOCKTYPE 0x04
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_LOCKING_ANDX_CANCEL_LOCK 0x08
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_LOCKING_ANDX_LARGE_FILES 0x10
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Error classes
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMBSUCCESS 0x00
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRDOS 0x01
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRSRV 0x02
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRHRD 0x03 /* Error is an hardware error. */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRCMD 0xFF /* Command was not in the "SMB" format. */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Error codes for the ERRDOS class
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadfunc 1 /* Invalid function */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadfile 2 /* File not found (last component) */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadpath 3 /* Directory invalid */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnofids 4 /* Too many open files */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnoaccess 5 /* Access denied */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadfid 6 /* Invalid file handle */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadmcb 7 /* Memory control blocks destroyed (huh ?) */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnomem 8 /* Insufficient memory */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadmem 9 /* Invalid memory block address */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadenv 10 /* Invalid environment */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadformat 11 /* Invalid format */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadaccess 12 /* Invalid open mode */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbaddata 13 /* Invalid data */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRoutofmem 14 /* out of memory */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbaddrive 15 /* Invalid drive specified */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRremcd 16 /* An attempt to delete current directory */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRdiffdevice 17 /* cross fs rename/move */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnofiles 18 /* no more files found in file search */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRwriteprotect 19
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnotready 21
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadcmd 22
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRcrc 23
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadlength 24
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRsectornotfound 27
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadshare 32 /* Share mode can't be granted */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRlock 33 /* Lock conflicts with existing lock */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRwrongdisk 34
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRhandleeof 38
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRunsup 50 /* unsupported - Win 95 */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnetnamedel 64
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnoipc 66 /* ipc unsupported */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnosuchshare 67 /* invalid share name */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRtoomanynames 68
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRfilexists 80 /* requested file name already exists */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinvalidparam 87
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRcannotopen 110 /* cannot open the file */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinsufficientbuffer 122
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinvalidname 123
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRunknownlevel 124
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRdirnotempty 145
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnotlocked 158 /* region was not locked by this context */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRrename 183
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadpipe 230 /* named pipe invalid */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRpipebusy 231 /* all pipe instances are busy */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRpipeclosing 232 /* close in progress */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnotconnected 233 /* nobody on other end of pipe */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRmoredata 234 /* more data to be returned */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnomoreitems 259
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbaddirectory 267 /* invalid directory name */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERReasunsupported 282 /* extended attributes not supported */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRlogonfailure 1326
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbuftoosmall 2123
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRunknownipc 2142
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnosuchprintjob 2151
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinvgroup 2455
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Error codes for the ERRSRV class
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRerror 1 /* Non-specific error code */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadpw 2 /* Bad password */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadtype 3 /* reserved */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRaccess 4 /* client doesn't have enough access rights */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinvnid 5 /* The Tid specified in a command is invalid */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinvnetname 6 /* Invalid server name in the tree connect */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinvdevice 7 /* Printer and not printer devices are mixed */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRqfull 49 /* Print queue full */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRqtoobig 50 /* Print queue full - no space */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRinvpfid 52 /* Invalid print file FID */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRsmbcmd 64 /* The server did not recognise the command */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRsrverror 65 /* The server encountered and internal error */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRfilespecs 67 /* The Fid and path name contains an */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow /* invalid combination */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadpermits 69 /* Access mode invalid */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRsetattrmode 71 /* Attribute mode invalid */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRpaused 81 /* Server is paused */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRmsgoff 82 /* Not receiving messages */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnoroom 83 /* No room to buffer message */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRrmuns 87 /* Too many remote user names */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRtimeout 88 /* Operation timed out */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnoresource 89 /* No resources currently available for req */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRtoomanyuids 90 /* Too many UIDs active on this session */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbaduid 91 /* The UID is not known in this session */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRusempx 250 /* Temporarily unable to support Raw, */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow /* use MPX mode */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRusestd 251 /* Temporarily unable to support Raw, */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow /* use stdandard r/w */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRcontmpx 252 /* Continue in MPX mode */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRacctexpired 2239
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnosupport 65535 /* Invalid function */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Error codes for the ERRHRD class
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnowrite 19 /* write protected media */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadunit 20 /* Unknown unit */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnotready 21 /* Drive not ready */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadcmd 22 /* Unknown command */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRdata 23 /* Data error (CRC) */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadreq 24 /* Bad request structure length */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRseek 25 /* Seek error */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadmedia 26 /* Unknown media type */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadsector 27 /* Sector not found */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRnopaper 28 /* Printer out of paper */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRwrite 29 /* Write fault */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRread 30 /* Read fault */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRgeneral 31 /* General failure */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRbadshare 32 /* A open conflicts with an existing open */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRlock 33 /* lock/unlock conflict */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRwrongdisk 34 /* The wrong disk was found in a drive */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRFCBunavail 35 /* No FCBs available */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRsharebufexc 36 /* A sharing buffer has been exceeded */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define ERRdiskfull 39
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * RAP error codes (it seems that they returned not only by RAP)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_ERROR_ACCESS_DENIED 5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_ERROR_NETWORK_ACCESS_DENIED 65
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_ERROR_MORE_DATA ERRmoredata
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * An INCOMPLETE list of 32 bit error codes
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * For more detail see MSDN and ntstatus.h in the MS DDK
4bff34e37def8a90f9194d81bc345c52ba20086athurlow *
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * XXX - these should have the severity and "customer defined" fields
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * added back in, and smb_maperr32() shouldn't mask those fields out;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x80000005 is STATUS_BUFFER_OVERFLOW, with 0xC0000000 is
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * STATUS_ACCESS_VIOLATION, and we need to distinguish between them.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * We use STATUS_BUFFER_OVERFLOW, and need to know its exact value,
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * so we #define it correctly here; don't strip off the leading
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x80000000 from it!
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BUFFER_OVERFLOW 0x80000005
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNSUCCESSFUL 0x0001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_IMPLEMENTED 0x0002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_INFO_CLASS 0x0003
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INFO_LENGTH_MISMATCH 0x0004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ACCESS_VIOLATION 0x0005
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IN_PAGE_ERROR 0x0006
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PAGEFILE_QUOTA 0x0007
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_HANDLE 0x0008
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_INITIAL_STACK 0x0009
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_INITIAL_PC 0x000a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_CID 0x000b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TIMER_NOT_CANCELED 0x000c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER 0x000d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_DEVICE 0x000e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_FILE 0x000f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_DEVICE_REQUEST 0x0010
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_END_OF_FILE 0x0011
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_WRONG_VOLUME 0x0012
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_MEDIA_IN_DEVICE 0x0013
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNRECOGNIZED_MEDIA 0x0014
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NONEXISTENT_SECTOR 0x0015
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MORE_PROCESSING_REQUIRED 0x0016
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_MEMORY 0x0017
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONFLICTING_ADDRESSES 0x0018
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_MAPPED_VIEW 0x0019
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNABLE_TO_FREE_VM 0x001a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNABLE_TO_DELETE_SECTION 0x001b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_SYSTEM_SERVICE 0x001c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ILLEGAL_INSTRUCTION 0x001d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_LOCK_SEQUENCE 0x001e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_VIEW_SIZE 0x001f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_FILE_FOR_SECTION 0x0020
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ALREADY_COMMITTED 0x0021
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ACCESS_DENIED 0x0022
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BUFFER_TOO_SMALL 0x0023
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECT_TYPE_MISMATCH 0x0024
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NONCONTINUABLE_EXCEPTION 0x0025
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_DISPOSITION 0x0026
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNWIND 0x0027
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_STACK 0x0028
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_UNWIND_TARGET 0x0029
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_LOCKED 0x002a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PARITY_ERROR 0x002b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNABLE_TO_DECOMMIT_VM 0x002c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_COMMITTED 0x002d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PORT_ATTRIBUTES 0x002e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PORT_MESSAGE_TOO_LONG 0x002f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_MIX 0x0030
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_QUOTA_LOWER 0x0031
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DISK_CORRUPT_ERROR 0x0032
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECT_NAME_INVALID 0x0033
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECT_NAME_NOT_FOUND 0x0034
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECT_NAME_COLLISION 0x0035
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_HANDLE_NOT_WAITABLE 0x0036
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PORT_DISCONNECTED 0x0037
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_ALREADY_ATTACHED 0x0038
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECT_PATH_INVALID 0x0039
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECT_PATH_NOT_FOUND 0x003a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECT_PATH_SYNTAX_BAD 0x003b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DATA_OVERRUN 0x003c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DATA_LATE_ERROR 0x003d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DATA_ERROR 0x003e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CRC_ERROR 0x003f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SECTION_TOO_BIG 0x0040
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PORT_CONNECTION_REFUSED 0x0041
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PORT_HANDLE 0x0042
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SHARING_VIOLATION 0x0043
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_QUOTA_EXCEEDED 0x0044
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PAGE_PROTECTION 0x0045
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MUTANT_NOT_OWNED 0x0046
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED 0x0047
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PORT_ALREADY_SET 0x0048
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SECTION_NOT_IMAGE 0x0049
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SUSPEND_COUNT_EXCEEDED 0x004a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_THREAD_IS_TERMINATING 0x004b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_WORKING_SET_LIMIT 0x004c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INCOMPATIBLE_FILE_MAP 0x004d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SECTION_PROTECTION 0x004e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_EAS_NOT_SUPPORTED 0x004f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_EA_TOO_LARGE 0x0050
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NONEXISTENT_EA_ENTRY 0x0051
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_EAS_ON_FILE 0x0052
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_EA_CORRUPT_ERROR 0x0053
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_LOCK_CONFLICT 0x0054
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOCK_NOT_GRANTED 0x0055
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DELETE_PENDING 0x0056
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CTL_FILE_NOT_SUPPORTED 0x0057
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNKNOWN_REVISION 0x0058
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REVISION_MISMATCH 0x0059
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_OWNER 0x005a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PRIMARY_GROUP 0x005b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_IMPERSONATION_TOKEN 0x005c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANT_DISABLE_MANDATORY 0x005d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_LOGON_SERVERS 0x005e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_LOGON_SESSION 0x005f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_PRIVILEGE 0x0060
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PRIVILEGE_NOT_HELD 0x0061
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_ACCOUNT_NAME 0x0062
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_USER_EXISTS 0x0063
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_USER 0x0064
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_GROUP_EXISTS 0x0065
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_GROUP 0x0066
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MEMBER_IN_GROUP 0x0067
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MEMBER_NOT_IN_GROUP 0x0068
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LAST_ADMIN 0x0069
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_WRONG_PASSWORD 0x006a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ILL_FORMED_PASSWORD 0x006b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PASSWORD_RESTRICTION 0x006c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGON_FAILURE 0x006d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ACCOUNT_RESTRICTION 0x006e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_LOGON_HOURS 0x006f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_WORKSTATION 0x0070
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PASSWORD_EXPIRED 0x0071
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ACCOUNT_DISABLED 0x0072
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NONE_MAPPED 0x0073
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_LUIDS_REQUESTED 0x0074
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LUIDS_EXHAUSTED 0x0075
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_SUB_AUTHORITY 0x0076
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_ACL 0x0077
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_SID 0x0078
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_SECURITY_DESCR 0x0079
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PROCEDURE_NOT_FOUND 0x007a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_IMAGE_FORMAT 0x007b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_TOKEN 0x007c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_INHERITANCE_ACL 0x007d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RANGE_NOT_LOCKED 0x007e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DISK_FULL 0x007f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SERVER_DISABLED 0x0080
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SERVER_NOT_DISABLED 0x0081
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_GUIDS_REQUESTED 0x0082
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_GUIDS_EXHAUSTED 0x0083
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_ID_AUTHORITY 0x0084
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_AGENTS_EXHAUSTED 0x0085
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_VOLUME_LABEL 0x0086
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SECTION_NOT_EXTENDED 0x0087
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_MAPPED_DATA 0x0088
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RESOURCE_DATA_NOT_FOUND 0x0089
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RESOURCE_TYPE_NOT_FOUND 0x008a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RESOURCE_NAME_NOT_FOUND 0x008b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ARRAY_BOUNDS_EXCEEDED 0x008c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOAT_DENORMAL_OPERAND 0x008d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOAT_DIVIDE_BY_ZERO 0x008e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOAT_INEXACT_RESULT 0x008f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOAT_INVALID_OPERATION 0x0090
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOAT_OVERFLOW 0x0091
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOAT_STACK_CHECK 0x0092
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOAT_UNDERFLOW 0x0093
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INTEGER_DIVIDE_BY_ZERO 0x0094
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INTEGER_OVERFLOW 0x0095
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PRIVILEGED_INSTRUCTION 0x0096
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_PAGING_FILES 0x0097
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_INVALID 0x0098
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ALLOTTED_SPACE_EXCEEDED 0x0099
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INSUFFICIENT_RESOURCES 0x009a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DFS_EXIT_PATH_FOUND 0x009b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_DATA_ERROR 0x009c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_NOT_CONNECTED 0x009d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_POWER_FAILURE 0x009e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FREE_VM_NOT_AT_BASE 0x009f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MEMORY_NOT_ALLOCATED 0x00a0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_WORKING_SET_QUOTA 0x00a1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MEDIA_WRITE_PROTECTED 0x00a2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_NOT_READY 0x00a3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_GROUP_ATTRIBUTES 0x00a4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_IMPERSONATION_LEVEL 0x00a5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANT_OPEN_ANONYMOUS 0x00a6
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_VALIDATION_CLASS 0x00a7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_TOKEN_TYPE 0x00a8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_MASTER_BOOT_RECORD 0x00a9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INSTRUCTION_MISALIGNMENT 0x00aa
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INSTANCE_NOT_AVAILABLE 0x00ab
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_NOT_AVAILABLE 0x00ac
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PIPE_STATE 0x00ad
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_BUSY 0x00ae
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ILLEGAL_FUNCTION 0x00af
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_DISCONNECTED 0x00b0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_CLOSING 0x00b1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_CONNECTED 0x00b2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_LISTENING 0x00b3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_READ_MODE 0x00b4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IO_TIMEOUT 0x00b5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_FORCED_CLOSED 0x00b6
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PROFILING_NOT_STARTED 0x00b7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PROFILING_NOT_STOPPED 0x00b8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_COULD_NOT_INTERPRET 0x00b9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_IS_A_DIRECTORY 0x00ba
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_SUPPORTED 0x00bb
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REMOTE_NOT_LISTENING 0x00bc
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DUPLICATE_NAME 0x00bd
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_NETWORK_PATH 0x00be
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NETWORK_BUSY 0x00bf
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_DOES_NOT_EXIST 0x00c0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_COMMANDS 0x00c1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ADAPTER_HARDWARE_ERROR 0x00c2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_NETWORK_RESPONSE 0x00c3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNEXPECTED_NETWORK_ERROR 0x00c4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_REMOTE_ADAPTER 0x00c5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PRINT_QUEUE_FULL 0x00c6
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SPOOL_SPACE 0x00c7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PRINT_CANCELLED 0x00c8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NETWORK_NAME_DELETED 0x00c9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NETWORK_ACCESS_DENIED 0x00ca
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_DEVICE_TYPE 0x00cb
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_NETWORK_NAME 0x00cc
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_NAMES 0x00cd
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_SESSIONS 0x00ce
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SHARING_PAUSED 0x00cf
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REQUEST_NOT_ACCEPTED 0x00d0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REDIRECTOR_PAUSED 0x00d1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NET_WRITE_FAULT 0x00d2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PROFILING_AT_LIMIT 0x00d3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_SAME_DEVICE 0x00d4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_RENAMED 0x00d5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_VIRTUAL_CIRCUIT_CLOSED 0x00d6
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SECURITY_ON_OBJECT 0x00d7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANT_WAIT 0x00d8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_EMPTY 0x00d9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANT_ACCESS_DOMAIN_INFO 0x00da
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANT_TERMINATE_SELF 0x00db
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_SERVER_STATE 0x00dc
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_DOMAIN_STATE 0x00dd
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_DOMAIN_ROLE 0x00de
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_DOMAIN 0x00df
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DOMAIN_EXISTS 0x00e0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DOMAIN_LIMIT_EXCEEDED 0x00e1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OPLOCK_NOT_GRANTED 0x00e2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_OPLOCK_PROTOCOL 0x00e3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INTERNAL_DB_CORRUPTION 0x00e4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INTERNAL_ERROR 0x00e5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_GENERIC_NOT_MAPPED 0x00e6
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_DESCRIPTOR_FORMAT 0x00e7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_USER_BUFFER 0x00e8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNEXPECTED_IO_ERROR 0x00e9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNEXPECTED_MM_CREATE_ERR 0x00ea
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNEXPECTED_MM_MAP_ERROR 0x00eb
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNEXPECTED_MM_EXTEND_ERR 0x00ec
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_LOGON_PROCESS 0x00ed
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGON_SESSION_EXISTS 0x00ee
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_1 0x00ef
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_2 0x00f0
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_3 0x00f1
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_4 0x00f2
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_5 0x00f3
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_6 0x00f4
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_7 0x00f5
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_8 0x00f6
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_9 0x00f7
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_10 0x00f8
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_11 0x00f9
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PARAMETER_12 0x00fa
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REDIRECTOR_NOT_STARTED 0x00fb
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REDIRECTOR_STARTED 0x00fc
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_STACK_OVERFLOW 0x00fd
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_PACKAGE 0x00fe
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_FUNCTION_TABLE 0x00ff
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_VARIABLE_NOT_FOUND 0x0100
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DIRECTORY_NOT_EMPTY 0x0101
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_CORRUPT_ERROR 0x0102
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_A_DIRECTORY 0x0103
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_LOGON_SESSION_STATE 0x0104
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGON_SESSION_COLLISION 0x0105
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NAME_TOO_LONG 0x0106
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILES_OPEN 0x0107
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_IN_USE 0x0108
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MESSAGE_NOT_FOUND 0x0109
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PROCESS_IS_TERMINATING 0x010a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_LOGON_TYPE 0x010b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_GUID_TRANSLATION 0x010c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANNOT_IMPERSONATE 0x010d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IMAGE_ALREADY_LOADED 0x010e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_NOT_PRESENT 0x010f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_LID_NOT_EXIST 0x0110
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_LID_ALREADY_OWNED 0x0111
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_NOT_LID_OWNER 0x0112
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_INVALID_COMMAND 0x0113
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_INVALID_LID 0x0114
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE 0x0115
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ABIOS_INVALID_SELECTOR 0x0116
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_LDT 0x0117
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_LDT_SIZE 0x0118
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_LDT_OFFSET 0x0119
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_LDT_DESCRIPTOR 0x011a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_IMAGE_NE_FORMAT 0x011b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RXACT_INVALID_STATE 0x011c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RXACT_COMMIT_FAILURE 0x011d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MAPPED_FILE_SIZE_ZERO 0x011e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_OPENED_FILES 0x011f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANCELLED 0x0120
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANNOT_DELETE 0x0121
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_COMPUTER_NAME 0x0122
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_DELETED 0x0123
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SPECIAL_ACCOUNT 0x0124
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SPECIAL_GROUP 0x0125
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SPECIAL_USER 0x0126
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MEMBERS_PRIMARY_GROUP 0x0127
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_CLOSED 0x0128
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_THREADS 0x0129
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_THREAD_NOT_IN_PROCESS 0x012a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOKEN_ALREADY_IN_USE 0x012b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PAGEFILE_QUOTA_EXCEEDED 0x012c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_COMMITMENT_LIMIT 0x012d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_IMAGE_LE_FORMAT 0x012e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_IMAGE_NOT_MZ 0x012f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_IMAGE_PROTECT 0x0130
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_IMAGE_WIN_16 0x0131
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGON_SERVER_CONFLICT 0x0132
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TIME_DIFFERENCE_AT_DC 0x0133
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SYNCHRONIZATION_REQUIRED 0x0134
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DLL_NOT_FOUND 0x0135
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OPEN_FAILED 0x0136
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IO_PRIVILEGE_FAILED 0x0137
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ORDINAL_NOT_FOUND 0x0138
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ENTRYPOINT_NOT_FOUND 0x0139
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONTROL_C_EXIT 0x013a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOCAL_DISCONNECT 0x013b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REMOTE_DISCONNECT 0x013c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REMOTE_RESOURCES 0x013d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LINK_FAILED 0x013e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LINK_TIMEOUT 0x013f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_CONNECTION 0x0140
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_ADDRESS 0x0141
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DLL_INIT_FAILED 0x0142
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MISSING_SYSTEMFILE 0x0143
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNHANDLED_EXCEPTION 0x0144
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_APP_INIT_FAILURE 0x0145
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PAGEFILE_CREATE_FAILED 0x0146
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_PAGEFILE 0x0147
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_LEVEL 0x0148
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_WRONG_PASSWORD_CORE 0x0149
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ILLEGAL_FLOAT_CONTEXT 0x014a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PIPE_BROKEN 0x014b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REGISTRY_CORRUPT 0x014c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REGISTRY_IO_FAILED 0x014d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_EVENT_PAIR 0x014e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNRECOGNIZED_VOLUME 0x014f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SERIAL_NO_DEVICE_INITED 0x0150
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_ALIAS 0x0151
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MEMBER_NOT_IN_ALIAS 0x0152
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MEMBER_IN_ALIAS 0x0153
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ALIAS_EXISTS 0x0154
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGON_NOT_GRANTED 0x0155
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_SECRETS 0x0156
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SECRET_TOO_LONG 0x0157
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INTERNAL_DB_ERROR 0x0158
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FULLSCREEN_MODE 0x0159
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_CONTEXT_IDS 0x015a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGON_TYPE_NOT_GRANTED 0x015b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_REGISTRY_FILE 0x015c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED 0x015d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DOMAIN_CTRLR_CONFIG_ERROR 0x015e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FT_MISSING_MEMBER 0x015f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ILL_FORMED_SERVICE_ENTRY 0x0160
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ILLEGAL_CHARACTER 0x0161
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNMAPPABLE_CHARACTER 0x0162
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNDEFINED_CHARACTER 0x0163
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOPPY_VOLUME 0x0164
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOPPY_ID_MARK_NOT_FOUND 0x0165
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOPPY_WRONG_CYLINDER 0x0166
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOPPY_UNKNOWN_ERROR 0x0167
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FLOPPY_BAD_REGISTERS 0x0168
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DISK_RECALIBRATE_FAILED 0x0169
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DISK_OPERATION_FAILED 0x016a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DISK_RESET_FAILED 0x016b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SHARED_IRQ_BUSY 0x016c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FT_ORPHANING 0x016d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT 0x016e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_16F 0x016f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_170 0x0170
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_171 0x0171
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PARTITION_FAILURE 0x0172
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_BLOCK_LENGTH 0x0173
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_NOT_PARTITIONED 0x0174
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNABLE_TO_LOCK_MEDIA 0x0175
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNABLE_TO_UNLOAD_MEDIA 0x0176
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_EOM_OVERFLOW 0x0177
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_MEDIA 0x0178
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_179 0x0179
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_SUCH_MEMBER 0x017a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_MEMBER 0x017b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_KEY_DELETED 0x017c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_LOG_SPACE 0x017d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_SIDS 0x017e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED 0x017f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_KEY_HAS_CHILDREN 0x0180
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CHILD_MUST_BE_VOLATILE 0x0181
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_CONFIGURATION_ERROR 0x0182
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DRIVER_INTERNAL_ERROR 0x0183
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_DEVICE_STATE 0x0184
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IO_DEVICE_ERROR 0x0185
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEVICE_PROTOCOL_ERROR 0x0186
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BACKUP_CONTROLLER 0x0187
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOG_FILE_FULL 0x0188
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_LATE 0x0189
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_TRUST_LSA_SECRET 0x018a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_TRUST_SAM_ACCOUNT 0x018b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRUSTED_DOMAIN_FAILURE 0x018c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE 0x018d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_EVENTLOG_FILE_CORRUPT 0x018e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_EVENTLOG_CANT_START 0x018f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRUST_FAILURE 0x0190
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MUTANT_LIMIT_EXCEEDED 0x0191
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NETLOGON_NOT_STARTED 0x0192
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ACCOUNT_EXPIRED 0x0193
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_POSSIBLE_DEADLOCK 0x0194
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NETWORK_CREDENTIAL_CONFLICT 0x0195
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REMOTE_SESSION_LIMIT 0x0196
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_EVENTLOG_FILE_CHANGED 0x0197
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 0x0198
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT 0x0199
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT 0x019a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DOMAIN_TRUST_INCONSISTENT 0x019b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FS_DRIVER_REQUIRED 0x019c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_USER_SESSION_KEY 0x0202
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_USER_SESSION_DELETED 0x0203
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RESOURCE_LANG_NOT_FOUND 0x0204
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INSUFF_SERVER_RESOURCES 0x0205
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_BUFFER_SIZE 0x0206
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_ADDRESS_COMPONENT 0x0207
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_ADDRESS_WILDCARD 0x0208
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_ADDRESSES 0x0209
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ADDRESS_ALREADY_EXISTS 0x020a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ADDRESS_CLOSED 0x020b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_DISCONNECTED 0x020c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_RESET 0x020d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_NODES 0x020e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRANSACTION_ABORTED 0x020f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRANSACTION_TIMED_OUT 0x0210
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRANSACTION_NO_RELEASE 0x0211
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRANSACTION_NO_MATCH 0x0212
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRANSACTION_RESPONDED 0x0213
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRANSACTION_INVALID_ID 0x0214
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TRANSACTION_INVALID_TYPE 0x0215
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_SERVER_SESSION 0x0216
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_CLIENT_SESSION 0x0217
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CANNOT_LOAD_REGISTRY_FILE 0x0218
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DEBUG_ATTACH_FAILED 0x0219
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_SYSTEM_PROCESS_TERMINATED 0x021a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DATA_NOT_ACCEPTED 0x021b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_BROWSER_SERVERS_FOUND 0x021c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_VDM_HARD_ERROR 0x021d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DRIVER_CANCEL_TIMEOUT 0x021e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REPLY_MESSAGE_MISMATCH 0x021f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MAPPED_ALIGNMENT 0x0220
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IMAGE_CHECKSUM_MISMATCH 0x0221
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOST_WRITEBEHIND_DATA 0x0222
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CLIENT_SERVER_PARAMETERS_INVALID 0x0223
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PASSWORD_MUST_CHANGE 0x0224
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_FOUND 0x0225
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_TINY_STREAM 0x0226
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RECOVERY_FAILURE 0x0227
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_STACK_OVERFLOW_READ 0x0228
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FAIL_CHECK 0x0229
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DUPLICATE_OBJECTID 0x022a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_OBJECTID_EXISTS 0x022b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONVERT_TO_LARGE 0x022c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RETRY 0x022d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FOUND_OUT_OF_SCOPE 0x022e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ALLOCATE_BUCKET 0x022f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PROPSET_NOT_FOUND 0x0230
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_MARSHALL_OVERFLOW 0x0231
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_VARIANT 0x0232
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND 0x0233
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ACCOUNT_LOCKED_OUT 0x0234
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_HANDLE_NOT_CLOSABLE 0x0235
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_REFUSED 0x0236
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_GRACEFUL_DISCONNECT 0x0237
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ADDRESS_ALREADY_ASSOCIATED 0x0238
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ADDRESS_NOT_ASSOCIATED 0x0239
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_INVALID 0x023a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_ACTIVE 0x023b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NETWORK_UNREACHABLE 0x023c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_HOST_UNREACHABLE 0x023d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PROTOCOL_UNREACHABLE 0x023e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PORT_UNREACHABLE 0x023f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REQUEST_ABORTED 0x0240
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_ABORTED 0x0241
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_COMPRESSION_BUFFER 0x0242
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_USER_MAPPED_FILE 0x0243
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_AUDIT_FAILED 0x0244
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TIMER_RESOLUTION_NOT_SET 0x0245
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_CONNECTION_COUNT_LIMIT 0x0246
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGIN_TIME_RESTRICTION 0x0247
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LOGIN_WKSTA_RESTRICTION 0x0248
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IMAGE_MP_UP_MISMATCH 0x0249
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INSUFFICIENT_LOGON_INFO 0x0250
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_DLL_ENTRYPOINT 0x0251
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_BAD_SERVICE_ENTRYPOINT 0x0252
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LPC_REPLY_LOST 0x0253
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IP_ADDRESS_CONFLICT1 0x0254
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_IP_ADDRESS_CONFLICT2 0x0255
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REGISTRY_QUOTA_LIMIT 0x0256
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PATH_NOT_COVERED 0x0257
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_CALLBACK_ACTIVE 0x0258
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LICENSE_QUOTA_EXCEEDED 0x0259
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PWD_TOO_SHORT 0x025a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PWD_TOO_RECENT 0x025b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PWD_HISTORY_CONFLICT 0x025c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_PLUGPLAY_NO_DEVICE 0x025e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_UNSUPPORTED_COMPRESSION 0x025f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_HW_PROFILE 0x0260
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_INVALID_PLUGPLAY_DEVICE_PATH 0x0261
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DRIVER_ORDINAL_NOT_FOUND 0x0262
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND 0x0263
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RESOURCE_NOT_OWNED 0x0264
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_TOO_MANY_LINKS 0x0265
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_QUOTA_LIST_INCONSISTENT 0x0266
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_IS_OFFLINE 0x0267
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_LICENSE_VIOLATION 0x026a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DFS_UNAVAILABLE 0x026d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_VOLUME_DISMOUNTED 0x026e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NOT_A_REPARSE_POINT 0x0275
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_REPARSE_POINT_NOT_RESOLVED 0x0280
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DIRECTORY_IS_A_REPARSE_POINT 0x0281
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_ENCRYPTION_FAILED 0x028a
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_DECRYPTION_FAILED 0x028b
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_RANGE_NOT_FOUND 0x028c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_RECOVERY_POLICY 0x028d
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_EFS 0x028e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_WRONG_EFS 0x028f
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_NO_USER_KEYS 0x0290
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_NOT_ENCRYPTED 0x0291
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_FILE_ENCRYPTED 0x0293
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_VOLUME_NOT_UPGRADED 0x029c
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NT_STATUS_KDC_CERT_EXPIRED 0x040e
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x00010000-0x0001ffff are "DBG" errors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x00020000-0x0003ffff are "RPC" errors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x00040000-0x0004ffff are "PNP" errors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x000A0000-0x000Affff are "CTX" errors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x00130000-0x0013ffff are "CLUSTER" errors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x00140000-0x0014ffff are "ACPI" errors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0x00150000-0x0015ffff are "SXS" errors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * size of the GUID returned in an extended security negotiate response
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define SMB_GUIDLEN 16
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlowtypedef uint16_t smbfh;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * NTLMv2 blob header structure.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowstruct ntlmv2_blobhdr {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t header;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t reserved;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint64_t timestamp;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint64_t client_nonce;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint32_t unknown1;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow};
4bff34e37def8a90f9194d81bc345c52ba20086athurlowtypedef struct ntlmv2_blobhdr ntlmv2_blobhdr_t;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * NTLMv2 name header structure, for names in a blob.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlowstruct ntlmv2_namehdr {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint16_t type;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow uint16_t len;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow};
4bff34e37def8a90f9194d81bc345c52ba20086athurlowtypedef struct ntlmv2_namehdr ntlmv2_namehdr_t;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NAMETYPE_EOL 0x0000 /* end of list of names */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NAMETYPE_MACHINE_NB 0x0001 /* NetBIOS machine name */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NAMETYPE_DOMAIN_NB 0x0002 /* NetBIOS domain name */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NAMETYPE_MACHINE_DNS 0x0003 /* DNS machine name */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define NAMETYPE_DOMAIN_DNS 0x0004 /* DNS Active Directory domain name */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Named pipe commands.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_CALL_NAMED_PIPE 0x54 /* open/write/read/close pipe */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_WAIT_NAMED_PIPE 0x53 /* wait for pipe to be !busy */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_PEEK_NAMED_PIPE 0x23 /* read but don't remove data */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_Q_NAMED_PIPE_HAND_STATE 0x21 /* query pipe handle modes */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_SET_NAMED_PIPE_HAND_STATE 0x01 /* set pipe handle modes */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_Q_NAMED_PIPE_INFO 0x22 /* query pipe attributes */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_TRANSACT_NAMED_PIPE 0x26 /* r/w operation on pipe */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_READ_NAMED_PIPE 0x11 /* read pipe in "raw" mode */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow /* (non message mode) */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define TRANS_WRITE_NAMED_PIPE 0x31 /* write pipe "raw" mode */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow /* (non message mode) */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow/*
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Share types, visible via NetShareEnum
4bff34e37def8a90f9194d81bc345c52ba20086athurlow */
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_DISKTREE 0x00000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_PRINTQ 0x00000001
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_DEVICE 0x00000002
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_IPC 0x00000003
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_UNKNOWN 0x00000004
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_MASK 0x0000000F
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_TEMPORARY 0x40000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#define STYPE_HIDDEN 0x80000000
4bff34e37def8a90f9194d81bc345c52ba20086athurlow
4bff34e37def8a90f9194d81bc345c52ba20086athurlow#endif /* _NETSMB_SMB_H_ */