diff options
| author | erdgeist <> | 2003-12-04 22:53:17 +0000 |
|---|---|---|
| committer | erdgeist <> | 2003-12-04 22:53:17 +0000 |
| commit | fe86b20ebd62f497564fd3187e8509496b63600e (patch) | |
| tree | 727607dc974d250d645593c93a03a9c2fdf81567 | |
| parent | c6f3f4fe0f19ef2c2409f462623711317ee2a798 (diff) | |
nu_header.h split up in nu_server.h and nu_defines.h
| -rwxr-xr-x | src/nu_defines.h | 718 | ||||
| -rwxr-xr-x | src/nu_server.c | 131 | ||||
| -rwxr-xr-x | src/nu_server.h | 43 |
3 files changed, 841 insertions, 51 deletions
diff --git a/src/nu_defines.h b/src/nu_defines.h new file mode 100755 index 0000000..a3d6f29 --- /dev/null +++ b/src/nu_defines.h | |||
| @@ -0,0 +1,718 @@ | |||
| 1 | #define SMB_HEADER_PROTOCOL_MAGIC 0x424d53ff | ||
| 2 | |||
| 3 | typedef enum { | ||
| 4 | SMB_COMMAND_FLAG_ANDX = 0x01, | ||
| 5 | |||
| 6 | } SMB_COMMAND_FLAG; | ||
| 7 | |||
| 8 | typedef enum { | ||
| 9 | SMB_COM_CREATE_DIRECTORY = 0x00, | ||
| 10 | SMB_COM_DELETE_DIRECTORY = 0x01, | ||
| 11 | SMB_COM_OPEN = 0x02, | ||
| 12 | SMB_COM_CREATE = 0x03, | ||
| 13 | SMB_COM_CLOSE = 0x04, | ||
| 14 | SMB_COM_FLUSH = 0x05, | ||
| 15 | SMB_COM_DELETE = 0x06, | ||
| 16 | SMB_COM_RENAME = 0x07, | ||
| 17 | SMB_COM_QUERY_INFORMATION = 0x08, | ||
| 18 | SMB_COM_SET_INFORMATION = 0x09, | ||
| 19 | SMB_COM_READ = 0x0A, | ||
| 20 | SMB_COM_WRITE = 0x0B, | ||
| 21 | SMB_COM_LOCK_BYTE_RANGE = 0x0C, | ||
| 22 | SMB_COM_UNLOCK_BYTE_RANGE = 0x0D, | ||
| 23 | SMB_COM_CREATE_TEMPORARY = 0x0E, | ||
| 24 | SMB_COM_CREATE_NEW = 0x0F, | ||
| 25 | |||
| 26 | SMB_COM_CHECK_DIRECTORY = 0x10, | ||
| 27 | SMB_COM_PROCESS_EXIT = 0x11, | ||
| 28 | SMB_COM_SEEK = 0x12, | ||
| 29 | SMB_COM_LOCK_AND_READ = 0x13, | ||
| 30 | SMB_COM_WRITE_AND_UNLOCK = 0x14, | ||
| 31 | /* ... */ | ||
| 32 | SMB_COM_READ_RAW = 0x1A, | ||
| 33 | SMB_COM_READ_MPX = 0x1B, | ||
| 34 | SMB_COM_READ_MPX_SECONDARY = 0x1C, | ||
| 35 | SMB_COM_WRITE_RAW = 0x1D, | ||
| 36 | SMB_COM_WRITE_MPX = 0x1E, | ||
| 37 | SMB_COM_WRITE_MPX_SECONDARY = 0x1F, | ||
| 38 | |||
| 39 | SMB_COM_WRITE_COMPLETE = 0x20, | ||
| 40 | SMB_COM_QUERY_SERVER = 0x21, | ||
| 41 | SMB_COM_SET_INFORMATION2 = 0x22, | ||
| 42 | SMB_COM_QUERY_INFORMATION2 = 0x23, | ||
| 43 | SMB_COM_LOCKING_ANDX = 0x24, | ||
| 44 | SMB_COM_TRANSACTION = 0x25, | ||
| 45 | SMB_COM_TRANSACTION_SECONDARY = 0x26, | ||
| 46 | SMB_COM_IOCTL = 0x27, | ||
| 47 | SMB_COM_IOCTL_SECONDARY = 0x28, | ||
| 48 | SMB_COM_COPY = 0x29, | ||
| 49 | SMB_COM_MOVE = 0x2A, | ||
| 50 | SMB_COM_ECHO = 0x2B, | ||
| 51 | SMB_COM_WRITE_AND_CLOSE = 0x2C, | ||
| 52 | SMB_COM_OPEN_ANDX = 0x2D, | ||
| 53 | SMB_COM_READ_ANDX = 0x2E, | ||
| 54 | SMB_COM_WRITE_ANDX = 0x2F, | ||
| 55 | |||
| 56 | SMB_COM_NEW_FILE_SIZE = 0x30, | ||
| 57 | SMB_COM_CLOSE_AND_TREE_DISC = 0x31, | ||
| 58 | SMB_COM_TRANSACTION2 = 0x32, | ||
| 59 | SMB_COM_TRANSACTION2_SECONDARY = 0x33, | ||
| 60 | SMB_COM_FIND_CLOSE2 = 0x34, | ||
| 61 | SMB_COM_FIND_NOTIFY_CLOSE = 0x35, | ||
| 62 | /* ... */ | ||
| 63 | |||
| 64 | SMB_COM_TREE_CONNECT = 0x70, | ||
| 65 | SMB_COM_TREE_DISCONNECT = 0x71, | ||
| 66 | SMB_COM_NEGOTIATE = 0x72, | ||
| 67 | SMB_COM_SESSION_SETUP_ANDX = 0x73, | ||
| 68 | SMB_COM_LOGOFF_ANDX = 0x74, | ||
| 69 | SMB_COM_TREE_CONNECT_ANDX = 0x75, | ||
| 70 | /* ... */ | ||
| 71 | |||
| 72 | SMB_COM_QUERY_INFORMATION_DISK = 0x80, | ||
| 73 | SMB_COM_SEARCH = 0x81, | ||
| 74 | SMB_COM_FIND = 0x82, | ||
| 75 | SMB_COM_FIND_UNIQUE = 0x83, | ||
| 76 | SMB_COM_FIND_CLOSE = 0x84, | ||
| 77 | /* ... */ | ||
| 78 | |||
| 79 | SMB_COM_NT_TRANSACT = 0xA0, | ||
| 80 | SMB_COM_NT_TRANSACT_SECONDARY = 0xA1, | ||
| 81 | SMB_COM_NT_CREATE_ANDX = 0xA2, | ||
| 82 | /* ... */ | ||
| 83 | SMB_COM_NT_CANCEL = 0xA4, | ||
| 84 | SMB_COM_NT_RENAME = 0xA5, | ||
| 85 | /* ... */ | ||
| 86 | |||
| 87 | SMB_COM_OPEN_PRINT_FILE = 0xC0, | ||
| 88 | SMB_COM_WRITE_PRINT_FILE = 0xC1, | ||
| 89 | SMB_COM_CLOSE_PRINT_FILE = 0xC2, | ||
| 90 | SMB_COM_GET_PRINT_QUEUE = 0xC3, | ||
| 91 | /* ... */ | ||
| 92 | |||
| 93 | SMB_COM_READ_BULK = 0xD8, | ||
| 94 | SMB_COM_WRITE_BULK = 0xD9, | ||
| 95 | SMB_COM_WRITE_BULK_DATA = 0xDA | ||
| 96 | } SMB_COMMAND; | ||
| 97 | |||
| 98 | typedef enum { | ||
| 99 | STATUS_SUCCESS = 0x00000000, | ||
| 100 | STATUS_WAIT_0 = 0x00000000, | ||
| 101 | STATUS_WAIT_1 = 0x00000001, | ||
| 102 | STATUS_WAIT_2 = 0x00000002, | ||
| 103 | STATUS_WAIT_3 = 0x00000003, | ||
| 104 | STATUS_WAIT_63 = 0x0000003F, | ||
| 105 | STATUS_ABANDONED = 0x00000080, | ||
| 106 | STATUS_ABANDONED_WAIT_0 = 0x00000080, | ||
| 107 | STATUS_ABANDONED_WAIT_63 = 0x000000BF, | ||
| 108 | STATUS_USER_APC = 0x000000C0, | ||
| 109 | STATUS_KERNEL_APC = 0x00000100, | ||
| 110 | STATUS_ALERTED = 0x00000101, | ||
| 111 | STATUS_TIMEOUT = 0x00000102, | ||
| 112 | STATUS_PENDING = 0x00000103, | ||
| 113 | STATUS_REPARSE = 0x00000104, | ||
| 114 | STATUS_MORE_ENTRIES = 0x00000105, | ||
| 115 | STATUS_NOT_ALL_ASSIGNED = 0x00000106, | ||
| 116 | STATUS_SOME_NOT_MAPPED = 0x00000107, | ||
| 117 | STATUS_OPLOCK_BREAK_IN_PROGRESS = 0x00000108, | ||
| 118 | STATUS_VOLUME_MOUNTED = 0x00000109, | ||
| 119 | STATUS_RXACT_COMMITTED = 0x0000010A, | ||
| 120 | STATUS_NOTIFY_CLEANUP = 0x0000010B, | ||
| 121 | STATUS_NOTIFY_ENUM_DIR = 0x0000010C, | ||
| 122 | STATUS_NO_QUOTAS_FOR_ACCOUNT = 0x0000010D, | ||
| 123 | STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED = 0x0000010E, | ||
| 124 | STATUS_PAGE_FAULT_TRANSITION = 0x00000110, | ||
| 125 | STATUS_PAGE_FAULT_DEMAND_ZERO = 0x00000111, | ||
| 126 | STATUS_PAGE_FAULT_COPY_ON_WRITE = 0x00000112, | ||
| 127 | STATUS_PAGE_FAULT_GUARD_PAGE = 0x00000113, | ||
| 128 | STATUS_PAGE_FAULT_PAGING_FILE = 0x00000114, | ||
| 129 | STATUS_CACHE_PAGE_LOCKED = 0x00000115, | ||
| 130 | STATUS_CRASH_DUMP = 0x00000116, | ||
| 131 | STATUS_BUFFER_ALL_ZEROS = 0x00000117, | ||
| 132 | STATUS_REPARSE_OBJECT = 0x00000118, | ||
| 133 | STATUS_OBJECT_NAME_EXISTS = 0x40000000, | ||
| 134 | STATUS_THREAD_WAS_SUSPENDED = 0x40000001, | ||
| 135 | STATUS_WORKING_SET_LIMIT_RANGE = 0x40000002, | ||
| 136 | STATUS_IMAGE_NOT_AT_BASE = 0x40000003, | ||
| 137 | STATUS_RXACT_STATE_CREATED = 0x40000004, | ||
| 138 | STATUS_SEGMENT_NOTIFICATION = 0x40000005, | ||
| 139 | STATUS_LOCAL_USER_SESSION_KEY = 0x40000006, | ||
| 140 | STATUS_BAD_CURRENT_DIRECTORY = 0x40000007, | ||
| 141 | STATUS_SERIAL_MORE_WRITES = 0x40000008, | ||
| 142 | STATUS_REGISTRY_RECOVERED = 0x40000009, | ||
| 143 | STATUS_FT_READ_RECOVERY_FROM_BACKUP = 0x4000000A, | ||
| 144 | STATUS_FT_WRITE_RECOVERY = 0x4000000B, | ||
| 145 | STATUS_SERIAL_COUNTER_TIMEOUT = 0x4000000C, | ||
| 146 | STATUS_NULL_LM_PASSWORD = 0x4000000D, | ||
| 147 | STATUS_IMAGE_MACHINE_TYPE_MISMATCH = 0x4000000E, | ||
| 148 | STATUS_RECEIVE_PARTIAL = 0x4000000F, | ||
| 149 | STATUS_RECEIVE_EXPEDITED = 0x40000010, | ||
| 150 | STATUS_RECEIVE_PARTIAL_EXPEDITED = 0x40000011, | ||
| 151 | STATUS_EVENT_DONE = 0x40000012, | ||
| 152 | STATUS_EVENT_PENDING = 0x40000013, | ||
| 153 | STATUS_CHECKING_FILE_SYSTEM = 0x40000014, | ||
| 154 | STATUS_FATAL_APP_EXIT = 0x40000015, | ||
| 155 | STATUS_PREDEFINED_HANDLE = 0x40000016, | ||
| 156 | STATUS_WAS_UNLOCKED = 0x40000017, | ||
| 157 | STATUS_SERVICE_NOTIFICATION = 0x40000018, | ||
| 158 | STATUS_WAS_LOCKED = 0x40000019, | ||
| 159 | STATUS_LOG_HARD_ERROR = 0x4000001A, | ||
| 160 | STATUS_ALREADY_WIN32 = 0x4000001B, | ||
| 161 | STATUS_WX86_UNSIMULATE = 0x4000001C, | ||
| 162 | STATUS_WX86_CONTINUE = 0x4000001D, | ||
| 163 | STATUS_WX86_SINGLE_STEP = 0x4000001E, | ||
| 164 | STATUS_WX86_BREAKPOINT = 0x4000001F, | ||
| 165 | STATUS_WX86_EXCEPTION_CONTINUE = 0x40000020, | ||
| 166 | STATUS_WX86_EXCEPTION_LASTCHANCE = 0x40000021, | ||
| 167 | STATUS_WX86_EXCEPTION_CHAIN = 0x40000022, | ||
| 168 | STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE = 0x40000023, | ||
| 169 | STATUS_NO_YIELD_PERFORMED = 0x40000024, | ||
| 170 | STATUS_TIMER_RESUME_IGNORED = 0x40000025, | ||
| 171 | STATUS_GUARD_PAGE_VIOLATION = 0x80000001, | ||
| 172 | STATUS_DATATYPE_MISALIGNMENT = 0x80000002, | ||
| 173 | STATUS_BREAKPOINT = 0x80000003, | ||
| 174 | STATUS_SINGLE_STEP = 0x80000004, | ||
| 175 | STATUS_BUFFER_OVERFLOW = 0x80000005, | ||
| 176 | STATUS_NO_MORE_FILES = 0x80000006, | ||
| 177 | STATUS_WAKE_SYSTEM_DEBUGGER = 0x80000007, | ||
| 178 | STATUS_HANDLES_CLOSED = 0x8000000A, | ||
| 179 | STATUS_NO_INHERITANCE = 0x8000000B, | ||
| 180 | STATUS_GUID_SUBSTITUTION_MADE = 0x8000000C, | ||
| 181 | STATUS_PARTIAL_COPY = 0x8000000D, | ||
| 182 | STATUS_DEVICE_PAPER_EMPTY = 0x8000000E, | ||
| 183 | STATUS_DEVICE_POWERED_OFF = 0x8000000F, | ||
| 184 | STATUS_DEVICE_OFF_LINE = 0x80000010, | ||
| 185 | STATUS_DEVICE_BUSY = 0x80000011, | ||
| 186 | STATUS_NO_MORE_EAS = 0x80000012, | ||
| 187 | STATUS_INVALID_EA_NAME = 0x80000013, | ||
| 188 | STATUS_EA_LIST_INCONSISTENT = 0x80000014, | ||
| 189 | STATUS_INVALID_EA_FLAG = 0x80000015, | ||
| 190 | STATUS_VERIFY_REQUIRED = 0x80000016, | ||
| 191 | STATUS_EXTRANEOUS_INFORMATION = 0x80000017, | ||
| 192 | STATUS_RXACT_COMMIT_NECESSARY = 0x80000018, | ||
| 193 | STATUS_NO_MORE_ENTRIES = 0x8000001A, | ||
| 194 | STATUS_FILEMARK_DETECTED = 0x8000001B, | ||
| 195 | STATUS_MEDIA_CHANGED = 0x8000001C, | ||
| 196 | STATUS_BUS_RESET = 0x8000001D, | ||
| 197 | STATUS_END_OF_MEDIA = 0x8000001E, | ||
| 198 | STATUS_BEGINNING_OF_MEDIA = 0x8000001F, | ||
| 199 | STATUS_MEDIA_CHECK = 0x80000020, | ||
| 200 | STATUS_SETMARK_DETECTED = 0x80000021, | ||
| 201 | STATUS_NO_DATA_DETECTED = 0x80000022, | ||
| 202 | STATUS_REDIRECTOR_HAS_OPEN_HANDLES = 0x80000023, | ||
| 203 | STATUS_SERVER_HAS_OPEN_HANDLES = 0x80000024, | ||
| 204 | STATUS_ALREADY_DISCONNECTED = 0x80000025, | ||
| 205 | STATUS_LONGJUMP = 0x80000026, | ||
| 206 | STATUS_UNSUCCESSFUL = 0xC0000001, | ||
| 207 | STATUS_NOT_IMPLEMENTED = 0xC0000002, | ||
| 208 | STATUS_INVALID_INFO_CLASS = 0xC0000003, | ||
| 209 | STATUS_INFO_LENGTH_MISMATCH = 0xC0000004, | ||
| 210 | STATUS_ACCESS_VIOLATION = 0xC0000005, | ||
| 211 | STATUS_IN_PAGE_ERROR = 0xC0000006, | ||
| 212 | STATUS_PAGEFILE_QUOTA = 0xC0000007, | ||
| 213 | STATUS_INVALID_HANDLE = 0xC0000008, | ||
| 214 | STATUS_BAD_INITIAL_STACK = 0xC0000009, | ||
| 215 | STATUS_BAD_INITIAL_PC = 0xC000000A, | ||
| 216 | STATUS_INVALID_CID = 0xC000000B, | ||
| 217 | STATUS_TIMER_NOT_CANCELED = 0xC000000C, | ||
| 218 | STATUS_INVALID_PARAMETER = 0xC000000D, | ||
| 219 | STATUS_NO_SUCH_DEVICE = 0xC000000E, | ||
| 220 | STATUS_NO_SUCH_FILE = 0xC000000F, | ||
| 221 | STATUS_INVALID_DEVICE_REQUEST = 0xC0000010, | ||
| 222 | STATUS_END_OF_FILE = 0xC0000011, | ||
| 223 | STATUS_WRONG_VOLUME = 0xC0000012, | ||
| 224 | STATUS_NO_MEDIA_IN_DEVICE = 0xC0000013, | ||
| 225 | STATUS_UNRECOGNIZED_MEDIA = 0xC0000014, | ||
| 226 | STATUS_NONEXISTENT_SECTOR = 0xC0000015, | ||
| 227 | STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016, | ||
| 228 | STATUS_NO_MEMORY = 0xC0000017, | ||
| 229 | STATUS_CONFLICTING_ADDRESSES = 0xC0000018, | ||
| 230 | STATUS_NOT_MAPPED_VIEW = 0xC0000019, | ||
| 231 | STATUS_UNABLE_TO_FREE_VM = 0xC000001A, | ||
| 232 | STATUS_UNABLE_TO_DELETE_SECTION = 0xC000001B, | ||
| 233 | STATUS_INVALID_SYSTEM_SERVICE = 0xC000001C, | ||
| 234 | STATUS_ILLEGAL_INSTRUCTION = 0xC000001D, | ||
| 235 | STATUS_INVALID_LOCK_SEQUENCE = 0xC000001E, | ||
| 236 | STATUS_INVALID_VIEW_SIZE = 0xC000001F, | ||
| 237 | STATUS_INVALID_FILE_FOR_SECTION = 0xC0000020, | ||
| 238 | STATUS_ALREADY_COMMITTED = 0xC0000021, | ||
| 239 | STATUS_ACCESS_DENIED = 0xC0000022, | ||
| 240 | STATUS_BUFFER_TOO_SMALL = 0xC0000023, | ||
| 241 | STATUS_OBJECT_TYPE_MISMATCH = 0xC0000024, | ||
| 242 | STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025, | ||
| 243 | STATUS_INVALID_DISPOSITION = 0xC0000026, | ||
| 244 | STATUS_UNWIND = 0xC0000027, | ||
| 245 | STATUS_BAD_STACK = 0xC0000028, | ||
| 246 | STATUS_INVALID_UNWIND_TARGET = 0xC0000029, | ||
| 247 | STATUS_NOT_LOCKED = 0xC000002A, | ||
| 248 | STATUS_PARITY_ERROR = 0xC000002B, | ||
| 249 | STATUS_UNABLE_TO_DECOMMIT_VM = 0xC000002C, | ||
| 250 | STATUS_NOT_COMMITTED = 0xC000002D, | ||
| 251 | STATUS_INVALID_PORT_ATTRIBUTES = 0xC000002E, | ||
| 252 | STATUS_PORT_MESSAGE_TOO_LONG = 0xC000002F, | ||
| 253 | STATUS_INVALID_PARAMETER_MIX = 0xC0000030, | ||
| 254 | STATUS_INVALID_QUOTA_LOWER = 0xC0000031, | ||
| 255 | STATUS_DISK_CORRUPT_ERROR = 0xC0000032, | ||
| 256 | STATUS_OBJECT_NAME_INVALID = 0xC0000033, | ||
| 257 | STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034, | ||
| 258 | STATUS_OBJECT_NAME_COLLISION = 0xC0000035, | ||
| 259 | STATUS_PORT_DISCONNECTED = 0xC0000037, | ||
| 260 | STATUS_DEVICE_ALREADY_ATTACHED = 0xC0000038, | ||
| 261 | STATUS_OBJECT_PATH_INVALID = 0xC0000039, | ||
| 262 | STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A, | ||
| 263 | STATUS_OBJECT_PATH_SYNTAX_BAD = 0xC000003B, | ||
| 264 | STATUS_DATA_OVERRUN = 0xC000003C, | ||
| 265 | STATUS_DATA_LATE_ERROR = 0xC000003D, | ||
| 266 | STATUS_DATA_ERROR = 0xC000003E, | ||
| 267 | STATUS_CRC_ERROR = 0xC000003F, | ||
| 268 | STATUS_SECTION_TOO_BIG = 0xC0000040, | ||
| 269 | STATUS_PORT_CONNECTION_REFUSED = 0xC0000041, | ||
| 270 | STATUS_INVALID_PORT_HANDLE = 0xC0000042, | ||
| 271 | STATUS_SHARING_VIOLATION = 0xC0000043, | ||
| 272 | STATUS_QUOTA_EXCEEDED = 0xC0000044, | ||
| 273 | STATUS_INVALID_PAGE_PROTECTION = 0xC0000045, | ||
| 274 | STATUS_MUTANT_NOT_OWNED = 0xC0000046, | ||
| 275 | STATUS_SEMAPHORE_LIMIT_EXCEEDED = 0xC0000047, | ||
| 276 | STATUS_PORT_ALREADY_SET = 0xC0000048, | ||
| 277 | STATUS_SECTION_NOT_IMAGE = 0xC0000049, | ||
| 278 | STATUS_SUSPEND_COUNT_EXCEEDED = 0xC000004A, | ||
| 279 | STATUS_THREAD_IS_TERMINATING = 0xC000004B, | ||
| 280 | STATUS_BAD_WORKING_SET_LIMIT = 0xC000004C, | ||
| 281 | STATUS_INCOMPATIBLE_FILE_MAP = 0xC000004D, | ||
| 282 | STATUS_SECTION_PROTECTION = 0xC000004E, | ||
| 283 | STATUS_EAS_NOT_SUPPORTED = 0xC000004F, | ||
| 284 | STATUS_EA_TOO_LARGE = 0xC0000050, | ||
| 285 | STATUS_NONEXISTENT_EA_ENTRY = 0xC0000051, | ||
| 286 | STATUS_NO_EAS_ON_FILE = 0xC0000052, | ||
| 287 | STATUS_EA_CORRUPT_ERROR = 0xC0000053, | ||
| 288 | STATUS_FILE_LOCK_CONFLICT = 0xC0000054, | ||
| 289 | STATUS_LOCK_NOT_GRANTED = 0xC0000055, | ||
| 290 | STATUS_DELETE_PENDING = 0xC0000056, | ||
| 291 | STATUS_CTL_FILE_NOT_SUPPORTED = 0xC0000057, | ||
| 292 | STATUS_UNKNOWN_REVISION = 0xC0000058, | ||
| 293 | STATUS_REVISION_MISMATCH = 0xC0000059, | ||
| 294 | STATUS_INVALID_OWNER = 0xC000005A, | ||
| 295 | STATUS_INVALID_PRIMARY_GROUP = 0xC000005B, | ||
| 296 | STATUS_NO_IMPERSONATION_TOKEN = 0xC000005C, | ||
| 297 | STATUS_CANT_DISABLE_MANDATORY = 0xC000005D, | ||
| 298 | STATUS_NO_LOGON_SERVERS = 0xC000005E, | ||
| 299 | STATUS_NO_SUCH_LOGON_SESSION = 0xC000005F, | ||
| 300 | STATUS_NO_SUCH_PRIVILEGE = 0xC0000060, | ||
| 301 | STATUS_PRIVILEGE_NOT_HELD = 0xC0000061, | ||
| 302 | STATUS_INVALID_ACCOUNT_NAME = 0xC0000062, | ||
| 303 | STATUS_USER_EXISTS = 0xC0000063, | ||
| 304 | STATUS_NO_SUCH_USER = 0xC0000064, | ||
| 305 | STATUS_GROUP_EXISTS = 0xC0000065, | ||
| 306 | STATUS_NO_SUCH_GROUP = 0xC0000066, | ||
| 307 | STATUS_MEMBER_IN_GROUP = 0xC0000067, | ||
| 308 | STATUS_MEMBER_NOT_IN_GROUP = 0xC0000068, | ||
| 309 | STATUS_LAST_ADMIN = 0xC0000069, | ||
| 310 | STATUS_WRONG_PASSWORD = 0xC000006A, | ||
| 311 | STATUS_ILL_FORMED_PASSWORD = 0xC000006B, | ||
| 312 | STATUS_PASSWORD_RESTRICTION = 0xC000006C, | ||
| 313 | STATUS_LOGON_FAILURE = 0xC000006D, | ||
| 314 | STATUS_ACCOUNT_RESTRICTION = 0xC000006E, | ||
| 315 | STATUS_INVALID_LOGON_HOURS = 0xC000006F, | ||
| 316 | STATUS_INVALID_WORKSTATION = 0xC0000070, | ||
| 317 | STATUS_PASSWORD_EXPIRED = 0xC0000071, | ||
| 318 | STATUS_ACCOUNT_DISABLED = 0xC0000072, | ||
| 319 | STATUS_NONE_MAPPED = 0xC0000073, | ||
| 320 | STATUS_TOO_MANY_LUIDS_REQUESTED = 0xC0000074, | ||
| 321 | STATUS_LUIDS_EXHAUSTED = 0xC0000075, | ||
| 322 | STATUS_INVALID_SUB_AUTHORITY = 0xC0000076, | ||
| 323 | STATUS_INVALID_ACL = 0xC0000077, | ||
| 324 | STATUS_INVALID_SID = 0xC0000078, | ||
| 325 | STATUS_INVALID_SECURITY_DESCR = 0xC0000079, | ||
| 326 | STATUS_PROCEDURE_NOT_FOUND = 0xC000007A, | ||
| 327 | STATUS_INVALID_IMAGE_FORMAT = 0xC000007B, | ||
| 328 | STATUS_NO_TOKEN = 0xC000007C, | ||
| 329 | STATUS_BAD_INHERITANCE_ACL = 0xC000007D, | ||
| 330 | STATUS_RANGE_NOT_LOCKED = 0xC000007E, | ||
| 331 | STATUS_DISK_FULL = 0xC000007F, | ||
| 332 | STATUS_SERVER_DISABLED = 0xC0000080, | ||
| 333 | STATUS_SERVER_NOT_DISABLED = 0xC0000081, | ||
| 334 | STATUS_TOO_MANY_GUIDS_REQUESTED = 0xC0000082, | ||
| 335 | STATUS_GUIDS_EXHAUSTED = 0xC0000083, | ||
| 336 | STATUS_INVALID_ID_AUTHORITY = 0xC0000084, | ||
| 337 | STATUS_AGENTS_EXHAUSTED = 0xC0000085, | ||
| 338 | STATUS_INVALID_VOLUME_LABEL = 0xC0000086, | ||
| 339 | STATUS_SECTION_NOT_EXTENDED = 0xC0000087, | ||
| 340 | STATUS_NOT_MAPPED_DATA = 0xC0000088, | ||
| 341 | STATUS_RESOURCE_DATA_NOT_FOUND = 0xC0000089, | ||
| 342 | STATUS_RESOURCE_TYPE_NOT_FOUND = 0xC000008A, | ||
| 343 | STATUS_RESOURCE_NAME_NOT_FOUND = 0xC000008B, | ||
| 344 | STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C, | ||
| 345 | STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D, | ||
| 346 | STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E, | ||
| 347 | STATUS_FLOAT_INEXACT_RESULT = 0xC000008F, | ||
| 348 | STATUS_FLOAT_INVALID_OPERATION = 0xC0000090, | ||
| 349 | STATUS_FLOAT_OVERFLOW = 0xC0000091, | ||
| 350 | STATUS_FLOAT_STACK_CHECK = 0xC0000092, | ||
| 351 | STATUS_FLOAT_UNDERFLOW = 0xC0000093, | ||
| 352 | STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094, | ||
| 353 | STATUS_INTEGER_OVERFLOW = 0xC0000095, | ||
| 354 | STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096, | ||
| 355 | STATUS_TOO_MANY_PAGING_FILES = 0xC0000097, | ||
| 356 | STATUS_FILE_INVALID = 0xC0000098, | ||
| 357 | STATUS_ALLOTTED_SPACE_EXCEEDED = 0xC0000099, | ||
| 358 | STATUS_INSUFFICIENT_RESOURCES = 0xC000009A, | ||
| 359 | STATUS_DFS_EXIT_PATH_FOUND = 0xC000009B, | ||
| 360 | STATUS_DEVICE_DATA_ERROR = 0xC000009C, | ||
| 361 | STATUS_DEVICE_NOT_CONNECTED = 0xC000009D, | ||
| 362 | STATUS_DEVICE_POWER_FAILURE = 0xC000009E, | ||
| 363 | STATUS_FREE_VM_NOT_AT_BASE = 0xC000009F, | ||
| 364 | STATUS_MEMORY_NOT_ALLOCATED = 0xC00000A0, | ||
| 365 | STATUS_WORKING_SET_QUOTA = 0xC00000A1, | ||
| 366 | STATUS_MEDIA_WRITE_PROTECTED = 0xC00000A2, | ||
| 367 | STATUS_DEVICE_NOT_READY = 0xC00000A3, | ||
| 368 | STATUS_INVALID_GROUP_ATTRIBUTES = 0xC00000A4, | ||
| 369 | STATUS_BAD_IMPERSONATION_LEVEL = 0xC00000A5, | ||
| 370 | STATUS_CANT_OPEN_ANONYMOUS = 0xC00000A6, | ||
| 371 | STATUS_BAD_VALIDATION_CLASS = 0xC00000A7, | ||
| 372 | STATUS_BAD_TOKEN_TYPE = 0xC00000A8, | ||
| 373 | STATUS_BAD_MASTER_BOOT_RECORD = 0xC00000A9, | ||
| 374 | STATUS_INSTRUCTION_MISALIGNMENT = 0xC00000AA, | ||
| 375 | STATUS_INSTANCE_NOT_AVAILABLE = 0xC00000AB, | ||
| 376 | STATUS_PIPE_NOT_AVAILABLE = 0xC00000AC, | ||
| 377 | STATUS_INVALID_PIPE_STATE = 0xC00000AD, | ||
| 378 | STATUS_PIPE_BUSY = 0xC00000AE, | ||
| 379 | STATUS_ILLEGAL_FUNCTION = 0xC00000AF, | ||
| 380 | STATUS_PIPE_DISCONNECTED = 0xC00000B0, | ||
| 381 | STATUS_PIPE_CLOSING = 0xC00000B1, | ||
| 382 | STATUS_PIPE_CONNECTED = 0xC00000B2, | ||
| 383 | STATUS_PIPE_LISTENING = 0xC00000B3, | ||
| 384 | STATUS_INVALID_READ_MODE = 0xC00000B4, | ||
| 385 | STATUS_IO_TIMEOUT = 0xC00000B5, | ||
| 386 | STATUS_FILE_FORCED_CLOSED = 0xC00000B6, | ||
| 387 | STATUS_PROFILING_NOT_STARTED = 0xC00000B7, | ||
| 388 | STATUS_PROFILING_NOT_STOPPED = 0xC00000B8, | ||
| 389 | STATUS_COULD_NOT_INTERPRET = 0xC00000B9, | ||
| 390 | STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA, | ||
| 391 | STATUS_NOT_SUPPORTED = 0xC00000BB, | ||
| 392 | STATUS_REMOTE_NOT_LISTENING = 0xC00000BC, | ||
| 393 | STATUS_DUPLICATE_NAME = 0xC00000BD, | ||
| 394 | STATUS_BAD_NETWORK_PATH = 0xC00000BE, | ||
| 395 | STATUS_NETWORK_BUSY = 0xC00000BF, | ||
| 396 | STATUS_DEVICE_DOES_NOT_EXIST = 0xC00000C0, | ||
| 397 | STATUS_TOO_MANY_COMMANDS = 0xC00000C1, | ||
| 398 | STATUS_ADAPTER_HARDWARE_ERROR = 0xC00000C2, | ||
| 399 | STATUS_INVALID_NETWORK_RESPONSE = 0xC00000C3, | ||
| 400 | STATUS_UNEXPECTED_NETWORK_ERROR = 0xC00000C4, | ||
| 401 | STATUS_BAD_REMOTE_ADAPTER = 0xC00000C5, | ||
| 402 | STATUS_PRINT_QUEUE_FULL = 0xC00000C6, | ||
| 403 | STATUS_NO_SPOOL_SPACE = 0xC00000C7, | ||
| 404 | STATUS_PRINT_CANCELLED = 0xC00000C8, | ||
| 405 | STATUS_NETWORK_NAME_DELETED = 0xC00000C9, | ||
| 406 | STATUS_NETWORK_ACCESS_DENIED = 0xC00000CA, | ||
| 407 | STATUS_BAD_DEVICE_TYPE = 0xC00000CB, | ||
| 408 | STATUS_BAD_NETWORK_NAME = 0xC00000CC, | ||
| 409 | STATUS_TOO_MANY_NAMES = 0xC00000CD, | ||
| 410 | STATUS_TOO_MANY_SESSIONS = 0xC00000CE, | ||
| 411 | STATUS_SHARING_PAUSED = 0xC00000CF, | ||
| 412 | STATUS_REQUEST_NOT_ACCEPTED = 0xC00000D0, | ||
| 413 | STATUS_REDIRECTOR_PAUSED = 0xC00000D1, | ||
| 414 | STATUS_NET_WRITE_FAULT = 0xC00000D2, | ||
| 415 | STATUS_PROFILING_AT_LIMIT = 0xC00000D3, | ||
| 416 | STATUS_NOT_SAME_DEVICE = 0xC00000D4, | ||
| 417 | STATUS_FILE_RENAMED = 0xC00000D5, | ||
| 418 | STATUS_VIRTUAL_CIRCUIT_CLOSED = 0xC00000D6, | ||
| 419 | STATUS_NO_SECURITY_ON_OBJECT = 0xC00000D7, | ||
| 420 | STATUS_CANT_WAIT = 0xC00000D8, | ||
| 421 | STATUS_PIPE_EMPTY = 0xC00000D9, | ||
| 422 | STATUS_CANT_ACCESS_DOMAIN_INFO = 0xC00000DA, | ||
| 423 | STATUS_CANT_TERMINATE_SELF = 0xC00000DB, | ||
| 424 | STATUS_INVALID_SERVER_STATE = 0xC00000DC, | ||
| 425 | STATUS_INVALID_DOMAIN_STATE = 0xC00000DD, | ||
| 426 | STATUS_INVALID_DOMAIN_ROLE = 0xC00000DE, | ||
| 427 | STATUS_NO_SUCH_DOMAIN = 0xC00000DF, | ||
| 428 | STATUS_DOMAIN_EXISTS = 0xC00000E0, | ||
| 429 | STATUS_DOMAIN_LIMIT_EXCEEDED = 0xC00000E1, | ||
| 430 | STATUS_OPLOCK_NOT_GRANTED = 0xC00000E2, | ||
| 431 | STATUS_INVALID_OPLOCK_PROTOCOL = 0xC00000E3, | ||
| 432 | STATUS_INTERNAL_DB_CORRUPTION = 0xC00000E4, | ||
| 433 | STATUS_INTERNAL_ERROR = 0xC00000E5, | ||
| 434 | STATUS_GENERIC_NOT_MAPPED = 0xC00000E6, | ||
| 435 | STATUS_BAD_DESCRIPTOR_FORMAT = 0xC00000E7, | ||
| 436 | STATUS_INVALID_USER_BUFFER = 0xC00000E8, | ||
| 437 | STATUS_UNEXPECTED_IO_ERROR = 0xC00000E9, | ||
| 438 | STATUS_UNEXPECTED_MM_CREATE_ERR = 0xC00000EA, | ||
| 439 | STATUS_UNEXPECTED_MM_MAP_ERROR = 0xC00000EB, | ||
| 440 | STATUS_UNEXPECTED_MM_EXTEND_ERR = 0xC00000EC, | ||
| 441 | STATUS_NOT_LOGON_PROCESS = 0xC00000ED, | ||
| 442 | STATUS_LOGON_SESSION_EXISTS = 0xC00000EE, | ||
| 443 | STATUS_INVALID_PARAMETER_1 = 0xC00000EF, | ||
| 444 | STATUS_INVALID_PARAMETER_2 = 0xC00000F0, | ||
| 445 | STATUS_INVALID_PARAMETER_3 = 0xC00000F1, | ||
| 446 | STATUS_INVALID_PARAMETER_4 = 0xC00000F2, | ||
| 447 | STATUS_INVALID_PARAMETER_5 = 0xC00000F3, | ||
| 448 | STATUS_INVALID_PARAMETER_6 = 0xC00000F4, | ||
| 449 | STATUS_INVALID_PARAMETER_7 = 0xC00000F5, | ||
| 450 | STATUS_INVALID_PARAMETER_8 = 0xC00000F6, | ||
| 451 | STATUS_INVALID_PARAMETER_9 = 0xC00000F7, | ||
| 452 | STATUS_INVALID_PARAMETER_10 = 0xC00000F8, | ||
| 453 | STATUS_INVALID_PARAMETER_11 = 0xC00000F9, | ||
| 454 | STATUS_INVALID_PARAMETER_12 = 0xC00000FA, | ||
| 455 | STATUS_REDIRECTOR_NOT_STARTED = 0xC00000FB, | ||
| 456 | STATUS_REDIRECTOR_STARTED = 0xC00000FC, | ||
| 457 | STATUS_STACK_OVERFLOW = 0xC00000FD, | ||
| 458 | STATUS_NO_SUCH_PACKAGE = 0xC00000FE, | ||
| 459 | STATUS_BAD_FUNCTION_TABLE = 0xC00000FF, | ||
| 460 | STATUS_VARIABLE_NOT_FOUND = 0xC0000100, | ||
| 461 | STATUS_DIRECTORY_NOT_EMPTY = 0xC0000101, | ||
| 462 | STATUS_FILE_CORRUPT_ERROR = 0xC0000102, | ||
| 463 | STATUS_NOT_A_DIRECTORY = 0xC0000103, | ||
| 464 | STATUS_BAD_LOGON_SESSION_STATE = 0xC0000104, | ||
| 465 | STATUS_LOGON_SESSION_COLLISION = 0xC0000105, | ||
| 466 | STATUS_NAME_TOO_LONG = 0xC0000106, | ||
| 467 | STATUS_FILES_OPEN = 0xC0000107, | ||
| 468 | STATUS_CONNECTION_IN_USE = 0xC0000108, | ||
| 469 | STATUS_MESSAGE_NOT_FOUND = 0xC0000109, | ||
| 470 | STATUS_PROCESS_IS_TERMINATING = 0xC000010A, | ||
| 471 | STATUS_INVALID_LOGON_TYPE = 0xC000010B, | ||
| 472 | STATUS_NO_GUID_TRANSLATION = 0xC000010C, | ||
| 473 | STATUS_CANNOT_IMPERSONATE = 0xC000010D, | ||
| 474 | STATUS_IMAGE_ALREADY_LOADED = 0xC000010E, | ||
| 475 | STATUS_ABIOS_NOT_PRESENT = 0xC000010F, | ||
| 476 | STATUS_ABIOS_LID_NOT_EXIST = 0xC0000110, | ||
| 477 | STATUS_ABIOS_LID_ALREADY_OWNED = 0xC0000111, | ||
| 478 | STATUS_ABIOS_NOT_LID_OWNER = 0xC0000112, | ||
| 479 | STATUS_ABIOS_INVALID_COMMAND = 0xC0000113, | ||
| 480 | STATUS_ABIOS_INVALID_LID = 0xC0000114, | ||
| 481 | STATUS_ABIOS_SELECTOR_NOT_AVAILABLE = 0xC0000115, | ||
| 482 | STATUS_ABIOS_INVALID_SELECTOR = 0xC0000116, | ||
| 483 | STATUS_NO_LDT = 0xC0000117, | ||
| 484 | STATUS_INVALID_LDT_SIZE = 0xC0000118, | ||
| 485 | STATUS_INVALID_LDT_OFFSET = 0xC0000119, | ||
| 486 | STATUS_INVALID_LDT_DESCRIPTOR = 0xC000011A, | ||
| 487 | STATUS_INVALID_IMAGE_NE_FORMAT = 0xC000011B, | ||
| 488 | STATUS_RXACT_INVALID_STATE = 0xC000011C, | ||
| 489 | STATUS_RXACT_COMMIT_FAILURE = 0xC000011D, | ||
| 490 | STATUS_MAPPED_FILE_SIZE_ZERO = 0xC000011E, | ||
| 491 | STATUS_TOO_MANY_OPENED_FILES = 0xC000011F, | ||
| 492 | STATUS_CANCELLED = 0xC0000120, | ||
| 493 | STATUS_CANNOT_DELETE = 0xC0000121, | ||
| 494 | STATUS_INVALID_COMPUTER_NAME = 0xC0000122, | ||
| 495 | STATUS_FILE_DELETED = 0xC0000123, | ||
| 496 | STATUS_SPECIAL_ACCOUNT = 0xC0000124, | ||
| 497 | STATUS_SPECIAL_GROUP = 0xC0000125, | ||
| 498 | STATUS_SPECIAL_USER = 0xC0000126, | ||
| 499 | STATUS_MEMBERS_PRIMARY_GROUP = 0xC0000127, | ||
| 500 | STATUS_FILE_CLOSED = 0xC0000128, | ||
| 501 | STATUS_TOO_MANY_THREADS = 0xC0000129, | ||
| 502 | STATUS_THREAD_NOT_IN_PROCESS = 0xC000012A, | ||
| 503 | STATUS_TOKEN_ALREADY_IN_USE = 0xC000012B, | ||
| 504 | STATUS_PAGEFILE_QUOTA_EXCEEDED = 0xC000012C, | ||
| 505 | STATUS_COMMITMENT_LIMIT = 0xC000012D, | ||
| 506 | STATUS_INVALID_IMAGE_LE_FORMAT = 0xC000012E, | ||
| 507 | STATUS_INVALID_IMAGE_NOT_MZ = 0xC000012F, | ||
| 508 | STATUS_INVALID_IMAGE_PROTECT = 0xC0000130, | ||
| 509 | STATUS_INVALID_IMAGE_WIN_16 = 0xC0000131, | ||
| 510 | STATUS_LOGON_SERVER_CONFLICT = 0xC0000132, | ||
| 511 | STATUS_TIME_DIFFERENCE_AT_DC = 0xC0000133, | ||
| 512 | STATUS_SYNCHRONIZATION_REQUIRED = 0xC0000134, | ||
| 513 | STATUS_DLL_NOT_FOUND = 0xC0000135, | ||
| 514 | STATUS_OPEN_FAILED = 0xC0000136, | ||
| 515 | STATUS_IO_PRIVILEGE_FAILED = 0xC0000137, | ||
| 516 | STATUS_ORDINAL_NOT_FOUND = 0xC0000138, | ||
| 517 | STATUS_ENTRYPOINT_NOT_FOUND = 0xC0000139, | ||
| 518 | STATUS_CONTROL_C_EXIT = 0xC000013A, | ||
| 519 | STATUS_LOCAL_DISCONNECT = 0xC000013B, | ||
| 520 | STATUS_REMOTE_DISCONNECT = 0xC000013C, | ||
| 521 | STATUS_REMOTE_RESOURCES = 0xC000013D, | ||
| 522 | STATUS_LINK_FAILED = 0xC000013E, | ||
| 523 | STATUS_LINK_TIMEOUT = 0xC000013F, | ||
| 524 | STATUS_INVALID_CONNECTION = 0xC0000140, | ||
| 525 | STATUS_INVALID_ADDRESS = 0xC0000141, | ||
| 526 | STATUS_DLL_INIT_FAILED = 0xC0000142, | ||
| 527 | STATUS_MISSING_SYSTEMFILE = 0xC0000143, | ||
| 528 | STATUS_UNHANDLED_EXCEPTION = 0xC0000144, | ||
| 529 | STATUS_APP_INIT_FAILURE = 0xC0000145, | ||
| 530 | STATUS_PAGEFILE_CREATE_FAILED = 0xC0000146, | ||
| 531 | STATUS_NO_PAGEFILE = 0xC0000147, | ||
| 532 | STATUS_INVALID_LEVEL = 0xC0000148, | ||
| 533 | STATUS_WRONG_PASSWORD_CORE = 0xC0000149, | ||
| 534 | STATUS_ILLEGAL_FLOAT_CONTEXT = 0xC000014A, | ||
| 535 | STATUS_PIPE_BROKEN = 0xC000014B, | ||
| 536 | STATUS_REGISTRY_CORRUPT = 0xC000014C, | ||
| 537 | STATUS_REGISTRY_IO_FAILED = 0xC000014D, | ||
| 538 | STATUS_NO_EVENT_PAIR = 0xC000014E, | ||
| 539 | STATUS_UNRECOGNIZED_VOLUME = 0xC000014F, | ||
| 540 | STATUS_SERIAL_NO_DEVICE_INITED = 0xC0000150, | ||
| 541 | STATUS_NO_SUCH_ALIAS = 0xC0000151, | ||
| 542 | STATUS_MEMBER_NOT_IN_ALIAS = 0xC0000152, | ||
| 543 | STATUS_MEMBER_IN_ALIAS = 0xC0000153, | ||
| 544 | STATUS_ALIAS_EXISTS = 0xC0000154, | ||
| 545 | STATUS_LOGON_NOT_GRANTED = 0xC0000155, | ||
| 546 | STATUS_TOO_MANY_SECRETS = 0xC0000156, | ||
| 547 | STATUS_SECRET_TOO_LONG = 0xC0000157, | ||
| 548 | STATUS_INTERNAL_DB_ERROR = 0xC0000158, | ||
| 549 | STATUS_FULLSCREEN_MODE = 0xC0000159, | ||
| 550 | STATUS_TOO_MANY_CONTEXT_IDS = 0xC000015A, | ||
| 551 | STATUS_LOGON_TYPE_NOT_GRANTED = 0xC000015B, | ||
| 552 | STATUS_NOT_REGISTRY_FILE = 0xC000015C, | ||
| 553 | STATUS_NT_CROSS_ENCRYPTION_REQUIRED = 0xC000015D, | ||
| 554 | STATUS_DOMAIN_CTRLR_CONFIG_ERROR = 0xC000015E, | ||
| 555 | STATUS_FT_MISSING_MEMBER = 0xC000015F, | ||
| 556 | STATUS_ILL_FORMED_SERVICE_ENTRY = 0xC0000160, | ||
| 557 | STATUS_ILLEGAL_CHARACTER = 0xC0000161, | ||
| 558 | STATUS_UNMAPPABLE_CHARACTER = 0xC0000162, | ||
| 559 | STATUS_UNDEFINED_CHARACTER = 0xC0000163, | ||
| 560 | STATUS_FLOPPY_VOLUME = 0xC0000164, | ||
| 561 | STATUS_FLOPPY_ID_MARK_NOT_FOUND = 0xC0000165, | ||
| 562 | STATUS_FLOPPY_WRONG_CYLINDER = 0xC0000166, | ||
| 563 | STATUS_FLOPPY_UNKNOWN_ERROR = 0xC0000167, | ||
| 564 | STATUS_FLOPPY_BAD_REGISTERS = 0xC0000168, | ||
| 565 | STATUS_DISK_RECALIBRATE_FAILED = 0xC0000169, | ||
| 566 | STATUS_DISK_OPERATION_FAILED = 0xC000016A, | ||
| 567 | STATUS_DISK_RESET_FAILED = 0xC000016B, | ||
| 568 | STATUS_SHARED_IRQ_BUSY = 0xC000016C, | ||
| 569 | STATUS_FT_ORPHANING = 0xC000016D, | ||
| 570 | STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT = 0xC000016E, | ||
| 571 | STATUS_PARTITION_FAILURE = 0xC0000172, | ||
| 572 | STATUS_INVALID_BLOCK_LENGTH = 0xC0000173, | ||
| 573 | STATUS_DEVICE_NOT_PARTITIONED = 0xC0000174, | ||
| 574 | STATUS_UNABLE_TO_LOCK_MEDIA = 0xC0000175, | ||
| 575 | STATUS_UNABLE_TO_UNLOAD_MEDIA = 0xC0000176, | ||
| 576 | STATUS_EOM_OVERFLOW = 0xC0000177, | ||
| 577 | STATUS_NO_MEDIA = 0xC0000178, | ||
| 578 | STATUS_NO_SUCH_MEMBER = 0xC000017A, | ||
| 579 | STATUS_INVALID_MEMBER = 0xC000017B, | ||
| 580 | STATUS_KEY_DELETED = 0xC000017C, | ||
| 581 | STATUS_NO_LOG_SPACE = 0xC000017D, | ||
| 582 | STATUS_TOO_MANY_SIDS = 0xC000017E, | ||
| 583 | STATUS_LM_CROSS_ENCRYPTION_REQUIRED = 0xC000017F, | ||
| 584 | STATUS_KEY_HAS_CHILDREN = 0xC0000180, | ||
| 585 | STATUS_CHILD_MUST_BE_VOLATILE = 0xC0000181, | ||
| 586 | STATUS_DEVICE_CONFIGURATION_ERROR = 0xC0000182, | ||
| 587 | STATUS_DRIVER_INTERNAL_ERROR = 0xC0000183, | ||
| 588 | STATUS_INVALID_DEVICE_STATE = 0xC0000184, | ||
| 589 | STATUS_IO_DEVICE_ERROR = 0xC0000185, | ||
| 590 | STATUS_DEVICE_PROTOCOL_ERROR = 0xC0000186, | ||
| 591 | STATUS_BACKUP_CONTROLLER = 0xC0000187, | ||
| 592 | STATUS_LOG_FILE_FULL = 0xC0000188, | ||
| 593 | STATUS_TOO_LATE = 0xC0000189, | ||
| 594 | STATUS_NO_TRUST_LSA_SECRET = 0xC000018A, | ||
| 595 | STATUS_NO_TRUST_SAM_ACCOUNT = 0xC000018B, | ||
| 596 | STATUS_TRUSTED_DOMAIN_FAILURE = 0xC000018C, | ||
| 597 | STATUS_TRUSTED_RELATIONSHIP_FAILURE = 0xC000018D, | ||
| 598 | STATUS_EVENTLOG_FILE_CORRUPT = 0xC000018E, | ||
| 599 | STATUS_EVENTLOG_CANT_START = 0xC000018F, | ||
| 600 | STATUS_TRUST_FAILURE = 0xC0000190, | ||
| 601 | STATUS_MUTANT_LIMIT_EXCEEDED = 0xC0000191, | ||
| 602 | STATUS_NETLOGON_NOT_STARTED = 0xC0000192, | ||
| 603 | STATUS_ACCOUNT_EXPIRED = 0xC0000193, | ||
| 604 | STATUS_POSSIBLE_DEADLOCK = 0xC0000194, | ||
| 605 | STATUS_NETWORK_CREDENTIAL_CONFLICT = 0xC0000195, | ||
| 606 | STATUS_REMOTE_SESSION_LIMIT = 0xC0000196, | ||
| 607 | STATUS_EVENTLOG_FILE_CHANGED = 0xC0000197, | ||
| 608 | STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 0xC0000198, | ||
| 609 | STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 0xC0000199, | ||
| 610 | STATUS_NOLOGON_SERVER_TRUST_ACCOUNT = 0xC000019A, | ||
| 611 | STATUS_DOMAIN_TRUST_INCONSISTENT = 0xC000019B, | ||
| 612 | STATUS_FS_DRIVER_REQUIRED = 0xC000019C, | ||
| 613 | STATUS_NO_USER_SESSION_KEY = 0xC0000202, | ||
| 614 | STATUS_USER_SESSION_DELETED = 0xC0000203, | ||
| 615 | STATUS_RESOURCE_LANG_NOT_FOUND = 0xC0000204, | ||
| 616 | STATUS_INSUFF_SERVER_RESOURCES = 0xC0000205, | ||
| 617 | STATUS_INVALID_BUFFER_SIZE = 0xC0000206, | ||
| 618 | STATUS_INVALID_ADDRESS_COMPONENT = 0xC0000207, | ||
| 619 | STATUS_INVALID_ADDRESS_WILDCARD = 0xC0000208, | ||
| 620 | STATUS_TOO_MANY_ADDRESSES = 0xC0000209, | ||
| 621 | STATUS_ADDRESS_ALREADY_EXISTS = 0xC000020A, | ||
| 622 | STATUS_ADDRESS_CLOSED = 0xC000020B, | ||
| 623 | STATUS_CONNECTION_DISCONNECTED = 0xC000020C, | ||
| 624 | STATUS_CONNECTION_RESET = 0xC000020D, | ||
| 625 | STATUS_TOO_MANY_NODES = 0xC000020E, | ||
| 626 | STATUS_TRANSACTION_ABORTED = 0xC000020F, | ||
| 627 | STATUS_TRANSACTION_TIMED_OUT = 0xC0000210, | ||
| 628 | STATUS_TRANSACTION_NO_RELEASE = 0xC0000211, | ||
| 629 | STATUS_TRANSACTION_NO_MATCH = 0xC0000212, | ||
| 630 | STATUS_TRANSACTION_RESPONDED = 0xC0000213, | ||
| 631 | STATUS_TRANSACTION_INVALID_ID = 0xC0000214, | ||
| 632 | STATUS_TRANSACTION_INVALID_TYPE = 0xC0000215, | ||
| 633 | STATUS_NOT_SERVER_SESSION = 0xC0000216, | ||
| 634 | STATUS_NOT_CLIENT_SESSION = 0xC0000217, | ||
| 635 | STATUS_CANNOT_LOAD_REGISTRY_FILE = 0xC0000218, | ||
| 636 | STATUS_DEBUG_ATTACH_FAILED = 0xC0000219, | ||
| 637 | STATUS_SYSTEM_PROCESS_TERMINATED = 0xC000021A, | ||
| 638 | STATUS_DATA_NOT_ACCEPTED = 0xC000021B, | ||
| 639 | STATUS_NO_BROWSER_SERVERS_FOUND = 0xC000021C, | ||
| 640 | STATUS_VDM_HARD_ERROR = 0xC000021D, | ||
| 641 | STATUS_DRIVER_CANCEL_TIMEOUT = 0xC000021E, | ||
| 642 | STATUS_REPLY_MESSAGE_MISMATCH = 0xC000021F, | ||
| 643 | STATUS_MAPPED_ALIGNMENT = 0xC0000220, | ||
| 644 | STATUS_IMAGE_CHECKSUM_MISMATCH = 0xC0000221, | ||
| 645 | STATUS_LOST_WRITEBEHIND_DATA = 0xC0000222, | ||
| 646 | STATUS_CLIENT_SERVER_PARAMETERS_INVALID = 0xC0000223, | ||
| 647 | STATUS_PASSWORD_MUST_CHANGE = 0xC0000224, | ||
| 648 | STATUS_NOT_FOUND = 0xC0000225, | ||
| 649 | STATUS_NOT_TINY_STREAM = 0xC0000226, | ||
| 650 | STATUS_RECOVERY_FAILURE = 0xC0000227, | ||
| 651 | STATUS_STACK_OVERFLOW_READ = 0xC0000228, | ||
| 652 | STATUS_FAIL_CHECK = 0xC0000229, | ||
| 653 | STATUS_DUPLICATE_OBJECTID = 0xC000022A, | ||
| 654 | STATUS_OBJECTID_EXISTS = 0xC000022B, | ||
| 655 | STATUS_CONVERT_TO_LARGE = 0xC000022C, | ||
| 656 | STATUS_RETRY = 0xC000022D, | ||
| 657 | STATUS_FOUND_OUT_OF_SCOPE = 0xC000022E, | ||
| 658 | STATUS_ALLOCATE_BUCKET = 0xC000022F, | ||
| 659 | STATUS_PROPSET_NOT_FOUND = 0xC0000230, | ||
| 660 | STATUS_MARSHALL_OVERFLOW = 0xC0000231, | ||
| 661 | STATUS_INVALID_VARIANT = 0xC0000232, | ||
| 662 | STATUS_DOMAIN_CONTROLLER_NOT_FOUND = 0xC0000233, | ||
| 663 | STATUS_ACCOUNT_LOCKED_OUT = 0xC0000234, | ||
| 664 | STATUS_HANDLE_NOT_CLOSABLE = 0xC0000235, | ||
| 665 | STATUS_CONNECTION_REFUSED = 0xC0000236, | ||
| 666 | STATUS_GRACEFUL_DISCONNECT = 0xC0000237, | ||
| 667 | STATUS_ADDRESS_ALREADY_ASSOCIATED = 0xC0000238, | ||
| 668 | STATUS_ADDRESS_NOT_ASSOCIATED = 0xC0000239, | ||
| 669 | STATUS_CONNECTION_INVALID = 0xC000023A, | ||
| 670 | STATUS_CONNECTION_ACTIVE = 0xC000023B, | ||
| 671 | STATUS_NETWORK_UNREACHABLE = 0xC000023C, | ||
| 672 | STATUS_HOST_UNREACHABLE = 0xC000023D, | ||
| 673 | STATUS_PROTOCOL_UNREACHABLE = 0xC000023E, | ||
| 674 | STATUS_PORT_UNREACHABLE = 0xC000023F, | ||
| 675 | STATUS_REQUEST_ABORTED = 0xC0000240, | ||
| 676 | STATUS_CONNECTION_ABORTED = 0xC0000241, | ||
| 677 | STATUS_BAD_COMPRESSION_BUFFER = 0xC0000242, | ||
| 678 | STATUS_USER_MAPPED_FILE = 0xC0000243, | ||
| 679 | STATUS_AUDIT_FAILED = 0xC0000244, | ||
| 680 | STATUS_TIMER_RESOLUTION_NOT_SET = 0xC0000245, | ||
| 681 | STATUS_CONNECTION_COUNT_LIMIT = 0xC0000246, | ||
| 682 | STATUS_LOGIN_TIME_RESTRICTION = 0xC0000247, | ||
| 683 | STATUS_LOGIN_WKSTA_RESTRICTION = 0xC0000248, | ||
| 684 | STATUS_IMAGE_MP_UP_MISMATCH = 0xC0000249, | ||
| 685 | STATUS_INSUFFICIENT_LOGON_INFO = 0xC0000250, | ||
| 686 | STATUS_BAD_DLL_ENTRYPOINT = 0xC0000251, | ||
| 687 | STATUS_BAD_SERVICE_ENTRYPOINT = 0xC0000252, | ||
| 688 | STATUS_LPC_REPLY_LOST = 0xC0000253, | ||
| 689 | STATUS_IP_ADDRESS_CONFLICT1 = 0xC0000254, | ||
| 690 | STATUS_IP_ADDRESS_CONFLICT2 = 0xC0000255, | ||
| 691 | STATUS_REGISTRY_QUOTA_LIMIT = 0xC0000256, | ||
| 692 | STATUS_PATH_NOT_COVERED = 0xC0000257, | ||
| 693 | STATUS_NO_CALLBACK_ACTIVE = 0xC0000258, | ||
| 694 | STATUS_LICENSE_QUOTA_EXCEEDED = 0xC0000259, | ||
| 695 | STATUS_PWD_TOO_SHORT = 0xC000025A, | ||
| 696 | STATUS_PWD_TOO_RECENT = 0xC000025B, | ||
| 697 | STATUS_PWD_HISTORY_CONFLICT = 0xC000025C, | ||
| 698 | STATUS_PLUGPLAY_NO_DEVICE = 0xC000025E, | ||
| 699 | STATUS_UNSUPPORTED_COMPRESSION = 0xC000025F, | ||
| 700 | STATUS_INVALID_HW_PROFILE = 0xC0000260, | ||
| 701 | STATUS_INVALID_PLUGPLAY_DEVICE_PATH = 0xC0000261, | ||
| 702 | STATUS_DRIVER_ORDINAL_NOT_FOUND = 0xC0000262, | ||
| 703 | STATUS_DRIVER_ENTRYPOINT_NOT_FOUND = 0xC0000263, | ||
| 704 | STATUS_RESOURCE_NOT_OWNED = 0xC0000264, | ||
| 705 | STATUS_TOO_MANY_LINKS = 0xC0000265, | ||
| 706 | STATUS_QUOTA_LIST_INCONSISTENT = 0xC0000266, | ||
| 707 | STATUS_FILE_IS_OFFLINE = 0xC0000267, | ||
| 708 | STATUS_EVALUATION_EXPIRATION = 0xC0000268, | ||
| 709 | STATUS_ILLEGAL_DLL_RELOCATION = 0xC0000269, | ||
| 710 | STATUS_LICENSE_VIOLATION = 0xC000026A, | ||
| 711 | STATUS_DLL_INIT_FAILED_LOGOFF = 0xC000026B, | ||
| 712 | STATUS_DRIVER_UNABLE_TO_LOAD = 0xC000026C, | ||
| 713 | STATUS_DFS_UNAVAILABLE = 0xC000026D, | ||
| 714 | STATUS_VOLUME_DISMOUNTED = 0xC000026E, | ||
| 715 | STATUS_WX86_INTERNAL_ERROR = 0xC000026F, | ||
| 716 | STATUS_WX86_FLOAT_STACK_CHECK = 0xC0000270, | ||
| 717 | STATUS_WOW_ASSERTION = 0xC0009898 | ||
| 718 | } SMB_STATUS; | ||
diff --git a/src/nu_server.c b/src/nu_server.c index ddd555e..d79967c 100755 --- a/src/nu_server.c +++ b/src/nu_server.c | |||
| @@ -32,30 +32,58 @@ static void netbios_read( SMB_HEADER **buf) { | |||
| 32 | bailout( "Short read." ); | 32 | bailout( "Short read." ); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | static void netbios_write( SMB_COMMAND cmd, | 35 | static void netbios_write( SMB_HEADER *buf, |
| 36 | SMB_HEADER *buf, | 36 | SMB_DATA *data, |
| 37 | SMB_PARAMS *buf2, | 37 | int datacount ) { |
| 38 | SMB_BYTES *buf3 ) { | 38 | struct iovec iov[1 + 2 * SMB_MAXREQUEST] = { {buf , sizeof(SMB_HEADER) } }; |
| 39 | BYTE buf_[4] = { 0, 0, 0, 0 }; | 39 | int i, sizeout = sizeof( SMB_HEADER ); |
| 40 | if(!buf2 ) buf2 = (SMB_PARAMS*)buf_; | 40 | |
| 41 | if(!buf3 ) buf3 = (SMB_BYTES*)buf_; | 41 | for( i=0; i < datacount; ++i ) |
| 42 | 42 | iov[1+2*i].iov_base = data[i].params, | |
| 43 | struct iovec iov[16] = { {buf , sizeof(SMB_HEADER) }, | 43 | sizeout += iov[1+2*i].iov_len = 1 + data[i].params->WordCount * 2, |
| 44 | {buf2, 1 + buf2->WordCount * 2}, | 44 | iov[2+2*i].iov_base = data[i].bytes, |
| 45 | {buf3, 2 + buf3->ByteCount } }; | 45 | sizeout += iov[2+2*i].iov_len = 2 + data[i].bytes->ByteCount; |
| 46 | 46 | ||
| 47 | buf->netbios_command = cmd; | 47 | buf->netbios_command = buf->netbios_flags = 0; |
| 48 | buf->netbios_flags = 0; | 48 | buf->netbios_size = htons( sizeout ); |
| 49 | buf->netbios_size = htons( sizeof(SMB_HEADER) - 4 + | ||
| 50 | 1 + buf2->WordCount * 2 + | ||
| 51 | 2 + buf3->ByteCount ); | ||
| 52 | buf->Flags = 0x88; | 49 | buf->Flags = 0x88; |
| 53 | buf->Flags2 = 0x4001; | 50 | buf->Flags2 = 0x4001; |
| 54 | 51 | ||
| 55 | if( writev( childsock, iov, 3 ) < htons( buf->netbios_size ) + 4 ) | 52 | if( writev( childsock, iov, 1 + 2 * datacount ) < sizeout + 4 ) |
| 56 | bailout( "Write failed." ); | 53 | bailout( "Write failed." ); |
| 57 | } | 54 | } |
| 58 | 55 | ||
| 56 | static const BYTE SMB_COM_NEGOTIATE_bytes[] = { 8,0,0x67,0x61,0x74,0x6c,0x69,0x6e,0x67,0 }; | ||
| 57 | static WORD SMB_COM_NEGOTIATE_params[] = { | ||
| 58 | 0x0511, 0x0000, 0x0001, 0x0001, 0x0000, 0x0100, 0x0000, 0x0100, 0x0000, | ||
| 59 | 0x0000, 0xC049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; | ||
| 60 | |||
| 61 | static SMB_STATUS handle_SMB_COM_NEGOTIATE( SMB_DATA *data ) { | ||
| 62 | struct timeval t; gettimeofday( &t, NULL ); | ||
| 63 | SMB_COM_NEGOTIATE_params[8] = getpid(); | ||
| 64 | SMB_COM_NEGOTIATE_params[9] = getppid(); | ||
| 65 | *(QWORD*)(SMB_COM_NEGOTIATE_params+12) = getnttime( &t ); | ||
| 66 | |||
| 67 | data->params = SMB_COM_NEGOTIATE_bytes; data->bytes = SMB_COM_NEGOTIATE_params; | ||
| 68 | return STATUS_SUCCESS; | ||
| 69 | } | ||
| 70 | |||
| 71 | static const BYTE SMB_SESSION_SETUP_ANDX_bytes[] = { | ||
| 72 | 19,0,'O','S',0,'g','a','t','l','i','n','g',0,'g','a','t','l','i','n','g',0}; | ||
| 73 | static BYTE SMB_SESSION_SETUP_ANDX_params[] = { 4, 0, 0, 23, 0, 1, 0, 0, 0 }; | ||
| 74 | |||
| 75 | static SMB_STATUS handle_SMB_SESSION_SETUP_ANDX( SMB_DATA *data ) { | ||
| 76 | data->params = SMB_SESSION_SETUP_ANDX_bytes; data->bytes = SMB_SESSION_SETUP_ANDX_params; | ||
| 77 | return STATUS_SUCCESS; | ||
| 78 | } | ||
| 79 | |||
| 80 | static‰int command_handler_match( const void *a, const void *b ) { return *(BYTE*)a - *(BYTE*)b; } | ||
| 81 | static SMB_COMMAND_HANDLER command_handler[] = { | ||
| 82 | { { SMB_COM_NEGOTIATE, 0x00, handle_SMB_COM_NEGOTIATE }, | ||
| 83 | { SMB_COM_SESSION_SETUP_ANDX, 0x01, handle_SMB_COM_SESSION_SETUP_ANDX } | ||
| 84 | } | ||
| 85 | }; | ||
| 86 | |||
| 59 | static void child( ) { | 87 | static void child( ) { |
| 60 | SMB_HEADER *inpacket = NULL; | 88 | SMB_HEADER *inpacket = NULL; |
| 61 | 89 | ||
| @@ -69,6 +97,12 @@ static void child( ) { | |||
| 69 | write( childsock, inpacket, 4); | 97 | write( childsock, inpacket, 4); |
| 70 | 98 | ||
| 71 | while( 1 ) { | 99 | while( 1 ) { |
| 100 | SMB_COMMAND cmd; | ||
| 101 | SMB_DATA requests[ 1 + SMB_MAXREQUESTS ]; | ||
| 102 | SMB_STATUS status = STATUS_SUCCESS; | ||
| 103 | WORD sizeout = sizeof( SMB_HEADER ); | ||
| 104 | int num_requests = 0; | ||
| 105 | |||
| 72 | netbios_read( &inpacket ); | 106 | netbios_read( &inpacket ); |
| 73 | 107 | ||
| 74 | if( inpacket->netbios_command != 0 ) | 108 | if( inpacket->netbios_command != 0 ) |
| @@ -76,46 +110,41 @@ static void child( ) { | |||
| 76 | if( inpacket->Protocol != SMB_HEADER_PROTOCOL_MAGIC ) | 110 | if( inpacket->Protocol != SMB_HEADER_PROTOCOL_MAGIC ) |
| 77 | bailout( "Protocol identifier mismatch"); | 111 | bailout( "Protocol identifier mismatch"); |
| 78 | 112 | ||
| 79 | switch( inpacket->Command ) { | 113 | cmd = inpacket->Command; |
| 80 | case SMB_COM_NEGOTIATE: | 114 | requests[ 0 ].params = (SMB_PARAMS*)(inpacket+1); |
| 81 | { | 115 | |
| 82 | const BYTE bytes[] = { 8,0,0x67,0x61,0x74,0x6c,0x69,0x6e,0x67,0 }; | 116 | while( (status == STATUS_SUCCESS) && (cmd != 0xff) ) { |
| 83 | WORD params[] = { 0x0511, 0x0000, 0x0001, 0x0001, 0x0000, 0x0100, | 117 | SMB_COMMAND_HANDLER *handler = (SMB_COMMAND_HANDLER*)bsearch( cmd, command_handler, |
| 84 | 0x0000, 0x0100, 0x0000, 0x0000, 0xC049, 0x0000, | 118 | sizeof(command_handler)/sizeof(*command_handler), sizeof(*command_handler), command_handler_match); |
| 85 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; | 119 | |
| 86 | struct timeval t; gettimeofday( &t, NULL ); | 120 | requests[ num_request ].bytes = 2 + *((WORD*)requests[ num_request ].params) + (BYTE*)requests[ num_request ].params; |
| 87 | 121 | if( handler ) { | |
| 88 | *(DWORD*)&inpacket->Status = STATUS_SUCCESS; | 122 | if( handler->flags & SMB_COMMAND_FLAG_ANDX ) { |
| 89 | params[8] = getpid(); params[9] = getppid(); | 123 | cmd = ((BYTE*)requests[ num_requests ].params)[3]; |
| 90 | *(QWORD*)¶ms[12] = getnttime( &t ); | 124 | requests[ num_requests+1 ].params = ((BYTE*)inpacket) + ((WORD*)requests[ num_requests ].params)[2]; |
| 91 | netbios_write( 0, inpacket, (SMB_PARAMS*)params, (SMB_BYTES*)bytes); | 125 | } |
| 92 | break; | 126 | |
| 93 | } | 127 | status = handler->handler( &requests( num_requests ) ); |
| 94 | /* case SMB_COM_SESSION_SETUP_ANDX: | 128 | |
| 95 | { | 129 | if( (status == STATUS_SUCCESS) && (handler->flags & SMB_COMMAND_FLAG_ANDX) ) { |
| 96 | const BYTE bytes[] = { 19, 0, 'O', 'S', 0, 'g', 'a', 't', 'l', | 130 | sizeout += 3 + 2 * requests[ num_requests ].params->WordCount + requests[ num_requests ].bytes->ByteCount; |
| 97 | 'i', 'n', 'g', 0, 'g', 'a', 't', 'l', 'i', | 131 | ((WORD*)requests[ num_requests ].params)[2] = sizeout; |
| 98 | 'n', 'g', 0}; | 132 | ((BYTE*)requests[ num_requests ].params)[3] = cmd; |
| 99 | BYTE params[] = { 4, 0, 0, 23, 0, 1, 0, 0, 0 }; | 133 | } |
| 100 | 134 | num_requests++; | |
| 101 | } */ | 135 | } else |
| 102 | default: | 136 | status = 0x00400002; |
| 103 | { | ||
| 104 | fprintf( stderr, "Got message: %02X\n", inpacket->Command ); | ||
| 105 | *(DWORD*)&inpacket->Status = 0x00400002; | ||
| 106 | netbios_write( 0, inpacket, NULL, NULL ); | ||
| 107 | break; | ||
| 108 | } | ||
| 109 | } | 137 | } |
| 110 | 138 | ||
| 139 | memcpy( inpacket->status, &status, 4 ); /* not aligned, maybe we might do a store DWORD on x86 */ | ||
| 140 | netbios_write( inpacket, requests, num_requests ); | ||
| 111 | } /* End main loop */ | 141 | } /* End main loop */ |
| 112 | } | 142 | } |
| 113 | 143 | ||
| 114 | int main() | 144 | int main() { |
| 115 | { | ||
| 116 | struct sockaddr_in sa; | 145 | struct sockaddr_in sa; |
| 117 | int l=1; | 146 | int l=1; |
| 118 | 147 | ||
| 119 | signal( SIGINT, sigint); | 148 | signal( SIGINT, sigint); |
| 120 | 149 | ||
| 121 | bzero( &sa, sizeof( sa)); | 150 | bzero( &sa, sizeof( sa)); |
diff --git a/src/nu_server.h b/src/nu_server.h new file mode 100755 index 0000000..0a2ecc2 --- /dev/null +++ b/src/nu_server.h | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | typedef unsigned char BYTE; | ||
| 2 | typedef unsigned short WORD; | ||
| 3 | typedef unsigned long DWORD; | ||
| 4 | typedef int64_t QWORD; | ||
| 5 | |||
| 6 | #include "nu_defines.h" | ||
| 7 | |||
| 8 | typedef struct { | ||
| 9 | BYTE netbios_command; | ||
| 10 | BYTE netbios_flags; | ||
| 11 | WORD netbios_size; | ||
| 12 | DWORD Protocol; /* Protocol identifier 0xFF,"SMB" */ | ||
| 13 | BYTE Command; /* Command Code, look below */ | ||
| 14 | BYTE Status[4]; | ||
| 15 | BYTE Flags; | ||
| 16 | WORD Flags2; | ||
| 17 | WORD Pad[6]; /* Ensure 12 bytes len */ | ||
| 18 | WORD TreeID; | ||
| 19 | WORD ProcessID; | ||
| 20 | WORD UserID; | ||
| 21 | WORD MultiplexID; | ||
| 22 | } SMB_HEADER; | ||
| 23 | |||
| 24 | typedef struct { | ||
| 25 | BYTE WordCount; | ||
| 26 | WORD Buffer[0]; | ||
| 27 | } SMB_PARAMS; | ||
| 28 | |||
| 29 | typedef struct { | ||
| 30 | WORD ByteCount; | ||
| 31 | BYTE Buffer[0]; | ||
| 32 | } SMB_BYTES; | ||
| 33 | |||
| 34 | typedef struct { | ||
| 35 | SMB_PARAMS *params; | ||
| 36 | SMB_BYTES *bytes; | ||
| 37 | } SMB_DATA; | ||
| 38 | |||
| 39 | typedef struct { | ||
| 40 | SMB_COMMAND cmd; | ||
| 41 | SMB_COMMAND_FLAG flags; | ||
| 42 | SMB_STATUS (*handler)(SMB_DATA *data); | ||
| 43 | } SMB_COMMAND_HANDLER; | ||
