xref: /reactos/modules/rosapps/drivers/vfd/vfddbg.c (revision 3ff08b64)
1 /*
2 	vfddbg.c
3 
4 	Virtual Floppy Drive for Windows NT platform
5 	Kernel mode driver debug functions
6 
7 	Copyright (C) 2003-2005 Ken Kato
8 */
9 
10 #if !DBG
11 
12 #if !defined(__REACTOS__) || defined(_MSC_VER)
13 //	suppress empty compile unit warning
14 #pragma warning (disable: 4206)
15 #pragma message ("Debug feature is disabled.")
16 #endif
17 
18 #else	// DBG
19 
20 #include "imports.h"
21 #include "vfddrv.h"
22 #include "vfddbg.h"
23 
24 #define CASE_RETURN_STR(str)	case str: return #str;
25 
26 //
27 //	Return IRP Major Function name
28 //
29 #ifndef IRP_MJ_POWER
30 #define IRP_MJ_POWER			0x16
31 #endif
32 #ifndef IRP_MJ_SYSTEM_CONTROL
33 #define IRP_MJ_SYSTEM_CONTROL	0x17
34 #endif
35 #ifndef IRP_MJ_PNP
36 #define IRP_MJ_PNP				0x1b
37 #endif
38 
39 PCSTR
GetMajorFuncName(UCHAR major_code)40 GetMajorFuncName(
41 	UCHAR				major_code)
42 {
43 	static char functionName[80];
44 
45 	switch (major_code) {
46 	CASE_RETURN_STR(IRP_MJ_CREATE);						// 0x00
47 	CASE_RETURN_STR(IRP_MJ_CREATE_NAMED_PIPE);			// 0x01
48 	CASE_RETURN_STR(IRP_MJ_CLOSE);						// 0x02
49 	CASE_RETURN_STR(IRP_MJ_READ);						// 0x03
50 	CASE_RETURN_STR(IRP_MJ_WRITE);						// 0x04
51 	CASE_RETURN_STR(IRP_MJ_QUERY_INFORMATION);			// 0x05
52 	CASE_RETURN_STR(IRP_MJ_SET_INFORMATION);			// 0x06
53 	CASE_RETURN_STR(IRP_MJ_QUERY_EA);					// 0x07
54 	CASE_RETURN_STR(IRP_MJ_SET_EA);						// 0x08
55 	CASE_RETURN_STR(IRP_MJ_FLUSH_BUFFERS);				// 0x09
56 	CASE_RETURN_STR(IRP_MJ_QUERY_VOLUME_INFORMATION);	// 0x0a
57 	CASE_RETURN_STR(IRP_MJ_SET_VOLUME_INFORMATION);		// 0x0b
58 	CASE_RETURN_STR(IRP_MJ_DIRECTORY_CONTROL);			// 0x0c
59 	CASE_RETURN_STR(IRP_MJ_FILE_SYSTEM_CONTROL);		// 0x0d
60 	CASE_RETURN_STR(IRP_MJ_DEVICE_CONTROL);				// 0x0e
61 	CASE_RETURN_STR(IRP_MJ_INTERNAL_DEVICE_CONTROL);	// 0x0f
62 	CASE_RETURN_STR(IRP_MJ_SHUTDOWN);					// 0x10
63 	CASE_RETURN_STR(IRP_MJ_LOCK_CONTROL);				// 0x11
64 	CASE_RETURN_STR(IRP_MJ_CLEANUP);					// 0x12
65 	CASE_RETURN_STR(IRP_MJ_CREATE_MAILSLOT);			// 0x13
66 	CASE_RETURN_STR(IRP_MJ_QUERY_SECURITY);				// 0x14
67 	CASE_RETURN_STR(IRP_MJ_SET_SECURITY);				// 0x15
68 	CASE_RETURN_STR(IRP_MJ_POWER);						// 0x16
69 	CASE_RETURN_STR(IRP_MJ_SYSTEM_CONTROL);				// 0x17
70 	CASE_RETURN_STR(IRP_MJ_DEVICE_CHANGE);				// 0x18
71 	CASE_RETURN_STR(IRP_MJ_QUERY_QUOTA);				// 0x19
72 	CASE_RETURN_STR(IRP_MJ_SET_QUOTA);					// 0x1a
73 	CASE_RETURN_STR(IRP_MJ_PNP);						// 0x1b
74 	default:
75 		functionName[sizeof(functionName) - 1] = '\0';
76 		_snprintf(functionName, sizeof(functionName) - 1,
77 		// sprintf(functionName,
78 			"Unknown Major Function (0x%x)", major_code);
79 		return functionName;
80 	}
81 }
82 
83 #ifdef VFD_PNP
84 
85 //
86 //	Return PnP IRP Minor Function Name
87 //
88 PCSTR
GetPnpIrpName(ULONG minor_code)89 GetPnpIrpName(ULONG minor_code)
90 {
91 	static char functionName[80];
92 
93 	switch (minor_code) {
94 	CASE_RETURN_STR(IRP_MN_START_DEVICE);					// 0x00
95 	CASE_RETURN_STR(IRP_MN_QUERY_REMOVE_DEVICE);			// 0x01
96 	CASE_RETURN_STR(IRP_MN_REMOVE_DEVICE);					// 0x02
97 	CASE_RETURN_STR(IRP_MN_CANCEL_REMOVE_DEVICE);			// 0x03
98 	CASE_RETURN_STR(IRP_MN_STOP_DEVICE);					// 0x04
99 	CASE_RETURN_STR(IRP_MN_QUERY_STOP_DEVICE);				// 0x05
100 	CASE_RETURN_STR(IRP_MN_CANCEL_STOP_DEVICE);				// 0x06
101 	CASE_RETURN_STR(IRP_MN_QUERY_DEVICE_RELATIONS);			// 0x07
102 	CASE_RETURN_STR(IRP_MN_QUERY_INTERFACE);				// 0x08
103 	CASE_RETURN_STR(IRP_MN_QUERY_CAPABILITIES);				// 0x09
104 	CASE_RETURN_STR(IRP_MN_QUERY_RESOURCES);				// 0x0A
105 	CASE_RETURN_STR(IRP_MN_QUERY_RESOURCE_REQUIREMENTS);	// 0x0B
106 	CASE_RETURN_STR(IRP_MN_QUERY_DEVICE_TEXT);				// 0x0C
107 	CASE_RETURN_STR(IRP_MN_FILTER_RESOURCE_REQUIREMENTS);	// 0x0D
108 	CASE_RETURN_STR(IRP_MN_READ_CONFIG);					// 0x0F
109 	CASE_RETURN_STR(IRP_MN_WRITE_CONFIG);					// 0x10
110 	CASE_RETURN_STR(IRP_MN_EJECT);							// 0x11
111 	CASE_RETURN_STR(IRP_MN_SET_LOCK);						// 0x12
112 	CASE_RETURN_STR(IRP_MN_QUERY_ID);						// 0x13
113 	CASE_RETURN_STR(IRP_MN_QUERY_PNP_DEVICE_STATE);			// 0x14
114 	CASE_RETURN_STR(IRP_MN_QUERY_BUS_INFORMATION);			// 0x15
115 	CASE_RETURN_STR(IRP_MN_DEVICE_USAGE_NOTIFICATION);		// 0x16
116 	CASE_RETURN_STR(IRP_MN_SURPRISE_REMOVAL);				// 0x17
117 	CASE_RETURN_STR(IRP_MN_QUERY_LEGACY_BUS_INFORMATION);	// 0x18
118 	default:
119 		functionName[sizeof(functionName) - 1] = '\0';
120 		_snprintf(functionName, sizeof(functionName) - 1,
121 		// sprintf(functionName,
122 			"Unknown PNP IRP (0x%x)", minor_code);
123 		return functionName;
124 	}
125 }
126 
127 //
128 //	Return Power IRP Minor Function Name
129 //
130 PCSTR
GetPowerIrpName(ULONG minor_code)131 GetPowerIrpName(ULONG minor_code)
132 {
133 	static char functionName[80];
134 
135 	switch (minor_code) {
136 	CASE_RETURN_STR(IRP_MN_SET_POWER);
137 	CASE_RETURN_STR(IRP_MN_QUERY_POWER);
138 	CASE_RETURN_STR(IRP_MN_WAIT_WAKE);
139 	CASE_RETURN_STR(IRP_MN_POWER_SEQUENCE);
140 	default:
141 		functionName[sizeof(functionName) - 1] = '\0';
142 		_snprintf(functionName, sizeof(functionName) - 1,
143 		// sprintf(functionName,
144 			"Unknown Power IRP (0x%x)", minor_code);
145 		return functionName;
146 	}
147 }
148 
149 //
150 //	Return System IRP Minor Function Name
151 //
152 PCSTR
GetSystemIrpName(ULONG minor_code)153 GetSystemIrpName(ULONG minor_code)
154 {
155 	static char functionName[80];
156 
157 	switch (minor_code) {
158 	CASE_RETURN_STR(IRP_MN_QUERY_ALL_DATA);					// 0x00
159 	CASE_RETURN_STR(IRP_MN_QUERY_SINGLE_INSTANCE);			// 0x01
160 	CASE_RETURN_STR(IRP_MN_CHANGE_SINGLE_INSTANCE);			// 0x02
161 	CASE_RETURN_STR(IRP_MN_CHANGE_SINGLE_ITEM);				// 0x03
162 	CASE_RETURN_STR(IRP_MN_ENABLE_EVENTS);					// 0x04
163 	CASE_RETURN_STR(IRP_MN_DISABLE_EVENTS);					// 0x05
164 	CASE_RETURN_STR(IRP_MN_ENABLE_COLLECTION);				// 0x06
165 	CASE_RETURN_STR(IRP_MN_DISABLE_COLLECTION);				// 0x07
166 	CASE_RETURN_STR(IRP_MN_REGINFO);						// 0x08
167 	CASE_RETURN_STR(IRP_MN_EXECUTE_METHOD);					// 0x09
168 	default:
169 		functionName[sizeof(functionName) - 1] = '\0';
170 		_snprintf(functionName, sizeof(functionName) - 1,
171 		// sprintf(functionName,
172 			"Unknown System IRP (0x%x)", minor_code);
173 		return functionName;
174 	}
175 }
176 
177 #endif	// VFD_PNP
178 
179 
180 #include <ntdddisk.h>
181 #ifndef __REACTOS__
182 #include <ntddft.h>
183 #endif
184 #include <ntddstor.h>
185 
186 #if (VER_PRODUCTBUILD < 2195)
187 //
188 // imports from Win2K DDK
189 //
190 
191 // mountmgr.h
192 
193 #define MOUNTMGRCONTROLTYPE  ((ULONG) 'm')
194 #define MOUNTDEVCONTROLTYPE  ((ULONG) 'M')
195 /*
196 #define IOCTL_MOUNTMGR_CREATE_POINT \
197 	CTL_CODE(MOUNTMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
198 #define IOCTL_MOUNTMGR_DELETE_POINTS \
199 	CTL_CODE(MOUNTMGRCONTROLTYPE, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
200 */
201 #define IOCTL_MOUNTMGR_QUERY_POINTS \
202 	CTL_CODE(MOUNTMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
203 #define IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY \
204 	CTL_CODE(MOUNTMGRCONTROLTYPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
205 #define IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER \
206 	CTL_CODE(MOUNTMGRCONTROLTYPE, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
207 #define IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS \
208 	CTL_CODE(MOUNTMGRCONTROLTYPE, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
209 #define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED \
210 	CTL_CODE(MOUNTMGRCONTROLTYPE, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
211 #define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED \
212 	CTL_CODE(MOUNTMGRCONTROLTYPE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
213 #define IOCTL_MOUNTMGR_CHANGE_NOTIFY \
214 	CTL_CODE(MOUNTMGRCONTROLTYPE, 8, METHOD_BUFFERED, FILE_READ_ACCESS)
215 #define IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE \
216 	CTL_CODE(MOUNTMGRCONTROLTYPE, 9, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
217 #define IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES \
218 	CTL_CODE(MOUNTMGRCONTROLTYPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS)
219 /*
220 #define IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION \
221 	CTL_CODE(MOUNTMGRCONTROLTYPE, 11, METHOD_BUFFERED, FILE_READ_ACCESS)
222 */
223 
224 // mountdev.h
225 /*
226 #define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID \
227 	CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
228 #define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY \
229 	CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
230 #define IOCTL_MOUNTDEV_QUERY_DEVICE_NAME \
231 	CTL_CODE(MOUNTDEVCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
232 #define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME \
233 	CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
234 #define IOCTL_MOUNTDEV_LINK_CREATED \
235 	CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
236 #define IOCTL_MOUNTDEV_LINK_DELETED \
237 	CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
238 */
239 
240 // ntdddisk.h
241 #define IOCTL_DISK_UPDATE_DRIVE_SIZE \
242 	CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
243 #define IOCTL_DISK_GROW_PARTITION \
244 	CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
245 #define IOCTL_DISK_GET_CACHE_INFORMATION \
246 	CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS)
247 #define IOCTL_DISK_SET_CACHE_INFORMATION \
248 	CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
249 #define IOCTL_DISK_DELETE_DRIVE_LAYOUT \
250 	CTL_CODE(IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
251 #define IOCTL_DISK_FORMAT_DRIVE  \
252 	CTL_CODE(IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
253 #define IOCTL_DISK_SENSE_DEVICE  \
254 	CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS)
255 #define IOCTL_DISK_INTERNAL_SET_NOTIFY \
256 	CTL_CODE(IOCTL_DISK_BASE, 0x0102, METHOD_BUFFERED, FILE_ANY_ACCESS)
257 
258 // ntddft.h
259 #define FT_SECONDARY_READ_ALT \
260 	CTL_CODE(FTTYPE, 4, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
261 #define FT_PRIMARY_READ_ALT \
262 	CTL_CODE(FTTYPE, 5, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
263 #define FT_CLUSTER_SET_MEMBER_STATE  \
264 	CTL_CODE(FTTYPE,11, METHOD_BUFFERED, FILE_ANY_ACCESS)
265 #define FT_CLUSTER_GET_MEMBER_STATE  \
266 	CTL_CODE(FTTYPE,12, METHOD_BUFFERED, FILE_ANY_ACCESS)
267 
268 // ntddstor.h
269 #define IOCTL_STORAGE_LOAD_MEDIA2 \
270 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
271 #define IOCTL_STORAGE_EJECTION_CONTROL \
272 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
273 #define IOCTL_STORAGE_MCN_CONTROL \
274 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
275 #define IOCTL_STORAGE_GET_MEDIA_TYPES_EX \
276 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
277 #define IOCTL_STORAGE_RESET_BUS  \
278 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
279 #define IOCTL_STORAGE_RESET_DEVICE \
280 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
281 #define IOCTL_STORAGE_GET_DEVICE_NUMBER  \
282 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
283 #define IOCTL_STORAGE_PREDICT_FAILURE \
284 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
285 #define IOCTL_STORAGE_QUERY_PROPERTY \
286 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)
287 #define OBSOLETE_IOCTL_STORAGE_RESET_BUS \
288 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
289 #define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE  \
290 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
291 
292 // ntddft2.h
293 #define FTCONTROLTYPE	((ULONG) 'g')
294 #define FT_CREATE_LOGICAL_DISK \
295 	CTL_CODE(FTCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
296 #define FT_BREAK_LOGICAL_DISK \
297 	CTL_CODE(FTCONTROLTYPE, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
298 #define FT_ENUMERATE_LOGICAL_DISKS \
299 	CTL_CODE(FTCONTROLTYPE, 2, METHOD_BUFFERED, FILE_READ_ACCESS)
300 #define FT_QUERY_LOGICAL_DISK_INFORMATION \
301 	CTL_CODE(FTCONTROLTYPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS)
302 #define FT_ORPHAN_LOGICAL_DISK_MEMBER \
303 	CTL_CODE(FTCONTROLTYPE, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
304 #define FT_REPLACE_LOGICAL_DISK_MEMBER \
305 	CTL_CODE(FTCONTROLTYPE, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
306 #define FT_QUERY_NT_DEVICE_NAME_FOR_LOGICAL_DISK \
307 	CTL_CODE(FTCONTROLTYPE, 6, METHOD_BUFFERED, FILE_READ_ACCESS)
308 #define FT_INITIALIZE_LOGICAL_DISK \
309 	CTL_CODE(FTCONTROLTYPE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
310 #define FT_QUERY_DRIVE_LETTER_FOR_LOGICAL_DISK \
311 	CTL_CODE(FTCONTROLTYPE, 8, METHOD_BUFFERED, FILE_READ_ACCESS)
312 #define FT_CHECK_IO \
313 	CTL_CODE(FTCONTROLTYPE, 9, METHOD_BUFFERED, FILE_READ_ACCESS)
314 #define FT_SET_DRIVE_LETTER_FOR_LOGICAL_DISK \
315 	CTL_CODE(FTCONTROLTYPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
316 #define FT_QUERY_NT_DEVICE_NAME_FOR_PARTITION \
317 	CTL_CODE(FTCONTROLTYPE, 12, METHOD_BUFFERED, FILE_READ_ACCESS)
318 #define FT_CHANGE_NOTIFY \
319 	CTL_CODE(FTCONTROLTYPE, 13, METHOD_BUFFERED, FILE_READ_ACCESS)
320 #define FT_STOP_SYNC_OPERATIONS \
321 	CTL_CODE(FTCONTROLTYPE, 14, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
322 #define FT_QUERY_LOGICAL_DISK_ID \
323 	CTL_CODE(FTCONTROLTYPE, 100, METHOD_BUFFERED, FILE_READ_ACCESS)
324 #define FT_CREATE_PARTITION_LOGICAL_DISK \
325 	CTL_CODE(FTCONTROLTYPE, 101, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
326 
327 // ntddvol.h
328 #define IOCTL_VOLUME_BASE	((ULONG) 'V')
329 #define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS \
330 	CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
331 #define IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE \
332 	CTL_CODE(IOCTL_VOLUME_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
333 #define IOCTL_VOLUME_ONLINE \
334 	CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
335 #define IOCTL_VOLUME_OFFLINE \
336 	CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
337 #define IOCTL_VOLUME_IS_OFFLINE \
338 	CTL_CODE(IOCTL_VOLUME_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
339 #define IOCTL_VOLUME_IS_IO_CAPABLE \
340 	CTL_CODE(IOCTL_VOLUME_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
341 #define IOCTL_VOLUME_QUERY_FAILOVER_SET \
342 	CTL_CODE(IOCTL_VOLUME_BASE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
343 #define IOCTL_VOLUME_QUERY_VOLUME_NUMBER \
344 	CTL_CODE(IOCTL_VOLUME_BASE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
345 #define IOCTL_VOLUME_LOGICAL_TO_PHYSICAL \
346 	CTL_CODE(IOCTL_VOLUME_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
347 #define IOCTL_VOLUME_PHYSICAL_TO_LOGICAL \
348 	CTL_CODE(IOCTL_VOLUME_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
349 
350 #else	// (VER_PRODUCTBUILD < 2195)
351 
352 #include <mountmgr.h>
353 #include <mountdev.h>
354 #ifndef __REACTOS__
355 #include <ntddft2.h>
356 #endif
357 #include <ntddvol.h>
358 
359 #define FT_SECONDARY_READ_ALT \
360 	CTL_CODE(FTTYPE, 4, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
361 #define FT_PRIMARY_READ_ALT \
362 	CTL_CODE(FTTYPE, 5, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
363 
364 #endif	// (VER_PRODUCTBUILD < 2195)
365 
366 #if (VER_PRODUCTBUILD < 2600)
367 //
368 // imports from WinXP DDK
369 //
370 
371 // mountmgr.h
372 #define IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATH \
373 	CTL_CODE(MOUNTMGRCONTROLTYPE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
374 #define IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATHS \
375 	CTL_CODE(MOUNTMGRCONTROLTYPE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
376 
377 // mountdev.h
378 /*
379 #define IOCTL_MOUNTDEV_QUERY_STABLE_GUID \
380 	CTL_CODE(MOUNTDEVCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
381 */
382 
383 // ntdddisk.h
384 #define IOCTL_DISK_PERFORMANCE_OFF \
385 	CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS)
386 /*
387 #define IOCTL_DISK_GET_PARTITION_INFO_EX \
388 	CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
389 */
390 #define IOCTL_DISK_SET_PARTITION_INFO_EX \
391 	CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
392 #define IOCTL_DISK_GET_DRIVE_LAYOUT_EX \
393 	CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS)
394 #define IOCTL_DISK_SET_DRIVE_LAYOUT_EX \
395 	CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
396 #define IOCTL_DISK_CREATE_DISK \
397 	CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
398 /*
399 #define IOCTL_DISK_GET_LENGTH_INFO \
400 	CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
401 */
402 #define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX \
403 	CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS)
404 #define IOCTL_DISK_GET_WRITE_CACHE_STATE \
405 	CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
406 #define IOCTL_DISK_UPDATE_PROPERTIES \
407 	CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS)
408 
409 // ntddstor.h
410 #define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER \
411 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS)
412 /*
413 #define IOCTL_STORAGE_GET_HOTPLUG_INFO \
414 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS)
415 */
416 #define IOCTL_STORAGE_SET_HOTPLUG_INFO \
417 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
418 #define IOCTL_STORAGE_BREAK_RESERVATION \
419 	CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)
420 
421 // ntddvol.h
422 #define IOCTL_VOLUME_IS_PARTITION \
423 	CTL_CODE(IOCTL_VOLUME_BASE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
424 #define IOCTL_VOLUME_READ_PLEX \
425 	CTL_CODE(IOCTL_VOLUME_BASE, 11, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
426 #define IOCTL_VOLUME_IS_CLUSTERED \
427 	CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
428 #define IOCTL_VOLUME_SET_GPT_ATTRIBUTES \
429 	CTL_CODE(IOCTL_VOLUME_BASE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
430 #define IOCTL_VOLUME_GET_GPT_ATTRIBUTES \
431 	CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
432 
433 #endif	// (VER_PRODUCTBUILD < 2600)
434 
435 PCSTR
GetIoControlName(ULONG ctrl_code)436 GetIoControlName(
437 	ULONG ctrl_code)
438 {
439 	static CHAR buf[20];
440 
441 	switch (ctrl_code) {
442 	//
443 	//	VFD control codes
444 	//
445 	CASE_RETURN_STR(IOCTL_VFD_OPEN_IMAGE);
446 	CASE_RETURN_STR(IOCTL_VFD_CLOSE_IMAGE);
447 	CASE_RETURN_STR(IOCTL_VFD_QUERY_IMAGE);
448 	CASE_RETURN_STR(IOCTL_VFD_SET_LINK);
449 	CASE_RETURN_STR(IOCTL_VFD_QUERY_LINK);
450 	CASE_RETURN_STR(IOCTL_VFD_SET_PROTECT);
451 	CASE_RETURN_STR(IOCTL_VFD_CLEAR_PROTECT);
452 	CASE_RETURN_STR(IOCTL_VFD_RESET_MODIFY);
453 	CASE_RETURN_STR(IOCTL_VFD_QUERY_NUMBER);
454 	CASE_RETURN_STR(IOCTL_VFD_QUERY_NAME);
455 	CASE_RETURN_STR(IOCTL_VFD_QUERY_VERSION);
456 
457 	//
458 	// Standard control codes
459 	//
460 	// mountmgr.h
461 	CASE_RETURN_STR(IOCTL_MOUNTMGR_CREATE_POINT);
462 	CASE_RETURN_STR(IOCTL_MOUNTMGR_DELETE_POINTS);
463 	CASE_RETURN_STR(IOCTL_MOUNTMGR_QUERY_POINTS);
464 	CASE_RETURN_STR(IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY);
465 	CASE_RETURN_STR(IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER);
466 	CASE_RETURN_STR(IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS);
467 	CASE_RETURN_STR(IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED);
468 	CASE_RETURN_STR(IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED);
469 	CASE_RETURN_STR(IOCTL_MOUNTMGR_CHANGE_NOTIFY);
470 	CASE_RETURN_STR(IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE);
471 	CASE_RETURN_STR(IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES);
472 	CASE_RETURN_STR(IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION);
473 	CASE_RETURN_STR(IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATH);
474 	CASE_RETURN_STR(IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATHS);
475 	CASE_RETURN_STR(IOCTL_MOUNTDEV_QUERY_DEVICE_NAME);
476 
477 	// mountdev.h
478 	CASE_RETURN_STR(IOCTL_MOUNTDEV_QUERY_UNIQUE_ID);
479 	CASE_RETURN_STR(IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY);
480 	CASE_RETURN_STR(IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME);
481 	CASE_RETURN_STR(IOCTL_MOUNTDEV_LINK_CREATED);
482 	CASE_RETURN_STR(IOCTL_MOUNTDEV_LINK_DELETED);
483 	CASE_RETURN_STR(IOCTL_MOUNTDEV_QUERY_STABLE_GUID);
484 
485 	// ntdddisk.h
486 	CASE_RETURN_STR(IOCTL_DISK_GET_DRIVE_GEOMETRY);
487 	CASE_RETURN_STR(IOCTL_DISK_GET_PARTITION_INFO);
488 	CASE_RETURN_STR(IOCTL_DISK_SET_PARTITION_INFO);
489 	CASE_RETURN_STR(IOCTL_DISK_GET_DRIVE_LAYOUT);
490 	CASE_RETURN_STR(IOCTL_DISK_SET_DRIVE_LAYOUT);
491 	CASE_RETURN_STR(IOCTL_DISK_VERIFY);
492 	CASE_RETURN_STR(IOCTL_DISK_FORMAT_TRACKS);
493 	CASE_RETURN_STR(IOCTL_DISK_REASSIGN_BLOCKS);
494 	CASE_RETURN_STR(IOCTL_DISK_PERFORMANCE);
495 	CASE_RETURN_STR(IOCTL_DISK_IS_WRITABLE);
496 	CASE_RETURN_STR(IOCTL_DISK_LOGGING);
497 	CASE_RETURN_STR(IOCTL_DISK_FORMAT_TRACKS_EX);
498 	CASE_RETURN_STR(IOCTL_DISK_HISTOGRAM_STRUCTURE);
499 	CASE_RETURN_STR(IOCTL_DISK_HISTOGRAM_DATA);
500 	CASE_RETURN_STR(IOCTL_DISK_HISTOGRAM_RESET);
501 	CASE_RETURN_STR(IOCTL_DISK_REQUEST_STRUCTURE);
502 	CASE_RETURN_STR(IOCTL_DISK_REQUEST_DATA);
503 	CASE_RETURN_STR(IOCTL_DISK_PERFORMANCE_OFF);
504 	CASE_RETURN_STR(IOCTL_DISK_CONTROLLER_NUMBER);
505 	CASE_RETURN_STR(SMART_GET_VERSION);
506 	CASE_RETURN_STR(SMART_SEND_DRIVE_COMMAND);
507 	CASE_RETURN_STR(SMART_RCV_DRIVE_DATA);
508 	CASE_RETURN_STR(IOCTL_DISK_GET_PARTITION_INFO_EX);
509 	CASE_RETURN_STR(IOCTL_DISK_SET_PARTITION_INFO_EX);
510 	CASE_RETURN_STR(IOCTL_DISK_GET_DRIVE_LAYOUT_EX);
511 	CASE_RETURN_STR(IOCTL_DISK_SET_DRIVE_LAYOUT_EX);
512 	CASE_RETURN_STR(IOCTL_DISK_CREATE_DISK);
513 	CASE_RETURN_STR(IOCTL_DISK_GET_LENGTH_INFO);
514 	CASE_RETURN_STR(IOCTL_DISK_GET_DRIVE_GEOMETRY_EX);
515 	CASE_RETURN_STR(IOCTL_DISK_UPDATE_DRIVE_SIZE);
516 	CASE_RETURN_STR(IOCTL_DISK_GROW_PARTITION);
517 	CASE_RETURN_STR(IOCTL_DISK_GET_CACHE_INFORMATION);
518 	CASE_RETURN_STR(IOCTL_DISK_SET_CACHE_INFORMATION);
519 #if !defined(__REACTOS__) || (NTDDI_VERSION < NTDDI_WS03)
520 	CASE_RETURN_STR(IOCTL_DISK_GET_WRITE_CACHE_STATE);
521 #else
522     CASE_RETURN_STR(OBSOLETE_DISK_GET_WRITE_CACHE_STATE);
523 #endif
524 	CASE_RETURN_STR(IOCTL_DISK_DELETE_DRIVE_LAYOUT);
525 	CASE_RETURN_STR(IOCTL_DISK_UPDATE_PROPERTIES);
526 	CASE_RETURN_STR(IOCTL_DISK_FORMAT_DRIVE);
527 	CASE_RETURN_STR(IOCTL_DISK_SENSE_DEVICE);
528 	CASE_RETURN_STR(IOCTL_DISK_INTERNAL_SET_VERIFY);
529 	CASE_RETURN_STR(IOCTL_DISK_INTERNAL_CLEAR_VERIFY);
530 	CASE_RETURN_STR(IOCTL_DISK_INTERNAL_SET_NOTIFY);
531 	CASE_RETURN_STR(IOCTL_DISK_CHECK_VERIFY);
532 	CASE_RETURN_STR(IOCTL_DISK_MEDIA_REMOVAL);
533 	CASE_RETURN_STR(IOCTL_DISK_EJECT_MEDIA);
534 	CASE_RETURN_STR(IOCTL_DISK_LOAD_MEDIA);
535 	CASE_RETURN_STR(IOCTL_DISK_RESERVE);
536 	CASE_RETURN_STR(IOCTL_DISK_RELEASE);
537 	CASE_RETURN_STR(IOCTL_DISK_FIND_NEW_DEVICES);
538 	CASE_RETURN_STR(IOCTL_DISK_GET_MEDIA_TYPES);
539 	CASE_RETURN_STR(IOCTL_DISK_SIMBAD);
540 
541 #ifndef __REACTOS__
542 	// ntddft.h
543 	CASE_RETURN_STR(FT_INITIALIZE_SET);
544 	CASE_RETURN_STR(FT_REGENERATE);
545 	CASE_RETURN_STR(FT_CONFIGURE);
546 	CASE_RETURN_STR(FT_VERIFY);
547 	CASE_RETURN_STR(FT_SECONDARY_READ);
548 	CASE_RETURN_STR(FT_PRIMARY_READ);
549 	CASE_RETURN_STR(FT_BALANCED_READ_MODE);
550 	CASE_RETURN_STR(FT_SYNC_REDUNDANT_COPY);
551 	CASE_RETURN_STR(FT_SEQUENTIAL_WRITE_MODE);
552 	CASE_RETURN_STR(FT_PARALLEL_WRITE_MODE);
553 	CASE_RETURN_STR(FT_QUERY_SET_STATE);
554 	CASE_RETURN_STR(FT_CLUSTER_SET_MEMBER_STATE);
555 	CASE_RETURN_STR(FT_CLUSTER_GET_MEMBER_STATE);
556 
557 	// ntddft2.h
558 	CASE_RETURN_STR(FT_CREATE_LOGICAL_DISK);
559 	CASE_RETURN_STR(FT_BREAK_LOGICAL_DISK);
560 	CASE_RETURN_STR(FT_ENUMERATE_LOGICAL_DISKS);
561 	CASE_RETURN_STR(FT_QUERY_LOGICAL_DISK_INFORMATION);
562 	CASE_RETURN_STR(FT_ORPHAN_LOGICAL_DISK_MEMBER);
563 	CASE_RETURN_STR(FT_REPLACE_LOGICAL_DISK_MEMBER);
564 	CASE_RETURN_STR(FT_QUERY_NT_DEVICE_NAME_FOR_LOGICAL_DISK);
565 	CASE_RETURN_STR(FT_INITIALIZE_LOGICAL_DISK);
566 	CASE_RETURN_STR(FT_QUERY_DRIVE_LETTER_FOR_LOGICAL_DISK);
567 	CASE_RETURN_STR(FT_CHECK_IO);
568 	CASE_RETURN_STR(FT_SET_DRIVE_LETTER_FOR_LOGICAL_DISK);
569 	CASE_RETURN_STR(FT_QUERY_NT_DEVICE_NAME_FOR_PARTITION);
570 	CASE_RETURN_STR(FT_CHANGE_NOTIFY);
571 	CASE_RETURN_STR(FT_STOP_SYNC_OPERATIONS);
572 	CASE_RETURN_STR(FT_QUERY_LOGICAL_DISK_ID);
573 	CASE_RETURN_STR(FT_CREATE_PARTITION_LOGICAL_DISK);
574 #endif
575 
576 	// ntddstor.h
577 	CASE_RETURN_STR(IOCTL_STORAGE_CHECK_VERIFY);
578 	CASE_RETURN_STR(IOCTL_STORAGE_CHECK_VERIFY2);
579 	CASE_RETURN_STR(IOCTL_STORAGE_MEDIA_REMOVAL);
580 	CASE_RETURN_STR(IOCTL_STORAGE_EJECT_MEDIA);
581 	CASE_RETURN_STR(IOCTL_STORAGE_LOAD_MEDIA);
582 	CASE_RETURN_STR(IOCTL_STORAGE_LOAD_MEDIA2);
583 	CASE_RETURN_STR(IOCTL_STORAGE_RESERVE);
584 	CASE_RETURN_STR(IOCTL_STORAGE_RELEASE);
585 	CASE_RETURN_STR(IOCTL_STORAGE_FIND_NEW_DEVICES);
586 	CASE_RETURN_STR(IOCTL_STORAGE_EJECTION_CONTROL);
587 	CASE_RETURN_STR(IOCTL_STORAGE_MCN_CONTROL);
588 	CASE_RETURN_STR(IOCTL_STORAGE_GET_MEDIA_TYPES);
589 	CASE_RETURN_STR(IOCTL_STORAGE_GET_MEDIA_TYPES_EX);
590 	CASE_RETURN_STR(IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER);
591 	CASE_RETURN_STR(IOCTL_STORAGE_GET_HOTPLUG_INFO);
592 	CASE_RETURN_STR(IOCTL_STORAGE_SET_HOTPLUG_INFO);
593 	CASE_RETURN_STR(IOCTL_STORAGE_RESET_BUS);
594 	CASE_RETURN_STR(IOCTL_STORAGE_RESET_DEVICE);
595 	CASE_RETURN_STR(IOCTL_STORAGE_BREAK_RESERVATION);
596 	CASE_RETURN_STR(IOCTL_STORAGE_GET_DEVICE_NUMBER);
597 	CASE_RETURN_STR(IOCTL_STORAGE_PREDICT_FAILURE);
598 	CASE_RETURN_STR(IOCTL_STORAGE_QUERY_PROPERTY);
599 	CASE_RETURN_STR(OBSOLETE_IOCTL_STORAGE_RESET_BUS);
600 	CASE_RETURN_STR(OBSOLETE_IOCTL_STORAGE_RESET_DEVICE);
601 
602 	// ntddvol.h
603 	CASE_RETURN_STR(IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS);
604 	CASE_RETURN_STR(IOCTL_VOLUME_IS_CLUSTERED);
605 	CASE_RETURN_STR(IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE);
606 	CASE_RETURN_STR(IOCTL_VOLUME_ONLINE);
607 	CASE_RETURN_STR(IOCTL_VOLUME_OFFLINE);
608 	CASE_RETURN_STR(IOCTL_VOLUME_IS_OFFLINE);
609 	CASE_RETURN_STR(IOCTL_VOLUME_IS_IO_CAPABLE);
610 	CASE_RETURN_STR(IOCTL_VOLUME_QUERY_FAILOVER_SET);
611 	CASE_RETURN_STR(IOCTL_VOLUME_QUERY_VOLUME_NUMBER);
612 	CASE_RETURN_STR(IOCTL_VOLUME_LOGICAL_TO_PHYSICAL);
613 	CASE_RETURN_STR(IOCTL_VOLUME_PHYSICAL_TO_LOGICAL);
614 	CASE_RETURN_STR(IOCTL_VOLUME_IS_PARTITION);
615 	CASE_RETURN_STR(IOCTL_VOLUME_READ_PLEX);
616 	CASE_RETURN_STR(IOCTL_VOLUME_SET_GPT_ATTRIBUTES);
617 	CASE_RETURN_STR(IOCTL_VOLUME_GET_GPT_ATTRIBUTES);
618 
619 	default:
620 		buf[sizeof(buf) - 1] = '\0';
621 		_snprintf(buf, sizeof(buf) - 1,
622 		// sprintf(buf,
623 			"Unknown IOCTL: 0x%08x", ctrl_code);
624 		return buf;
625 	}
626 }
627 
628 #if (VER_PRODUCTBUILD < 2195)
629 //
630 // from new <ntstatus.h>
631 //
632 #define FACILITY_USB_ERROR_CODE					0x10
633 #define FACILITY_TERMINAL_SERVER				0xA
634 #define FACILITY_HID_ERROR_CODE					0x11
635 #define FACILITY_FIREWIRE_ERROR_CODE			0x12
636 #define FACILITY_DEBUGGER						0x1
637 #define FACILITY_CLUSTER_ERROR_CODE				0x13
638 #define FACILITY_ACPI_ERROR_CODE				0x14
639 #define STATUS_RESOURCE_REQUIREMENTS_CHANGED	((NTSTATUS)0x00000119L)
640 #define STATUS_TRANSLATION_COMPLETE				((NTSTATUS)0x00000120L)
641 #define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY	((NTSTATUS)0x00000121L)
642 #define DBG_EXCEPTION_HANDLED					((NTSTATUS)0x00010001L)
643 #define DBG_CONTINUE							((NTSTATUS)0x00010002L)
644 #define STATUS_ARBITRATION_UNHANDLED			((NTSTATUS)0x40000026L)
645 #define STATUS_CARDBUS_NOT_SUPPORTED			((NTSTATUS)0x40000027L)
646 #define STATUS_WX86_CREATEWX86TIB				((NTSTATUS)0x40000028L)
647 #define STATUS_MP_PROCESSOR_MISMATCH			((NTSTATUS)0x40000029L)
648 #define DBG_REPLY_LATER							((NTSTATUS)0x40010001L)
649 #define DBG_UNABLE_TO_PROVIDE_HANDLE			((NTSTATUS)0x40010002L)
650 #define DBG_TERMINATE_THREAD					((NTSTATUS)0x40010003L)
651 #define DBG_TERMINATE_PROCESS					((NTSTATUS)0x40010004L)
652 #define DBG_CONTROL_C							((NTSTATUS)0x40010005L)
653 #define DBG_PRINTEXCEPTION_C					((NTSTATUS)0x40010006L)
654 #define DBG_RIPEXCEPTION						((NTSTATUS)0x40010007L)
655 #define DBG_CONTROL_BREAK						((NTSTATUS)0x40010008L)
656 #define DBG_EXCEPTION_NOT_HANDLED				((NTSTATUS)0x80010001L)
657 #define STATUS_VALIDATE_CONTINUE				((NTSTATUS)0xC0000271L)
658 #define STATUS_NO_MATCH							((NTSTATUS)0xC0000272L)
659 #define STATUS_NO_MORE_MATCHES					((NTSTATUS)0xC0000273L)
660 #define STATUS_NOT_A_REPARSE_POINT				((NTSTATUS)0xC0000275L)
661 #define STATUS_IO_REPARSE_TAG_INVALID			((NTSTATUS)0xC0000276L)
662 #define STATUS_IO_REPARSE_TAG_MISMATCH			((NTSTATUS)0xC0000277L)
663 #define STATUS_IO_REPARSE_DATA_INVALID			((NTSTATUS)0xC0000278L)
664 #define STATUS_IO_REPARSE_TAG_NOT_HANDLED		((NTSTATUS)0xC0000279L)
665 #define STATUS_REPARSE_POINT_NOT_RESOLVED		((NTSTATUS)0xC0000280L)
666 #define STATUS_DIRECTORY_IS_A_REPARSE_POINT		((NTSTATUS)0xC0000281L)
667 #define STATUS_RANGE_LIST_CONFLICT				((NTSTATUS)0xC0000282L)
668 #define STATUS_SOURCE_ELEMENT_EMPTY				((NTSTATUS)0xC0000283L)
669 #define STATUS_DESTINATION_ELEMENT_FULL			((NTSTATUS)0xC0000284L)
670 #define STATUS_ILLEGAL_ELEMENT_ADDRESS			((NTSTATUS)0xC0000285L)
671 #define STATUS_MAGAZINE_NOT_PRESENT				((NTSTATUS)0xC0000286L)
672 #define STATUS_REINITIALIZATION_NEEDED			((NTSTATUS)0xC0000287L)
673 #define STATUS_DEVICE_REQUIRES_CLEANING			((NTSTATUS)0x80000288L)
674 #define STATUS_DEVICE_DOOR_OPEN					((NTSTATUS)0x80000289L)
675 #define STATUS_ENCRYPTION_FAILED				((NTSTATUS)0xC000028AL)
676 #define STATUS_DECRYPTION_FAILED				((NTSTATUS)0xC000028BL)
677 #define STATUS_RANGE_NOT_FOUND					((NTSTATUS)0xC000028CL)
678 #define STATUS_NO_RECOVERY_POLICY				((NTSTATUS)0xC000028DL)
679 #define STATUS_NO_EFS							((NTSTATUS)0xC000028EL)
680 #define STATUS_WRONG_EFS						((NTSTATUS)0xC000028FL)
681 #define STATUS_NO_USER_KEYS						((NTSTATUS)0xC0000290L)
682 #define STATUS_FILE_NOT_ENCRYPTED				((NTSTATUS)0xC0000291L)
683 #define STATUS_NOT_EXPORT_FORMAT				((NTSTATUS)0xC0000292L)
684 #define STATUS_FILE_ENCRYPTED					((NTSTATUS)0xC0000293L)
685 #define STATUS_WAKE_SYSTEM						((NTSTATUS)0x40000294L)
686 #define STATUS_WMI_GUID_NOT_FOUND				((NTSTATUS)0xC0000295L)
687 #define STATUS_WMI_INSTANCE_NOT_FOUND			((NTSTATUS)0xC0000296L)
688 #define STATUS_WMI_ITEMID_NOT_FOUND				((NTSTATUS)0xC0000297L)
689 #define STATUS_WMI_TRY_AGAIN					((NTSTATUS)0xC0000298L)
690 #define STATUS_SHARED_POLICY					((NTSTATUS)0xC0000299L)
691 #define STATUS_POLICY_OBJECT_NOT_FOUND			((NTSTATUS)0xC000029AL)
692 #define STATUS_POLICY_ONLY_IN_DS				((NTSTATUS)0xC000029BL)
693 #define STATUS_VOLUME_NOT_UPGRADED				((NTSTATUS)0xC000029CL)
694 #define STATUS_REMOTE_STORAGE_NOT_ACTIVE		((NTSTATUS)0xC000029DL)
695 #define STATUS_REMOTE_STORAGE_MEDIA_ERROR		((NTSTATUS)0xC000029EL)
696 #define STATUS_NO_TRACKING_SERVICE				((NTSTATUS)0xC000029FL)
697 #define STATUS_SERVER_SID_MISMATCH				((NTSTATUS)0xC00002A0L)
698 #define STATUS_DS_NO_ATTRIBUTE_OR_VALUE			((NTSTATUS)0xC00002A1L)
699 #define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX		((NTSTATUS)0xC00002A2L)
700 #define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED		((NTSTATUS)0xC00002A3L)
701 #define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS		((NTSTATUS)0xC00002A4L)
702 #define STATUS_DS_BUSY							((NTSTATUS)0xC00002A5L)
703 #define STATUS_DS_UNAVAILABLE					((NTSTATUS)0xC00002A6L)
704 #define STATUS_DS_NO_RIDS_ALLOCATED				((NTSTATUS)0xC00002A7L)
705 #define STATUS_DS_NO_MORE_RIDS					((NTSTATUS)0xC00002A8L)
706 #define STATUS_DS_INCORRECT_ROLE_OWNER			((NTSTATUS)0xC00002A9L)
707 #define STATUS_DS_RIDMGR_INIT_ERROR				((NTSTATUS)0xC00002AAL)
708 #define STATUS_DS_OBJ_CLASS_VIOLATION			((NTSTATUS)0xC00002ABL)
709 #define STATUS_DS_CANT_ON_NON_LEAF				((NTSTATUS)0xC00002ACL)
710 #define STATUS_DS_CANT_ON_RDN					((NTSTATUS)0xC00002ADL)
711 #define STATUS_DS_CANT_MOD_OBJ_CLASS			((NTSTATUS)0xC00002AEL)
712 #define STATUS_DS_CROSS_DOM_MOVE_FAILED			((NTSTATUS)0xC00002AFL)
713 #define STATUS_DS_GC_NOT_AVAILABLE				((NTSTATUS)0xC00002B0L)
714 #define STATUS_DIRECTORY_SERVICE_REQUIRED		((NTSTATUS)0xC00002B1L)
715 #define STATUS_REPARSE_ATTRIBUTE_CONFLICT		((NTSTATUS)0xC00002B2L)
716 #define STATUS_CANT_ENABLE_DENY_ONLY			((NTSTATUS)0xC00002B3L)
717 #define STATUS_FLOAT_MULTIPLE_FAULTS			((NTSTATUS)0xC00002B4L)
718 #define STATUS_FLOAT_MULTIPLE_TRAPS				((NTSTATUS)0xC00002B5L)
719 #define STATUS_DEVICE_REMOVED					((NTSTATUS)0xC00002B6L)
720 #define STATUS_JOURNAL_DELETE_IN_PROGRESS		((NTSTATUS)0xC00002B7L)
721 #define STATUS_JOURNAL_NOT_ACTIVE				((NTSTATUS)0xC00002B8L)
722 #define STATUS_NOINTERFACE						((NTSTATUS)0xC00002B9L)
723 #define STATUS_DS_ADMIN_LIMIT_EXCEEDED			((NTSTATUS)0xC00002C1L)
724 #define STATUS_DRIVER_FAILED_SLEEP				((NTSTATUS)0xC00002C2L)
725 #define STATUS_MUTUAL_AUTHENTICATION_FAILED		((NTSTATUS)0xC00002C3L)
726 #define STATUS_CORRUPT_SYSTEM_FILE				((NTSTATUS)0xC00002C4L)
727 #define STATUS_DATATYPE_MISALIGNMENT_ERROR		((NTSTATUS)0xC00002C5L)
728 #define STATUS_WMI_READ_ONLY					((NTSTATUS)0xC00002C6L)
729 #define STATUS_WMI_SET_FAILURE					((NTSTATUS)0xC00002C7L)
730 #define STATUS_COMMITMENT_MINIMUM				((NTSTATUS)0xC00002C8L)
731 #define STATUS_REG_NAT_CONSUMPTION				((NTSTATUS)0xC00002C9L)
732 #define STATUS_TRANSPORT_FULL					((NTSTATUS)0xC00002CAL)
733 #define STATUS_DS_SAM_INIT_FAILURE				((NTSTATUS)0xC00002CBL)
734 #define STATUS_ONLY_IF_CONNECTED				((NTSTATUS)0xC00002CCL)
735 #define STATUS_DS_SENSITIVE_GROUP_VIOLATION		((NTSTATUS)0xC00002CDL)
736 #define STATUS_PNP_RESTART_ENUMERATION			((NTSTATUS)0xC00002CEL)
737 #define STATUS_JOURNAL_ENTRY_DELETED			((NTSTATUS)0xC00002CFL)
738 #define STATUS_DS_CANT_MOD_PRIMARYGROUPID		((NTSTATUS)0xC00002D0L)
739 #define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE		((NTSTATUS)0xC00002D1L)
740 #define STATUS_PNP_REBOOT_REQUIRED				((NTSTATUS)0xC00002D2L)
741 #define STATUS_POWER_STATE_INVALID				((NTSTATUS)0xC00002D3L)
742 #define STATUS_DS_INVALID_GROUP_TYPE			((NTSTATUS)0xC00002D4L)
743 #define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN	((NTSTATUS)0xC00002D5L)
744 #define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN		((NTSTATUS)0xC00002D6L)
745 #define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER			((NTSTATUS)0xC00002D7L)
746 #define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER		((NTSTATUS)0xC00002D8L)
747 #define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER		((NTSTATUS)0xC00002D9L)
748 #define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER	((NTSTATUS)0xC00002DAL)
749 #define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER	((NTSTATUS)0xC00002DBL)
750 #define STATUS_DS_HAVE_PRIMARY_MEMBERS			((NTSTATUS)0xC00002DCL)
751 #define STATUS_WMI_NOT_SUPPORTED				((NTSTATUS)0xC00002DDL)
752 #define STATUS_INSUFFICIENT_POWER				((NTSTATUS)0xC00002DEL)
753 #define STATUS_SAM_NEED_BOOTKEY_PASSWORD		((NTSTATUS)0xC00002DFL)
754 #define STATUS_SAM_NEED_BOOTKEY_FLOPPY			((NTSTATUS)0xC00002E0L)
755 #define STATUS_DS_CANT_START					((NTSTATUS)0xC00002E1L)
756 #define STATUS_DS_INIT_FAILURE					((NTSTATUS)0xC00002E2L)
757 #define STATUS_SAM_INIT_FAILURE					((NTSTATUS)0xC00002E3L)
758 #define STATUS_DS_GC_REQUIRED					((NTSTATUS)0xC00002E4L)
759 #define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY	((NTSTATUS)0xC00002E5L)
760 #define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS	((NTSTATUS)0xC00002E6L)
761 #define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED	((NTSTATUS)0xC00002E7L)
762 #define STATUS_MULTIPLE_FAULT_VIOLATION			((NTSTATUS)0xC00002E8L)
763 #define STATUS_NOT_SUPPORTED_ON_SBS				((NTSTATUS)0xC0000300L)
764 #define DBG_NO_STATE_CHANGE						((NTSTATUS)0xC0010001L)
765 #define DBG_APP_NOT_IDLE						((NTSTATUS)0xC0010002L)
766 #define RPC_NT_PIPE_CLOSED						((NTSTATUS)0xC003005FL)
767 #define RPC_NT_PIPE_DISCIPLINE_ERROR			((NTSTATUS)0xC0030060L)
768 #define RPC_NT_PIPE_EMPTY						((NTSTATUS)0xC0030061L)
769 #define RPC_NT_INVALID_ASYNC_HANDLE				((NTSTATUS)0xC0020062L)
770 #define RPC_NT_INVALID_ASYNC_CALL				((NTSTATUS)0xC0020063L)
771 #define STATUS_ACPI_INVALID_OPCODE				((NTSTATUS)0xC0140001L)
772 #define STATUS_ACPI_STACK_OVERFLOW				((NTSTATUS)0xC0140002L)
773 #define STATUS_ACPI_ASSERT_FAILED				((NTSTATUS)0xC0140003L)
774 #define STATUS_ACPI_INVALID_INDEX				((NTSTATUS)0xC0140004L)
775 #define STATUS_ACPI_INVALID_ARGUMENT			((NTSTATUS)0xC0140005L)
776 #define STATUS_ACPI_FATAL						((NTSTATUS)0xC0140006L)
777 #define STATUS_ACPI_INVALID_SUPERNAME			((NTSTATUS)0xC0140007L)
778 #define STATUS_ACPI_INVALID_ARGTYPE				((NTSTATUS)0xC0140008L)
779 #define STATUS_ACPI_INVALID_OBJTYPE				((NTSTATUS)0xC0140009L)
780 #define STATUS_ACPI_INVALID_TARGETTYPE			((NTSTATUS)0xC014000AL)
781 #define STATUS_ACPI_INCORRECT_ARGUMENT_COUNT	((NTSTATUS)0xC014000BL)
782 #define STATUS_ACPI_ADDRESS_NOT_MAPPED			((NTSTATUS)0xC014000CL)
783 #define STATUS_ACPI_INVALID_EVENTTYPE			((NTSTATUS)0xC014000DL)
784 #define STATUS_ACPI_HANDLER_COLLISION			((NTSTATUS)0xC014000EL)
785 #define STATUS_ACPI_INVALID_DATA				((NTSTATUS)0xC014000FL)
786 #define STATUS_ACPI_INVALID_REGION				((NTSTATUS)0xC0140010L)
787 #define STATUS_ACPI_INVALID_ACCESS_SIZE			((NTSTATUS)0xC0140011L)
788 #define STATUS_ACPI_ACQUIRE_GLOBAL_LOCK			((NTSTATUS)0xC0140012L)
789 #define STATUS_ACPI_ALREADY_INITIALIZED			((NTSTATUS)0xC0140013L)
790 #define STATUS_ACPI_NOT_INITIALIZED				((NTSTATUS)0xC0140014L)
791 #define STATUS_ACPI_INVALID_MUTEX_LEVEL			((NTSTATUS)0xC0140015L)
792 #define STATUS_ACPI_MUTEX_NOT_OWNED				((NTSTATUS)0xC0140016L)
793 #define STATUS_ACPI_MUTEX_NOT_OWNER				((NTSTATUS)0xC0140017L)
794 #define STATUS_ACPI_RS_ACCESS					((NTSTATUS)0xC0140018L)
795 #define STATUS_ACPI_INVALID_TABLE				((NTSTATUS)0xC0140019L)
796 #define STATUS_ACPI_REG_HANDLER_FAILED			((NTSTATUS)0xC0140020L)
797 #define STATUS_ACPI_POWER_REQUEST_FAILED		((NTSTATUS)0xC0140021L)
798 #define STATUS_CTX_WINSTATION_NAME_INVALID		((NTSTATUS)0xC00A0001L)
799 #define STATUS_CTX_INVALID_PD					((NTSTATUS)0xC00A0002L)
800 #define STATUS_CTX_PD_NOT_FOUND					((NTSTATUS)0xC00A0003L)
801 #define STATUS_CTX_CDM_CONNECT					((NTSTATUS)0x400A0004L)
802 #define STATUS_CTX_CDM_DISCONNECT				((NTSTATUS)0x400A0005L)
803 #define STATUS_CTX_CLOSE_PENDING				((NTSTATUS)0xC00A0006L)
804 #define STATUS_CTX_NO_OUTBUF					((NTSTATUS)0xC00A0007L)
805 #define STATUS_CTX_MODEM_INF_NOT_FOUND			((NTSTATUS)0xC00A0008L)
806 #define STATUS_CTX_INVALID_MODEMNAME			((NTSTATUS)0xC00A0009L)
807 #define STATUS_CTX_RESPONSE_ERROR				((NTSTATUS)0xC00A000AL)
808 #define STATUS_CTX_MODEM_RESPONSE_TIMEOUT		((NTSTATUS)0xC00A000BL)
809 #define STATUS_CTX_MODEM_RESPONSE_NO_CARRIER	((NTSTATUS)0xC00A000CL)
810 #define STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE	((NTSTATUS)0xC00A000DL)
811 #define STATUS_CTX_MODEM_RESPONSE_BUSY			((NTSTATUS)0xC00A000EL)
812 #define STATUS_CTX_MODEM_RESPONSE_VOICE			((NTSTATUS)0xC00A000FL)
813 #define STATUS_CTX_TD_ERROR						((NTSTATUS)0xC00A0010L)
814 #define STATUS_CTX_LICENSE_CLIENT_INVALID		((NTSTATUS)0xC00A0012L)
815 #define STATUS_CTX_LICENSE_NOT_AVAILABLE		((NTSTATUS)0xC00A0013L)
816 #define STATUS_CTX_LICENSE_EXPIRED				((NTSTATUS)0xC00A0014L)
817 #define STATUS_CTX_WINSTATION_NOT_FOUND			((NTSTATUS)0xC00A0015L)
818 #define STATUS_CTX_WINSTATION_NAME_COLLISION	((NTSTATUS)0xC00A0016L)
819 #define STATUS_CTX_WINSTATION_BUSY				((NTSTATUS)0xC00A0017L)
820 #define STATUS_CTX_BAD_VIDEO_MODE				((NTSTATUS)0xC00A0018L)
821 #define STATUS_CTX_GRAPHICS_INVALID				((NTSTATUS)0xC00A0022L)
822 #define STATUS_CTX_NOT_CONSOLE					((NTSTATUS)0xC00A0024L)
823 #define STATUS_CTX_CLIENT_QUERY_TIMEOUT			((NTSTATUS)0xC00A0026L)
824 #define STATUS_CTX_CONSOLE_DISCONNECT			((NTSTATUS)0xC00A0027L)
825 #define STATUS_CTX_CONSOLE_CONNECT				((NTSTATUS)0xC00A0028L)
826 #define STATUS_CTX_SHADOW_DENIED				((NTSTATUS)0xC00A002AL)
827 #define STATUS_CTX_WINSTATION_ACCESS_DENIED		((NTSTATUS)0xC00A002BL)
828 #define STATUS_CTX_INVALID_WD					((NTSTATUS)0xC00A002EL)
829 #define STATUS_CTX_WD_NOT_FOUND					((NTSTATUS)0xC00A002FL)
830 #define STATUS_CTX_SHADOW_INVALID				((NTSTATUS)0xC00A0030L)
831 #define STATUS_CTX_SHADOW_DISABLED				((NTSTATUS)0xC00A0031L)
832 #define STATUS_RDP_PROTOCOL_ERROR				((NTSTATUS)0xC00A0032L)
833 #define STATUS_CTX_CLIENT_LICENSE_NOT_SET		((NTSTATUS)0xC00A0033L)
834 #define STATUS_CTX_CLIENT_LICENSE_IN_USE		((NTSTATUS)0xC00A0034L)
835 #define STATUS_PNP_BAD_MPS_TABLE				((NTSTATUS)0xC0040035L)
836 #define STATUS_PNP_TRANSLATION_FAILED			((NTSTATUS)0xC0040036L)
837 #define STATUS_PNP_IRQ_TRANSLATION_FAILED		((NTSTATUS)0xC0040037L)
838 #endif	// VER_PRODUCTBUILD < 2195
839 
840 static PCSTR
841 NtStatusToStr(
842 	NTSTATUS status);
843 
844 PCSTR
GetStatusName(NTSTATUS status)845 GetStatusName(
846 	NTSTATUS			status)
847 {
848 	static CHAR	statusName[80];
849 	CHAR severity;
850 
851 	switch (status & 0xf0000000) {
852 	case 0x00000000:	severity = 'S';	break;
853 	case 0x40000000:	severity = 'I';	break;
854 	case 0x80000000:	severity = 'W';	break;
855 	case 0xC0000000:	severity = 'E';	break;
856 	default:			severity = '?';
857 	}
858 
859 	statusName[sizeof(statusName) - 1] = '\0';
860 	_snprintf(statusName, sizeof(statusName) - 1,
861 	// sprintf(statusName,
862 		"(%c)%s", severity, NtStatusToStr(status));
863 
864 	return statusName;
865 }
866 
867 PCSTR
NtStatusToStr(NTSTATUS status)868 NtStatusToStr(
869 	NTSTATUS status)
870 {
871 	switch (status) {
872 	CASE_RETURN_STR(STATUS_SUCCESS);
873 /*
874 	CASE_RETURN_STR(STATUS_WAIT_0);
875 */
876 	CASE_RETURN_STR(STATUS_WAIT_1);
877 	CASE_RETURN_STR(STATUS_WAIT_2);
878 	CASE_RETURN_STR(STATUS_WAIT_3);
879 	CASE_RETURN_STR(STATUS_WAIT_63);
880 	CASE_RETURN_STR(STATUS_ABANDONED);
881 /*
882 	CASE_RETURN_STR(STATUS_ABANDONED_WAIT_0);
883 */
884 	CASE_RETURN_STR(STATUS_ABANDONED_WAIT_63);
885 	CASE_RETURN_STR(STATUS_USER_APC);
886 	CASE_RETURN_STR(STATUS_KERNEL_APC);
887 	CASE_RETURN_STR(STATUS_ALERTED);
888 	CASE_RETURN_STR(STATUS_TIMEOUT);
889 	CASE_RETURN_STR(STATUS_PENDING);
890 	CASE_RETURN_STR(STATUS_REPARSE);
891 	CASE_RETURN_STR(STATUS_MORE_ENTRIES);
892 	CASE_RETURN_STR(STATUS_NOT_ALL_ASSIGNED);
893 	CASE_RETURN_STR(STATUS_SOME_NOT_MAPPED);
894 	CASE_RETURN_STR(STATUS_OPLOCK_BREAK_IN_PROGRESS);
895 	CASE_RETURN_STR(STATUS_VOLUME_MOUNTED);
896 	CASE_RETURN_STR(STATUS_RXACT_COMMITTED);
897 	CASE_RETURN_STR(STATUS_NOTIFY_CLEANUP);
898 	CASE_RETURN_STR(STATUS_NOTIFY_ENUM_DIR);
899 	CASE_RETURN_STR(STATUS_NO_QUOTAS_FOR_ACCOUNT);
900 	CASE_RETURN_STR(STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED);
901 	CASE_RETURN_STR(STATUS_PAGE_FAULT_TRANSITION);
902 	CASE_RETURN_STR(STATUS_PAGE_FAULT_DEMAND_ZERO);
903 	CASE_RETURN_STR(STATUS_PAGE_FAULT_COPY_ON_WRITE);
904 	CASE_RETURN_STR(STATUS_PAGE_FAULT_GUARD_PAGE);
905 	CASE_RETURN_STR(STATUS_PAGE_FAULT_PAGING_FILE);
906 	CASE_RETURN_STR(STATUS_CACHE_PAGE_LOCKED);
907 	CASE_RETURN_STR(STATUS_CRASH_DUMP);
908 	CASE_RETURN_STR(STATUS_BUFFER_ALL_ZEROS);
909 	CASE_RETURN_STR(STATUS_REPARSE_OBJECT);
910 	CASE_RETURN_STR(STATUS_RESOURCE_REQUIREMENTS_CHANGED);
911 	CASE_RETURN_STR(STATUS_TRANSLATION_COMPLETE);
912 	CASE_RETURN_STR(STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY);
913 	CASE_RETURN_STR(DBG_EXCEPTION_HANDLED);
914 	CASE_RETURN_STR(DBG_CONTINUE);
915 	CASE_RETURN_STR(STATUS_OBJECT_NAME_EXISTS);
916 	CASE_RETURN_STR(STATUS_THREAD_WAS_SUSPENDED);
917 	CASE_RETURN_STR(STATUS_WORKING_SET_LIMIT_RANGE);
918 	CASE_RETURN_STR(STATUS_IMAGE_NOT_AT_BASE);
919 	CASE_RETURN_STR(STATUS_RXACT_STATE_CREATED);
920 	CASE_RETURN_STR(STATUS_SEGMENT_NOTIFICATION);
921 	CASE_RETURN_STR(STATUS_LOCAL_USER_SESSION_KEY);
922 	CASE_RETURN_STR(STATUS_BAD_CURRENT_DIRECTORY);
923 	CASE_RETURN_STR(STATUS_SERIAL_MORE_WRITES);
924 	CASE_RETURN_STR(STATUS_REGISTRY_RECOVERED);
925 	CASE_RETURN_STR(STATUS_FT_READ_RECOVERY_FROM_BACKUP);
926 	CASE_RETURN_STR(STATUS_FT_WRITE_RECOVERY);
927 	CASE_RETURN_STR(STATUS_SERIAL_COUNTER_TIMEOUT);
928 	CASE_RETURN_STR(STATUS_NULL_LM_PASSWORD);
929 	CASE_RETURN_STR(STATUS_IMAGE_MACHINE_TYPE_MISMATCH);
930 	CASE_RETURN_STR(STATUS_RECEIVE_PARTIAL);
931 	CASE_RETURN_STR(STATUS_RECEIVE_EXPEDITED);
932 	CASE_RETURN_STR(STATUS_RECEIVE_PARTIAL_EXPEDITED);
933 	CASE_RETURN_STR(STATUS_EVENT_DONE);
934 	CASE_RETURN_STR(STATUS_EVENT_PENDING);
935 	CASE_RETURN_STR(STATUS_CHECKING_FILE_SYSTEM);
936 	CASE_RETURN_STR(STATUS_FATAL_APP_EXIT);
937 	CASE_RETURN_STR(STATUS_PREDEFINED_HANDLE);
938 	CASE_RETURN_STR(STATUS_WAS_UNLOCKED);
939 	CASE_RETURN_STR(STATUS_SERVICE_NOTIFICATION);
940 	CASE_RETURN_STR(STATUS_WAS_LOCKED);
941 	CASE_RETURN_STR(STATUS_LOG_HARD_ERROR);
942 	CASE_RETURN_STR(STATUS_ALREADY_WIN32);
943 	CASE_RETURN_STR(STATUS_WX86_UNSIMULATE);
944 	CASE_RETURN_STR(STATUS_WX86_CONTINUE);
945 	CASE_RETURN_STR(STATUS_WX86_SINGLE_STEP);
946 	CASE_RETURN_STR(STATUS_WX86_BREAKPOINT);
947 	CASE_RETURN_STR(STATUS_WX86_EXCEPTION_CONTINUE);
948 	CASE_RETURN_STR(STATUS_WX86_EXCEPTION_LASTCHANCE);
949 	CASE_RETURN_STR(STATUS_WX86_EXCEPTION_CHAIN);
950 	CASE_RETURN_STR(STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE);
951 	CASE_RETURN_STR(STATUS_NO_YIELD_PERFORMED);
952 	CASE_RETURN_STR(STATUS_TIMER_RESUME_IGNORED);
953 	CASE_RETURN_STR(STATUS_ARBITRATION_UNHANDLED);
954 	CASE_RETURN_STR(STATUS_CARDBUS_NOT_SUPPORTED);
955 	CASE_RETURN_STR(STATUS_WX86_CREATEWX86TIB);
956 	CASE_RETURN_STR(STATUS_MP_PROCESSOR_MISMATCH);
957 	CASE_RETURN_STR(DBG_REPLY_LATER);
958 	CASE_RETURN_STR(DBG_UNABLE_TO_PROVIDE_HANDLE);
959 	CASE_RETURN_STR(DBG_TERMINATE_THREAD);
960 	CASE_RETURN_STR(DBG_TERMINATE_PROCESS);
961 	CASE_RETURN_STR(DBG_CONTROL_C);
962 	CASE_RETURN_STR(DBG_PRINTEXCEPTION_C);
963 	CASE_RETURN_STR(DBG_RIPEXCEPTION);
964 	CASE_RETURN_STR(DBG_CONTROL_BREAK);
965 	CASE_RETURN_STR(STATUS_GUARD_PAGE_VIOLATION);
966 	CASE_RETURN_STR(STATUS_DATATYPE_MISALIGNMENT);
967 	CASE_RETURN_STR(STATUS_BREAKPOINT);
968 	CASE_RETURN_STR(STATUS_SINGLE_STEP);
969 	CASE_RETURN_STR(STATUS_BUFFER_OVERFLOW);
970 	CASE_RETURN_STR(STATUS_NO_MORE_FILES);
971 	CASE_RETURN_STR(STATUS_WAKE_SYSTEM_DEBUGGER);
972 	CASE_RETURN_STR(STATUS_HANDLES_CLOSED);
973 	CASE_RETURN_STR(STATUS_NO_INHERITANCE);
974 	CASE_RETURN_STR(STATUS_GUID_SUBSTITUTION_MADE);
975 	CASE_RETURN_STR(STATUS_PARTIAL_COPY);
976 	CASE_RETURN_STR(STATUS_DEVICE_PAPER_EMPTY);
977 	CASE_RETURN_STR(STATUS_DEVICE_POWERED_OFF);
978 	CASE_RETURN_STR(STATUS_DEVICE_OFF_LINE);
979 	CASE_RETURN_STR(STATUS_DEVICE_BUSY);
980 	CASE_RETURN_STR(STATUS_NO_MORE_EAS);
981 	CASE_RETURN_STR(STATUS_INVALID_EA_NAME);
982 	CASE_RETURN_STR(STATUS_EA_LIST_INCONSISTENT);
983 	CASE_RETURN_STR(STATUS_INVALID_EA_FLAG);
984 	CASE_RETURN_STR(STATUS_VERIFY_REQUIRED);
985 	CASE_RETURN_STR(STATUS_EXTRANEOUS_INFORMATION);
986 	CASE_RETURN_STR(STATUS_RXACT_COMMIT_NECESSARY);
987 	CASE_RETURN_STR(STATUS_NO_MORE_ENTRIES);
988 	CASE_RETURN_STR(STATUS_FILEMARK_DETECTED);
989 	CASE_RETURN_STR(STATUS_MEDIA_CHANGED);
990 	CASE_RETURN_STR(STATUS_BUS_RESET);
991 	CASE_RETURN_STR(STATUS_END_OF_MEDIA);
992 	CASE_RETURN_STR(STATUS_BEGINNING_OF_MEDIA);
993 	CASE_RETURN_STR(STATUS_MEDIA_CHECK);
994 	CASE_RETURN_STR(STATUS_SETMARK_DETECTED);
995 	CASE_RETURN_STR(STATUS_NO_DATA_DETECTED);
996 	CASE_RETURN_STR(STATUS_REDIRECTOR_HAS_OPEN_HANDLES);
997 	CASE_RETURN_STR(STATUS_SERVER_HAS_OPEN_HANDLES);
998 	CASE_RETURN_STR(STATUS_ALREADY_DISCONNECTED);
999 	CASE_RETURN_STR(STATUS_LONGJUMP);
1000 	CASE_RETURN_STR(DBG_EXCEPTION_NOT_HANDLED);
1001 	CASE_RETURN_STR(STATUS_UNSUCCESSFUL);
1002 	CASE_RETURN_STR(STATUS_NOT_IMPLEMENTED);
1003 	CASE_RETURN_STR(STATUS_INVALID_INFO_CLASS);
1004 	CASE_RETURN_STR(STATUS_INFO_LENGTH_MISMATCH);
1005 	CASE_RETURN_STR(STATUS_ACCESS_VIOLATION);
1006 	CASE_RETURN_STR(STATUS_IN_PAGE_ERROR);
1007 	CASE_RETURN_STR(STATUS_PAGEFILE_QUOTA);
1008 	CASE_RETURN_STR(STATUS_INVALID_HANDLE);
1009 	CASE_RETURN_STR(STATUS_BAD_INITIAL_STACK);
1010 	CASE_RETURN_STR(STATUS_BAD_INITIAL_PC);
1011 	CASE_RETURN_STR(STATUS_INVALID_CID);
1012 	CASE_RETURN_STR(STATUS_TIMER_NOT_CANCELED);
1013 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER);
1014 	CASE_RETURN_STR(STATUS_NO_SUCH_DEVICE);
1015 	CASE_RETURN_STR(STATUS_NO_SUCH_FILE);
1016 	CASE_RETURN_STR(STATUS_INVALID_DEVICE_REQUEST);
1017 	CASE_RETURN_STR(STATUS_END_OF_FILE);
1018 	CASE_RETURN_STR(STATUS_WRONG_VOLUME);
1019 	CASE_RETURN_STR(STATUS_NO_MEDIA_IN_DEVICE);
1020 	CASE_RETURN_STR(STATUS_UNRECOGNIZED_MEDIA);
1021 	CASE_RETURN_STR(STATUS_NONEXISTENT_SECTOR);
1022 	CASE_RETURN_STR(STATUS_MORE_PROCESSING_REQUIRED);
1023 	CASE_RETURN_STR(STATUS_NO_MEMORY);
1024 	CASE_RETURN_STR(STATUS_CONFLICTING_ADDRESSES);
1025 	CASE_RETURN_STR(STATUS_NOT_MAPPED_VIEW);
1026 	CASE_RETURN_STR(STATUS_UNABLE_TO_FREE_VM);
1027 	CASE_RETURN_STR(STATUS_UNABLE_TO_DELETE_SECTION);
1028 	CASE_RETURN_STR(STATUS_INVALID_SYSTEM_SERVICE);
1029 	CASE_RETURN_STR(STATUS_ILLEGAL_INSTRUCTION);
1030 	CASE_RETURN_STR(STATUS_INVALID_LOCK_SEQUENCE);
1031 	CASE_RETURN_STR(STATUS_INVALID_VIEW_SIZE);
1032 	CASE_RETURN_STR(STATUS_INVALID_FILE_FOR_SECTION);
1033 	CASE_RETURN_STR(STATUS_ALREADY_COMMITTED);
1034 	CASE_RETURN_STR(STATUS_ACCESS_DENIED);
1035 	CASE_RETURN_STR(STATUS_BUFFER_TOO_SMALL);
1036 	CASE_RETURN_STR(STATUS_OBJECT_TYPE_MISMATCH);
1037 	CASE_RETURN_STR(STATUS_NONCONTINUABLE_EXCEPTION);
1038 	CASE_RETURN_STR(STATUS_INVALID_DISPOSITION);
1039 	CASE_RETURN_STR(STATUS_UNWIND);
1040 	CASE_RETURN_STR(STATUS_BAD_STACK);
1041 	CASE_RETURN_STR(STATUS_INVALID_UNWIND_TARGET);
1042 	CASE_RETURN_STR(STATUS_NOT_LOCKED);
1043 	CASE_RETURN_STR(STATUS_PARITY_ERROR);
1044 	CASE_RETURN_STR(STATUS_UNABLE_TO_DECOMMIT_VM);
1045 	CASE_RETURN_STR(STATUS_NOT_COMMITTED);
1046 	CASE_RETURN_STR(STATUS_INVALID_PORT_ATTRIBUTES);
1047 	CASE_RETURN_STR(STATUS_PORT_MESSAGE_TOO_LONG);
1048 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_MIX);
1049 	CASE_RETURN_STR(STATUS_INVALID_QUOTA_LOWER);
1050 	CASE_RETURN_STR(STATUS_DISK_CORRUPT_ERROR);
1051 	CASE_RETURN_STR(STATUS_OBJECT_NAME_INVALID);
1052 	CASE_RETURN_STR(STATUS_OBJECT_NAME_NOT_FOUND);
1053 	CASE_RETURN_STR(STATUS_OBJECT_NAME_COLLISION);
1054 	CASE_RETURN_STR(STATUS_PORT_DISCONNECTED);
1055 	CASE_RETURN_STR(STATUS_DEVICE_ALREADY_ATTACHED);
1056 	CASE_RETURN_STR(STATUS_OBJECT_PATH_INVALID);
1057 	CASE_RETURN_STR(STATUS_OBJECT_PATH_NOT_FOUND);
1058 	CASE_RETURN_STR(STATUS_OBJECT_PATH_SYNTAX_BAD);
1059 	CASE_RETURN_STR(STATUS_DATA_OVERRUN);
1060 	CASE_RETURN_STR(STATUS_DATA_LATE_ERROR);
1061 	CASE_RETURN_STR(STATUS_DATA_ERROR);
1062 	CASE_RETURN_STR(STATUS_CRC_ERROR);
1063 	CASE_RETURN_STR(STATUS_SECTION_TOO_BIG);
1064 	CASE_RETURN_STR(STATUS_PORT_CONNECTION_REFUSED);
1065 	CASE_RETURN_STR(STATUS_INVALID_PORT_HANDLE);
1066 	CASE_RETURN_STR(STATUS_SHARING_VIOLATION);
1067 	CASE_RETURN_STR(STATUS_QUOTA_EXCEEDED);
1068 	CASE_RETURN_STR(STATUS_INVALID_PAGE_PROTECTION);
1069 	CASE_RETURN_STR(STATUS_MUTANT_NOT_OWNED);
1070 	CASE_RETURN_STR(STATUS_SEMAPHORE_LIMIT_EXCEEDED);
1071 	CASE_RETURN_STR(STATUS_PORT_ALREADY_SET);
1072 	CASE_RETURN_STR(STATUS_SECTION_NOT_IMAGE);
1073 	CASE_RETURN_STR(STATUS_SUSPEND_COUNT_EXCEEDED);
1074 	CASE_RETURN_STR(STATUS_THREAD_IS_TERMINATING);
1075 	CASE_RETURN_STR(STATUS_BAD_WORKING_SET_LIMIT);
1076 	CASE_RETURN_STR(STATUS_INCOMPATIBLE_FILE_MAP);
1077 	CASE_RETURN_STR(STATUS_SECTION_PROTECTION);
1078 	CASE_RETURN_STR(STATUS_EAS_NOT_SUPPORTED);
1079 	CASE_RETURN_STR(STATUS_EA_TOO_LARGE);
1080 	CASE_RETURN_STR(STATUS_NONEXISTENT_EA_ENTRY);
1081 	CASE_RETURN_STR(STATUS_NO_EAS_ON_FILE);
1082 	CASE_RETURN_STR(STATUS_EA_CORRUPT_ERROR);
1083 	CASE_RETURN_STR(STATUS_FILE_LOCK_CONFLICT);
1084 	CASE_RETURN_STR(STATUS_LOCK_NOT_GRANTED);
1085 	CASE_RETURN_STR(STATUS_DELETE_PENDING);
1086 	CASE_RETURN_STR(STATUS_CTL_FILE_NOT_SUPPORTED);
1087 	CASE_RETURN_STR(STATUS_UNKNOWN_REVISION);
1088 	CASE_RETURN_STR(STATUS_REVISION_MISMATCH);
1089 	CASE_RETURN_STR(STATUS_INVALID_OWNER);
1090 	CASE_RETURN_STR(STATUS_INVALID_PRIMARY_GROUP);
1091 	CASE_RETURN_STR(STATUS_NO_IMPERSONATION_TOKEN);
1092 	CASE_RETURN_STR(STATUS_CANT_DISABLE_MANDATORY);
1093 	CASE_RETURN_STR(STATUS_NO_LOGON_SERVERS);
1094 	CASE_RETURN_STR(STATUS_NO_SUCH_LOGON_SESSION);
1095 	CASE_RETURN_STR(STATUS_NO_SUCH_PRIVILEGE);
1096 	CASE_RETURN_STR(STATUS_PRIVILEGE_NOT_HELD);
1097 	CASE_RETURN_STR(STATUS_INVALID_ACCOUNT_NAME);
1098 	CASE_RETURN_STR(STATUS_USER_EXISTS);
1099 	CASE_RETURN_STR(STATUS_NO_SUCH_USER);
1100 	CASE_RETURN_STR(STATUS_GROUP_EXISTS);
1101 	CASE_RETURN_STR(STATUS_NO_SUCH_GROUP);
1102 	CASE_RETURN_STR(STATUS_MEMBER_IN_GROUP);
1103 	CASE_RETURN_STR(STATUS_MEMBER_NOT_IN_GROUP);
1104 	CASE_RETURN_STR(STATUS_LAST_ADMIN);
1105 	CASE_RETURN_STR(STATUS_WRONG_PASSWORD);
1106 	CASE_RETURN_STR(STATUS_ILL_FORMED_PASSWORD);
1107 	CASE_RETURN_STR(STATUS_PASSWORD_RESTRICTION);
1108 	CASE_RETURN_STR(STATUS_LOGON_FAILURE);
1109 	CASE_RETURN_STR(STATUS_ACCOUNT_RESTRICTION);
1110 	CASE_RETURN_STR(STATUS_INVALID_LOGON_HOURS);
1111 	CASE_RETURN_STR(STATUS_INVALID_WORKSTATION);
1112 	CASE_RETURN_STR(STATUS_PASSWORD_EXPIRED);
1113 	CASE_RETURN_STR(STATUS_ACCOUNT_DISABLED);
1114 	CASE_RETURN_STR(STATUS_NONE_MAPPED);
1115 	CASE_RETURN_STR(STATUS_TOO_MANY_LUIDS_REQUESTED);
1116 	CASE_RETURN_STR(STATUS_LUIDS_EXHAUSTED);
1117 	CASE_RETURN_STR(STATUS_INVALID_SUB_AUTHORITY);
1118 	CASE_RETURN_STR(STATUS_INVALID_ACL);
1119 	CASE_RETURN_STR(STATUS_INVALID_SID);
1120 	CASE_RETURN_STR(STATUS_INVALID_SECURITY_DESCR);
1121 	CASE_RETURN_STR(STATUS_PROCEDURE_NOT_FOUND);
1122 	CASE_RETURN_STR(STATUS_INVALID_IMAGE_FORMAT);
1123 	CASE_RETURN_STR(STATUS_NO_TOKEN);
1124 	CASE_RETURN_STR(STATUS_BAD_INHERITANCE_ACL);
1125 	CASE_RETURN_STR(STATUS_RANGE_NOT_LOCKED);
1126 	CASE_RETURN_STR(STATUS_DISK_FULL);
1127 	CASE_RETURN_STR(STATUS_SERVER_DISABLED);
1128 	CASE_RETURN_STR(STATUS_SERVER_NOT_DISABLED);
1129 	CASE_RETURN_STR(STATUS_TOO_MANY_GUIDS_REQUESTED);
1130 	CASE_RETURN_STR(STATUS_GUIDS_EXHAUSTED);
1131 	CASE_RETURN_STR(STATUS_INVALID_ID_AUTHORITY);
1132 	CASE_RETURN_STR(STATUS_AGENTS_EXHAUSTED);
1133 	CASE_RETURN_STR(STATUS_INVALID_VOLUME_LABEL);
1134 	CASE_RETURN_STR(STATUS_SECTION_NOT_EXTENDED);
1135 	CASE_RETURN_STR(STATUS_NOT_MAPPED_DATA);
1136 	CASE_RETURN_STR(STATUS_RESOURCE_DATA_NOT_FOUND);
1137 	CASE_RETURN_STR(STATUS_RESOURCE_TYPE_NOT_FOUND);
1138 	CASE_RETURN_STR(STATUS_RESOURCE_NAME_NOT_FOUND);
1139 	CASE_RETURN_STR(STATUS_ARRAY_BOUNDS_EXCEEDED);
1140 	CASE_RETURN_STR(STATUS_FLOAT_DENORMAL_OPERAND);
1141 	CASE_RETURN_STR(STATUS_FLOAT_DIVIDE_BY_ZERO);
1142 	CASE_RETURN_STR(STATUS_FLOAT_INEXACT_RESULT);
1143 	CASE_RETURN_STR(STATUS_FLOAT_INVALID_OPERATION);
1144 	CASE_RETURN_STR(STATUS_FLOAT_OVERFLOW);
1145 	CASE_RETURN_STR(STATUS_FLOAT_STACK_CHECK);
1146 	CASE_RETURN_STR(STATUS_FLOAT_UNDERFLOW);
1147 	CASE_RETURN_STR(STATUS_INTEGER_DIVIDE_BY_ZERO);
1148 	CASE_RETURN_STR(STATUS_INTEGER_OVERFLOW);
1149 	CASE_RETURN_STR(STATUS_PRIVILEGED_INSTRUCTION);
1150 	CASE_RETURN_STR(STATUS_TOO_MANY_PAGING_FILES);
1151 	CASE_RETURN_STR(STATUS_FILE_INVALID);
1152 	CASE_RETURN_STR(STATUS_ALLOTTED_SPACE_EXCEEDED);
1153 	CASE_RETURN_STR(STATUS_INSUFFICIENT_RESOURCES);
1154 	CASE_RETURN_STR(STATUS_DFS_EXIT_PATH_FOUND);
1155 	CASE_RETURN_STR(STATUS_DEVICE_DATA_ERROR);
1156 	CASE_RETURN_STR(STATUS_DEVICE_NOT_CONNECTED);
1157 	CASE_RETURN_STR(STATUS_DEVICE_POWER_FAILURE);
1158 	CASE_RETURN_STR(STATUS_FREE_VM_NOT_AT_BASE);
1159 	CASE_RETURN_STR(STATUS_MEMORY_NOT_ALLOCATED);
1160 	CASE_RETURN_STR(STATUS_WORKING_SET_QUOTA);
1161 	CASE_RETURN_STR(STATUS_MEDIA_WRITE_PROTECTED);
1162 	CASE_RETURN_STR(STATUS_DEVICE_NOT_READY);
1163 	CASE_RETURN_STR(STATUS_INVALID_GROUP_ATTRIBUTES);
1164 	CASE_RETURN_STR(STATUS_BAD_IMPERSONATION_LEVEL);
1165 	CASE_RETURN_STR(STATUS_CANT_OPEN_ANONYMOUS);
1166 	CASE_RETURN_STR(STATUS_BAD_VALIDATION_CLASS);
1167 	CASE_RETURN_STR(STATUS_BAD_TOKEN_TYPE);
1168 	CASE_RETURN_STR(STATUS_BAD_MASTER_BOOT_RECORD);
1169 	CASE_RETURN_STR(STATUS_INSTRUCTION_MISALIGNMENT);
1170 	CASE_RETURN_STR(STATUS_INSTANCE_NOT_AVAILABLE);
1171 	CASE_RETURN_STR(STATUS_PIPE_NOT_AVAILABLE);
1172 	CASE_RETURN_STR(STATUS_INVALID_PIPE_STATE);
1173 	CASE_RETURN_STR(STATUS_PIPE_BUSY);
1174 	CASE_RETURN_STR(STATUS_ILLEGAL_FUNCTION);
1175 	CASE_RETURN_STR(STATUS_PIPE_DISCONNECTED);
1176 	CASE_RETURN_STR(STATUS_PIPE_CLOSING);
1177 	CASE_RETURN_STR(STATUS_PIPE_CONNECTED);
1178 	CASE_RETURN_STR(STATUS_PIPE_LISTENING);
1179 	CASE_RETURN_STR(STATUS_INVALID_READ_MODE);
1180 	CASE_RETURN_STR(STATUS_IO_TIMEOUT);
1181 	CASE_RETURN_STR(STATUS_FILE_FORCED_CLOSED);
1182 	CASE_RETURN_STR(STATUS_PROFILING_NOT_STARTED);
1183 	CASE_RETURN_STR(STATUS_PROFILING_NOT_STOPPED);
1184 	CASE_RETURN_STR(STATUS_COULD_NOT_INTERPRET);
1185 	CASE_RETURN_STR(STATUS_FILE_IS_A_DIRECTORY);
1186 	CASE_RETURN_STR(STATUS_NOT_SUPPORTED);
1187 	CASE_RETURN_STR(STATUS_REMOTE_NOT_LISTENING);
1188 	CASE_RETURN_STR(STATUS_DUPLICATE_NAME);
1189 	CASE_RETURN_STR(STATUS_BAD_NETWORK_PATH);
1190 	CASE_RETURN_STR(STATUS_NETWORK_BUSY);
1191 	CASE_RETURN_STR(STATUS_DEVICE_DOES_NOT_EXIST);
1192 	CASE_RETURN_STR(STATUS_TOO_MANY_COMMANDS);
1193 	CASE_RETURN_STR(STATUS_ADAPTER_HARDWARE_ERROR);
1194 	CASE_RETURN_STR(STATUS_INVALID_NETWORK_RESPONSE);
1195 	CASE_RETURN_STR(STATUS_UNEXPECTED_NETWORK_ERROR);
1196 	CASE_RETURN_STR(STATUS_BAD_REMOTE_ADAPTER);
1197 	CASE_RETURN_STR(STATUS_PRINT_QUEUE_FULL);
1198 	CASE_RETURN_STR(STATUS_NO_SPOOL_SPACE);
1199 	CASE_RETURN_STR(STATUS_PRINT_CANCELLED);
1200 	CASE_RETURN_STR(STATUS_NETWORK_NAME_DELETED);
1201 	CASE_RETURN_STR(STATUS_NETWORK_ACCESS_DENIED);
1202 	CASE_RETURN_STR(STATUS_BAD_DEVICE_TYPE);
1203 	CASE_RETURN_STR(STATUS_BAD_NETWORK_NAME);
1204 	CASE_RETURN_STR(STATUS_TOO_MANY_NAMES);
1205 	CASE_RETURN_STR(STATUS_TOO_MANY_SESSIONS);
1206 	CASE_RETURN_STR(STATUS_SHARING_PAUSED);
1207 	CASE_RETURN_STR(STATUS_REQUEST_NOT_ACCEPTED);
1208 	CASE_RETURN_STR(STATUS_REDIRECTOR_PAUSED);
1209 	CASE_RETURN_STR(STATUS_NET_WRITE_FAULT);
1210 	CASE_RETURN_STR(STATUS_PROFILING_AT_LIMIT);
1211 	CASE_RETURN_STR(STATUS_NOT_SAME_DEVICE);
1212 	CASE_RETURN_STR(STATUS_FILE_RENAMED);
1213 	CASE_RETURN_STR(STATUS_VIRTUAL_CIRCUIT_CLOSED);
1214 	CASE_RETURN_STR(STATUS_NO_SECURITY_ON_OBJECT);
1215 	CASE_RETURN_STR(STATUS_CANT_WAIT);
1216 	CASE_RETURN_STR(STATUS_PIPE_EMPTY);
1217 	CASE_RETURN_STR(STATUS_CANT_ACCESS_DOMAIN_INFO);
1218 	CASE_RETURN_STR(STATUS_CANT_TERMINATE_SELF);
1219 	CASE_RETURN_STR(STATUS_INVALID_SERVER_STATE);
1220 	CASE_RETURN_STR(STATUS_INVALID_DOMAIN_STATE);
1221 	CASE_RETURN_STR(STATUS_INVALID_DOMAIN_ROLE);
1222 	CASE_RETURN_STR(STATUS_NO_SUCH_DOMAIN);
1223 	CASE_RETURN_STR(STATUS_DOMAIN_EXISTS);
1224 	CASE_RETURN_STR(STATUS_DOMAIN_LIMIT_EXCEEDED);
1225 	CASE_RETURN_STR(STATUS_OPLOCK_NOT_GRANTED);
1226 	CASE_RETURN_STR(STATUS_INVALID_OPLOCK_PROTOCOL);
1227 	CASE_RETURN_STR(STATUS_INTERNAL_DB_CORRUPTION);
1228 	CASE_RETURN_STR(STATUS_INTERNAL_ERROR);
1229 	CASE_RETURN_STR(STATUS_GENERIC_NOT_MAPPED);
1230 	CASE_RETURN_STR(STATUS_BAD_DESCRIPTOR_FORMAT);
1231 	CASE_RETURN_STR(STATUS_INVALID_USER_BUFFER);
1232 	CASE_RETURN_STR(STATUS_UNEXPECTED_IO_ERROR);
1233 	CASE_RETURN_STR(STATUS_UNEXPECTED_MM_CREATE_ERR);
1234 	CASE_RETURN_STR(STATUS_UNEXPECTED_MM_MAP_ERROR);
1235 	CASE_RETURN_STR(STATUS_UNEXPECTED_MM_EXTEND_ERR);
1236 	CASE_RETURN_STR(STATUS_NOT_LOGON_PROCESS);
1237 	CASE_RETURN_STR(STATUS_LOGON_SESSION_EXISTS);
1238 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_1);
1239 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_2);
1240 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_3);
1241 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_4);
1242 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_5);
1243 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_6);
1244 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_7);
1245 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_8);
1246 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_9);
1247 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_10);
1248 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_11);
1249 	CASE_RETURN_STR(STATUS_INVALID_PARAMETER_12);
1250 	CASE_RETURN_STR(STATUS_REDIRECTOR_NOT_STARTED);
1251 	CASE_RETURN_STR(STATUS_REDIRECTOR_STARTED);
1252 	CASE_RETURN_STR(STATUS_STACK_OVERFLOW);
1253 	CASE_RETURN_STR(STATUS_NO_SUCH_PACKAGE);
1254 	CASE_RETURN_STR(STATUS_BAD_FUNCTION_TABLE);
1255 	CASE_RETURN_STR(STATUS_VARIABLE_NOT_FOUND);
1256 	CASE_RETURN_STR(STATUS_DIRECTORY_NOT_EMPTY);
1257 	CASE_RETURN_STR(STATUS_FILE_CORRUPT_ERROR);
1258 	CASE_RETURN_STR(STATUS_NOT_A_DIRECTORY);
1259 	CASE_RETURN_STR(STATUS_BAD_LOGON_SESSION_STATE);
1260 	CASE_RETURN_STR(STATUS_LOGON_SESSION_COLLISION);
1261 	CASE_RETURN_STR(STATUS_NAME_TOO_LONG);
1262 	CASE_RETURN_STR(STATUS_FILES_OPEN);
1263 	CASE_RETURN_STR(STATUS_CONNECTION_IN_USE);
1264 	CASE_RETURN_STR(STATUS_MESSAGE_NOT_FOUND);
1265 	CASE_RETURN_STR(STATUS_PROCESS_IS_TERMINATING);
1266 	CASE_RETURN_STR(STATUS_INVALID_LOGON_TYPE);
1267 	CASE_RETURN_STR(STATUS_NO_GUID_TRANSLATION);
1268 	CASE_RETURN_STR(STATUS_CANNOT_IMPERSONATE);
1269 	CASE_RETURN_STR(STATUS_IMAGE_ALREADY_LOADED);
1270 	CASE_RETURN_STR(STATUS_ABIOS_NOT_PRESENT);
1271 	CASE_RETURN_STR(STATUS_ABIOS_LID_NOT_EXIST);
1272 	CASE_RETURN_STR(STATUS_ABIOS_LID_ALREADY_OWNED);
1273 	CASE_RETURN_STR(STATUS_ABIOS_NOT_LID_OWNER);
1274 	CASE_RETURN_STR(STATUS_ABIOS_INVALID_COMMAND);
1275 	CASE_RETURN_STR(STATUS_ABIOS_INVALID_LID);
1276 	CASE_RETURN_STR(STATUS_ABIOS_SELECTOR_NOT_AVAILABLE);
1277 	CASE_RETURN_STR(STATUS_ABIOS_INVALID_SELECTOR);
1278 	CASE_RETURN_STR(STATUS_NO_LDT);
1279 	CASE_RETURN_STR(STATUS_INVALID_LDT_SIZE);
1280 	CASE_RETURN_STR(STATUS_INVALID_LDT_OFFSET);
1281 	CASE_RETURN_STR(STATUS_INVALID_LDT_DESCRIPTOR);
1282 	CASE_RETURN_STR(STATUS_INVALID_IMAGE_NE_FORMAT);
1283 	CASE_RETURN_STR(STATUS_RXACT_INVALID_STATE);
1284 	CASE_RETURN_STR(STATUS_RXACT_COMMIT_FAILURE);
1285 	CASE_RETURN_STR(STATUS_MAPPED_FILE_SIZE_ZERO);
1286 	CASE_RETURN_STR(STATUS_TOO_MANY_OPENED_FILES);
1287 	CASE_RETURN_STR(STATUS_CANCELLED);
1288 	CASE_RETURN_STR(STATUS_CANNOT_DELETE);
1289 	CASE_RETURN_STR(STATUS_INVALID_COMPUTER_NAME);
1290 	CASE_RETURN_STR(STATUS_FILE_DELETED);
1291 	CASE_RETURN_STR(STATUS_SPECIAL_ACCOUNT);
1292 	CASE_RETURN_STR(STATUS_SPECIAL_GROUP);
1293 	CASE_RETURN_STR(STATUS_SPECIAL_USER);
1294 	CASE_RETURN_STR(STATUS_MEMBERS_PRIMARY_GROUP);
1295 	CASE_RETURN_STR(STATUS_FILE_CLOSED);
1296 	CASE_RETURN_STR(STATUS_TOO_MANY_THREADS);
1297 	CASE_RETURN_STR(STATUS_THREAD_NOT_IN_PROCESS);
1298 	CASE_RETURN_STR(STATUS_TOKEN_ALREADY_IN_USE);
1299 	CASE_RETURN_STR(STATUS_PAGEFILE_QUOTA_EXCEEDED);
1300 	CASE_RETURN_STR(STATUS_COMMITMENT_LIMIT);
1301 	CASE_RETURN_STR(STATUS_INVALID_IMAGE_LE_FORMAT);
1302 	CASE_RETURN_STR(STATUS_INVALID_IMAGE_NOT_MZ);
1303 	CASE_RETURN_STR(STATUS_INVALID_IMAGE_PROTECT);
1304 	CASE_RETURN_STR(STATUS_INVALID_IMAGE_WIN_16);
1305 	CASE_RETURN_STR(STATUS_LOGON_SERVER_CONFLICT);
1306 	CASE_RETURN_STR(STATUS_TIME_DIFFERENCE_AT_DC);
1307 	CASE_RETURN_STR(STATUS_SYNCHRONIZATION_REQUIRED);
1308 	CASE_RETURN_STR(STATUS_DLL_NOT_FOUND);
1309 	CASE_RETURN_STR(STATUS_OPEN_FAILED);
1310 	CASE_RETURN_STR(STATUS_IO_PRIVILEGE_FAILED);
1311 	CASE_RETURN_STR(STATUS_ORDINAL_NOT_FOUND);
1312 	CASE_RETURN_STR(STATUS_ENTRYPOINT_NOT_FOUND);
1313 	CASE_RETURN_STR(STATUS_CONTROL_C_EXIT);
1314 	CASE_RETURN_STR(STATUS_LOCAL_DISCONNECT);
1315 	CASE_RETURN_STR(STATUS_REMOTE_DISCONNECT);
1316 	CASE_RETURN_STR(STATUS_REMOTE_RESOURCES);
1317 	CASE_RETURN_STR(STATUS_LINK_FAILED);
1318 	CASE_RETURN_STR(STATUS_LINK_TIMEOUT);
1319 	CASE_RETURN_STR(STATUS_INVALID_CONNECTION);
1320 	CASE_RETURN_STR(STATUS_INVALID_ADDRESS);
1321 	CASE_RETURN_STR(STATUS_DLL_INIT_FAILED);
1322 	CASE_RETURN_STR(STATUS_MISSING_SYSTEMFILE);
1323 	CASE_RETURN_STR(STATUS_UNHANDLED_EXCEPTION);
1324 	CASE_RETURN_STR(STATUS_APP_INIT_FAILURE);
1325 	CASE_RETURN_STR(STATUS_PAGEFILE_CREATE_FAILED);
1326 	CASE_RETURN_STR(STATUS_NO_PAGEFILE);
1327 	CASE_RETURN_STR(STATUS_INVALID_LEVEL);
1328 	CASE_RETURN_STR(STATUS_WRONG_PASSWORD_CORE);
1329 	CASE_RETURN_STR(STATUS_ILLEGAL_FLOAT_CONTEXT);
1330 	CASE_RETURN_STR(STATUS_PIPE_BROKEN);
1331 	CASE_RETURN_STR(STATUS_REGISTRY_CORRUPT);
1332 	CASE_RETURN_STR(STATUS_REGISTRY_IO_FAILED);
1333 	CASE_RETURN_STR(STATUS_NO_EVENT_PAIR);
1334 	CASE_RETURN_STR(STATUS_UNRECOGNIZED_VOLUME);
1335 	CASE_RETURN_STR(STATUS_SERIAL_NO_DEVICE_INITED);
1336 	CASE_RETURN_STR(STATUS_NO_SUCH_ALIAS);
1337 	CASE_RETURN_STR(STATUS_MEMBER_NOT_IN_ALIAS);
1338 	CASE_RETURN_STR(STATUS_MEMBER_IN_ALIAS);
1339 	CASE_RETURN_STR(STATUS_ALIAS_EXISTS);
1340 	CASE_RETURN_STR(STATUS_LOGON_NOT_GRANTED);
1341 	CASE_RETURN_STR(STATUS_TOO_MANY_SECRETS);
1342 	CASE_RETURN_STR(STATUS_SECRET_TOO_LONG);
1343 	CASE_RETURN_STR(STATUS_INTERNAL_DB_ERROR);
1344 	CASE_RETURN_STR(STATUS_FULLSCREEN_MODE);
1345 	CASE_RETURN_STR(STATUS_TOO_MANY_CONTEXT_IDS);
1346 	CASE_RETURN_STR(STATUS_LOGON_TYPE_NOT_GRANTED);
1347 	CASE_RETURN_STR(STATUS_NOT_REGISTRY_FILE);
1348 	CASE_RETURN_STR(STATUS_NT_CROSS_ENCRYPTION_REQUIRED);
1349 	CASE_RETURN_STR(STATUS_DOMAIN_CTRLR_CONFIG_ERROR);
1350 	CASE_RETURN_STR(STATUS_FT_MISSING_MEMBER);
1351 	CASE_RETURN_STR(STATUS_ILL_FORMED_SERVICE_ENTRY);
1352 	CASE_RETURN_STR(STATUS_ILLEGAL_CHARACTER);
1353 	CASE_RETURN_STR(STATUS_UNMAPPABLE_CHARACTER);
1354 	CASE_RETURN_STR(STATUS_UNDEFINED_CHARACTER);
1355 	CASE_RETURN_STR(STATUS_FLOPPY_VOLUME);
1356 	CASE_RETURN_STR(STATUS_FLOPPY_ID_MARK_NOT_FOUND);
1357 	CASE_RETURN_STR(STATUS_FLOPPY_WRONG_CYLINDER);
1358 	CASE_RETURN_STR(STATUS_FLOPPY_UNKNOWN_ERROR);
1359 	CASE_RETURN_STR(STATUS_FLOPPY_BAD_REGISTERS);
1360 	CASE_RETURN_STR(STATUS_DISK_RECALIBRATE_FAILED);
1361 	CASE_RETURN_STR(STATUS_DISK_OPERATION_FAILED);
1362 	CASE_RETURN_STR(STATUS_DISK_RESET_FAILED);
1363 	CASE_RETURN_STR(STATUS_SHARED_IRQ_BUSY);
1364 	CASE_RETURN_STR(STATUS_FT_ORPHANING);
1365 	CASE_RETURN_STR(STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT);
1366 	CASE_RETURN_STR(STATUS_PARTITION_FAILURE);
1367 	CASE_RETURN_STR(STATUS_INVALID_BLOCK_LENGTH);
1368 	CASE_RETURN_STR(STATUS_DEVICE_NOT_PARTITIONED);
1369 	CASE_RETURN_STR(STATUS_UNABLE_TO_LOCK_MEDIA);
1370 	CASE_RETURN_STR(STATUS_UNABLE_TO_UNLOAD_MEDIA);
1371 	CASE_RETURN_STR(STATUS_EOM_OVERFLOW);
1372 	CASE_RETURN_STR(STATUS_NO_MEDIA);
1373 	CASE_RETURN_STR(STATUS_NO_SUCH_MEMBER);
1374 	CASE_RETURN_STR(STATUS_INVALID_MEMBER);
1375 	CASE_RETURN_STR(STATUS_KEY_DELETED);
1376 	CASE_RETURN_STR(STATUS_NO_LOG_SPACE);
1377 	CASE_RETURN_STR(STATUS_TOO_MANY_SIDS);
1378 	CASE_RETURN_STR(STATUS_LM_CROSS_ENCRYPTION_REQUIRED);
1379 	CASE_RETURN_STR(STATUS_KEY_HAS_CHILDREN);
1380 	CASE_RETURN_STR(STATUS_CHILD_MUST_BE_VOLATILE);
1381 	CASE_RETURN_STR(STATUS_DEVICE_CONFIGURATION_ERROR);
1382 	CASE_RETURN_STR(STATUS_DRIVER_INTERNAL_ERROR);
1383 	CASE_RETURN_STR(STATUS_INVALID_DEVICE_STATE);
1384 	CASE_RETURN_STR(STATUS_IO_DEVICE_ERROR);
1385 	CASE_RETURN_STR(STATUS_DEVICE_PROTOCOL_ERROR);
1386 	CASE_RETURN_STR(STATUS_BACKUP_CONTROLLER);
1387 	CASE_RETURN_STR(STATUS_LOG_FILE_FULL);
1388 	CASE_RETURN_STR(STATUS_TOO_LATE);
1389 	CASE_RETURN_STR(STATUS_NO_TRUST_LSA_SECRET);
1390 	CASE_RETURN_STR(STATUS_NO_TRUST_SAM_ACCOUNT);
1391 	CASE_RETURN_STR(STATUS_TRUSTED_DOMAIN_FAILURE);
1392 	CASE_RETURN_STR(STATUS_TRUSTED_RELATIONSHIP_FAILURE);
1393 	CASE_RETURN_STR(STATUS_EVENTLOG_FILE_CORRUPT);
1394 	CASE_RETURN_STR(STATUS_EVENTLOG_CANT_START);
1395 	CASE_RETURN_STR(STATUS_TRUST_FAILURE);
1396 	CASE_RETURN_STR(STATUS_MUTANT_LIMIT_EXCEEDED);
1397 	CASE_RETURN_STR(STATUS_NETLOGON_NOT_STARTED);
1398 	CASE_RETURN_STR(STATUS_ACCOUNT_EXPIRED);
1399 	CASE_RETURN_STR(STATUS_POSSIBLE_DEADLOCK);
1400 	CASE_RETURN_STR(STATUS_NETWORK_CREDENTIAL_CONFLICT);
1401 	CASE_RETURN_STR(STATUS_REMOTE_SESSION_LIMIT);
1402 	CASE_RETURN_STR(STATUS_EVENTLOG_FILE_CHANGED);
1403 	CASE_RETURN_STR(STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT);
1404 	CASE_RETURN_STR(STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT);
1405 	CASE_RETURN_STR(STATUS_NOLOGON_SERVER_TRUST_ACCOUNT);
1406 	CASE_RETURN_STR(STATUS_DOMAIN_TRUST_INCONSISTENT);
1407 	CASE_RETURN_STR(STATUS_FS_DRIVER_REQUIRED);
1408 	CASE_RETURN_STR(STATUS_NO_USER_SESSION_KEY);
1409 	CASE_RETURN_STR(STATUS_USER_SESSION_DELETED);
1410 	CASE_RETURN_STR(STATUS_RESOURCE_LANG_NOT_FOUND);
1411 	CASE_RETURN_STR(STATUS_INSUFF_SERVER_RESOURCES);
1412 	CASE_RETURN_STR(STATUS_INVALID_BUFFER_SIZE);
1413 	CASE_RETURN_STR(STATUS_INVALID_ADDRESS_COMPONENT);
1414 	CASE_RETURN_STR(STATUS_INVALID_ADDRESS_WILDCARD);
1415 	CASE_RETURN_STR(STATUS_TOO_MANY_ADDRESSES);
1416 	CASE_RETURN_STR(STATUS_ADDRESS_ALREADY_EXISTS);
1417 	CASE_RETURN_STR(STATUS_ADDRESS_CLOSED);
1418 	CASE_RETURN_STR(STATUS_CONNECTION_DISCONNECTED);
1419 	CASE_RETURN_STR(STATUS_CONNECTION_RESET);
1420 	CASE_RETURN_STR(STATUS_TOO_MANY_NODES);
1421 	CASE_RETURN_STR(STATUS_TRANSACTION_ABORTED);
1422 	CASE_RETURN_STR(STATUS_TRANSACTION_TIMED_OUT);
1423 	CASE_RETURN_STR(STATUS_TRANSACTION_NO_RELEASE);
1424 	CASE_RETURN_STR(STATUS_TRANSACTION_NO_MATCH);
1425 	CASE_RETURN_STR(STATUS_TRANSACTION_RESPONDED);
1426 	CASE_RETURN_STR(STATUS_TRANSACTION_INVALID_ID);
1427 	CASE_RETURN_STR(STATUS_TRANSACTION_INVALID_TYPE);
1428 	CASE_RETURN_STR(STATUS_NOT_SERVER_SESSION);
1429 	CASE_RETURN_STR(STATUS_NOT_CLIENT_SESSION);
1430 	CASE_RETURN_STR(STATUS_CANNOT_LOAD_REGISTRY_FILE);
1431 	CASE_RETURN_STR(STATUS_DEBUG_ATTACH_FAILED);
1432 	CASE_RETURN_STR(STATUS_SYSTEM_PROCESS_TERMINATED);
1433 	CASE_RETURN_STR(STATUS_DATA_NOT_ACCEPTED);
1434 	CASE_RETURN_STR(STATUS_NO_BROWSER_SERVERS_FOUND);
1435 	CASE_RETURN_STR(STATUS_VDM_HARD_ERROR);
1436 	CASE_RETURN_STR(STATUS_DRIVER_CANCEL_TIMEOUT);
1437 	CASE_RETURN_STR(STATUS_REPLY_MESSAGE_MISMATCH);
1438 	CASE_RETURN_STR(STATUS_MAPPED_ALIGNMENT);
1439 	CASE_RETURN_STR(STATUS_IMAGE_CHECKSUM_MISMATCH);
1440 	CASE_RETURN_STR(STATUS_LOST_WRITEBEHIND_DATA);
1441 	CASE_RETURN_STR(STATUS_CLIENT_SERVER_PARAMETERS_INVALID);
1442 	CASE_RETURN_STR(STATUS_PASSWORD_MUST_CHANGE);
1443 	CASE_RETURN_STR(STATUS_NOT_FOUND);
1444 	CASE_RETURN_STR(STATUS_NOT_TINY_STREAM);
1445 	CASE_RETURN_STR(STATUS_RECOVERY_FAILURE);
1446 	CASE_RETURN_STR(STATUS_STACK_OVERFLOW_READ);
1447 	CASE_RETURN_STR(STATUS_FAIL_CHECK);
1448 	CASE_RETURN_STR(STATUS_DUPLICATE_OBJECTID);
1449 	CASE_RETURN_STR(STATUS_OBJECTID_EXISTS);
1450 	CASE_RETURN_STR(STATUS_CONVERT_TO_LARGE);
1451 	CASE_RETURN_STR(STATUS_RETRY);
1452 	CASE_RETURN_STR(STATUS_FOUND_OUT_OF_SCOPE);
1453 	CASE_RETURN_STR(STATUS_ALLOCATE_BUCKET);
1454 	CASE_RETURN_STR(STATUS_PROPSET_NOT_FOUND);
1455 	CASE_RETURN_STR(STATUS_MARSHALL_OVERFLOW);
1456 	CASE_RETURN_STR(STATUS_INVALID_VARIANT);
1457 	CASE_RETURN_STR(STATUS_DOMAIN_CONTROLLER_NOT_FOUND);
1458 	CASE_RETURN_STR(STATUS_ACCOUNT_LOCKED_OUT);
1459 	CASE_RETURN_STR(STATUS_HANDLE_NOT_CLOSABLE);
1460 	CASE_RETURN_STR(STATUS_CONNECTION_REFUSED);
1461 	CASE_RETURN_STR(STATUS_GRACEFUL_DISCONNECT);
1462 	CASE_RETURN_STR(STATUS_ADDRESS_ALREADY_ASSOCIATED);
1463 	CASE_RETURN_STR(STATUS_ADDRESS_NOT_ASSOCIATED);
1464 	CASE_RETURN_STR(STATUS_CONNECTION_INVALID);
1465 	CASE_RETURN_STR(STATUS_CONNECTION_ACTIVE);
1466 	CASE_RETURN_STR(STATUS_NETWORK_UNREACHABLE);
1467 	CASE_RETURN_STR(STATUS_HOST_UNREACHABLE);
1468 	CASE_RETURN_STR(STATUS_PROTOCOL_UNREACHABLE);
1469 	CASE_RETURN_STR(STATUS_PORT_UNREACHABLE);
1470 	CASE_RETURN_STR(STATUS_REQUEST_ABORTED);
1471 	CASE_RETURN_STR(STATUS_CONNECTION_ABORTED);
1472 	CASE_RETURN_STR(STATUS_BAD_COMPRESSION_BUFFER);
1473 	CASE_RETURN_STR(STATUS_USER_MAPPED_FILE);
1474 	CASE_RETURN_STR(STATUS_AUDIT_FAILED);
1475 	CASE_RETURN_STR(STATUS_TIMER_RESOLUTION_NOT_SET);
1476 	CASE_RETURN_STR(STATUS_CONNECTION_COUNT_LIMIT);
1477 	CASE_RETURN_STR(STATUS_LOGIN_TIME_RESTRICTION);
1478 	CASE_RETURN_STR(STATUS_LOGIN_WKSTA_RESTRICTION);
1479 	CASE_RETURN_STR(STATUS_IMAGE_MP_UP_MISMATCH);
1480 	CASE_RETURN_STR(STATUS_INSUFFICIENT_LOGON_INFO);
1481 	CASE_RETURN_STR(STATUS_BAD_DLL_ENTRYPOINT);
1482 	CASE_RETURN_STR(STATUS_BAD_SERVICE_ENTRYPOINT);
1483 	CASE_RETURN_STR(STATUS_LPC_REPLY_LOST);
1484 	CASE_RETURN_STR(STATUS_IP_ADDRESS_CONFLICT1);
1485 	CASE_RETURN_STR(STATUS_IP_ADDRESS_CONFLICT2);
1486 	CASE_RETURN_STR(STATUS_REGISTRY_QUOTA_LIMIT);
1487 	CASE_RETURN_STR(STATUS_PATH_NOT_COVERED);
1488 	CASE_RETURN_STR(STATUS_NO_CALLBACK_ACTIVE);
1489 	CASE_RETURN_STR(STATUS_LICENSE_QUOTA_EXCEEDED);
1490 	CASE_RETURN_STR(STATUS_PWD_TOO_SHORT);
1491 	CASE_RETURN_STR(STATUS_PWD_TOO_RECENT);
1492 	CASE_RETURN_STR(STATUS_PWD_HISTORY_CONFLICT);
1493 	CASE_RETURN_STR(STATUS_PLUGPLAY_NO_DEVICE);
1494 	CASE_RETURN_STR(STATUS_UNSUPPORTED_COMPRESSION);
1495 	CASE_RETURN_STR(STATUS_INVALID_HW_PROFILE);
1496 	CASE_RETURN_STR(STATUS_INVALID_PLUGPLAY_DEVICE_PATH);
1497 	CASE_RETURN_STR(STATUS_DRIVER_ORDINAL_NOT_FOUND);
1498 	CASE_RETURN_STR(STATUS_DRIVER_ENTRYPOINT_NOT_FOUND);
1499 	CASE_RETURN_STR(STATUS_RESOURCE_NOT_OWNED);
1500 	CASE_RETURN_STR(STATUS_TOO_MANY_LINKS);
1501 	CASE_RETURN_STR(STATUS_QUOTA_LIST_INCONSISTENT);
1502 	CASE_RETURN_STR(STATUS_FILE_IS_OFFLINE);
1503 	CASE_RETURN_STR(STATUS_EVALUATION_EXPIRATION);
1504 	CASE_RETURN_STR(STATUS_ILLEGAL_DLL_RELOCATION);
1505 	CASE_RETURN_STR(STATUS_LICENSE_VIOLATION);
1506 	CASE_RETURN_STR(STATUS_DLL_INIT_FAILED_LOGOFF);
1507 	CASE_RETURN_STR(STATUS_DRIVER_UNABLE_TO_LOAD);
1508 	CASE_RETURN_STR(STATUS_DFS_UNAVAILABLE);
1509 	CASE_RETURN_STR(STATUS_VOLUME_DISMOUNTED);
1510 	CASE_RETURN_STR(STATUS_WX86_INTERNAL_ERROR);
1511 	CASE_RETURN_STR(STATUS_WX86_FLOAT_STACK_CHECK);
1512 	CASE_RETURN_STR(STATUS_VALIDATE_CONTINUE);
1513 	CASE_RETURN_STR(STATUS_NO_MATCH);
1514 	CASE_RETURN_STR(STATUS_NO_MORE_MATCHES);
1515 	CASE_RETURN_STR(STATUS_NOT_A_REPARSE_POINT);
1516 	CASE_RETURN_STR(STATUS_IO_REPARSE_TAG_INVALID);
1517 	CASE_RETURN_STR(STATUS_IO_REPARSE_TAG_MISMATCH);
1518 	CASE_RETURN_STR(STATUS_IO_REPARSE_DATA_INVALID);
1519 	CASE_RETURN_STR(STATUS_IO_REPARSE_TAG_NOT_HANDLED);
1520 	CASE_RETURN_STR(STATUS_REPARSE_POINT_NOT_RESOLVED);
1521 	CASE_RETURN_STR(STATUS_DIRECTORY_IS_A_REPARSE_POINT);
1522 	CASE_RETURN_STR(STATUS_RANGE_LIST_CONFLICT);
1523 	CASE_RETURN_STR(STATUS_SOURCE_ELEMENT_EMPTY);
1524 	CASE_RETURN_STR(STATUS_DESTINATION_ELEMENT_FULL);
1525 	CASE_RETURN_STR(STATUS_ILLEGAL_ELEMENT_ADDRESS);
1526 	CASE_RETURN_STR(STATUS_MAGAZINE_NOT_PRESENT);
1527 	CASE_RETURN_STR(STATUS_REINITIALIZATION_NEEDED);
1528 	CASE_RETURN_STR(STATUS_DEVICE_REQUIRES_CLEANING);
1529 	CASE_RETURN_STR(STATUS_DEVICE_DOOR_OPEN);
1530 	CASE_RETURN_STR(STATUS_ENCRYPTION_FAILED);
1531 	CASE_RETURN_STR(STATUS_DECRYPTION_FAILED);
1532 	CASE_RETURN_STR(STATUS_RANGE_NOT_FOUND);
1533 	CASE_RETURN_STR(STATUS_NO_RECOVERY_POLICY);
1534 	CASE_RETURN_STR(STATUS_NO_EFS);
1535 	CASE_RETURN_STR(STATUS_WRONG_EFS);
1536 	CASE_RETURN_STR(STATUS_NO_USER_KEYS);
1537 	CASE_RETURN_STR(STATUS_FILE_NOT_ENCRYPTED);
1538 	CASE_RETURN_STR(STATUS_NOT_EXPORT_FORMAT);
1539 	CASE_RETURN_STR(STATUS_FILE_ENCRYPTED);
1540 	CASE_RETURN_STR(STATUS_WAKE_SYSTEM);
1541 	CASE_RETURN_STR(STATUS_WMI_GUID_NOT_FOUND);
1542 	CASE_RETURN_STR(STATUS_WMI_INSTANCE_NOT_FOUND);
1543 	CASE_RETURN_STR(STATUS_WMI_ITEMID_NOT_FOUND);
1544 	CASE_RETURN_STR(STATUS_WMI_TRY_AGAIN);
1545 	CASE_RETURN_STR(STATUS_SHARED_POLICY);
1546 	CASE_RETURN_STR(STATUS_POLICY_OBJECT_NOT_FOUND);
1547 	CASE_RETURN_STR(STATUS_POLICY_ONLY_IN_DS);
1548 	CASE_RETURN_STR(STATUS_VOLUME_NOT_UPGRADED);
1549 	CASE_RETURN_STR(STATUS_REMOTE_STORAGE_NOT_ACTIVE);
1550 	CASE_RETURN_STR(STATUS_REMOTE_STORAGE_MEDIA_ERROR);
1551 	CASE_RETURN_STR(STATUS_NO_TRACKING_SERVICE);
1552 	CASE_RETURN_STR(STATUS_SERVER_SID_MISMATCH);
1553 	CASE_RETURN_STR(STATUS_DS_NO_ATTRIBUTE_OR_VALUE);
1554 	CASE_RETURN_STR(STATUS_DS_INVALID_ATTRIBUTE_SYNTAX);
1555 	CASE_RETURN_STR(STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED);
1556 	CASE_RETURN_STR(STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS);
1557 	CASE_RETURN_STR(STATUS_DS_BUSY);
1558 	CASE_RETURN_STR(STATUS_DS_UNAVAILABLE);
1559 	CASE_RETURN_STR(STATUS_DS_NO_RIDS_ALLOCATED);
1560 	CASE_RETURN_STR(STATUS_DS_NO_MORE_RIDS);
1561 	CASE_RETURN_STR(STATUS_DS_INCORRECT_ROLE_OWNER);
1562 	CASE_RETURN_STR(STATUS_DS_RIDMGR_INIT_ERROR);
1563 	CASE_RETURN_STR(STATUS_DS_OBJ_CLASS_VIOLATION);
1564 	CASE_RETURN_STR(STATUS_DS_CANT_ON_NON_LEAF);
1565 	CASE_RETURN_STR(STATUS_DS_CANT_ON_RDN);
1566 	CASE_RETURN_STR(STATUS_DS_CANT_MOD_OBJ_CLASS);
1567 	CASE_RETURN_STR(STATUS_DS_CROSS_DOM_MOVE_FAILED);
1568 	CASE_RETURN_STR(STATUS_DS_GC_NOT_AVAILABLE);
1569 	CASE_RETURN_STR(STATUS_DIRECTORY_SERVICE_REQUIRED);
1570 	CASE_RETURN_STR(STATUS_REPARSE_ATTRIBUTE_CONFLICT);
1571 	CASE_RETURN_STR(STATUS_CANT_ENABLE_DENY_ONLY);
1572 	CASE_RETURN_STR(STATUS_FLOAT_MULTIPLE_FAULTS);
1573 	CASE_RETURN_STR(STATUS_FLOAT_MULTIPLE_TRAPS);
1574 	CASE_RETURN_STR(STATUS_DEVICE_REMOVED);
1575 	CASE_RETURN_STR(STATUS_JOURNAL_DELETE_IN_PROGRESS);
1576 	CASE_RETURN_STR(STATUS_JOURNAL_NOT_ACTIVE);
1577 	CASE_RETURN_STR(STATUS_NOINTERFACE);
1578 	CASE_RETURN_STR(STATUS_DS_ADMIN_LIMIT_EXCEEDED);
1579 	CASE_RETURN_STR(STATUS_DRIVER_FAILED_SLEEP);
1580 	CASE_RETURN_STR(STATUS_MUTUAL_AUTHENTICATION_FAILED);
1581 	CASE_RETURN_STR(STATUS_CORRUPT_SYSTEM_FILE);
1582 	CASE_RETURN_STR(STATUS_DATATYPE_MISALIGNMENT_ERROR);
1583 	CASE_RETURN_STR(STATUS_WMI_READ_ONLY);
1584 	CASE_RETURN_STR(STATUS_WMI_SET_FAILURE);
1585 	CASE_RETURN_STR(STATUS_COMMITMENT_MINIMUM);
1586 	CASE_RETURN_STR(STATUS_REG_NAT_CONSUMPTION);
1587 	CASE_RETURN_STR(STATUS_TRANSPORT_FULL);
1588 	CASE_RETURN_STR(STATUS_DS_SAM_INIT_FAILURE);
1589 	CASE_RETURN_STR(STATUS_ONLY_IF_CONNECTED);
1590 	CASE_RETURN_STR(STATUS_DS_SENSITIVE_GROUP_VIOLATION);
1591 	CASE_RETURN_STR(STATUS_PNP_RESTART_ENUMERATION);
1592 	CASE_RETURN_STR(STATUS_JOURNAL_ENTRY_DELETED);
1593 	CASE_RETURN_STR(STATUS_DS_CANT_MOD_PRIMARYGROUPID);
1594 	CASE_RETURN_STR(STATUS_SYSTEM_IMAGE_BAD_SIGNATURE);
1595 	CASE_RETURN_STR(STATUS_PNP_REBOOT_REQUIRED);
1596 	CASE_RETURN_STR(STATUS_POWER_STATE_INVALID);
1597 	CASE_RETURN_STR(STATUS_DS_INVALID_GROUP_TYPE);
1598 	CASE_RETURN_STR(STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN);
1599 	CASE_RETURN_STR(STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN);
1600 	CASE_RETURN_STR(STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER);
1601 	CASE_RETURN_STR(STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER);
1602 	CASE_RETURN_STR(STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER);
1603 	CASE_RETURN_STR(STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER);
1604 	CASE_RETURN_STR(STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER);
1605 	CASE_RETURN_STR(STATUS_DS_HAVE_PRIMARY_MEMBERS);
1606 	CASE_RETURN_STR(STATUS_WMI_NOT_SUPPORTED);
1607 	CASE_RETURN_STR(STATUS_INSUFFICIENT_POWER);
1608 	CASE_RETURN_STR(STATUS_SAM_NEED_BOOTKEY_PASSWORD);
1609 	CASE_RETURN_STR(STATUS_SAM_NEED_BOOTKEY_FLOPPY);
1610 	CASE_RETURN_STR(STATUS_DS_CANT_START);
1611 	CASE_RETURN_STR(STATUS_DS_INIT_FAILURE);
1612 	CASE_RETURN_STR(STATUS_SAM_INIT_FAILURE);
1613 	CASE_RETURN_STR(STATUS_DS_GC_REQUIRED);
1614 	CASE_RETURN_STR(STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY);
1615 	CASE_RETURN_STR(STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS);
1616 	CASE_RETURN_STR(STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED);
1617 	CASE_RETURN_STR(STATUS_MULTIPLE_FAULT_VIOLATION);
1618 	CASE_RETURN_STR(STATUS_NOT_SUPPORTED_ON_SBS);
1619 	CASE_RETURN_STR(STATUS_WOW_ASSERTION);
1620 	CASE_RETURN_STR(DBG_NO_STATE_CHANGE);
1621 	CASE_RETURN_STR(DBG_APP_NOT_IDLE);
1622 	CASE_RETURN_STR(RPC_NT_INVALID_STRING_BINDING);
1623 	CASE_RETURN_STR(RPC_NT_WRONG_KIND_OF_BINDING);
1624 	CASE_RETURN_STR(RPC_NT_INVALID_BINDING);
1625 	CASE_RETURN_STR(RPC_NT_PROTSEQ_NOT_SUPPORTED);
1626 	CASE_RETURN_STR(RPC_NT_INVALID_RPC_PROTSEQ);
1627 	CASE_RETURN_STR(RPC_NT_INVALID_STRING_UUID);
1628 	CASE_RETURN_STR(RPC_NT_INVALID_ENDPOINT_FORMAT);
1629 	CASE_RETURN_STR(RPC_NT_INVALID_NET_ADDR);
1630 	CASE_RETURN_STR(RPC_NT_NO_ENDPOINT_FOUND);
1631 	CASE_RETURN_STR(RPC_NT_INVALID_TIMEOUT);
1632 	CASE_RETURN_STR(RPC_NT_OBJECT_NOT_FOUND);
1633 	CASE_RETURN_STR(RPC_NT_ALREADY_REGISTERED);
1634 	CASE_RETURN_STR(RPC_NT_TYPE_ALREADY_REGISTERED);
1635 	CASE_RETURN_STR(RPC_NT_ALREADY_LISTENING);
1636 	CASE_RETURN_STR(RPC_NT_NO_PROTSEQS_REGISTERED);
1637 	CASE_RETURN_STR(RPC_NT_NOT_LISTENING);
1638 	CASE_RETURN_STR(RPC_NT_UNKNOWN_MGR_TYPE);
1639 	CASE_RETURN_STR(RPC_NT_UNKNOWN_IF);
1640 	CASE_RETURN_STR(RPC_NT_NO_BINDINGS);
1641 	CASE_RETURN_STR(RPC_NT_NO_PROTSEQS);
1642 	CASE_RETURN_STR(RPC_NT_CANT_CREATE_ENDPOINT);
1643 	CASE_RETURN_STR(RPC_NT_OUT_OF_RESOURCES);
1644 	CASE_RETURN_STR(RPC_NT_SERVER_UNAVAILABLE);
1645 	CASE_RETURN_STR(RPC_NT_SERVER_TOO_BUSY);
1646 	CASE_RETURN_STR(RPC_NT_INVALID_NETWORK_OPTIONS);
1647 	CASE_RETURN_STR(RPC_NT_NO_CALL_ACTIVE);
1648 	CASE_RETURN_STR(RPC_NT_CALL_FAILED);
1649 	CASE_RETURN_STR(RPC_NT_CALL_FAILED_DNE);
1650 	CASE_RETURN_STR(RPC_NT_PROTOCOL_ERROR);
1651 	CASE_RETURN_STR(RPC_NT_UNSUPPORTED_TRANS_SYN);
1652 	CASE_RETURN_STR(RPC_NT_UNSUPPORTED_TYPE);
1653 	CASE_RETURN_STR(RPC_NT_INVALID_TAG);
1654 	CASE_RETURN_STR(RPC_NT_INVALID_BOUND);
1655 	CASE_RETURN_STR(RPC_NT_NO_ENTRY_NAME);
1656 	CASE_RETURN_STR(RPC_NT_INVALID_NAME_SYNTAX);
1657 	CASE_RETURN_STR(RPC_NT_UNSUPPORTED_NAME_SYNTAX);
1658 	CASE_RETURN_STR(RPC_NT_UUID_NO_ADDRESS);
1659 	CASE_RETURN_STR(RPC_NT_DUPLICATE_ENDPOINT);
1660 	CASE_RETURN_STR(RPC_NT_UNKNOWN_AUTHN_TYPE);
1661 	CASE_RETURN_STR(RPC_NT_MAX_CALLS_TOO_SMALL);
1662 	CASE_RETURN_STR(RPC_NT_STRING_TOO_LONG);
1663 	CASE_RETURN_STR(RPC_NT_PROTSEQ_NOT_FOUND);
1664 	CASE_RETURN_STR(RPC_NT_PROCNUM_OUT_OF_RANGE);
1665 	CASE_RETURN_STR(RPC_NT_BINDING_HAS_NO_AUTH);
1666 	CASE_RETURN_STR(RPC_NT_UNKNOWN_AUTHN_SERVICE);
1667 	CASE_RETURN_STR(RPC_NT_UNKNOWN_AUTHN_LEVEL);
1668 	CASE_RETURN_STR(RPC_NT_INVALID_AUTH_IDENTITY);
1669 	CASE_RETURN_STR(RPC_NT_UNKNOWN_AUTHZ_SERVICE);
1670 	CASE_RETURN_STR(EPT_NT_INVALID_ENTRY);
1671 	CASE_RETURN_STR(EPT_NT_CANT_PERFORM_OP);
1672 	CASE_RETURN_STR(EPT_NT_NOT_REGISTERED);
1673 	CASE_RETURN_STR(RPC_NT_NOTHING_TO_EXPORT);
1674 	CASE_RETURN_STR(RPC_NT_INCOMPLETE_NAME);
1675 	CASE_RETURN_STR(RPC_NT_INVALID_VERS_OPTION);
1676 	CASE_RETURN_STR(RPC_NT_NO_MORE_MEMBERS);
1677 	CASE_RETURN_STR(RPC_NT_NOT_ALL_OBJS_UNEXPORTED);
1678 	CASE_RETURN_STR(RPC_NT_INTERFACE_NOT_FOUND);
1679 	CASE_RETURN_STR(RPC_NT_ENTRY_ALREADY_EXISTS);
1680 	CASE_RETURN_STR(RPC_NT_ENTRY_NOT_FOUND);
1681 	CASE_RETURN_STR(RPC_NT_NAME_SERVICE_UNAVAILABLE);
1682 	CASE_RETURN_STR(RPC_NT_INVALID_NAF_ID);
1683 	CASE_RETURN_STR(RPC_NT_CANNOT_SUPPORT);
1684 	CASE_RETURN_STR(RPC_NT_NO_CONTEXT_AVAILABLE);
1685 	CASE_RETURN_STR(RPC_NT_INTERNAL_ERROR);
1686 	CASE_RETURN_STR(RPC_NT_ZERO_DIVIDE);
1687 	CASE_RETURN_STR(RPC_NT_ADDRESS_ERROR);
1688 	CASE_RETURN_STR(RPC_NT_FP_DIV_ZERO);
1689 	CASE_RETURN_STR(RPC_NT_FP_UNDERFLOW);
1690 	CASE_RETURN_STR(RPC_NT_FP_OVERFLOW);
1691 	CASE_RETURN_STR(RPC_NT_NO_MORE_ENTRIES);
1692 	CASE_RETURN_STR(RPC_NT_SS_CHAR_TRANS_OPEN_FAIL);
1693 	CASE_RETURN_STR(RPC_NT_SS_CHAR_TRANS_SHORT_FILE);
1694 	CASE_RETURN_STR(RPC_NT_SS_IN_NULL_CONTEXT);
1695 	CASE_RETURN_STR(RPC_NT_SS_CONTEXT_MISMATCH);
1696 	CASE_RETURN_STR(RPC_NT_SS_CONTEXT_DAMAGED);
1697 	CASE_RETURN_STR(RPC_NT_SS_HANDLES_MISMATCH);
1698 	CASE_RETURN_STR(RPC_NT_SS_CANNOT_GET_CALL_HANDLE);
1699 	CASE_RETURN_STR(RPC_NT_NULL_REF_POINTER);
1700 	CASE_RETURN_STR(RPC_NT_ENUM_VALUE_OUT_OF_RANGE);
1701 	CASE_RETURN_STR(RPC_NT_BYTE_COUNT_TOO_SMALL);
1702 	CASE_RETURN_STR(RPC_NT_BAD_STUB_DATA);
1703 	CASE_RETURN_STR(RPC_NT_CALL_IN_PROGRESS);
1704 	CASE_RETURN_STR(RPC_NT_NO_MORE_BINDINGS);
1705 	CASE_RETURN_STR(RPC_NT_GROUP_MEMBER_NOT_FOUND);
1706 	CASE_RETURN_STR(EPT_NT_CANT_CREATE);
1707 	CASE_RETURN_STR(RPC_NT_INVALID_OBJECT);
1708 	CASE_RETURN_STR(RPC_NT_NO_INTERFACES);
1709 	CASE_RETURN_STR(RPC_NT_CALL_CANCELLED);
1710 	CASE_RETURN_STR(RPC_NT_BINDING_INCOMPLETE);
1711 	CASE_RETURN_STR(RPC_NT_COMM_FAILURE);
1712 	CASE_RETURN_STR(RPC_NT_UNSUPPORTED_AUTHN_LEVEL);
1713 	CASE_RETURN_STR(RPC_NT_NO_PRINC_NAME);
1714 	CASE_RETURN_STR(RPC_NT_NOT_RPC_ERROR);
1715 	CASE_RETURN_STR(RPC_NT_UUID_LOCAL_ONLY);
1716 	CASE_RETURN_STR(RPC_NT_SEC_PKG_ERROR);
1717 	CASE_RETURN_STR(RPC_NT_NOT_CANCELLED);
1718 	CASE_RETURN_STR(RPC_NT_INVALID_ES_ACTION);
1719 	CASE_RETURN_STR(RPC_NT_WRONG_ES_VERSION);
1720 	CASE_RETURN_STR(RPC_NT_WRONG_STUB_VERSION);
1721 	CASE_RETURN_STR(RPC_NT_INVALID_PIPE_OBJECT);
1722 	CASE_RETURN_STR(RPC_NT_INVALID_PIPE_OPERATION);
1723 	CASE_RETURN_STR(RPC_NT_WRONG_PIPE_VERSION);
1724 	CASE_RETURN_STR(RPC_NT_PIPE_CLOSED);
1725 	CASE_RETURN_STR(RPC_NT_PIPE_DISCIPLINE_ERROR);
1726 	CASE_RETURN_STR(RPC_NT_PIPE_EMPTY);
1727 	CASE_RETURN_STR(RPC_NT_INVALID_ASYNC_HANDLE);
1728 	CASE_RETURN_STR(RPC_NT_INVALID_ASYNC_CALL);
1729 	CASE_RETURN_STR(RPC_NT_SEND_INCOMPLETE);
1730 	CASE_RETURN_STR(STATUS_ACPI_INVALID_OPCODE);
1731 	CASE_RETURN_STR(STATUS_ACPI_STACK_OVERFLOW);
1732 	CASE_RETURN_STR(STATUS_ACPI_ASSERT_FAILED);
1733 	CASE_RETURN_STR(STATUS_ACPI_INVALID_INDEX);
1734 	CASE_RETURN_STR(STATUS_ACPI_INVALID_ARGUMENT);
1735 	CASE_RETURN_STR(STATUS_ACPI_FATAL);
1736 	CASE_RETURN_STR(STATUS_ACPI_INVALID_SUPERNAME);
1737 	CASE_RETURN_STR(STATUS_ACPI_INVALID_ARGTYPE);
1738 	CASE_RETURN_STR(STATUS_ACPI_INVALID_OBJTYPE);
1739 	CASE_RETURN_STR(STATUS_ACPI_INVALID_TARGETTYPE);
1740 	CASE_RETURN_STR(STATUS_ACPI_INCORRECT_ARGUMENT_COUNT);
1741 	CASE_RETURN_STR(STATUS_ACPI_ADDRESS_NOT_MAPPED);
1742 	CASE_RETURN_STR(STATUS_ACPI_INVALID_EVENTTYPE);
1743 	CASE_RETURN_STR(STATUS_ACPI_HANDLER_COLLISION);
1744 	CASE_RETURN_STR(STATUS_ACPI_INVALID_DATA);
1745 	CASE_RETURN_STR(STATUS_ACPI_INVALID_REGION);
1746 	CASE_RETURN_STR(STATUS_ACPI_INVALID_ACCESS_SIZE);
1747 	CASE_RETURN_STR(STATUS_ACPI_ACQUIRE_GLOBAL_LOCK);
1748 	CASE_RETURN_STR(STATUS_ACPI_ALREADY_INITIALIZED);
1749 	CASE_RETURN_STR(STATUS_ACPI_NOT_INITIALIZED);
1750 	CASE_RETURN_STR(STATUS_ACPI_INVALID_MUTEX_LEVEL);
1751 	CASE_RETURN_STR(STATUS_ACPI_MUTEX_NOT_OWNED);
1752 	CASE_RETURN_STR(STATUS_ACPI_MUTEX_NOT_OWNER);
1753 	CASE_RETURN_STR(STATUS_ACPI_RS_ACCESS);
1754 	CASE_RETURN_STR(STATUS_ACPI_INVALID_TABLE);
1755 	CASE_RETURN_STR(STATUS_ACPI_REG_HANDLER_FAILED);
1756 	CASE_RETURN_STR(STATUS_ACPI_POWER_REQUEST_FAILED);
1757 	CASE_RETURN_STR(STATUS_CTX_WINSTATION_NAME_INVALID);
1758 	CASE_RETURN_STR(STATUS_CTX_INVALID_PD);
1759 	CASE_RETURN_STR(STATUS_CTX_PD_NOT_FOUND);
1760 	CASE_RETURN_STR(STATUS_CTX_CDM_CONNECT);
1761 	CASE_RETURN_STR(STATUS_CTX_CDM_DISCONNECT);
1762 	CASE_RETURN_STR(STATUS_CTX_CLOSE_PENDING);
1763 	CASE_RETURN_STR(STATUS_CTX_NO_OUTBUF);
1764 	CASE_RETURN_STR(STATUS_CTX_MODEM_INF_NOT_FOUND);
1765 	CASE_RETURN_STR(STATUS_CTX_INVALID_MODEMNAME);
1766 	CASE_RETURN_STR(STATUS_CTX_RESPONSE_ERROR);
1767 	CASE_RETURN_STR(STATUS_CTX_MODEM_RESPONSE_TIMEOUT);
1768 	CASE_RETURN_STR(STATUS_CTX_MODEM_RESPONSE_NO_CARRIER);
1769 	CASE_RETURN_STR(STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE);
1770 	CASE_RETURN_STR(STATUS_CTX_MODEM_RESPONSE_BUSY);
1771 	CASE_RETURN_STR(STATUS_CTX_MODEM_RESPONSE_VOICE);
1772 	CASE_RETURN_STR(STATUS_CTX_TD_ERROR);
1773 	CASE_RETURN_STR(STATUS_CTX_LICENSE_CLIENT_INVALID);
1774 	CASE_RETURN_STR(STATUS_CTX_LICENSE_NOT_AVAILABLE);
1775 	CASE_RETURN_STR(STATUS_CTX_LICENSE_EXPIRED);
1776 	CASE_RETURN_STR(STATUS_CTX_WINSTATION_NOT_FOUND);
1777 	CASE_RETURN_STR(STATUS_CTX_WINSTATION_NAME_COLLISION);
1778 	CASE_RETURN_STR(STATUS_CTX_WINSTATION_BUSY);
1779 	CASE_RETURN_STR(STATUS_CTX_BAD_VIDEO_MODE);
1780 	CASE_RETURN_STR(STATUS_CTX_GRAPHICS_INVALID);
1781 	CASE_RETURN_STR(STATUS_CTX_NOT_CONSOLE);
1782 	CASE_RETURN_STR(STATUS_CTX_CLIENT_QUERY_TIMEOUT);
1783 	CASE_RETURN_STR(STATUS_CTX_CONSOLE_DISCONNECT);
1784 	CASE_RETURN_STR(STATUS_CTX_CONSOLE_CONNECT);
1785 	CASE_RETURN_STR(STATUS_CTX_SHADOW_DENIED);
1786 	CASE_RETURN_STR(STATUS_CTX_WINSTATION_ACCESS_DENIED);
1787 	CASE_RETURN_STR(STATUS_CTX_INVALID_WD);
1788 	CASE_RETURN_STR(STATUS_CTX_WD_NOT_FOUND);
1789 	CASE_RETURN_STR(STATUS_CTX_SHADOW_INVALID);
1790 	CASE_RETURN_STR(STATUS_CTX_SHADOW_DISABLED);
1791 	CASE_RETURN_STR(STATUS_RDP_PROTOCOL_ERROR);
1792 	CASE_RETURN_STR(STATUS_CTX_CLIENT_LICENSE_NOT_SET);
1793 	CASE_RETURN_STR(STATUS_CTX_CLIENT_LICENSE_IN_USE);
1794 	CASE_RETURN_STR(STATUS_PNP_BAD_MPS_TABLE);
1795 	CASE_RETURN_STR(STATUS_PNP_TRANSLATION_FAILED);
1796 	CASE_RETURN_STR(STATUS_PNP_IRQ_TRANSLATION_FAILED);
1797 	default:
1798 		return "Unknown";
1799 	}
1800 }
1801 #endif	// DBG
1802