diff options
-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; | ||