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