summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/nu_defines.h718
-rwxr-xr-xsrc/nu_server.c131
-rwxr-xr-xsrc/nu_server.h43
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
3typedef enum {
4 SMB_COMMAND_FLAG_ANDX = 0x01,
5
6} SMB_COMMAND_FLAG;
7
8typedef 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
98typedef 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
35static void netbios_write( SMB_COMMAND cmd, 35static 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
56static const BYTE SMB_COM_NEGOTIATE_bytes[] = { 8,0,0x67,0x61,0x74,0x6c,0x69,0x6e,0x67,0 };
57static WORD SMB_COM_NEGOTIATE_params[] = {
580x0511, 0x0000, 0x0001, 0x0001, 0x0000, 0x0100, 0x0000, 0x0100, 0x0000,
590x0000, 0xC049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 };
60
61static 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
71static const BYTE SMB_SESSION_SETUP_ANDX_bytes[] = {
7219,0,'O','S',0,'g','a','t','l','i','n','g',0,'g','a','t','l','i','n','g',0};
73static BYTE SMB_SESSION_SETUP_ANDX_params[] = { 4, 0, 0, 23, 0, 1, 0, 0, 0 };
74
75static 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
80static‰int command_handler_match( const void *a, const void *b ) { return *(BYTE*)a - *(BYTE*)b; }
81static 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
59static void child( ) { 87static 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*)&params[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
114int main() 144int 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 @@
1typedef unsigned char BYTE;
2typedef unsigned short WORD;
3typedef unsigned long DWORD;
4typedef int64_t QWORD;
5
6#include "nu_defines.h"
7
8typedef 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
24typedef struct {
25 BYTE WordCount;
26 WORD Buffer[0];
27} SMB_PARAMS;
28
29typedef struct {
30 WORD ByteCount;
31 BYTE Buffer[0];
32} SMB_BYTES;
33
34typedef struct {
35 SMB_PARAMS *params;
36 SMB_BYTES *bytes;
37} SMB_DATA;
38
39typedef struct {
40 SMB_COMMAND cmd;
41 SMB_COMMAND_FLAG flags;
42 SMB_STATUS (*handler)(SMB_DATA *data);
43} SMB_COMMAND_HANDLER;